2007-08-03 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
2
3         * object.c (mono_runtime_invoke_array): Avoid using alloca.
4
5         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
6
7 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
8
9         * domain.c, threads.c, threads-types.h: fix memory retention issue
10         with thread static variables not being cleared on domain unload.
11         Reuse thread static slots after domain unload.
12
13 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
14
15         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
16         nullable type.
17
18         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
19         now done in mono_runtime_invoke_array.
20
21         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
22         receiver is a nullable type.
23
24         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
25         generic parameter.
26
27 2007-07-03  Jonathan Chambers  <joncham@gmail.com>
28
29        * marshal.c: Implement COM Objects as return type for 
30        managed->unmanaged calls. Added Release calls for COM Object
31        out/return values in managed->unmanaged calls.
32        
33        Code is contributed under MIT/X11 license.
34
35 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
36
37         * threads.h, threads-type.h: move the hazard pointer declarations
38         to the private header.
39
40 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
41
42         * file-io.c, appdomain.c: memory leak fixes.
43
44 2007-08-02  Dick Porter  <dick@ximian.com>
45
46         * socket-io.c
47         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
48         SO_REUSEADDR setting into io-layer/sockets.c.
49
50 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
51
52         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
53         from Object when called on a generic parameter. Fixes #82211.
54
55 2007-08-01  Dick Porter  <dick@ximian.com>
56
57         * file-io.c (convert_share): Test FileShare values bit-by-bit.
58         Fixes bug 79250 yet again.
59
60 2007-07-30  Martin Baulig  <martin@ximian.com>
61
62         Merged the `debugger-dublin' branch.
63
64         * mono-debug.h
65         (MonoDebugDataTable): New typedef.
66         (MonoDebugMethodAddressList): New typedef.
67         (MonoDebugWrapperData): Removed.
68         (MonoDebugSymbolTable): Removed `current_data_table',
69         `current_data_table_size', `current_data_table_offset'.
70         (MonoDebugDataItemType): Moved into mono-debug.c.
71         (MonoDebugMethodJitInfo): Remove `address'.
72         (mono_debug_data_table): New global variable.
73         (mono_debug_lookup_method_addresses): New public function.
74         (mono_debug_find_method): Take a `MonoMethod *', not a
75         `MonoDebugMethodInfo *'.
76
77         * mono-debug.c: Drop support for the old symbol tables.
78
79 2007-06-28  Martin Baulig  <martin@ximian.com>
80
81         * mono-debug.c (mono_debug_debugger_version): New public variable.
82
83 2007-07-31  William Holmes  <billholmes54@gmail.com>
84
85         * metadata.c Changed mono_type_create_from_typespec to not insert
86           the type into the hash map until after
87           do_mono_metadata_parse_type has completed.
88         Fixes Bug #82194
89         Code is contributed under MIT/X11 license.
90
91 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
92
93         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
94         generic parameter. Fixes #82211.
95
96 2007-07-27  Jb Evain  <jbevain@novell.com>
97
98         * pedump.c (dump_metadata, dump_metadata_header): dump
99         versions contained in the metadata header.
100
101 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
102
103         * threads.c: register small_id_table with the GC.
104
105 2007-07-27  Mark Probst  <mark.probst@gmail.com>
106
107         * threads.c, threads.h, class-internals.h, object-internals.h:
108         Hazard pointers, to be used by lock-free parallel algorithms.
109
110 2007-07-26  Dick Porter  <dick@ximian.com>
111
112         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
113         routine on non-windows platforms, as I've not managed to think of
114         a non-kludgy way of doing this.  Finishes off bug 78739.
115
116 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
117
118         * object.c: properly setup interface_bitmap in proxy vtables.
119
120 2007-07-25  Marek Habersack  <mhabersack@novell.com>
121
122         * appdomain.c (get_shadow_assembly_location): do not use TickCount
123         to create unique shadow copy target directories, use the domain's
124         serial number instead. Each domain gets a unique target directory
125         that way.
126
127         * domain.c (mono_domain_create): added code to increment domain
128         shadow copy serial number and cache the value in the current
129         domain structure.
130
131         * domain-internals.h (struct _MonoDomain): added a new field -
132         shadow_serial to hold the serial number used in generation of
133         shadow-copy directories. This is to make sure that the directory
134         name is unique for each and every domain created. We avoid a race
135         condition with overriding assemblies already in use by other app
136         domains.
137
138 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
139
140         * class.c (mono_bounded_array_class_get): fixed memory leak when 
141         binding generic parameters.
142
143 2007-07-24  Raja R Harinath  <rharinath@novell.com>
144
145         * metadata.c (do_mono_metadata_parse_generic_class): Use
146         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
147         error.
148
149 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
150
151         * loader.c, class-internals.h, reflection.c: removed the per-method
152         generics hashtable: we use the global one through the call of
153         mono_class_inflate_generic_method ().
154
155 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
156
157         * class.c, metadata.c, class-internals.h: introduce yet another
158         generics global cache for inflated methods (fixes 98% of the perf
159         issue in bug #81806).
160
161 2007-07-23  Raja R Harinath  <rharinath@novell.com>
162
163         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
164         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
165         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
166         return a MonoGenericInst containing (a copy) of those types.
167         (mono_metadata_inflate_generic_inst): Update to changes.
168         (mono_metadata_parse_generic_inst): Likewise.
169         (mono_get_shared_generic_inst): Likewise.
170         * reflection.c (mono_class_bind_generic_parameters): Likewise.
171         (mono_reflection_bind_generic_method_parameters): Likewise.
172         * metadata-internals.h: Likewise.
173         * icall.c (free_generic_context): Kill.
174         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
175
176         * reflection.c (reflection_methodbuilder_to_mono_method): Use
177         mono_metadata_type_dup.
178         * marshal.c (mono_mb_create_method): Likewise.
179
180         * metadata.c (mono_metadata_type_dup): Rename from
181         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
182         MonoImage.  Handle a few more cases, esp. when no mempool is given.
183         * marshal.c, metadata-internals.h: Update to changes.
184
185 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
186
187         * class.c: fixed a small leak for array classes and removed warning.
188
189 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
190
191         * loader.c (mono_method_get_param_token): Make this work on generic methods.
192         Return 0x8000000 for return parameters. Fixes #82161.
193
194 2007-07-21  Marek Habersack  <grendello@gmail.com>
195
196         * appdomain.c (get_shadow_assembly_location): append the current
197         ticks value to the path. Avoids overwriting the same assemblies by
198         several threads at the same time.
199
200 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
201         and Raja R Harinath  <rharinath@novell.com>
202
203         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
204         Simplify slightly.
205         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
206         property for testing if a method is a generic method definition.
207
208 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
209
210         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
211
212 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
213
214         * verify.c: used function from private branch, reverted to the one in class.h 
215
216 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
217
218         * verify.c: a typo slipped in and the code wont compile
219
220 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
221
222         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
223         disabled box instruction as it is doing the wrong thing
224         improved stack dump messages, now it is easier to debug type related issues
225
226
227 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
228
229         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
230
231 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
232
233         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
234         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
235         grouped with class and valuetype. This change will simply 
236         the code as it should be handled just like unmanaged pointers.
237
238 2007-07-19  Mark Probst  <mark.probst@gmail.com>
239
240         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
241
242 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
243
244         * verify.c: several stack merge issues fixed, reference comparisons now
245         check the type size. strict type check now works correctly.
246         added more uses of IS_MANAGED_POINTER macro.
247         fixed issues pointed by running the test suite against .net.
248         
249
250 2007-07-19  Mark Probst  <mark.probst@gmail.com>
251
252         * class.c, loader.c, class-internals.h: Removed the
253         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
254         defines.
255
256         * icall.c: Better error checking in some internal reflection
257         methods.
258
259 2007-07-18  William Holmes  <billholmes54@gmail.com>
260
261         * filewatcher.c : removed unused variable 'filename' in 
262           ves_icall_System_IO_FSW_SupportsFSW
263
264 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
265
266         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
267         obsolete, removed.
268
269 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
270
271         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
272         
273         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
274
275 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
276
277         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
278         Implement generics support.
279         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
280
281         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
282         type_args and method_args arguments.
283         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
284         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
285         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
286
287 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
288
289         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
290           It adds a rootimage parameter to mono_reflection_get_type_internal,
291           adds new function mono_reflection_get_type_with_rootimage and use
292           the rootimage to resolve the types instead of the current image
293
294 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
295
296         * culture-info-table.h: Forgot to update after r78304.
297
298 2007-07-13  Raja R Harinath  <rharinath@novell.com>
299
300         * class.c (mono_class_is_open_constructed_type)
301         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
302
303 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
304
305         * class.c (mono_bounded_array_class_get):  method fails if used with
306         an incomplete TypeBuilder enum (no basetype field), fixed it by 
307         avoiding calculating the size for such array as it cannot be instantiated.
308         Fix bug #82015
309
310 2007-07-12  Raja R Harinath  <rharinath@novell.com>
311
312         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
313         field.
314         * metadata.c, reflection.c: Update to changes.
315
316 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
317
318         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
319         mono_class_is_valid_enum, they are used to valide a enum when loading.
320         * reflection.c: used new functions to throw TypeLoadException when and
321         invalid enum is build with TypeBuilder. Fixes #82018
322   
323 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
324
325         * object.c: forgot commit of mono_class_setup_methods () to access
326         iface->methods.
327         * object-internals.h: added a few more handy fields to
328         MonoIMTCheckItem.
329
330 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
331
332         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
333         iface->methods.
334
335 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
336
337         * class-internals.h, object-internals.h, object.c: IMT-based
338         interface invocation core from Massimiliano Mantione
339         (massi@ximian.com) with a reworked arch-specific interface,
340         bsearch implementation and a few bugfixes and memory savings by me.
341
342 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
343
344         * class.c (mono_class_create_from_typedef): mono would segfault if 
345         an enum did not have a __value field. It now throws a TypeLoadException
346         for such cases. Fix bug #82022
347
348 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
349
350         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
351
352 2007-07-09  Mark Probst  <mark.probst@gmail.com>
353
354         * class.c (mono_class_init): If a class is already inited but has
355         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
356
357 2007-07-09  Mark Probst  <mark.probst@gmail.com>
358
359         * class.c: Properly handle the case of an unimplemented interface
360         method.  Fixes: 81673.
361
362 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
363
364         * class-internals.h, object.c: cleanup patch from massi: use
365         MonoVTable->interface_bitmap since the vtable interfaces offset array
366         is going away.
367
368 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
369
370         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
371         GetMDStreamVersion icall instead.
372
373 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
374
375         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
376         not use mono_dl_build_path() with a full library name: makes
377         fallbacks to libgaim and libfam work.
378
379 2007-07-06  William Holmes  <billholmes54@gmail.com>
380
381         * assembly.c: Added a continue statement in probe_for_partial_name when
382          parse_assembly_directory_name fails.  Fixes : 82002
383
384 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
385
386         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
387         and added a verification  for TYPEDBYREF.
388         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
389         make native int interchangeable with int32 and some small cleanup and formating.
390         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
391         handle byref of byref.
392         * verify.c (push_local): handle byref of byref.
393         * verify.c (do_binop): invalid mix of values is unverifiable
394         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
395         added visibility checks
396         * verify.c (field related method): added visibility checks
397         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
398
399 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
400
401         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
402         string.
403
404 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
405
406         * profiler.c (mono_profiler_load): Fix an off-by-one error.
407
408         * marshal.c (emit_marshal_string): When returning a string from managed code,
409         allways make a copy even for unicode strings. Fixes #81990.
410
411 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
412
413         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
414         of byref generic inst types (bug #81997).
415
416 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
417
418         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
419         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
420
421 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
422
423         * marshal.c (emit_marshal_string): Add support for unicode strings in
424         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
425
426 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
427
428         * verify.c: field load/store are now verified, missing only access checks now
429
430 2007-06-28  Martin Baulig  <martin@ximian.com>
431
432         * mono-debug.c (mono_debug_debugger_version): New public variable.
433
434 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
435
436         * locales.c: When constructing DateTimeFormat or NumberFormat for
437         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
438         MonoCultureInfo contructed from the current locale is always
439         read-only and has UseUserOverride set to true. All MonoCultureInfo
440         instances returned for GetCultures have both IsReadOnly and
441         UseUserOverride set to true. Fixes part of bug #81930.
442
443 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
444
445        * icall-def.h: Update System.__ComObject icalls
446        * marshal.c: Avoid managed transition (and object creation)
447        when looking up COM interface in RCW.
448        * marshal.h: Ditto.
449        
450        Code is contributed under MIT/X11 license.
451
452 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
453
454         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
455         to avoid crashes during assembly unloading.
456
457 2007-06-22  Raja R Harinath  <rharinath@novell.com>
458
459         Fix MethodInfo.IsGenericMethodDefinition
460         * reflection.c (mono_reflection_bind_generic_method_parameters):
461         Rearrange code to ensure we always uses a generic method definition.
462         * class.c (mono_class_inflate_generic_method_full): Set
463         'generic_container' field only for generic method definitions.
464         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
465         Use presense of 'generic_container' field as indication of being a
466         generic method definition.
467
468 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
469
470         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
471
472         * object-internals.h: Reflect changes in the layout of the managed Delegate
473         class.
474         
475         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
476         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
477         runtime memory used by the dynamic method. Fixes #77146.
478
479 2007-06-21  Dick Porter  <dick@ximian.com>
480
481         * file-io.h: 
482         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
483         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
484         81767.
485
486 2007-06-21  Raja R Harinath  <rharinath@novell.com>
487
488         * reflection.c (method_encode_methodspec): Add a tripwire.
489         * class.c (inflate_generic_type): The fully open generic type is
490         not the same as the generic type definition.
491
492 2007-06-21  Martin Baulig  <martin@ximian.com>
493
494         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
495
496         * mono-debug-debugger.h
497         (MonoDebuggerBreakpointInfo): Removed.
498         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
499         (mono_debugger_remove_breakpoint): Likewise.
500         (mono_debugger_breakpoint_callback): Likewise.
501         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
502
503 2007-06-21  Raja R Harinath  <rharinath@novell.com>
504
505         * metadata.c (mono_metadata_lookup_generic_class): The fully open
506         generic type is not the same as the generic type definition.
507         * class.c (mono_generic_class_get_class): Likewise.
508
509 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
510
511         * icall.c: The second argument to 
512         System.Reflection.MethodBase.GetMethodFromHandleInternalType
513         is a MonoType not a MonoClass.
514
515 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
516
517         * verify.c: support for function pointers in the verifier
518
519 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
520
521         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
522
523 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
524
525         * assembly.c: removed Mono.Data.SqliteClient from the list of
526         forward-compatible assemblies as it breaks the ABI (bug #81899).
527
528 2007-06-19  Raja R Harinath  <rharinath@novell.com>
529
530         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
531         lookup/update with the loader lock.
532         * reflection.c (mono_class_bind_generic_parameters): No need to
533         protect mono_metadata_lookup_* with the loader lock.
534         * class.c (inflate_generic_type): Likewise.
535         
536         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
537         on a generic instantiated type.
538
539 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
540
541         *verify.c: produce meanfull error messages on verification error
542         *verify.c: fixed some cases of verification errors reported as validation errors
543         *pedump.c: fixed the error name array, now it shows validation errors properly
544         *verify.h: fixed the contant that should be used for verification errors
545
546 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
547
548         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
549         for bug #77596, 81858 and 80743 (generics data structures on domain
550         unload).
551
552 2007-06-15  Raja R Harinath  <rharinath@novell.com>
553
554         Avoid allocating 'MonoGenericContext' on the heap.
555         * class-internals (_MonoMethodInflated::context): Make field
556         inline, not a pointer.
557         * loader.c (method_from_methodspec): Allocate 'new_context' on the
558         stack.  Use the context embedded within the inflated method as the
559         hash key, rather than 'new_context'.
560         * class.c (inflate_generic_context): Simplify.  Return a struct
561         rather than allocating on the heap.
562         (mono_class_inflate_generic_method_full): Update to changes.  Now,
563         doesn't salt away a copy of the context -- simplifying the
564         lifetime rules of a 'MonoGenericContext *'.
565         (mono_method_get_context): Return pointer to embedded context.
566         (setup_generic_array_ifaces): Allocate temporary context on stack.
567         * reflection.c (inflate_mono_method): Likewise.
568         (mono_reflection_bind_generic_method_parameters): Likewise.
569         Use the context embedded within the inflated method as the hash key.
570
571         Avoid a source of allocation of 'MonoGenericContext'.
572         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
573         and 'cached_context' fields into embedded 'MonoGenericContext' field.
574         * class.c: Update to changes.
575         (mono_generic_class_get_context): Simplify drastically.  Now just
576         returns a pointer to the field.
577         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
578         argument as a const pointer.
579         (mono_metadata_generic_context_equal): Likewise.
580         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
581         Update to changes.
582
583 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
584
585         * verify.c improved the handling of brtrue/brfalse, factored out common code
586
587 2007-06-14  Raja R Harinath  <rharinath@novell.com>
588
589         Kill MonoGenericMethod.
590         * class-internals.h (MonoGenericContext::method_inst): Rename from
591         'gmethod' and convert to a MonoGenericInst.
592         (MonoGenericMethod): Remove.
593         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
594         * loader.c (method_from_methodspec): Update to changes.  Use a
595         MonoGenericContext as the key to the hashtable.
596         * metadata.c (mono_metadata_generic_context_equal): Rename from 
597         'mono_metadata_generic_method_equal' and take MonoGenericContext.
598         (mono_metadata_generic_context_hash): Likewise from
599         'mono_metadata_generic_method_hash'.  Change hash function.
600         (mono_metadata_load_generic_params): Update to changes.
601         (mono_get_shared_generic_method): Remove.
602         * metadata-internals.h (mono_get_shared_generic_method): Remove.
603         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
604         (inflate_generic_context): Likewise.
605         (mono_class_inflate_generic_method_full): Likewise.
606         (setup_generic_array_ifaces): Likewise.
607         (mono_class_create_from_typespec): Likewise.
608         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
609         (method_encode_methodspec): Update callsite.
610         (reflection_methodbuilder_to_mono_method): Update to changes.
611         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
612         MonoGenericContext as the key to the hashtable.
613         (inflate_mono_method): Update to changes.
614
615         * class-internals.h (MonoGenericMethod::container): Remove.
616         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
617
618 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
619
620         * profiler-private.h, profiler.c, profiler.h: added API to profile
621         exception events.
622
623 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
624
625         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
626
627 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
628
629         * verify.c: method invocation is now validated, now we verify parameter types on stack.
630         Fixed overflow and underflow not aborting the verification process.
631
632 2007-06-13  Mark Probst  <mark.probst@gmail.com>
633
634         * class-internals.h (MonoStats): Added stats entries for dynamic
635         code allocations.
636
637 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
638
639         * loader.c (mono_free_method): Free header->locals and header->clauses.
640
641         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
642         dynamic case.
643
644         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
645
646         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
647
648 2007-06-12  Raja R Harinath  <rharinath@novell.com>
649
650         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
651         the tables.
652
653 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
654
655         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
656
657 2007-06-11  Raja R Harinath  <harinath@gmail.com>
658
659         MonoGenericMethod on a diet
660         * class-internals.h (_MonoMethodInflated::reflection_info): Move
661         here ...
662         (_MonoGenericMethod::reflection_info): ... from here.
663         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
664         Update to changes.
665         * reflection.c (inflate_mono_method): Likewise.
666         (mono_reflection_bind_generic_method_parameters): Likewise.
667
668 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
669
670         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
671         *verify.c: factored long ldarg forms to share code with short forms
672
673 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
674
675         *verify.c: fixed code formating factored some duplicate code
676         into a new function
677
678         *verify.h: fixed binary incompatibility introduced earlier
679
680         *pedump.c: fixed formating
681
682 2007-06-11  Raja R Harinath  <harinath@gmail.com>
683
684         Fix assertion when disassembling Mono.C5.dll
685         * loader.c (method_from_methodspec): Avoid inflating a method
686         twice with the same context.  If the methodref is inflated, use
687         the declaring method instead.
688
689         * class.c (mono_class_from_generic_parameter): Fix case similar to
690         bug #81830 handled below, but for method containers.
691
692 2007-06-10  Raja R Harinath  <harinath@gmail.com>
693
694         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
695         get_shared_generic_class.  Directly inflate the instance.
696         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
697         (inflate_generic_class): Delete.
698         (get_shared_generic_class): Delete.  Move setting of
699         'cached_class' and 'cached_context' ...
700         * metadata.c (mono_metadata_lookup_generic_class): ... here.
701
702         * metadata.c (mono_metadata_lookup_generic_class): Change
703         signature to take the components of a MonoGenericClass rather than
704         an allocated MonoGenericClass.  Change semantics to be intern-like.
705         * reflection.c (mono_class_bind_generic_parameters): Update to
706         changes.  Make locking region tighter.
707         * class.c (inflate_generic_class): Update to changes.
708         (get_shared_generic_class): Likewise.
709         * metadata-internals.h: Likewise.
710
711         * reflection.c (mono_class_bind_generic_parameters): Take and
712         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
713         (mono_reflection_bind_generic_parameters): Use
714         'mono_class_bind_generic_parameters' rather than duplicate the code.
715         * class.c (mono_bounded_array_class_get): Update to changes.
716         * object-internals.h: Likewise.
717
718         * reflection.c (mono_class_bind_generic_parameters): Only support
719         parameterizing generic type definitions.  Remove support for other
720         open types.
721
722 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
723
724         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
725
726         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
727         in the dynamic case.
728
729 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
730
731         * threads.c: When cleaning up thread, reset the Background bit.
732         Fixes bug #81720.
733
734 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
735
736        * metadata.c: Move variable declarations to top of scope.
737        * verify.c: Move variable declarations to top of scope.
738
739        Code is contributed under MIT/X11 license.
740
741 2007-06-08  Raja R Harinath  <rharinath@novell.com>
742
743         * reflection.c (mono_class_bind_generic_parameters): Replace
744         open-coded loop with mono_metadata_inflate_generic_inst.
745
746         * class.c (get_shared_generic_class): Don't call
747         mono_get_shared_generic_inst.  Use the container's own
748         'class_inst'.
749
750         * metadata.c (mono_metadata_load_generic_params): Move
751         initialization of 'context' field here from ...
752         * class.c (mono_class_create_from_typedef): ... here, and ...
753         * loader.c (mono_get_method_from_token): ... here.
754
755         * class.c (get_shared_generic_class): Rename from
756         mono_get_shared_generic_class and make static.
757         (mono_get_shared_generic_inst): Move to metadata.c.
758         * loader.c (mono_get_shared_generic_method): Likewise.
759         * class-internals.h, metadata-internals.h: Update to changes.
760
761         Fix #81830
762         * class.c (mono_class_from_generic_parameter): Don't assume a
763         generic container owner exists.  Generic containers from monodis
764         don't have any.
765
766 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
767
768         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
769         * verify.h: new typedefs to returns the non-verifiable status
770         * verify.c: initial implementation of generics, stack merging and object compatibility check
771
772 2007-06-06  Mark Probst  <mark.probst@gmail.com>
773
774         * class.c, image.c, class-internals.h (MonoImage): class_cache is
775         a MonoInternalHashTable again (fixed bug in internal hash table
776         code).
777
778 2007-06-06  Mark Probst  <mark.probst@gmail.com>
779
780         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
781         MonoInternalHashTable again (fixed bug in internal hash table
782         code).
783
784 2007-06-06  Mark Probst  <mark.probst@gmail.com>
785
786         * class.c, image.c, class-internals.h, domain.c,
787         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
788         changes.  Have to figure out what makes them break the SWF
789         regression.
790
791 2007-06-04  Mark Probst  <mark.probst@gmail.com>
792
793         * class.c, image.c, class-internals.h (MonoImage): class_cache is
794         a MonoInternalHashTable now.
795
796 2007-06-04  Mark Probst  <mark.probst@gmail.com>
797
798         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
799         MonoInternalHashTable now.
800
801 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
802
803         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
804         invoke_impl code.
805
806         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
807
808         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
809         dependent trampoline.
810
811         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
812
813         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
814
815 2007-05-29  Robert Jordan  <robertj@gmx.net>
816
817         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
818
819 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
820
821         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
822
823 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
824
825        * marshal.c: Fix interface lookup loops for
826        cominterop_get_com_slot_for_method and 
827        cominterop_get_method_interface. Only need to lookup
828        if type is a class, else use interface type method is on.
829
830        Code is contributed under MIT/X11 license.
831
832 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
833
834         * reflection.c: HasSecurity can be present even if no specially 
835         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
836         SecurityAttribute). Fix CAS regression tests on buildbot.
837
838 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
839
840        * appdomain.c: Add configure checks for header files.
841        * image.c: Add configure checks for header files.
842        * file-io.c: Add configure checks for header files.
843        * debug-mono-symfile.c: Add configure checks for header files.
844        * threadpool.c: Add configure checks for header files.
845        * console-io.c: Add configure checks for header files.
846        * profiler.c: Add configure checks for header files.
847        * rawbuffer.c: Add configure checks for header files.
848        * icall.c: Add configure checks for header files.
849        * rand.c: Add configure checks for header files.
850        * socket-io.c: Add configure checks for header files.
851
852        Code is contributed under MIT/X11 license.
853
854 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
855
856         * reflection.c (mono_custom_attrs_from_builders): Remove the 
857         assertion as it breaks the build.
858         
859         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
860
861         * reflection.c (lookup_custom_attr): Make a copy here too.
862
863         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
864         dynamic images.
865
866         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
867         images.
868
869         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
870         info.
871
872 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
873
874         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
875         (load_cattr_value): Ditto.
876
877 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
878
879         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
880
881 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
882
883         * threads.c: In "start_wrapper", set apartment_state to MTA if
884         apartment_state is Unknown and we're running on 2.0 profile or
885         higher.
886         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
887         to main method, then set apartment_state to Unknown on 1.0 profile,
888         and MTA on 2.0 profile.
889
890 2007-05-16  Jb Evain  <jb@nurv.fr>
891
892         * class-internals.h (MonoDefaults): Add an attribute_class and
893           customattribute_data_class.
894         * domain.c (mono_init_internal): Populate them.
895         * reflection.c: Use them to remove duplicates. Make a vew
896         MonoClass variables `static'.
897
898 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
899
900         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
901         step in implementing IMT, so that all isinst checks now can go
902         through the bitmap.
903         This was needed because vtables for TransparentProxy need to look
904         like the vtable of the "target" class, so they need to point to
905         its interface bitmap directly.
906
907         * object.c: inside "mono_class_create_runtime_vtable" and
908         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
909
910 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
911
912         * object-internals.h
913           culture-info.h : added territory field in MonoCulture and
914           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
915         * locales.c : fill territory field above too.
916         * culture-info-table.h : regenerated.
917
918 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
919
920         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
921         Fixes #81599.
922
923 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
924
925         * object.c: Always initialize apartment, even if 
926         there is no custom attributes on entry point.
927         
928         Code is contributed under MIT/X11 license.
929
930 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
931
932         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
933         * metadata.c: If no encoding is set, check for unicode
934         on class.
935         
936         Code is contributed under MIT/X11 license.
937
938 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
939
940         * threads.c: Handle if mono_thread_current returns NULL 
941         
942         Code is contributed under MIT/X11 license.
943
944 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
945
946         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
947         in start_wrapper. Added mono_thread_init_apartment_state and
948         mono_thread_cleanup_apartment_state.
949         * object.c: Initialize thread apartment state on main thread
950         by checking for STAThreadAttribute on entry point.
951         * object-internals.h: Add apartment_state field to MonoThread.
952         * threads-types.h: Add unmanaged definition of 
953         System.Threading.ApartmentState, MonoThreadApartmentState.
954         
955         Code is contributed under MIT/X11 license.
956         
957 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
958
959         * class.c: Fix windows build.
960         * class-internals.h: Fix windows build.
961         
962         Code is contributed under MIT/X11 license.
963
964 2007-05-08  Robert Jordan  <robertj@gmx.net>
965
966         * process.c (CreateProcess_internal):
967         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
968         .CreateNoWindow was specified. Fixes #81496.
969
970 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
971
972         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
973         step in implementing IMT, replaced it with two compact arrays
974         (interfaces_packed and interface_offsets_packed) and a bitmap that
975         is used for isinst checks (interface_bitmap).
976
977         * class.c: (compare_interface_ids): compare function to pass to
978         bsearch when looking for an interface with a given id.
979         (mono_class_interface_offset): reimplemented using bsearch on
980         interfaces_packed, getting the offset from interface_offsets_packed.
981         (print_implemented_interfaces): utility debugging function.
982         (setup_interface_offsets): reworked to initialize interfaces_packed,
983         interface_offsets_packed and interface_bitmap.
984
985         * object.c: replaced all accesses to "MonoClass.interface_offsets"
986         with uses of interfaces_packed and interface_offsets_packed.
987
988 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
989
990         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
991         mono_class_interface_offset prototype to wrap all accesses to
992         "MonoClass.interface_offsets".
993
994         * class.c: Implemented mono_class_interface_offset, and wrapped all
995         accesses to "MonoClass.interface_offsets".
996
997         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
998         "MonoClass.interface_offsets".
999
1000 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
1001
1002         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
1003         GetMethodFromHandle overloads (bug #78637).
1004
1005 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1006
1007         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1008         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1009
1010 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1011
1012         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1013         #81498.
1014
1015         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1016         gracefully.
1017         (mono_custom_attrs_from_index): Ditto.
1018
1019         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1020         Fixes #81501.
1021
1022 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1023
1024         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1025         is now allocated from a mempool.
1026
1027 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1028
1029         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1030         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1031
1032 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1033
1034         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1035         mono_loader_clear_error () too late. Fixes #81463.
1036
1037 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1038
1039         * culture-info-table.h : regenerated.
1040
1041 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1042
1043         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1044         is missing.
1045
1046 2007-04-25  Dick Porter  <dick@ximian.com>
1047
1048         * Makefile.am: Put the mingw enforced-optimisation back into the
1049         PLATFORM_WIN32 section.
1050
1051 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1052
1053         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1054         patch.
1055
1056         * image.c (mono_image_load_module): New API function to load a module reference.
1057
1058         * image.c (load_modules): Load modules lazily. Fixes #80812.
1059
1060         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1061         
1062         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1063
1064         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1065         to mono_image_load_module_dynamic.
1066
1067 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1068
1069         * marshal.c: Fix calling convention for CCW on non-windows
1070         platforms. STDCALL on windows, CDECL everywhere else to work 
1071         with XPCOM and MainWin COM.
1072         
1073         Code is contributed under MIT/X11 license.
1074
1075 2007-04-23  Martin Baulig  <martin@ximian.com>
1076
1077         Fix #80969.
1078
1079         * loader.c
1080         (method_from_memberref): Added `gboolean *used_context' argument.
1081         (mono_get_method_from_token): Likewise.
1082         (mono_get_method_full): Don't insert the method in the cache when
1083         `used_context' is true.
1084
1085 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1086
1087         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1088
1089         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1090         create new MonoTypes for returned types.
1091         * class.c (mono_generic_class_get_class): Export mono-internal.
1092         * class-internals.h: Update to changes.
1093
1094 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1095
1096         * threadpool.c, threadpool.h, icall-def.h: patch from
1097         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1098
1099 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1100
1101         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1102         
1103         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1104
1105         * threads.c (mono_thread_get_stack_bounds): New helper function.
1106
1107         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1108         Correctly compute stack bounds when attaching. Fixes #81394.
1109
1110 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1111
1112         * reflection.c: fix handling of doubles in custom attributes
1113         for the arm-fpa format (bug #81368).
1114
1115 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1116
1117         * reflection.c (assembly_add_win32_resources): Mildly relax an
1118         bounds check to let the end pointer point just past the end of the
1119         allocated buffer.  (may fix #81384)
1120
1121 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1122
1123         * culture-info-table.h : regenerated.
1124
1125 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1126
1127         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1128         the thread is aborted early.
1129
1130 2007-04-05  Dick Porter  <dick@ximian.com>
1131
1132         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1133         FindFirstFile()/FindNextFile() to find entries.  This lets the
1134         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1135         81038.
1136
1137         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1138         the parameters of
1139         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1140
1141 2007-04-04  Martin Baulig  <martin@ximian.com>
1142
1143         * debug-helpers.c
1144         (mono_method_desc_full_match): Add support for nested classes.
1145
1146 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1147
1148         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1149
1150 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1151
1152         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1153         waiting for too many threads.
1154
1155 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1156
1157         * environment.c: Fix return value check on uname so we can get the 
1158         executing version on Solaris operating systems.
1159
1160 2007-03-28  Jb Evain  <jbevain@gmail.com>
1161
1162         * class.c (mono_type_get_name_recurse): Complete the
1163         fix for the creation of assembly qualified names for
1164         pointer types. Fixes #81208.
1165
1166 2007-03-27  Dick Porter  <dick@ximian.com>
1167
1168         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1169         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1170         changed.
1171
1172         * threads.c
1173         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1174         the value of ReleaseMutex().
1175
1176 2007-03-27  Dick Porter  <dick@ximian.com>
1177
1178         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1179         in little-endian order, not network endian, so must be converted
1180         to host endian here.  Fixes bug 80593.
1181
1182 2007-03-22  Jb Evain  <jbevain@gmail.com>
1183
1184         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1185         qualified names for pointer types. Fixes #81208.
1186
1187 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1188
1189         * marshal.c: Add support for PreserveSigAttribute. 
1190         
1191         Code is contributed under MIT/X11 license.
1192
1193 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1194
1195         * process.c: Fix endianness issues. Fixes #81126.
1196
1197         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1198         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1199
1200         * image.c (mono_image_lookup_resource): Make this work on big-endian
1201         machines.Change API contract so the caller needs to free the return value.
1202         
1203         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1204         API change.
1205         
1206 2007-03-14  Martin Baulig  <martin@ximian.com>
1207
1208         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1209         mono_type_get_desc() as well.
1210
1211 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1212
1213         * icall.c:  Fix environ access in VS.  
1214         
1215 2007-03-13  Alp Toker  <alp@atoker.com>
1216
1217         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1218         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1219         #63841.
1220
1221 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1222
1223         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1224         circular references among dynamic methods. Fixes #81091.
1225
1226         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1227
1228 2007-03-09  Martin Baulig  <martin@ximian.com>
1229
1230         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1231
1232 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1233
1234         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1235         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1236         
1237         Code is contributed under MIT/X11 license.
1238         
1239 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1240
1241         * loader.c: Reapply patch for bug #79424.
1242
1243 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1244
1245         * metadata.c (mono_type_to_unmanaged): Only convert object to
1246         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1247
1248 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1249
1250         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1251         (and incorrectly set) is_reference field from MonoGenericInst.
1252
1253 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1254
1255         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1256         a little earlier.
1257
1258         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1259
1260         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1261
1262 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1263
1264         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1265         FileOptions.1 value to mean "temporary", map that to
1266         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1267
1268         Fixes 80688
1269
1270 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1271
1272         * appdomain.c: implement MS .Net style shadow copying. Copies of
1273         the assemblies are made in a subdirectory of the dynamic base
1274         directory, the assembly names are preserved.
1275         Copy .mdb and .config files along with the assemblies being shadowed.
1276
1277 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1278
1279         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1280         (emit_marshal_handleref): Ditto.
1281
1282         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1283         on Visual C++. Fixes #80671.
1284
1285 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1286
1287         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1288         for clone operations.
1289
1290 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1291
1292         * marshal.c: Fix warnings.
1293
1294 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1295
1296         * loader.c: allow case-insensitive matching of the dll name
1297         in dllmap handling when prefixed with "i:".
1298
1299 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1300
1301         * threads.c: Fix #ifdef for dummy_apc function for VS.
1302
1303 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1304
1305         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1306
1307 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1308         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1309         giving precedence to the methods with a fully qualified name
1310         (InterfaceName.MethodName) when building the interface sections
1311         of the vtable.
1312
1313 2007-02-16  Dick Porter  <dick@ximian.com>
1314
1315         * threadpool.c (append_job): Fix fast-path array handling, so it's
1316         less likely the array will grow exponentially when the load is
1317         heavy.
1318
1319 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1320
1321         * metadata-internals.h, loader.c: fix dllmap lookup order
1322         for non-function maps, too, and prepare for fallback code.
1323
1324 2007-02-12  Robert Jordan  <robertj@gmx.net>
1325
1326         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1327         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1328         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1329         GlobalFree. Fixes a part of bug #77075.
1330
1331 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1332
1333         * loader.c: implemented typedef parent in field memberref.
1334
1335 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1336
1337         * marshal.c: Fix warnings and remember to call Release on
1338         IUnknown of RCW.
1339         
1340         Code is contributed under MIT/X11 license.
1341
1342 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1343
1344         * class-internals.h: Add MonoHandleRef definition, and
1345         handleref_class to mono_defaults. 
1346
1347         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1348         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1349
1350         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1351         (do nothing on this stage)
1352         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1353         (emit_marshal_handleref): New method, used for argument handling
1354         of HandleRefs. 
1355
1356 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1357
1358         * class.c (mono_class_setup_parent): Lazily init com types.
1359         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1360         init com types.
1361         * object.c (mono_remote_class_vtable): Lazily init com types.
1362         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1363         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1364         * domain-internals.h: Expose mono_init_com_types.
1365         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1366         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1367         Add support for COM Callable Wrapper marshalling.
1368         * marshal.h: Add icall definitions.
1369         * gc.c: Handle freeing of CCWs in finalizer code.
1370         
1371         Code is contributed under MIT/X11 license.
1372
1373 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1374
1375         * reflection.c: changed all the signature encoding code to use
1376         a variable-sized buffer.
1377
1378 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1379
1380         * marshal.c: locking fixes: never take the loader lock
1381         or other runtime locks when holding the marshal lock
1382         (fixes bug#80664).
1383
1384 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1385
1386         * marshal.c: make the delegate function pointer mapping
1387         work for the moving GC.
1388
1389 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1390
1391         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1392         for bug #80618.
1393
1394 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1395
1396         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1397         gmodule.
1398
1399 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1400
1401         * threadpool.c: made the code moving-GC safe.
1402
1403 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1404
1405         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1406         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1407         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1408         warning cleanup.
1409         * reflection.c: warning cleanup, some threading and moving GC fixes.
1410
1411 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1412
1413         * class.c, loader.c: create the needed Set/Get/Address array methods
1414         as well as the .ctors in mono_class_init (), fixes bug #80567.
1415
1416 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1417
1418         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1419         we doesn't decrease its alignment. Should fix the sparc build.
1420
1421 2007-01-24  Dick Porter  <dick@ximian.com>
1422
1423         * socket-io.c
1424         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1425         Create the returned object if we need to ignore an unsupported
1426         socket option.  Fixes a segfault reported by Atsushi.
1427
1428 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1429
1430         * class.c, object.c: restrict GC-tracked fields to
1431         UIntPtr fields used inside corlib, so we provide better
1432         type info to the GC and also allow broken packing as in
1433         bug #80580.
1434
1435 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1436
1437         * sgen-gc.c: removed duplicated function.
1438
1439 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1440
1441         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1442         value that means that the value is not supported, but that we
1443         should not return a failure, but instead report this as a
1444         successful operation.
1445
1446 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1447
1448         Fix tests/bug79956.2.il
1449         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1450         (mono_generic_class_get_class): If the generic definition in an
1451         enum, copy over other fields related to it.
1452
1453 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1454
1455         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1456         genericinst enums (bug #79215).
1457
1458 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1459         * class.c: Fix bug 80307.
1460
1461 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1462
1463         * image.c: if the file table is not present, try to load
1464         all the modules, since we don't have info about them
1465         having or not metadata (bug #80517).
1466         * assembly.c: allow mono_assembly_load_references () to
1467         work for netmodules.
1468
1469 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1470
1471         * image.c, metadata-internals.h, object.c: execute module
1472         cctors when running on the 2 runtime if present (bug #80487).
1473
1474 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1475
1476         * icall.c: optimized InitializeArray() on bigendian.
1477
1478 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1479
1480         * icall.c: fix for the broken ARM FPA double format.
1481
1482 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1483
1484         * icall.c: handle endian issues for r4 and r8 types, too, in
1485         the InitializeArray() icall.
1486
1487 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1488
1489         * loader.c (mono_loader_error_prepare_exception): Clear the error
1490         once we have extracted the information from it, do this before we
1491         call into the JIT's class loading mechanisms.
1492
1493         * object.c (mono_class_create_runtime_vtable): Do not clear the
1494         loader error before calling mono_class_get_exception_for_failure
1495         as the loader error is needed inside
1496         mono_class_get_exception_for_failure to throw the error (thinko).
1497
1498         Fixes #80521
1499         
1500 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
1501
1502         * reflection.c: align fields rva data so it's faster to load at
1503         runtime.
1504
1505 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1506
1507         Prepare to simplify GenericMethod handling.
1508         * class-internals.h (mono_method_get_context): New accessor function.
1509         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
1510         rather than directly accessing '->context' field.
1511
1512         * class-internals.h (_MonoGenericParam.method): Move ...
1513         (_MonoGenericContainer): ... here.  Add into union with klass field.
1514         * class.c, icall.c, loader.c, metadata.c, reflection.c:
1515         Update to changes.
1516
1517 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
1518
1519         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
1520         the wrapper type enum and reduce relocations.
1521
1522 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1523
1524         * reflection.c (inflate_mono_method): Reuse method instantiation
1525         from the generic method, if available.
1526
1527 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1528
1529         * marshal.c (emit_marshal_variant): Fix conv_arg
1530         type in last commit, based on whether parameter is byref.
1531         
1532 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1533
1534         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
1535         marshalling.
1536         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
1537         MONO_TYPE_OBJECT back for VARIANT support.
1538
1539 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1540
1541         * marshal.c, marshal.h, icall-def.h: Implement 
1542         Marshal.ReAllocCoTaskMem.
1543
1544 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
1545
1546         * marshal.c: memory retention fixes: use the proper
1547         image cache for runtime_invoke method lookups.
1548
1549 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
1550
1551         * mempool.c: added code to help debug mempool allocations.
1552
1553 2007-01-11  Dick Porter  <dick@ximian.com>
1554
1555         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
1556         support (experimenting with faking it with IP_MTU_DISCOVER for
1557         systems that don't have IP_DONTFRAGMENT.)
1558         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
1559         icall.
1560
1561         * icall-def.h: new System.Net.Sockets.Disconnect icall.
1562
1563         * socket-io.h: Add new fields to MonoSocketAsyncResult
1564         corresponding to the new ones in Socket.cs.
1565
1566 2007-01-11  Raja R Harinath  <rharinath@novell.com>
1567
1568         Fix IronPython regression mentioned in #80249
1569         * metadata.c (do_mono_metadata_parse_generic_class): Clear
1570         'cached_context' field, since it may have been initialized as a
1571         side-effect of metadata parsing.
1572
1573         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
1574         (_MonoGenericClass.cached_class): Move here and rename from lone
1575         remaining field of ...
1576         (_MonoInflatedGenericClass): ... this.  Remove.
1577         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
1578         to changes.
1579
1580         Fix mcs/tests/test-128.cs regression.
1581         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
1582         2007-01-10 change below.
1583         [MONO_TYPE_OBJECT]: Recurse into array case.
1584
1585 2007-01-11  Raja R Harinath  <harinath@gmail.com>
1586
1587         * class-internals.h (mono_get_inflated_generic_class): Remove.
1588         * class.c (mono_get_inflated_generic_class): Remove.
1589         (mono_generic_class_get_class): Rename from
1590         mono_class_create_generic.
1591         (mono_class_from_mono_type) [GENERICINST]: Use it.
1592         * reflection.c, metadata.c: Update to changes.  Use
1593         'mono_class_from_mono_type'.
1594
1595 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
1596
1597         * reflection.c: use passed type when encoding an array element
1598         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
1599
1600 2007-01-09  Robert Jordan  <robertj@gmx.net>
1601
1602         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
1603         result arguments (someDelegate.EndInvoke (unrelatedAres)).
1604         Fixes bug #80392.
1605
1606 2007-01-09  Raja R Harinath  <rharinath@novell.com>
1607
1608         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
1609
1610         * object.c (set_value): Avoid aliasing between type->data.klass
1611         and type->data.generic_class.
1612
1613         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
1614
1615 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1616
1617         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
1618         between type->data.klass and type->data.generic_class.
1619
1620 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
1621
1622         * marshal.c: In MS.NET, StringBuilder objects are not copied by
1623         value in out parameters.
1624
1625 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1626
1627         Simplify invariant for MonoGenericClass::klass field.
1628         * class.c (mono_class_create_generic): Verify 'klass' is null.
1629         * metadata.c (do_mono_metadata_parse_generic_class): Don't
1630         initialize 'klass' field.
1631
1632 2007-01-05  Raja R Harinath  <rharinath@novell.com>
1633
1634         Ongoing work to avoid redundant data and simplify invariants.
1635         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
1636         'generic_class', and change type to a GenericInst.
1637         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
1638         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1639
1640 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1641
1642         * class.c : skip io-layer under PLATFORM_WIN32.
1643
1644 2007-01-03  Tor Lillqvist  <tml@novell.com>
1645
1646         Fix #80305: In a bundled executable, look in the bundled exe
1647         assembly to determine the runtime version. Add the possibility to
1648         bundle also the machine.config file.
1649         
1650         * assembly.c (mono_assembly_open_from_bundle): Make
1651         non-static. Allow being called even if we have no bundled
1652         assemblies, and return NULL right away in that case.
1653
1654         * domain-internals.h: Declare mono_assembly_open_from_bundle()
1655         here.
1656
1657         * domain.c (app_config_parse): Take an assembly exe file name as
1658         parameter instead of a config file name. Check for a bundled
1659         config file for that assembly by calling
1660         mono_config_string_for_assembly_file() (see below) before looking
1661         for one in the file system.
1662         (get_runtimes_from_exe): Corrsponding change to call of
1663         app_config_parse().
1664         (get_runtimes_from_exe): Check for bundled assembly exe file first
1665         by calling mono_assembly_open_from_bundle(). If no bundled
1666         assembly exe file is found, call mono_image_open() as before to
1667         look it up in the file system.
1668
1669         * mono-config.c: Add variable bundled_machinec_onfig.
1670         (mono_config_string_for_assembly_file): New function.
1671         (mono_config_for_assembly): Move code snippet that looks for a
1672         bundled assembly .config file into the above new function. Call
1673         it.
1674         (mono_register_machine_config, mono_get_machine_config): New
1675         functions to set and retrieve
1676
1677         * assembly.h: Declare mono_register_machine_config().
1678
1679         * mono-config.h: Declare mono_get_machine_config() and
1680         mono_config_string_for_assembly_file().
1681
1682         * icall.c: No declaration of environ necessary on Win32. It is
1683         declared (as a macro expanding to a function call) in stdlib.h.
1684         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
1685         New internal mono function. Returns the value of
1686         mono_get_machine_config() as a Mono string.
1687
1688         * icall-def.h: Add get_bundled_machine_config().
1689
1690 2007-01-04  Raja R Harinath  <rharinath@novell.com>
1691
1692         Remove redundant field
1693         * class-internals.h (_MonoGenericContext.container): Remove field.
1694         * loader.c (mono_method_get_signature_full): Don't parse a
1695         "container" for a signature parse when the signature is inflated
1696         immediately.
1697         (method_from_methodspec): Likewise, for a generic_inst.
1698         * class.c, metadata.c, reflection.c: Update to changes.
1699
1700 2006-01-04  Raja R Harinath  <rharinath@novell.com>
1701
1702         * class-internals.h (_MonoGenericClass): Rename 'context' field to
1703         'cached_context', and change semantics -- it starts off NULL, and
1704         is initialized on demand.
1705         * class.c (mono_generic_class_get_context): New accessor to
1706         replace 'context' field accesses.
1707         (mono_class_get_context): New helper.
1708         (*): Update to changes.
1709         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
1710
1711 2007-01-03  Miguel de Icaza  <miguel@novell.com>
1712
1713         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
1714         before the memcpy.   Fixes Marshal2 regression.
1715
1716 2007-01-02  Jb Evain  <jbevain@gmail.com>
1717
1718         * blob.h: add a MONO_TYPE_ENUM definition
1719         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
1720         fix the encoding of arrays of enums in custom attributes.
1721
1722         Fixes #79666.
1723
1724 2007-01-01  Miguel de Icaza  <miguel@novell.com>
1725
1726         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
1727         string is null terminated, but only cut the string short if it
1728         overflows the buffer.   
1729         
1730         (mono_string_to_byvalstr): Also fix this routine.   The code here
1731         was not properly terminating a string (it was only terminated
1732         because of the previous catch-all memset). 
1733
1734         I left the memset, because I do not know if applications expect
1735         the runtime to clear this region. 
1736
1737         Fixes #79944.
1738
1739         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
1740         Clear the error before returning to unmanaged code to prevent the
1741         runtime from being confused later on (fixes  80420).
1742         (ves_icall_type_from_name): Always call mono_loader_clear_error
1743         after parsing a type that could have failed.
1744         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
1745
1746         * loader.c (mono_loader_clear_error): Fix indentation.
1747
1748 2006-12-28  Martin Baulig  <martin@ximian.com>
1749
1750         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
1751
1752 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
1753
1754         * reflection.c: patch from Rolf Bjarne Kvinge to fix
1755         getting a token for an EnumBuilder.
1756
1757 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1758
1759         * reflection.c: be more careful in case resource generation
1760         fails to create the data array.
1761
1762 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
1763
1764         * sgen-gc.c: write barrier for clone and fix unregister handles.
1765
1766 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
1767
1768         * reflection.c: some fixes needed in the generics code for the moving GC.
1769
1770 2006-12-22  Robert Jordan  <robertj@gmx.net>
1771
1772         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
1773         account. Fixes bug #80299.
1774
1775 2006-12-21  Raja R Harinath  <rharinath@novell.com>
1776
1777         Fix WaitHandle usage in delegates.
1778         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
1779         * object.c (mono_wait_handle_new): Use the property set method to
1780         initialize the handle.
1781         (mono_wait_handle_get_handle): New.
1782         * threadpool.c (mono_async_invoke): Use it.
1783         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
1784         Likewise.
1785         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
1786
1787 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
1788
1789         * marshal.c (emit_marshal): Call emit_marshal_variant and
1790         emit_marshal_com_interface when applicable.
1791         (emit_marshal_variant, emit_marshal_com_interface): Add
1792         methods for this case and remove if's from emit_marshal_object.
1793         
1794 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
1795
1796         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
1797
1798 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
1799
1800         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
1801         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
1802         and GlobalFree on Windows. Remove FIXME.
1803
1804 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1805
1806         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
1807         implementation for managed objects.
1808
1809 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
1810
1811         * object.c: implemented code to be used for checking
1812         that no reference field overlaps with non-references.
1813
1814 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1815
1816         * threadpool.c: fix queue code to be compatible with the
1817         moving GC.
1818
1819 2006-12-18  Miguel de Icaza  <miguel@novell.com>
1820
1821         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
1822         in structures by throwing ArgumentNullException.
1823
1824         (emit_marshal_safehandle): Also when they are null parameters.
1825
1826         (emit_marshal_safehandle): Add support for ref
1827         SafeHandles parameters
1828
1829 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1830
1831         * profiler.c: updated to use the mono-dl API instead of
1832         gmodule.
1833
1834 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1835
1836         * profiler.c: updated to use the mono-dl dynamic loading
1837         API instead of gmodule.
1838
1839 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
1840
1841         * profiler.c: use readlink, older versions of glib don't have
1842         g_file_read_link ().
1843
1844 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1845
1846         * profiler.c: try to detect the path to mono if libc fails to provide
1847         a useful name (bug #80286).
1848
1849 2006-12-16  Raja R Harinath  <rharinath@novell.com>
1850
1851         Fix #80242
1852         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
1853         instance, use the generic type definition instead.
1854         (ves_icall_Type_GetNestedTypes): Likewise.
1855         * class.c (mono_class_create_generic): Always set the
1856         nested_classes of a generic instance to NULL, even if the generic
1857         type definition has nested types.
1858
1859 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
1860
1861         * marshal.c (mono_string_from_bstr): Revert previous Windows change
1862         and fix on Linux.
1863         
1864 2006-12-15  Miguel de Icaza  <miguel@novell.com>
1865
1866         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
1867         my arguments were in the wrong order.   I also fixed the Windows
1868         version which seems to have had the same issue.
1869
1870         (mono_free_bstr): On Unix, this is g_free.
1871         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
1872         conversions (for the tests in corlib to pass).
1873
1874 2006-12-14  Miguel de Icaza  <miguel@novell.com>
1875
1876         * marshal.c (emit_ptr_to_object_conv): For now, ignore
1877         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
1878         exception if a ref SafeHandle in a struct has changed).
1879         
1880         (emit_struct_conv): Do not perform layout checks for classes
1881         derived from SafeHandle, as those are specially handled. 
1882
1883         (emit_object_to_ptr_conv): Add support for
1884         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
1885
1886         (emit_marshal_safehandle): Implement conversion of return values
1887         of safehandles (MARSHAL_ACTION_CONV_RESULT).
1888         
1889         * threads.c: WaitHandle now is compiled with two different handles
1890         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
1891         for 2.0.
1892         
1893         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
1894         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
1895         these routines to cope with both kinds of fields.
1896
1897 2006-12-12  Miguel de Icaza  <miguel@novell.com>
1898
1899         * metadata.c (mono_type_to_unmanaged): Handle the case where
1900         type->data.klass is a SafeHandle, and in that case, return the
1901         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
1902         MONO_MARSHAL_CONV_SAFEHANDLE. 
1903
1904 2006-12-11  Miguel de Icaza  <miguel@novell.com>
1905
1906         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
1907         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
1908         calling emit_marshal_object.
1909
1910         (emit_marshal_safehandle): Implement marshalling of
1911         SafeHandle parameters (no ref support yet).
1912
1913         (MarshalAction): Document the defines as I implement
1914         them for SafeHandle.
1915
1916         (emit_marshal_object): indentation police.
1917
1918         * class-internals.h: Define MonoSafeHandle.
1919         Add safehandle_class to MonoDefaults type.
1920
1921         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
1922         list of classes to check for fields. 
1923
1924         * domain.c (mono_init_internal): Add SafeHandle to the list of
1925         mono_defaults loaded.
1926
1927 2006-12-15  Raja R Harinath  <rharinath@novell.com>
1928
1929         Fix #80253
1930         * reflection.c (mono_reflection_bind_generic_parameters): If the
1931         generic type definition is a type builder, ensure that it is fully
1932         initialized before instantiating it.  Kill some dead code.
1933
1934 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
1935
1936         * object.c: clear the loader_error () before loading
1937         more metadata stuff (bug #80258).
1938
1939 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
1940
1941         * icall.c, icall-defs.h: type modifiers icalls for
1942         parameters and properties.
1943
1944 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
1945
1946         * object.c, icall.c: fixed warnings.
1947
1948 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1949
1950         * marshal.c: fixed a couple of leaks and coding style in a few places.
1951
1952 2006-12-08  Dick Porter  <dick@ximian.com>
1953
1954         * process.c: Cope with NULL ProcessStartInfo arguments on windows
1955         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
1956         80173.
1957
1958 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1959
1960         * process.c: ProcessStartInfo may have only filename set and
1961         arguments can be NULL.
1962
1963 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1964
1965         * icall.c: fix leak found by Robert Jordan.
1966
1967 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1968
1969         * marshal.c, marshal.h: generate managed method to access an element
1970         of a multi-dimensional array.
1971
1972 2006-11-30  Paolo Molaro (lupus@ximian.com)
1973
1974         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
1975
1976 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1977
1978         * icall.c: back out GetFields () fix until the serialization code is
1979         fixed to not depend on the incorrect behaviour.
1980
1981 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
1982
1983         * profiler.c: provide defaults if none are set.
1984
1985 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
1986
1987         * Makefile.am, attrdefs.h: new public header file with
1988         constants for attributes for use by embedders.
1989
1990 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
1991
1992         * icall.c: GetFields () fix for bug #80064.
1993
1994 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
1995
1996         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
1997         removed long unused icalls.
1998
1999 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
2000   
2001         * marshal.c: 
2002                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
2003                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
2004                 can be generated without a delegate class.
2005                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2006         
2007         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2008
2009 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2010
2011         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2012         #80069.
2013
2014 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2015
2016         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2017         icall-def.h: added icalls needed by System.GC.
2018
2019 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2020
2021         * loader.c: ensure the class in catch clauses is handled
2022         correctly for generics methods (fixes bug#79980).
2023
2024 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2025
2026         * monitor.h, monitor.c: added mono_locks_dump () function
2027         to help debug deadlocks involving managed locks.
2028
2029 2006-11-13  Dick Porter  <dick@ximian.com>
2030
2031         * file-io.c (get_file_attributes): If the file is a symlink try
2032         and get the stat data for the target, but also add the
2033         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2034         the specs for the windows symlink support, but will probably have
2035         to be reworked when I have test data from a vista machine.  Fixes
2036         bug 79887.
2037
2038 2006-11-13  Dick Porter  <dick@ximian.com>
2039
2040         * gc.c (mono_domain_finalize): 
2041         * marshal.c (mono_delegate_begin_invoke): 
2042         * threadpool.c (socket_io_init, mono_thread_pool_init)
2043         (mono_thread_pool_finish): 
2044         * monitor.c (mono_monitor_try_enter_internal): 
2045         * threads.c (mono_thread_resume, mono_thread_init)
2046         (mono_thread_suspend_all_other_threads)
2047         (mono_thread_execute_interruption): 
2048         * appdomain.c (mono_domain_unload): Check for NULL error returns
2049         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2050         75733.
2051
2052 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2053
2054         * process.c
2055         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2056         Only close the handle if the value of the handle is not
2057         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2058         robust.
2059
2060         Improvement for #75733, so that we do not run into this problem. 
2061
2062         
2063         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2064         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2065         internal variables.  Fixes #79462 
2066         
2067
2068 2006-11-09  Dick Porter  <dick@ximian.com>
2069
2070         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2071         Use poll() not select().  Fixes bug 79397.
2072
2073 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2074
2075         Fix #79872
2076         * assembly.c (mono_assembly_load_from_full): Check that the given
2077         image has an assembly manifest.
2078
2079 2006-11-09  Ankit Jain  <jankit@novell.com>
2080
2081         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2082         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2083         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2084
2085 2006-11-07  Dick Porter  <dick@ximian.com>
2086
2087         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2088         Put the old resolver behaviour back for pre-2.0 profiles.
2089
2090 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2091
2092         * threadpool.c: precise GC and locking fixes.
2093
2094 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2095
2096         * class.c: don't load types that have an explicit unaligned
2097         managed reference. Provide better info in the TypeLoad exception.
2098         Part of the fix for bug #79744.
2099         * object.c: use the correct check for class type load issues.
2100
2101 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2102
2103         * class.c: enforce alignment of fields with managed references
2104         even when Pack=1 is forced by the user (bug #77788).
2105
2106 2006-11-03  Dick Porter  <dick@ximian.com>
2107
2108         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2109         If the address reverse lookup fails, return it as the hostname
2110         anyway.  Fixes bug 79721.
2111
2112 2006-11-03  Dick Porter  <dick@ximian.com>
2113
2114         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2115         Fix build on Windows.
2116
2117 2006-11-02  Dick Porter  <dick@ximian.com>
2118
2119         * icall-def.h: 
2120         * object-internals.h: 
2121         * exception.c (mono_get_exception_thread_interrupted): 
2122         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2123         Fixes bug 74525.
2124
2125         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2126         Check for pending Thread.Interrupt.
2127
2128 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2129         * loader.c: Fixed bug 79684.
2130
2131 2006-10-27  Dick Porter  <dick@ximian.com>
2132
2133         * file-io.c (get_file_attributes): Force symlinks to directories
2134         to be returned as a regular file.  Fixes bug 79733.
2135 2006-10-26  Dick Porter  <dick@ximian.com>
2136
2137         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2138         CreateFile to open a directory then we need to set the
2139         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2140
2141 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2142
2143         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2144         friends.
2145
2146 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2147
2148         * sgengc.c: small cleanup of timer code.
2149
2150 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2151
2152         * sgen-gc.c: fix some warnings and start adding support for
2153         complete object removal on domain unload.
2154
2155 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2156
2157         * assembly.c: build_assembly_name should not consider a version
2158         number without build or revision number invalid. Fixes bug #79715.
2159
2160 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2161
2162         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2163         call kernel32 function OutputDebugString directly.
2164         
2165         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2166         
2167 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2168
2169         * reflection.c: small cleanup, using a function to insert a MonoString
2170         in the string heap.
2171
2172 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2173
2174         * reflection.c: moving GC fixes.
2175
2176 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2177
2178         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2179         all the objects with finalizers belonging to an unloading appdomain.
2180
2181 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2182
2183         * sgen-gc.c: added ability to allocate even when the nursery is fully
2184         pinned and fixed a couple of bugs.
2185
2186 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2187
2188         * threads.h: Revert the last change for now.
2189
2190         * threads.h (mono_thread_get_pending_exception): Rename this to
2191         mono_thread_get_undeniable_exception ().
2192
2193 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2194
2195         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2196         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2197         when fname does not refer to valid assembly. This result in a more
2198         meaningful error message.
2199         * exception.c: added mono_get_exception_bad_image_format2 which 
2200         constructs a BadImageFormatException using the ctor taking a custom
2201         message and the file name. Passing in a NULL msg results in a default
2202         message.
2203         * exception.h: define mono_get_exception_bad_image_format2 function.
2204         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2205         when file name pointed to an invalid IL image. Use 
2206         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2207         as this results in a more meaningful error message.
2208
2209 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2210
2211         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2212         #79465.
2213
2214 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2215
2216         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2217         consistency with the other _size functions.
2218         (mono_type_stack_size): Ditto.
2219
2220         * class.c object.c icall.c: Fix warnings caused by the above change.
2221
2222         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2223
2224         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2225
2226         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2227
2228 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2229
2230         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2231         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2232         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2233         threadpool.h, threads-types.h: mark more internal functions.
2234
2235 2006-10-11  Dick Porter  <dick@ximian.com>
2236
2237         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2238         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2239         reproduce the bug even before applying the fix.)
2240
2241 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2242
2243         * reflection.c: allow retrieving attributes for arguments in generic
2244         methods (bug #79241).
2245
2246 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2247
2248         * debug-mono-symfile.c: properly check fopen () result (found by
2249         coverity).
2250
2251 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2252
2253         * reflection.c: make error message clearer and fixed two
2254         issuelets found by Coverity.
2255
2256 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2257
2258         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2259
2260 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2261
2262         * object-internals.h, gc-internal.h, profiler-private.h:
2263         mark internal functions.
2264
2265 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2266
2267         * reflection.c: put data in the text section.
2268         * icall.c: recognize more types in type_from_typename ().
2269         * process.c, marshal.c: added some GC FIXMEs.
2270
2271 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2272
2273         * loader.c: check for NULL before initializing.
2274
2275 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2276
2277         * gc.c (finalizer_thread): Use a non-alertable wait here.
2278
2279         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2280         until the correct solution is found.
2281
2282 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2283
2284         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2285         modules with no metadata. Fixes #79596.
2286
2287         * image.c (load_metadata_ptrs): Put back the error message when
2288         the #- heap is encountered since the support is not complete yet.
2289
2290 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2291
2292         * gc.c: do not allow the user to SuppressFinalize () a
2293         delegate because it would leak the trampoline if present.
2294
2295 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2296
2297         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2298         PropertyPtr table.
2299
2300 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2301
2302         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2303
2304         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2305
2306         * row-indexes.h: Add definitions for *Ptr tables.
2307
2308         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2309
2310         * metadata.c (mono_metadata_translate_token_index): New helper function to
2311         translate table indexes used in uncompressed metadata.
2312         (mono_metadata_decode_table_row): Ditto.
2313         (mono_metadata_decode_table_row_col): Ditto.
2314
2315         * metadata.c: Add table schema for *Ptr tables.
2316
2317         * class.c loader.c: Use the new helper function to access the affected metadata
2318         tables.
2319         
2320         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2321         #38532.
2322         
2323 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2324
2325         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2326         sequences which can be unbounded in size. Fixes #79583.
2327
2328 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2329
2330         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2331         static initialization.
2332
2333         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2334
2335         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2336
2337         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2338
2339         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2340         ctor fails, i.e. throw the same exception on subsequent accesses.
2341         
2342 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2343
2344         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2345         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2346         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2347         Handle marshalling of interfaces and VARIANTs contained in structs.
2348         
2349         Code is contributed under MIT/X11 license.
2350         
2351 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2352
2353         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2354         
2355         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2356         mempool.
2357
2358 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2359
2360         * console-io.c: ignore previous SIGINT handler.
2361
2362 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2363
2364         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2365         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2366         #79460, #79461, #79485.
2367
2368         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2369
2370         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2371         #79217.
2372
2373 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2374
2375         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2376         could be generated from it.
2377
2378 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2379
2380         * rand.c: fix read loop to correctly handle EINTR.
2381
2382 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2383
2384         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2385         internal calls are defined to keep methods closer to the declaring
2386         type and allow a significant reduction in runtime relocations and
2387         memory usage.
2388
2389 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2390
2391         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2392         exception message to have FileNotFoundException use the default
2393         assembly load error message. Fixes bug #79426.
2394         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2395
2396 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2397
2398         * threadpool.c: (start_thread_or_queue) use the root domain when
2399         creating the thread instead of the async object one.
2400
2401 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2402
2403         * class.c, object.c, class-internals.h, reflection.c:
2404         for arrays, store element_size inside MonoClass (speedup
2405         for array object creation).
2406
2407 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2408
2409         * icall.c: fixed CodeBase to use the file name and not the module
2410         name (bug #79365).
2411
2412 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2413
2414         * mono-debug.c, mono-debug.h: export find_method as
2415         mono_debug_find_method ().
2416
2417 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2418
2419         * debug-helpers.c, class-internals.h: added a few functions useful
2420         when debugging under gdb.
2421
2422 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2423
2424         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2425         characters that need special handling.
2426
2427 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2428
2429         * mono-config.c: make the os/cpu specification more flexible,
2430         allowing lists and negation.
2431
2432 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2433
2434         * marshal.c: COM Interop fixes. Handle case where method->klass.
2435         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2436         calling convention on non-windows platforms. This is for
2437         compatibility with XPCOM and MainWin COM.
2438         
2439         Code is contributed under MIT/X11 license.
2440         
2441
2442 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2443
2444         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2445         correctly. Fixes #79217.
2446
2447         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2448
2449 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2450
2451         * mono-config.c: allow both an os and cpu attribute for dllmap
2452         and dllentry elemnets to enable a single config file to be used
2453         for multiple architectures.
2454
2455 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2456
2457         * loader.c: MonoLoaderError was cleared too soon on load failure.
2458         Fixes bug #79424.
2459
2460 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2461
2462         * icall.c: use the defining class vtable when accessing a
2463         static field, not a pobblibly derived class.
2464
2465 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2466
2467         * icall.c string-icalls.c: Remove references to unicode.h.
2468
2469         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2470
2471         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2472
2473         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2474         indicating the image where custom marshaller types should be looked up.
2475         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2476         custom marshallers, instead of corlib. Fixes #79425.
2477
2478 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2479
2480         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2481
2482 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2483
2484         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2485         Implement Environment.ProcessorCount.
2486         
2487         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2488         Implement Environment.ProcessorCount.
2489         
2490         * icall.c: 
2491         Add Environment.ProcessorCount icall.
2492         
2493         Patch by Jason McFall.
2494
2495 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2496
2497         * assembly.c: don't append .exe/.dll when the filename already contains
2498         one of those extensions.
2499
2500 2006-09-12  Martin Baulig  <martin@ximian.com>
2501
2502         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
2503         to array interfaces.
2504
2505 2006-09-11  Martin Baulig  <martin@ximian.com>
2506
2507         * reflection.c (mono_image_build_metadata): Create the
2508         MethodImpl's after emitting all types and methods, so we don't
2509         need another fixup pass for them.
2510
2511 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
2512
2513         * class.c (mono_class_from_name_case): Fix regression introduced by the last
2514         change.
2515
2516 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
2517
2518         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
2519         unload.
2520
2521 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
2522
2523         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
2524         args is not set. Fixes #78926.
2525
2526 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2527
2528         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
2529
2530         * image.c (load_class_names): Move this to class.c, and rename it to 
2531         'mono_image_init_name_cache'.
2532         (load_modules): Fix a warning.
2533
2534         * class.c icall.c image.c: Initialize image->name_cache lazily.
2535
2536         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
2537         on its name using information in the AOT file.
2538
2539         * class.c (mono_class_from_name): Use the new hook function.
2540
2541 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
2542
2543         * reflection.c (mono_param_get_objects): Handle enum default parameter values
2544         correctly.
2545
2546         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
2547         Fixes #79289.
2548         
2549 2006-09-06  Martin Baulig  <martin@ximian.com>
2550
2551         * icall.c (mono_lookup_internal_call): Small fix.
2552
2553 2006-09-05  Raja R Harinath  <rharinath@novell.com>
2554
2555         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
2556         double g_free.
2557
2558 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
2559
2560         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
2561         when --debug is specified.
2562
2563 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
2564
2565         * class.c (setup_generic_array_ifaces): Fix a warning.
2566
2567 2006-09-04  Miguel de Icaza  <miguel@novell.com>
2568
2569         * Temporarily remove the patch to assemly.c that checks the
2570         assembly versions as it breaks our gacutil.
2571
2572 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
2573
2574         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
2575
2576         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
2577         a net 1.0 runtime.
2578
2579         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
2580         created using the default ctor. Fixes #79152.
2581         (mono_string_builder_to_utf16): Ditto.
2582
2583 2006-09-01  Martin Baulig  <martin@ximian.com>
2584
2585         Fix handling of the generic array interfaces.
2586
2587         * class-internals.h
2588         (MonoDefaults): Removed `generic_array_class' and added
2589         `generic_ilist' class.
2590
2591         * class.c
2592         (mono_bounded_array_class_get): Add the new generic array interfaces.
2593         (setup_generic_array_ifaces): New static method; create vtable
2594         entries for each method in the generic array interfaces.
2595
2596         * metadata.c
2597         (select_container): Allow "parent-less" generic methods.
2598
2599         * marshal.c
2600         (mono_marshal_get_generic_array_helper): New public method.
2601
2602         * icall.c
2603         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
2604         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
2605         moved the interncall into System.Array.
2606
2607 2006-09-01  Raja R Harinath  <rharinath@novell.com>
2608
2609         A few more cases of avoiding work on types with ->byref set.
2610         Has the real fix for #79238
2611         * icall.c (is_generic_parameter): New helper.
2612         (ves_icall_Type_GetGenericParameterPosition): Use it.
2613         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
2614         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2615         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2616         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
2617         reference types.
2618         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
2619         reference types.
2620         (ves_icall_Type_get_IsGenericInstance): Likewise.
2621         (ves_icall_Type_get_IsGenericType): Likewise.
2622
2623 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
2624
2625         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
2626         class if possible.
2627
2628         * mempool.h (mono_mempool_get_allocated): New helper function.
2629
2630         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
2631         change.
2632
2633         * mempool.c: Fix warnings and the calculation of stats.
2634
2635         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
2636
2637         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
2638
2639         * loader.c (mono_get_method_from_token): Update method_count stat.
2640
2641         * class-internals.h (MonoStats): Add some stats.
2642
2643 2006-08-31 Robert Jordan  <robertj@gmx.net>
2644
2645         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
2646         with managed variants.
2647         All code is contributed under the MIT/X11 license.
2648         
2649 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
2650
2651         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
2652         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
2653
2654         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
2655
2656         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
2657         with cycles in classes.
2658
2659         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
2660
2661         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
2662         missing a [MarshalAs] directive. Fixes #79203.
2663
2664         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
2665         klass->marshal_info. Fixes #79217.
2666
2667 2006-08-30  Martin Baulig  <martin@ximian.com>
2668
2669         Committing a patch from Joachim Ante <joe@otee.dk>:
2670         Add support for binary data symbol stores.
2671
2672         * debug-mono-symfile.c
2673         (mono_debug_open_mono_symbol_file): Renamed into
2674         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
2675         arguments.
2676
2677         * mono-debug.c
2678         (mono_debug_open_image): Added `raw_contents' and `size' args.
2679         (mono_debug_init_2_memory): New public function.
2680
2681 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
2682
2683         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
2684
2685 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2686
2687         * appdomain.c: implement support for ShadowCopyFiles.
2688
2689 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
2690
2691         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
2692         when value is NULL (and should remove CID #51).
2693
2694 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2695
2696         * image.c: moved 2 functions to ../utils.
2697
2698 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
2699
2700         * gc.c: cope with the target object of a GC handle being NULL
2701         (bug #78877).
2702
2703 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
2704
2705         * class.c: recursively check parent's explicit implementations
2706         of interface methods (fixes bug #79125).
2707
2708 2006-08-19  Miguel de Icaza  <miguel@novell.com>
2709
2710         * filewatcher.c: Avoid warnings when building, do not redefine
2711         constants that are defined.
2712
2713         Remove warnings.
2714
2715 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2716
2717         * image.c: don't fail when the link points to an absolute path.
2718
2719 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
2720
2721         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
2722         Fix CID #3.
2723
2724 2006-08-17  Miguel de Icaza  <miguel@novell.com>
2725
2726         * image.c (full_path): A new method used to obtain the actual path
2727         of an assembly even in the presence of symbolic links.  
2728
2729         This is necessary for the case where we are running a binary that
2730         has been GACed, but we are using the "published" path name
2731         ($prefix/mono/1.0/blah.exe) which happens to point to the real
2732         file in the GAC.
2733
2734         This was the source of the failure for the `xsp' command with the
2735         recent AppDomain changes, as far as the runtime was concerned,
2736         there were two different assemblies: $prefix/mono/1.0/blah.exe and
2737         $prefix/mono/gac/blah/version/blah.exe.
2738
2739         (do_mono_image_open): use full path
2740
2741 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2742
2743         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
2744
2745 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
2746
2747         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
2748         domain_id is supplied. Fix CID #241 and corlib's unit tests.
2749
2750 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2751
2752         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
2753         small structures. Fixes #78990.
2754
2755 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2756
2757         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
2758
2759         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
2760
2761 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2762
2763         * appdomain.c:
2764         * marshal.c: don't load all the assemblies from a domain into newly
2765         created ones. The new domains might have different rules and load
2766         assemblies from different locations. Fixes bug #76757.
2767
2768         Patch by Lluis. Conflicts resolved by Brian Crowell.
2769
2770 2006-08-16  Alp Toker  <alp@atoker.com>
2771
2772         * socket-io.c: First half of the fix for #79084.
2773         Set sa_size to the length of the content, not that of the struct.
2774         Don't add NULL suffix to the content, this should be done in
2775         managed code if needed.
2776
2777 2006-08-14  Raja R Harinath  <rharinath@novell.com>
2778
2779         Fix part of #79012
2780         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
2781         mono_metadata_parse_type returns NULL.
2782
2783 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
2784
2785         * normalization-tables.h : new file for string normalization data.
2786         * locales.c, locales.h, icall.c :
2787           added load_normalization_resource() for string normalization,
2788           and icall as well.
2789         * Makefile.am : added normalization-tables.h to the sources.
2790
2791 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
2792
2793         * marshal.c: Add more helper functions to reduce code duplication and use them
2794         everywhere.
2795
2796 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
2797
2798         * marshal.c: Fix non-x86 stdcall warnings.
2799         
2800         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
2801         them everywhere.
2802
2803 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
2804
2805         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
2806         type check on multi-dimensional arrays. Fixes #79000.
2807
2808 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
2809
2810         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
2811         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
2812         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
2813         * class-internals.h: add is_com_object to class structure.
2814         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
2815         null checks to COM object marshalling. Fix .ctor call on RCW.
2816         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
2817         
2818         All code is contributed under the MIT/X11 license.
2819
2820 2006-08-09  Dick Porter  <dick@ximian.com>
2821
2822         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
2823         racing mono_monitor_allocator_lock() somewhere, so don't delete
2824         the critical section for now.  Found by running and exiting
2825         monodevelop.
2826
2827 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
2828
2829         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
2830         (ves_icall_System_ComObject_FindInterface): Ditto.
2831         (ves_icall_System_ComObject_CacheInterface): Ditto.
2832
2833         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
2834         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
2835
2836 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2837
2838         * threadpool.c: treat pipes from process asynchronous reads as sockets
2839         when reading from them, so we get select/poll or epoll to wait for
2840         data.
2841
2842 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
2843
2844         * loader.c: Fix a typo (CID #233) in the null check.
2845
2846 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
2847
2848         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
2849         Hopefully fixes #78949.
2850         
2851         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
2852         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
2853         bytes. Fixes #78972.
2854
2855 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2856
2857         * filewatcher.c: we need to set errno here.
2858
2859 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2860
2861         * filewatcher.c: let Win32Exception get the error value.
2862
2863 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2864
2865         * filewatcher.c: translate errno into win32 errors for Win32Exception
2866         to know what happened.
2867
2868 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
2869
2870         * threadpool.c: Fix more warnings.
2871
2872         * assembly.c (search_loaded): Fix warnings.
2873
2874         * threadpool.c (mono_thread_pool_finish): Fix warnings.
2875         (mono_async_invoke): Ditto.
2876
2877 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
2878
2879         * object.c (mono_remote_class_vtable): Need to create proxy vtable
2880         entries for __ComObject type in addition to ComImport types.
2881         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
2882         about hash table.
2883         
2884         All code is contributed under the MIT/X11 license.
2885
2886 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2887
2888         * image.c: avoid tentative loading of modulerefs that contain
2889         no metadata (P/Invoke library names).
2890
2891 2006-07-28  Dick Porter  <dick@ximian.com>
2892
2893         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
2894         mono_loader_lock() somewhere, so don't delete the critical section
2895         for now.  Found by running and exiting monodevelop.
2896
2897 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2898
2899         * filewatcher.c: define the inotify syscalls when we're building on
2900         linux and have sys/syscall.h. The build system might not have support
2901         for inotify but the target system might have it.
2902
2903 2006-07-26  Miguel de Icaza  <miguel@novell.com>
2904
2905         * domain.c: Documentation updates.
2906
2907         * loader.c (mono_free_method): Do not release the method
2908         information if we are being profiled, as profilers will use this
2909         information at shut down to present some data to the user.
2910
2911         This is needed so that the profiler does not crash, as the
2912         profiler tends to keep MonoMethods around, and they might become
2913         invalid if we free these.
2914
2915         (mono_get_method_constrained): Return the original CIL stream
2916         method as well, so verification can be performed against it.
2917
2918 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2919
2920         * filewatcher.[ch]: support for inotify file system watcher.
2921         * icall.c: add new internal calls for the inotify file system watcher.
2922
2923 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2924
2925         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
2926         #78888.
2927
2928 2006-07-20  Dick Porter  <dick@ximian.com>
2929
2930         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
2931         warning.
2932
2933 2006-07-20  Dick Porter  <dick@ximian.com>
2934
2935         * threads.c (start_wrapper): Do the thread cleanup while we still
2936         hold a reference to its object.  Fixes bug 78123.
2937
2938 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
2939
2940         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
2941         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
2942           "managed-to-managed".
2943         * icall.c: Redirect string constructors that take sbyte* to
2944           ves_icall_System_String_ctor_RedirectToCreateString.
2945         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
2946           to CreateString () methods with matching signature.
2947         * reflection.c: Use original security informations for
2948           MONO_WRAPPER_MANAGED_TO_MANAGED.
2949         * security-manager.c: Use original security informations for
2950           MONO_WRAPPER_MANAGED_TO_MANAGED.
2951         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
2952           that is a placeholder and only its address should be used.
2953         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
2954           that is a placeholder and only its address should be used.
2955
2956 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
2957
2958         Begin implementing COM Interop.
2959         * appdomain.c: Increment corlib version.
2960         * class.c: Set ComImport classes' parent to __ComObject.
2961         * loader.c: Mark cominterop methods as such.
2962         * domain.c: Add __ComObject class to MonoDefaults structure.
2963         * image.c: Add 2 hashtables to the image for COM Interop related methods
2964         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
2965         using the mempool allocator
2966         
2967         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
2968         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
2969         declaration for mono_metadata_type_dup_mp.
2970         
2971         * debug-helpers.c: Added strings for two additional wrapper types
2972         * object.c: Create proxy objects for ComImport classes
2973         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
2974         and added __ComObject class to MonoDefaults structure.
2975         
2976         * object-internals.h: Finish MonoRealProxy definition, and add definition of
2977         MonoComInteropProxy and MonoComObject.
2978         
2979         * marshal.c: Added support for COM Interop
2980         (signature_cominterop): Converts managed signature to corresponding
2981         unmanaged COM signature.
2982         (cominterop_get_function_pointer): gets unmanaged function pointer via
2983         COM object vtable
2984         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
2985         (cominterop_get_method_interface): returns interface type that method is defined on
2986         (mono_mb_emit_cominterop_call): emits native call to function pointer
2987         gotten from vtable
2988         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
2989         that matches signature of unmanaged function.
2990         (cominterop_get_native_wrapper): wrapper around adjusted method call.
2991         (cominterop_get_invoke): forwards call from proxy to __ComObject
2992         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
2993         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
2994         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
2995         
2996         * marshal.h: Added Marshal icall declarations.
2997         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
2998         so we can access them in finalizer
2999         
3000 2006-07-14  Dick Porter  <dick@ximian.com>
3001
3002         * object.c (mono_type_initialization_cleanup): Fix a race
3003         condition by temporarily commenting out the critical section
3004         deletion.
3005
3006 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3007
3008         * reflection.c (create_custom_attr): Fix some warnings.
3009         (create_custom_attr_data): Ditto.
3010         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3011         types. Fixes #78855.
3012
3013 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3014
3015         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3016
3017         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3018
3019 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3020
3021         * reflection.c (resolve_object): Add support for DynamicMethod.
3022
3023         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3024         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3025
3026 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3027
3028         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3029         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3030
3031 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3032
3033         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3034         Fixes #77888.
3035
3036 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3037
3038         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3039         slightly: remove a shadow local variable.
3040
3041 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3042
3043         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3044         definition that introduces the virtual function slot.
3045         Also fix Coverity #105.
3046
3047 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3048
3049         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3050         for dynamic assemblies. Fixes #78724.
3051
3052 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3053
3054         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3055         Fixes #78722.
3056
3057 2006-06-21  Martin Baulig  <martin@ximian.com>
3058
3059         * reflection.c
3060         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3061         fixes #76484.
3062
3063 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3064
3065         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3066
3067 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3068
3069         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3070         nor TYPEREFs.
3071         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3072         Inflate result if necessary.
3073         (mono_class_get_full): Remove old version.  Rename from
3074         'mono_class_get' and add 'context' argument.  Pass it to
3075         ..._create_from_typespec.
3076         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3077         (mono_ldtoken): Revert change below.
3078
3079 2006-06-20  Martin Baulig  <martin@ximian.com>
3080
3081         * class.c (mono_ldtoken): Don't pass the generic context to
3082         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3083
3084 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3085
3086         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3087         and later freeing it. Fixes #78638.
3088
3089 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3090
3091         * icall.c (mono_class_get_throw): Revert over-zealous error
3092         throwing, the caller for mono_class_get_throw will cope with
3093         errors when classes are not properly initialized already.
3094
3095         The code still copes with loader exceptions though.
3096
3097         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3098         
3099 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3100
3101         Fixes the `make run1' version of RuntimeAbort (to be commited,
3102         source is in Bugzilla).
3103         
3104         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3105         FALSE on class loading failure instead of returning true.
3106
3107         * class.c (mono_class_create_from_typedef): It is possible for
3108         mono_metadata_interfaces_from_typedef_full to fail if a class is
3109         not found, cope with this.
3110         
3111
3112 2006-06-14  Dick Porter  <dick@ximian.com>
3113
3114         * socket-io.c: 
3115         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3116         4.1.1
3117
3118 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3119
3120         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3121
3122 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3123
3124         * icall.c: Another fix for building mono in Visual Studio.
3125
3126 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3127
3128         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3129         
3130 2006-06-09  Martin Baulig  <martin@ximian.com>
3131
3132         * debug-mono-symfile.c: Put this back and really fix it this
3133         time. Sorry for all the trouble.
3134
3135 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3136
3137         * icall.c (mono_class_get_throw): Fix a warning.
3138         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3139         ReflectionTypeLoadException if needed. Fixes #78606.
3140
3141         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3142         (mono_class_init): Ditto.
3143
3144         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3145         ref_only exceptions.
3146         (mono_loader_clear_error): Make this work even if there is no error.
3147
3148 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3149
3150         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3151         Marshal.GetComSlotForMethodInfo using internal call.
3152
3153 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3154
3155         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3156         a function for signalling it.
3157
3158         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3159         a referenced assembly is not found.
3160
3161         * loader.c (mono_loader_error_prepare_exception): Add support for 
3162         LOADER_ERROR_ASSEMBLY. Fix formatting.
3163
3164 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3165
3166         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3167         for VARIANT marshalling on windows and increment corlib version
3168         since Variant struct was added.
3169
3170 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3171
3172         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3173         stack trace line information:
3174
3175         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3176         (Martin) when looking up B which is between A and C, return A not C.
3177
3178         Bug is #78573.
3179
3180         Thanks to Alexander Olk for tracking this down.
3181
3182 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3183
3184         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3185         
3186         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3187         avoid clobbering its value.
3188         (mono_string_to_lpstr): Fix a warning on windows.
3189
3190 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3191
3192         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3193
3194         * reflection.c loader.c: Removed references to 'dummy' flag.
3195
3196         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3197
3198         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3199         it gets GC tracking.
3200
3201         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3202         GC tracking.
3203         
3204         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3205
3206         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3207
3208         * appdomain.c: Bump corlib version.
3209
3210 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3211
3212         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3213         CEE_STIND_REF when working with object references.
3214
3215 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3216
3217         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3218         Fixes #78539.
3219
3220 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3221
3222         * loader.c (method_from_memberref): Fix argument value for
3223         mono_loader_set_error_method_load (I was passing the MonoClass
3224         instead of the class name char *).
3225
3226 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3227
3228         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3229         CEE_STIND_REF when working with object references.
3230
3231 2006-05-30  Martin Baulig  <martin@ximian.com>
3232
3233         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3234         mono_method_full_name() change and replace the ':' with a '.'
3235         here.
3236
3237 2006-05-30  Martin Baulig  <martin@ximian.com>
3238
3239         * debug-mono-symfile.c
3240         (mono_debug_symfile_lookup_location): Fix the algorithm:
3241         when looking up B which is between A and C, return A not C.
3242
3243 2006-05-29  Martin Baulig  <martin@ximian.com>
3244
3245         * mono-debug.h
3246         (MonoDebugMethodInfo): Make the typedef public.
3247         (MonoDebugSourceLocation): New public struct.
3248
3249         * mono-debug.c
3250         (mono_debug_source_location_from_address): Removed.
3251         (mono_debug_source_location_from_il_offset): Removed.
3252         (mono_debug_il_offset_from_address): Removed.
3253         (mono_debug_address_from_il_offset): Removed.
3254         (mono_debug_lookup_method): New public function.
3255         (mono_debug_lookup_source_location): New public function; replaces
3256         the old mono_debug_source_location_from_*() functions; see the
3257         inline documentation.
3258         (mono_debug_free_source_location): New public function.
3259         (mono_debug_print_stack_frame): New public function; see the
3260         inline documentation.
3261
3262         * debug-mono-symfile.c
3263         (mono_debug_find_source_location): Renamed into
3264         mono_debug_symfile_lookup_location(); only take a
3265         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3266         documentation.
3267         (mono_debug_find_method): Renamed into
3268         mono_debug_symfile_lookup_method().
3269
3270 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3271
3272         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3273         returned by mono_image_open_full ().
3274
3275         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3276         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3277         #78517.
3278
3279         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3280         #78518.
3281
3282 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3283
3284         * class.c (mono_class_from_typeref): handle missing images
3285         earlier, deals with bug #78418.   Refactor code; 
3286
3287         Fix a warning introduced in my previous commit (some stale code
3288         from before I revisited my patch).
3289
3290         * class.c (mono_class_create_from_typedef): On failure, remove the
3291         class from the MonoImage->class_cache as the class is not
3292         initialized;   Fixes the leak pointed out by Paolo.
3293
3294 2006-05-25  Dick Porter  <dick@ximian.com>
3295
3296         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3297         DeleteCriticalSections until I figure out which one may still be
3298         sometimes locked when mono_thread_cleanup is called.
3299
3300 2006-05-24  Dick Porter  <dick@ximian.com>
3301
3302         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3303         of mono_thread_manage and back into its own function, so it can be
3304         called after the finalizer thread has finished.
3305
3306         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3307
3308 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3309
3310         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3311         Fixes #78495.
3312
3313         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3314         with non-blittable elements.
3315         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3316
3317 2006-05-24  Martin Baulig  <martin@ximian.com>
3318
3319         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3320         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3321
3322         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3323         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3324         `mono_debugger_event_handler' to NULL.
3325
3326 2006-05-24  Martin Baulig  <martin@ximian.com>
3327
3328         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3329
3330 2006-05-24  Martin Baulig  <martin@ximian.com>
3331
3332         * mono-debug-debugger.h
3333         (mono_debugger_create_notification_function): Added
3334         `MonoCodeManager *' argument.
3335
3336 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3337
3338         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3339
3340 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3341
3342         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3343         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3344         implementation.
3345
3346 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3347
3348         * icall.c: precise GC support: objects can't be stored in unmanaged
3349         memory anymore, even if they are kept alive by other references: since
3350         they can move the GC needs to be able to always find them.
3351
3352 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3353
3354         * object.c: precise GC support for static fields. Support
3355         for moving GCs: write barriers and pinned allocation for interned
3356         strings.
3357
3358 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3359
3360         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3361         structure.
3362
3363 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3364
3365         * class.c, gc.c: sgen and precise GC updates.
3366
3367 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3368
3369         * marshal.h, marshal.c: added write barrier wrapper and precise type
3370         fixes.
3371
3372 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3373
3374         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3375         support.
3376
3377 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3378
3379         * reflection.c: precise and sgen GC updates.
3380
3381 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3382
3383         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3384
3385 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3386
3387         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3388
3389 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3390
3391         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3392         MONO_TYPE_OBJECT. Fixes #78462.
3393
3394 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3395
3396         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3397         and blittable types.
3398
3399 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3400
3401         * class.c (mono_class_get_exception_for_failure): Implement parts
3402         of a TODO: if the loader error is set (instead of the class
3403         error), we return a Loader exception that can be properly thrown
3404         elsewhere.
3405
3406         This was exposed by some Winforms 2.0 code that I tried to run
3407         (Atsushi pointed me to it).
3408
3409 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3410
3411         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3412         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3413         
3414         * marshal.c (emit_marshal_vtype): Add limited support for 
3415         UnmanagedType.LPStruct. Fixes #78427.
3416
3417         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3418         Applied a patch from kangaroo to fix #77523.
3419
3420 2006-05-17  Martin Baulig  <martin@ximian.com>
3421
3422         * threads.c
3423         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3424         (debugger_thread_created): Removed.
3425         (debugger_thread_exited): Removed.
3426
3427 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3428
3429         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3430
3431         * object-internals.h (MonoReflectionResource): Sync with managed version.
3432
3433 2006-05-12  Wade Berrier <wberrier@novell.com>
3434
3435         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3436
3437 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3438
3439         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3440         functions try to allocate from the image mempool.
3441
3442 2006-05-12  Dick Porter  <dick@ximian.com>
3443
3444         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3445
3446 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3447
3448         * object.c: The FieldGetter and FieldSetter methods require the full
3449         name of the class, not only the name. Fixes bug #78277.
3450
3451 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3452
3453         * loader.c (method_from_memberref): Do not pass the NULL klass to
3454         mono_loader_set_error_() methods.  Pass the non-NULL value
3455         (class). 
3456
3457 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3458
3459         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3460         (mono_assembly_close): Null out assembly->image->references after freeing it.
3461
3462         * image.c (mono_image_close): Free image->references.
3463         
3464         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3465
3466 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3467
3468         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3469         before checking if it's NULL (g_assert).
3470
3471 2006-05-10  Martin Baulig  <martin@ximian.com>
3472
3473         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3474         I thought I already killed that two months ago, but now it somehow reappeared.
3475
3476 2006-05-10  Martin Baulig  <martin@ximian.com>
3477
3478         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3479
3480 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3481
3482         * reflection.c: Allocate memory for dynamically created methods in the image
3483         mempools.
3484
3485 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3486
3487         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3488         don't use the ad pointer before checking if it's NULL (g_assert).
3489
3490 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
3491
3492         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
3493         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
3494
3495         * marshal.c: Allocate all signatures from mempools.
3496
3497         * marshal.c: Allocate some more signatures from mempools.
3498
3499 2006-05-09  Miguel de Icaza  <miguel@novell.com>
3500
3501         * object.c (mono_load_remote_field): The code used to provide a
3502         temporary variable for returning results if the user did not
3503         provide a result pointer.  But our temporary variable was allocted
3504         on the satck.
3505
3506         Fix calling code to always pass a result area.   Coverity ID 103.
3507
3508 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
3509
3510         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
3511         value, not the old. Fixes #78312.
3512         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
3513
3514         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
3515         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
3516         per-image cache.
3517
3518         * assembly.c (mono_assembly_close): Free image->references.
3519
3520         * assembly.c (mono_assembly_names_equal): Fix a warning.
3521         (mono_assemblies_cleanup): Cleanup more global data.
3522
3523         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
3524
3525         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
3526         ptr_cache and image->modules.
3527
3528         * image.c (mono_image_init): Allocate array_cache lazily.
3529         
3530 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3531
3532         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
3533         behavior was changed recently and has bad side effects.
3534
3535 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
3536
3537         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
3538         
3539         * assembly.c (mono_assembly_close): Remove a debug printf.
3540
3541         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
3542
3543         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
3544         to also allow for temporary references between mono_image_open ()/close ().
3545
3546         * domain.c (get_runtimes_from_exe): Add a FIXME.        
3547
3548 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
3549
3550         * marshal.c: Fix support for dynamic methods.
3551
3552         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
3553
3554         * marshal.c (mono_marshal_cleanup): New cleanup function.
3555
3556         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
3557         image mempools.
3558
3559         * class.c (mono_class_init): Fix leaking class->nested_classes.
3560
3561         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
3562
3563         * image.c (mono_image_init): Initialize the new cashes.
3564
3565         * image.c (mono_image_close): Destroy the new cashes.
3566
3567         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
3568
3569         * mempool.c (mono_mempool_strdup): New helper function.
3570
3571         * class-internals.h: Add prototype for mono_loader_unlock ().
3572
3573         * domain.c (mono_jit_info_table_find): Fix a warning.
3574         (mono_debugger_check_runtime_version): Ditto.
3575
3576         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
3577         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
3578         functions to these modules.
3579
3580         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
3581         metadata modules.
3582         
3583         * marshal.c (mono_free_bstr): Fix a warning.
3584
3585         * assembly.c (mono_assembly_open_full): Fix another small leak.
3586
3587         * object.c: Fix some unload leaks in the remoting code.
3588
3589         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
3590         function.
3591
3592         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
3593
3594         * reflection.c: Fix some unload leaks in dynamic assemblies.
3595
3596 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
3597
3598         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
3599         * marshal.h: Add BSTR support on Win32
3600         * icall.c: Add BSTR icalls
3601         * metadata.h: Add BSTR enums
3602
3603 2006-04-28  Miguel de Icaza  <miguel@novell.com>
3604
3605         Work to catch the crash from #76795 and turn it into an
3606         exception.   As I stubbed out pieces of the VisualBasic support,
3607         I found a number of places where the code was failing and I added
3608         checks to those places. 
3609         
3610         * metadata.c (do_mono_metadata_parse_generic_class): Make this
3611         function return a status code.  If we fail to parse the signature
3612         from mono_metadata_parse_generic_inst, return FALSE.
3613
3614         * loader.c (mono_get_method_from_token): If we fail to load the
3615         method (mono_class_get) return NULL.   
3616
3617         * (method_from_memberref): Return NULL if we are unable to parse
3618         the method signature
3619
3620         (mono_loader_error_prepare_exception): Since we now use the
3621         loader_error flag internally to stop processing, and obtaining
3622         exceptions that might be thrown will walk this code path the
3623         proper way of going from a MonoLoaderError into a
3624         MonoException was convoluted.   This new routine encapsulates the
3625         process of turning the error into an exception and *clearing* the
3626         error afterwards.
3627         
3628 2006-04-27  Miguel de Icaza  <miguel@novell.com>
3629
3630         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
3631         with missing assemblies), and to cope with:
3632
3633                 * Missing fieldref from a non-existing assembly.
3634                 * Missing methodref from a non-existing assembly.
3635
3636         The first batch of work to address *some* of the issues from 76661.
3637         
3638         * object.c (mono_class_create_runtime_vtable): If we fail to
3639         initialize the class raise the exception here. 
3640
3641         * metadata.c (mono_class_get_overrides_full): If any methods fail
3642         to load return the failure to the caller.
3643
3644         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
3645         flagging assemblies that failed to load.   
3646
3647         Do not crash if we are unable to load the assembly.
3648
3649         (mono_assembly_close): Do nothing with REFERENCE_MISSING
3650         assemblies. 
3651
3652         * loader.c (mono_loader_set_error_type_load): Change the
3653         convention to always pass unallocated strings, so we make our own
3654         copies (I know our own code had duplicated strings before, but
3655         this keeps the normal conventions).
3656         (method_from_memberref): Call mono_loader_set_error_method_load
3657         for all possible failures of loading the class. 
3658         Remove assert, turn into a loader error.
3659
3660         (mono_loader_error_to_exception): Move this routine from mini
3661         (mini_loader_error_to_exception) there was no need to have that in
3662         mini. 
3663
3664         * class.c (mono_class_from_typeref): If we were not able to load
3665         the assembly with mono_assembly_load_reference, call the
3666         mono_loader_set_error_type_load to register the problem.
3667
3668         (mono_class_setup_fields): If we fail to load the type from
3669         mono_metadata_parse_type_full, call mono_class_set_failure and
3670         break from the loop.
3671
3672         If class->exception_type is set, we do not layout the fields as
3673         that might crash the runtime, and instead return (from breaking
3674         from the previous loop).
3675
3676         (mono_class_setup_vtable): This now returns a boolean indicating
3677         whether the table was properly setup.   The decision is driven by
3678         mono_class_get_overrides_full which might run into non-existing
3679         methods. 
3680         
3681         (mono_class_init): Returns TRUE on success or FALSE if there was a
3682         problem in loading the type (incorrect assemblies, missing
3683         assemblies, methods, etc).
3684
3685         When we call mono_class_setup_fields we also check for a potential
3686         error inside this call (either a class exception or a general
3687         loader exception).
3688
3689         (mono_class_create_from_typedef): If the parent fails to load
3690         (calling mono_class_get_full) return NULL.
3691         
3692         ** Important **
3693
3694         calls to mono_metadata_parse_type_full should be checked
3695         everywhere and set the mono_class_set_failure
3696         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
3697
3698         The current patch checks the places where my manually constructed
3699         tests show the errors are showing up, but we should do it
3700         everywhere. 
3701
3702         ** Important2 **
3703
3704         mono_class_init return values should be tested everywhere, like
3705         the previous case this is something that we should audit
3706         everywhere and not only on the cases exposed by the tests I
3707         created. 
3708
3709 2006-04-26  Miguel de Icaza  <miguel@novell.com>
3710
3711         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
3712         boolean parameter and instead pass the information on `options'
3713         parameter (FileOptions).
3714
3715         * icall.c: Register the new signature for MonoIO.Open.
3716
3717         * debug-helpers.c (dis_one): Trying to understand how coverity
3718         works.  Fix Run 5, item 78.
3719
3720 2006-04-26  Dick Porter  <dick@ximian.com>
3721
3722         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
3723         dereference.
3724
3725 2006-04-25  Martin Baulig  <martin@ximian.com>
3726
3727         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
3728
3729         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
3730         debugger_thread_created().
3731         (debugger_gc_push_all_stacks): Don't handle the main thread in any
3732         special way.
3733         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
3734         (mono_debugger_finalize_threads): New function; undo the effects
3735         of mono_debugger_init_threads().
3736         (mono_debugger_create_all_threads): Removed.
3737
3738 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
3739
3740         * image.c (mono_image_close): Tidy up trace messages.
3741
3742         * assembly.c (mono_assembly_close): Ditto.
3743
3744         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
3745         no longer references an already freed assembly. Fixes #78168.
3746
3747 2006-04-21  Dick Porter  <dick@ximian.com>
3748
3749         * threads.c (mono_thread_detach): Fix reference counting when
3750         detaching threads.
3751
3752 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
3753
3754         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
3755         #78155.
3756
3757 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
3758
3759         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
3760         (mono_type_to_stind): Ditto.
3761
3762         * marshal.c: Use the new helper functions to simplify code.
3763
3764         * image.c (mono_image_close): Add some code for help debug assembly unloading
3765         problems.
3766
3767         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
3768         image mempool.
3769
3770         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
3771         assembly was already loaded in another appdomain. Fixes #78083.
3772
3773 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
3774
3775         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
3776         referenced assemblies.
3777         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
3778
3779         * domain.c (mono_domain_free): Add a trace message.
3780
3781         * appdomain.c (add_assemblies_to_domain): Ditto.        
3782
3783         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
3784         field.  
3785
3786 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3787
3788         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
3789
3790 2006-04-12  Martin Baulig  <martin@ximian.com>
3791
3792         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
3793         `USE_INCLUDED_LIBGC'.   
3794
3795 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3796
3797         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
3798         the patch contains ../ and a small directory name later. Hopefully fixes
3799         #78035.
3800
3801 2006-04-10  Martin Baulig  <martin@ximian.com>
3802
3803         Clean up the debugger's thread-handling code.
3804
3805         The debugger's thread-handling code has been moved from
3806         ../mini/debug-debugger.c to threads.c.  We now iterate directly
3807         over the `threads' hash, keep track of exiting threads and also
3808         use proper locking.
3809
3810         We can now debug XSP and XSP based applications with the debugger.
3811
3812         * object-internals.h (MonoThread): Added `gpointer end_stack'.
3813
3814         * threads.h
3815         (MonoThreadCallbacks): Removed; this was only used by the debugger.
3816         (mono_install_thread_callbacks): Likewise.      
3817
3818         * threads.c (mono_thread_callbacks): Removed.
3819         (debugger_thread_created, debugger_thread_exited): New static functions.
3820         (start_wrapper): Call debugger_thread_created().
3821         (thread_cleanup): Call debugger_thread_exited().
3822         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
3823         (mono_debugger_init_threads): New public function.
3824         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
3825         iterate directly over the `threads' hash and also use proper locking.
3826
3827         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
3828
3829         * mono-debug-debugger.h
3830         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
3831
3832 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
3833
3834         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
3835         argument type=array. Fixes #78057.
3836
3837 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
3838
3839         * culture-info-table.h : regenerated. Fixed bug #69652.
3840
3841 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
3842
3843         * loader.c metadata.c: Reapply a variant r59116.
3844         
3845         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
3846
3847         * class.c (mono_class_setup_interface_offsets): New internal function.
3848
3849         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
3850         interfaces too. Fixes #77398.
3851
3852         * reflection.c (encode_cattr_value): Add support for 
3853         parameter type=object, argument type=array.
3854         (load_cattr_value): Ditto. Fixes #77916.
3855
3856         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
3857         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
3858
3859         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
3860         a byval char array and CharSet is Ansi.
3861
3862         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
3863
3864 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
3865
3866         * metadata.c: Add some locking comments.
3867         
3868         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
3869         mempool.
3870         (mono_metadata_free_method_signature): Don't free the signature itself.
3871
3872         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
3873
3874         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
3875         reference the same MonoImage.
3876         (mono_assembly_load_from_full): Add an assert.
3877
3878 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
3879
3880         * image.c (mono_image_close): Don't put the image we are about to free into the
3881         loaded_images_guid_hash.
3882
3883         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
3884         to reduce code duplication.
3885
3886         * marshal.c: Register the native functions called by this module as icalls, to
3887         somewhat centralize the creation of MonoMethodSignature's.
3888
3889         * loader.c (mono_method_signature): Add a cache for method signatures.
3890
3891         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
3892         the parameter attributes of a method.
3893         (mono_metadata_parse_method_signature_full): Refactored the computation of
3894         parameter attributes into a separate function. Also avoid one allocation in
3895         most cases.
3896
3897         * assembly.c (mono_assembly_close): Ditto.
3898
3899         * image.c (mono_image_close): Log trace messages with INFO level.
3900
3901         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
3902
3903         * image.c reflection.c: Correct reference counting of image modules.
3904         
3905         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
3906         of this function from the image mempool.
3907         
3908         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
3909         to allow more cached types to be used.
3910
3911         * mono-debug.c (mono_debug_add_method): Appled patch from
3912         David S. Miller  <davem@sunset.davemloft.net>: Access 
3913         minfo->lexical_blocks[] entry elements using read32().
3914
3915 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
3916
3917         * loader.c (mono_free_method): No longer free the method header for non-dynamic
3918         methods as it is allocated from the mempool.
3919
3920         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
3921         image mempool.
3922
3923         * metadata-internals.h: Add comments describing the reference counting scheme
3924         used for MonoImage and MonoAssembly.
3925
3926         * image.c assembly.c reflection.c: Rework reference counting of images and 
3927         assemblies so they are freed when the runtime is shut down. Free some 
3928         additional memory structures when an image is unloaded.
3929         
3930 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
3931
3932         * class.c loader.c reflection.c: Allocate more data structures in
3933         the image mempool.
3934
3935 2006-03-31  Miguel de Icaza  <miguel@novell.com>
3936
3937         * icall.c
3938         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
3939         build on pre glib 2.4 systems.
3940
3941 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
3942
3943         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
3944
3945         * icall.c: Fix some warnings.
3946
3947 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
3948
3949         * culture-info-table.h : regenerated.
3950
3951 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
3952
3953         * threads.c, object-internals.h, verify.c: changed the culture caching
3954         code to use a normal MonoArray for storage so the GC can keep track of
3955         them easily. Fixed bits of the cache logic, too and simplified the
3956         code.
3957
3958 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
3959
3960         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
3961         thread for non-Boehm GCs.
3962
3963 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3964
3965         * domain.c, object.c, domain-internals.h: reduce the amount of memory
3966         needed to keep track of the data for static fields.
3967
3968 2006-03-29  Raja R Harinath  <rharinath@novell.com>
3969
3970         Fix #75172
3971         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
3972         for interface classes.  Use 'num_methods' instead.
3973         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
3974         before using '->vtable_size' field.
3975
3976 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
3977
3978         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
3979         doesn't contain managed pointers, so use a normal hashtable.
3980
3981 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
3982
3983         * reflection.c, class-internals.h, domain.c: fixed handling of types
3984         used as values for objects in custom attributes (bug #77915):
3985
3986 2006-03-24  Martin Baulig  <martin@ximian.com>
3987
3988         * class.c (mono_class_setup_fields): Added support for generic
3989         instances; fixes #77580.
3990
3991 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3992
3993         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
3994
3995 2006-03-24  Dick Porter  <dick@ximian.com>
3996
3997         * file-io.c (get_file_attributes): More stat macro breakage.
3998         Fixes bug 77759.
3999
4000 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
4001
4002         * profiler.c: added the file=filename option in the default profiler
4003         to output the profile data to filename.
4004
4005 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4006
4007         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4008         bug #77877.
4009
4010 2006-03-22  Martin Baulig  <martin@ximian.com>
4011
4012         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4013         allocated `MonoClassField *' in `fb->handle'.
4014
4015 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4016
4017         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4018         allocate interface ID to save memory and allow better ID reuse on
4019         appdomain unload. setup_generic_vtable () removal from Martin.
4020
4021 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4022
4023         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4024         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4025         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4026         write barriers for reference stores with managed objects accessed with
4027         C structures in the runtime and in embedding programs.
4028
4029 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4030
4031         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4032         'interface_id' and 'max_interface_id' fields of MonoClasses
4033         representing open generic types.
4034
4035 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4036
4037         * object.h, object.c, icall.c: added functions to deal with
4038         storing valuetypes that contain references in managed objects.
4039         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4040         fixes and comments around uses of mono_array_addr ().
4041
4042 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4043
4044         * object.h, icall.c, monitor.c: object.GetHashCode ()
4045         implementation that supports the moving garbage collector.
4046
4047 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4048
4049         * icall.c, threads-types.h, threads.c: implemented finalizer for
4050         LocalDataStoreSlot.
4051
4052 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4053
4054         * metadata.c (mono_type_size): Add a fixme.
4055         (mono_type_stack_size): Ditto.
4056
4057         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4058         'type_forwarders' field.
4059
4060         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4061         attribute from net 2.0.
4062
4063         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4064         from class.c.
4065
4066         * class.c (mono_class_setup_fields): Fix a warning.
4067         
4068         * class.c (mono_class_from_name): Add support for assemblyref entries
4069         in the EXPORTEDTYPE table.
4070
4071         * reflection.c: Add support for handling type forwarders under net 2.0.
4072
4073         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4074         
4075 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4076
4077         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4078         overwriting entries in ModuleBuild->types, also clean up the code
4079         a little. Fixes #77774.
4080
4081 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4082
4083         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4084         load friend assembly info when present.
4085
4086 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4087
4088         Fix crasher on gtest-158.cs.
4089         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4090         the return value if the MonoClass we want is yet in an
4091         inconsistent state.
4092         * class.c (mono_class_create_from_typedef): Add an comment
4093         explaining an order dependency between mono_class_setup_parent and
4094         mono_class_setup_mono_type.
4095
4096 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4097
4098         * class.c: documentation updates and events bug fix.
4099
4100 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4101
4102         * class.c: some cleanup, locking fixes.
4103
4104 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4105
4106         * class.c: fix the generics code to setup nested
4107         type info to the instantiated type (bug #77770).
4108
4109 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4110
4111         * marshal.c: fixed a few type correctness issues.
4112
4113 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4114
4115         * loader.c: the Set/Get/Addrtess array methods should be public.
4116
4117 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4118
4119         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4120         
4121         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4122         info->wrapper.
4123
4124 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4125
4126         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4127
4128         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4129
4130         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4131         (mono_mempool_alloc0): Ditto.
4132
4133 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4134
4135         * socket-io.c:
4136         (create_object_from_sockaddr): it was allocating 4 extra bytes
4137         for the AF_UNIX data. Fixes bug #77747.
4138
4139 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4140
4141         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4142
4143 2006-03-09  Dick Porter  <dick@ximian.com>
4144
4145         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4146         Fixes bug 76966 again.
4147
4148 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4149
4150         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4151         names from r57532
4152         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4153
4154 2006-03-07  Martin Baulig  <martin@ximian.com>
4155
4156         * object.c
4157         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4158
4159 2006-03-07  Martin Baulig  <martin@ximian.com>
4160
4161         * class.c
4162         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4163         regression introduced in r56970; see gtest-252.cs.
4164
4165         * loader.c (mono_get_method_constrained): Correctly handle generic
4166         methods; see gtest-253.cs.
4167
4168 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4169
4170         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4171
4172 2006-03-04  Martin Baulig  <martin@ximian.com>
4173
4174         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4175         compute the parent type at runtime, just like we're already doing
4176         it for interfaces.
4177
4178         * reflection.c
4179         (mono_reflection_bind_generic_parameters): Don't compute the
4180         parent type anymore.
4181
4182         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4183
4184 2006-03-04  Martin Baulig  <martin@ximian.com>
4185
4186         * mono-debug-debugger.h
4187         (mono_debugger_create_notification_function): Allocate memory at
4188         runtime and return a pointer to it.
4189
4190 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4191
4192         * assembly.c: Fix windows build.
4193         
4194         * assembly.c: Fix build.
4195
4196         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4197
4198         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4199         
4200 2006-03-03  Dick Porter  <dick@ximian.com>
4201
4202         * process.c
4203         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4204         Check parameters before dereferencing them.  Fixes Aaron's part of
4205         bug 77393.
4206
4207 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4208
4209         Fix performance regression.
4210         * loader.c (find_method_in_class): Add 'from_class' argument.
4211         Rename 'klass' argument to 'in_class'.  The signature is compared
4212         against the method in 'in_class', and the corresponding method is
4213         returned from 'from_class'.
4214         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4215         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4216         type definition and generic instantiation in parallel.
4217         (mono_get_method_constrained): Update to changes.
4218
4219 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4220
4221         * threads.c: make sure the domain is correct, too when doing
4222         mono_thread_attach ().
4223
4224 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4225
4226         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4227         windows. Fixes #77683.
4228
4229 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4230
4231         * object.h, *: introduced specific way to set elements of an array
4232         of references to be used as write barrier. Still need to audit the
4233         uses of mono_array_addr.
4234
4235 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4236
4237         * object-internals.h: New field to cache the assmebly name, patch
4238         from Tambet Ingo (tambet@ximian.com)
4239
4240 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4241
4242         * decimal.h, class-internals.h, metadata-internals.h,
4243         file-io.h: mark a few function declarations as internal, to
4244         reduce the number of PLT entries.
4245
4246 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4247
4248         * file-io.c: fix typo in warning message.
4249
4250 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4251
4252         * loader.c: on unix, lookup the "*A" version of a function
4253         if charset is auto as a second option before failing.
4254
4255 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4256
4257         * class.h (mono_class_inflate_generic_method): Revert to two
4258         argument version.
4259         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4260         (mono_class_inflate_generic_method_full): Add.
4261         * class.c (mono_class_inflate_generic_method_full): Rename from
4262         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4263         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4264         * loader.c, reflection.c: Update to changes.
4265
4266 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4267
4268         * icall.c: const fixes and small improvements.
4269
4270 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4271
4272         * threadpool.c: for asynchronous connect(), enable the same workaround
4273         for BSD 6 as for the Mac. Fixes bug #77637.
4274
4275 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4276
4277         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4278         formatted classes. Fixes #77524.
4279
4280 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4281
4282         * class.c (inflate_generic_type): Add a couple more
4283         micro-optimizations.
4284         (inflate_generic_context): Don't use the 'gmethod' from
4285         'inflate_with'.
4286         (mono_class_inflate_generic_method): If the method has generic
4287         parameters, but the passed-in context doesn't have a 'gmethod',
4288         create one.  Use the possibly simplified generic instantiation
4289         from the declaring class instead of the one passed in.
4290
4291 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4292
4293         Make generic method signature and method header handling lazy.
4294         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4295         (inflate_generic_header): Likewise.
4296         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4297         parameter to avoid inflating types.
4298         (mono_get_inflated_method): Empty out.
4299         * class.h (mono_class_inflate_generic_method): Update to changes.
4300         * loader.c (mono_get_method_from_token): Don't parse signature for
4301         generic methods, nor methods of generic classes.
4302         (mono_method_signature): Rename from 'mono_method_signature'.
4303         Inflate signature on demand.
4304         (mono_method_get_header): Inflate method header on demand.
4305         * reflection.c: Update to changes.
4306
4307 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4308
4309         * metadata.c (mono_metadata_inflate_generic_inst): If the
4310         instantiation is closed, don't bother expanding it in the new
4311         context.
4312         * class.c (inflate_generic_class): If the generic instantiation
4313         doesn't change after inflation, return the argument itself.
4314         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4315         Add bounds checks.
4316         (inflate_generic_context): If neither the generic class nor the
4317         generic method instantiations change, return the original context.
4318         * reflection.c (mono_method_get_object): Do
4319         'mono_get_inflated_method' before accessing the ->klass field.
4320         (inflate_mono_method): Don't create a MonoGenericMethod unless
4321         necessary.
4322         (inflate_method): Don't pass a constructed type as the declaring
4323         type of a methodbuilder.
4324
4325 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4326
4327         * object.c: fix memory overwrite.
4328
4329 2006-02-22  Dick Porter  <dick@ximian.com>
4330
4331         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4332         it doesn't work any more.
4333         (mono_threads_request_thread_dump): Fix unused variable warnings.
4334
4335 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4336
4337         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4338         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4339         the public header file.
4340
4341 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4342
4343         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4344
4345 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4346
4347         * class-internals.h, object.c: reduce the size of MonoVTable
4348         and store the interface_offsets array at negative offsets.
4349
4350 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4351
4352         * metadata.c: tweak table descriptors data structures to reduce
4353         size and runtime relocations.
4354
4355 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4356
4357         * marshal.c: fix some types and opcodes to be type-safe
4358         in marshaling wrappers.
4359
4360 2006-02-21  Ankit Jain  <jankit@novell.com>
4361
4362         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4363
4364 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4365
4366         * metadata.c (get_constraints): Relax debugging checks for monodis.
4367
4368 2006-02-21  Ankit Jain  <jankit@novell.com>
4369
4370         * metadata.c (mono_metadata_load_generic_params): Move the code
4371         checking for ambiguous generic params from here to mono/dis/get.c
4372         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4373
4374 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4375
4376         Fix assertion triggered when compiling nemerle.
4377         * class.c (mono_get_shared_generic_inst): Rename from
4378         get_shared_inst and make non-static.
4379         * loader.c (mono_get_shared_generic_method): New.  Used to create
4380         the MonoGenericContext-equivalent of a MonoGenericContainer.
4381         (mono_get_method_from_token): Initialize the 'context' field of
4382         the created MonoGenericContainer.
4383         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4384         * metadata.c (get_constraints): Add sanity check.
4385         * class-internals.h: Add new internal methods.
4386
4387         * reflection.c (verify_safe_for_managed_space): New sanity check.
4388         Currently checks that owner-less generic parameters aren't allowed
4389         in managed space.
4390         (mono_type_get_object): Use it.
4391         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4392         that are now in mono_type_get_object.
4393         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4394
4395 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4396
4397         * metadata.c (mono_type_create_from_typespec): Rename from
4398         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4399         argument and caching of types in the generic container.
4400         (unwrap_arrays, find_generic_param): Remove.
4401         * metadata-internals.h: Update.
4402         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4403
4404 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4405
4406         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4407
4408         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4409         return values. Fixes #77581.
4410
4411         * class.c (mono_fnptr_class_get): Switch name and name_space.
4412
4413         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4414         classes and add support for [In, Out] attributes.
4415         (mono_marshal_free_asany): Ditto. Fixes #77524.
4416
4417 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4418
4419         * class.c (mono_class_from_generic_parameter): Make more robust to
4420         incomplete MonoGenericContainers from monodis.
4421
4422 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4423
4424         * class-internals.h: added some more exception types.
4425         * class.c, metadata.c: added a few checks to handle missing
4426         types.
4427
4428 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4429
4430         Use owner-less generic-params some more.
4431         * class.c (my_mono_class_from_generic_parameter): Remove.
4432         (mono_class_from_generic_parameter): Handle null image,
4433         param->name and param->owner.
4434         (mono_class_from_mono_type): Update.
4435         (mono_class_create_from_typespec): Remove 'container' parameter.
4436         If that parameter is non-null, the result is always inflated by
4437         'mono_class_get_full' anyway.
4438         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4439         parameter.
4440         (mono_class_get_full): Update.
4441
4442         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4443         instance is not open, don't bother inflating.
4444         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4445         parse metadata for inflated classes.
4446         (_mono_class_get): Change GenericContext* parameter to
4447         GenericContainer*.
4448         (mono_class_create_from_typespec): Likewise.  Simplify, and
4449         implement trivially.  All the cases are handled in
4450         mono_class_from_mono_type.  Don't inflate returned class.
4451         (mono_class_get_full): Delegate GENERICINST optimization to
4452         inflate_generic_type.
4453         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4454
4455 2006-02-16  Dick Porter  <dick@ximian.com>
4456
4457         * socket-io.c (create_object_from_sockaddr): Fix typo.
4458         (create_sockaddr_from_object): Check array lengths before
4459         potentially accessing items off the end.
4460         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4461         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4462         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4463         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4464         length checks to avoid wraparound overflows.
4465         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4466         contents of the array of sockets
4467         (hostent_to_IPHostEntry2)
4468         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4469         Check return value of inet_ntop ().
4470         (addrinfo_to_IPHostEntry): Fix typo
4471
4472 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4473
4474         Type metadata parsing doesn't use generic-instantiation information.
4475         * metadata.c (mono_metadata_parse_array_full): Change
4476         MonoGenericContext* parameter to MonoGenericContainer*.
4477         (mono_metadata_parse_type_full): Likewise.
4478         (mono_type_create_from_typespec_full): Likewise.
4479         (mono_metadata_parse_mh_full): Likewise.
4480         (mono_metadata_parse_generic_inst): Likewise.
4481         (do_mono_metadata_parse_generic_class): Likewise.
4482         (do_mono_metadata_parse_type): Likewise.
4483         * metadata-internals.h: Update to changes.
4484         * class.c (mono_class_find_enum_basetype): Likewise.
4485         (mono_class_setup_fields): Likewise.
4486         (mono_class_create_from_typespec): Likewise.
4487         * loader.c (method_from_methodspec): Likewise.
4488         (mono_get_method_from_token): Likewise.
4489         (mono_method_get_header): Likewise.
4490
4491 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4492
4493         * marshal.c: handle additional GENERICINST case (patch from
4494         Thong Nguyen <tum@veridicus.com>).
4495         Fix a few cases where LDIND_I/STIND_I was used for references.
4496
4497 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4498
4499         * reflection.c (mono_reflection_get_token): Remove unused variable.
4500
4501 2006-02-16  Martin Baulig  <martin@ximian.com>
4502
4503         * reflection.c (mono_reflection_get_token): Add support for fields
4504         in instantiated generic types.
4505
4506         * icall.c
4507         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
4508
4509 2006-02-15  Martin Baulig  <martin@ximian.com>
4510
4511         * icall.c
4512         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
4513         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
4514         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
4515         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
4516
4517 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4518
4519         * class.c, metadata.c, metadata.h, object.c, icall.c,
4520         marshal.c: changed mono_type_get_underlying_type () to do
4521         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
4522         Fixed handling of instantiated generic valuetypes (bug #75479).
4523
4524 2006-02-15  Raja R Harinath  <rharinath@novell.com>
4525
4526         * metadata.c (mono_metadata_decode_signed_value): Simplify.
4527         Delegate to mono_metadata_decode_value, and work on the returned value.
4528
4529         * icall.c (ves_icall_MonoType_GetGenericArguments):
4530         Add consistency check here too.
4531         
4532 2006-02-15  Ankit Jain  <jankit@novell.com>
4533
4534         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
4535         char/short etc.
4536
4537 2006-02-15  Ankit Jain  <jankit@novell.com>
4538
4539         * metadata.c (mono_metadata_decode_signed_value): New function to decode
4540         signed values, used only for representing lower bounds of arrays.
4541         (mono_metadata_parse_array_full): Use new
4542         mono_metadata_decode_signed_value to decode lower bounds.
4543
4544 2006-02-14  Martin Baulig  <martin@ximian.com>
4545
4546         * reflection.c
4547         (mono_reflection_get_token): Support "MonoGenericMethod" and
4548         "MonoGenericCMethod" and allow generic instances / methods.
4549
4550 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
4551
4552         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
4553         to obtain the terminal size using an ioctl.
4554
4555         * object.c (mono_nullable_init): Revert this as nullable reference
4556         types are not valid.
4557         (mono_nullable_box): Ditto.
4558
4559 2006-02-09  Dick Porter  <dick@ximian.com>
4560
4561         * threads.c (mono_thread_detach): Drop a reference to the thread
4562         we're detaching.
4563
4564 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
4565
4566         * object.c (mono_nullable_init): Handle nullable reference types.
4567         (mono_nullable_box): Ditto. Fixes #77446.
4568
4569 2006-02-07  Martin Baulig  <martin@ximian.com>
4570
4571         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
4572
4573 2006-02-07  Ankit Jain  <jankit@novell.com>
4574
4575         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
4576         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
4577         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
4578         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
4579         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
4580         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
4581
4582 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
4583
4584         * class.c (mono_class_create_generic): Set type_token as well.
4585
4586         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
4587         compatible with MS.
4588
4589 2006-02-02  Martin Baulig  <martin@ximian.com>
4590
4591         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
4592         has never been used so far.
4593
4594 2006-02-02  Martin Baulig  <martin@ximian.com>
4595
4596         * mono-debug-debugger.h: Changed comment at the top of this file;
4597         the header is not installed, but it's safe to #include it from
4598         within the JIT.
4599
4600         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
4601         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
4602
4603 2006-02-02  Martin Baulig  <martin@ximian.com>
4604
4605         * mono-debug.h
4606         (MonoSymbolTable): Removed the `metadata_info' field.
4607
4608         * mono-debug.c
4609         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
4610
4611         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4612         (mono_debugger_add_builtin_types): Removed.
4613         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
4614         (mono_debugger_create_notification_function): We now operate on a
4615         pre-allocated area; take a `gpointer' and return `void'.
4616
4617         * mono-debug-debugger.c
4618         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
4619         (mono_debugger_add_builtin_types): Removed.
4620
4621 2006-02-02  Martin Baulig  <martin@ximian.com>
4622
4623         * threads.c (mono_debugger_create_all_threads): New public method.
4624
4625 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4626
4627         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
4628         breaks on several platforms.
4629
4630 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
4631
4632         * assembly.c: the VS.NET build doesn't supply default values for
4633         MONO_ASSEMBLIES and MONO_CFG_DIR.
4634
4635 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
4636
4637         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
4638         helper function.
4639
4640         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
4641
4642         * loader.c (method_from_memberref): Fix a warning.
4643
4644         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
4645
4646         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
4647         with explicit layout. Fixes #77433.
4648
4649 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
4650
4651         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
4652         max_interface_id is initialized before using it. Fixes #77398.
4653         (ves_icall_Type_GetInterfaces): Ditto.
4654
4655 2006-01-30  Raja R Harinath  <rharinath@novell.com>
4656
4657         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4658         allocate memory for parameter attributes when parsing memberref
4659         signatures.
4660         * loader.c (mono_loader_set_error_method_load): Don't warn.
4661         (method_from_memberref): Ensure MissingMethodException gets thrown
4662         if method is not found.  Make warning more informative.
4663
4664 2006-01-29  Raja R Harinath  <harinath@gmail.com>
4665
4666         Fix #77397
4667         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
4668         return true if is byref.
4669         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4670         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
4671         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
4672
4673 2006-01-27  Raja R Harinath  <rharinath@novell.com>
4674
4675         Fix tests/find-method.2.il
4676         * loader.c (find_method, find_method_in_class): Remove is_inflated
4677         argument.  Revert 2006-01-18 change.
4678         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
4679         is generic, search for method in its generic definition.
4680         * class.c (mono_class_setup_vtable_general): Print generic
4681         arguments of generic types in debugging printf.
4682
4683 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
4684
4685         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
4686
4687         * threads.c (mono_threads_request_thread_dump): New helper function.
4688
4689 2006-01-25  Raja R Harinath  <rharinath@novell.com>
4690
4691         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
4692
4693 2006-01-25  Ankit Jain  <jankit@novell.com>
4694
4695         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
4696         move definition to ..
4697         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
4698         
4699 2006-01-25  Ankit Jain  <jankit@novell.com>
4700             Raja R Harinath  <rharinath@novell.com>
4701
4702         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
4703         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
4704         as necessary.
4705
4706 2006-01-25  Martin Baulig  <martin@ximian.com>
4707
4708         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
4709         `MonoDebuggerThread' into debug-debugger.c.
4710
4711 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
4712
4713         * profiler.c: fix printing of data.
4714
4715 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
4716
4717         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
4718           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
4719
4720 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4721
4722         * object.c: fix deadlock related to string interning.
4723
4724 2006-01-23  Martin Baulig  <martin@ximian.com>
4725
4726         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4727
4728         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
4729
4730 2006-01-23  Martin Baulig  <martin@ximian.com>
4731
4732         * mono-debug.h: Moved the prototypes of some functions which are
4733         used by the JIT here from mono-debug-debugger.h.
4734
4735 2006-01-21  Martin Baulig  <martin@ximian.com>
4736
4737         * Makefile.am: Don't install mono-debug-debugger.h.
4738
4739 2006-01-21  Martin Baulig  <martin@ximian.com>
4740
4741         * mono-debug-debugger.h: Enforce the private status of this header
4742         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
4743         Moved some stuff from mono-debugger-jit-wrapper.h here.
4744
4745 2006-01-20  Raja R Harinath  <rharinath@novell.com>
4746
4747         * class.c (mono_class_from_typeref): Add a sanity test to help
4748         catch lack of assembly load/search hooks.
4749
4750 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
4751
4752         * marshal.c (emit_struct_conv): Relax the fields with same offset
4753         check even more. Fixes #77230.
4754
4755 2006-01-18  Martin Baulig  <martin@ximian.com>
4756
4757         * loader.c (find_method_in_class): Added `gboolean is_inflated'
4758         argument; if false, we compare the uninstantiated signatures.
4759         (method_from_memberref): Compare the uninstantiated signatures;
4760         fixes #76417.
4761
4762 2006-01-18  Robert Jordan  <robertj@gmx.net>
4763
4764         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
4765         Clear the weak link. Fixes bug #77170.
4766
4767         * gc.c (mono_gchandle_free):
4768         Reflect *-gc.c changes (tiny optimization).
4769
4770 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
4771
4772         * metadata.c (mono_metadata_signature_dup): Applied patch from
4773         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
4774         Fixes #77288.
4775
4776 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
4777
4778         * marshal.c (emit_struct_conv): Allow fields with the same offset when
4779         marshalling from native to managed code. Fixes #77230.
4780
4781 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4782
4783         * threadpool.c: fix problem (Mac only) when more than one asynchronous
4784         connect. Fixes bug #77020.
4785
4786 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4787
4788         * class.c: fixed id assignement for nested interfaces (bug #77275).
4789         Added also better info for --print-vtable debugging.
4790
4791 2006-01-12  Martin Baulig  <martin@ximian.com>
4792
4793         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
4794         interfaces on-the-fly; fixes #76625.
4795
4796         * class-internals.h
4797         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
4798         don't need that anymore.
4799
4800 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4801
4802         * socket-io.c
4803         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4804         To avoid initing the nested_classes when not needed I turned the
4805         PeerCredData as a toplevel internal class, as it has to be shared
4806         anyways. 
4807
4808         Fixes the CASA issue.
4809
4810 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
4811
4812         * domain.c: Accessors for MonoJitInfo
4813
4814         * profiler-private.h: Add jitinfo to the end jit hook
4815
4816         * profiler.[ch]: Define new hooks, called after jitting which give
4817         the MonoJitInfo that was compiled
4818
4819 2006-01-10  Martin Baulig  <martin@ximian.com>
4820
4821         * class.c (mono_class_setup_events): Add support for generic
4822         classes; fixes #76440.
4823
4824 2006-01-06  Raja R Harinath  <rharinath@novell.com>
4825
4826         Fix #77160.
4827         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
4828         on passed-in method.
4829
4830 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4831
4832         * object.c (mono_runtime_invoke_array): Add Nullable support.
4833
4834         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
4835
4836 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
4837
4838         * file-io.c: Don't consider sockets as directory and avoid an endless
4839         loop. Fix bug #76966.
4840
4841 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4842
4843         * object.c (mono_nullable_init): New helper function.
4844         (mono_nullable_box): Ditto.
4845
4846         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
4847
4848         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
4849
4850         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
4851         
4852 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
4853
4854         * class.c (mono_class_is_assignable_from): Make T assignable to 
4855         Nullable<T>.
4856
4857 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
4858
4859         * appdomain.c: Bump corlib version to 46.
4860         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
4861         serialization purpose) and changed ves_icall_System_Reflection_
4862         Assembly_get_code_base signature to accept a boolean (to escape, or 
4863         not, the assembly code base).
4864
4865 2005-12-23  Dick Porter  <dick@ximian.com>
4866
4867         * icall.c: 
4868         * threads-types.h: 
4869         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
4870         CreateEvent icall now returns "created" boolean parameter.
4871
4872 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
4873
4874         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
4875         #76967.
4876
4877         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
4878         when attr_klass is an interface. Fixes #77045.
4879
4880 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
4881
4882         * marshal.c (emit_struct_conv): Fix previous patch.
4883         
4884         * marshal.c (emit_struct_conv): Add a check for fields with the same
4885         offset.
4886
4887 2005-12-20  Raja R Harinath  <rharinath@novell.com>
4888
4889         Fix regression in Mono.C5.
4890         * class.c (mono_class_create_generic): If 'klass' is an interface
4891         set up the interface offsets.
4892         (mono_class_is_assignable_from): Don't throw away generic arguments.
4893
4894 2005-12-19  Raja R Harinath  <rharinath@novell.com>
4895
4896         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
4897         type parameters.
4898
4899 2005-12-15  Raja R Harinath  <rharinath@novell.com>
4900
4901         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
4902         dead store.
4903         (do_mono_metadata_parse_generic_class): Don't pass the current
4904         generic context when parsing the type being instantiated: it
4905         cannot use it, anyway.
4906
4907         * loader.c (method_from_memberref): Don't inflate a signature if
4908         it doesn't contain any type parameters.
4909
4910 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
4911
4912         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
4913
4914 2005-12-14  Martin Baulig  <martin@ximian.com>
4915
4916         * class.c
4917         (mono_type_get_name_recurse): Don't return null for type
4918         parameters and open generic classes.
4919         (mono_class_setup_methods): Don't exclude generic instances.
4920         (mono_get_unique_iid): Use different IDs for different
4921         instantiations of the same generic type.
4922         (mono_class_setup_vtable): Only use setup_generic_vtable() for
4923         open generic instances; create a normal vtable for closed generic
4924         instances.
4925         (mono_class_setup_vtable_general): We're now also called for
4926         closed generic instances.
4927
4928         * reflection.c
4929         (mono_reflection_bind_generic_parameters): Correctly use
4930         mono_metadata_lookup_generic_inst() everywhere.
4931
4932 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
4933
4934         * object.c (mono_class_create_runtime_vtable): Call 
4935         mono_class_setup_vtable ().
4936
4937         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
4938         function.
4939         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
4940         #76959.
4941
4942         * loader.c (mono_loader_set_error_type_load): Print the type load
4943         warnings to the console so they are more visible to the user.
4944         (mono_loader_set_error_method_load): Ditto.
4945
4946         * reflection.c (ensure_runtime_vtable): Revert the last change as it
4947         is still broken.
4948         
4949         * reflection.c (ensure_runtime_vtable): Fix build.
4950
4951         * reflection.c (ensure_runtime_vtable): Disable an optimization which
4952         doesn't work in all cases.
4953
4954 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
4955
4956         * object.c (mono_array_new_full): Treat a single dimensional array
4957         with 0 lower bounds as an szarray. Fixes #76973.
4958
4959         * reflection.c (custom_attr_visible): Really fix this.
4960
4961 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
4962
4963         * reflection.c (custom_attr_visible): Allow nested public attributes
4964         as well.
4965
4966         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
4967         interface check.
4968
4969 2005-12-12  Raja R Harinath  <harinath@gmail.com>
4970
4971         * class.c (set_generic_param_owner): Delete.
4972         (mono_class_create_from_typedef): Don't set ->owner field of
4973         generic parameters to "param containers" of enclosing classes.
4974         * reflection.c (mono_reflection_initialize_generic_parameter):
4975         Likewise.
4976
4977 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
4978
4979         * reflection.c (custom_attr_visible): Fix build.
4980
4981 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
4982
4983         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
4984         private attributes.
4985         
4986         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
4987         handling of null parameter defaults.
4988
4989 2005-12-09  Raja R Harinath  <rharinath@novell.com>
4990
4991         * class.c (mono_class_from_generic_parameter): Don't set
4992         klass->generic_container.
4993         (my_mono_class_from_generic_parameter): Likewise.
4994
4995 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
4996
4997         * reflection.c (load_public_key): Fix a warning.
4998         (method_encode_code): Fix unaligned accesses.
4999
5000 2005-12-07  Martin Baulig  <martin@ximian.com>
5001
5002         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
5003
5004         * reflection.c
5005         (write_generic_param_entry): Encode our custom attrs.
5006
5007         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5008
5009 2005-12-07  Martin Baulig  <martin@ximian.com>
5010
5011         * reflection.c (encode_new_constraint): Removed; we don't use the
5012         `NewConstraintAttribute' anymore.
5013
5014 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5015
5016         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5017         not fire a TypeResolve event when Assembly.GetType () is called.
5018
5019 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5020
5021         Beginning of support for nullable types in the runtime. Parts of
5022         this patch are from Martin.
5023
5024         * appdomain.c (MONO_CORLIB_VERSION): Bump
5025
5026         * domain.c (mono_init_internal): get the nullable type
5027
5028         * class.c (mono_class_is_nullable): New method
5029         (mono_class_get_nullable_param): New mehod
5030         (mono_class_create_generic): In types T? set cast_class to T
5031
5032         * class-internals.h (MonoDefaults): new nullable default class
5033         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5034         new methods.
5035
5036 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5037
5038         * metadata.c (select_container): New.  Refactor code to select the
5039         appropriate GenericContainer given the type of generic parameter
5040         we are looking for.
5041         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5042         not a MonoGenericContext.  Use select_container.  Update parameters.
5043         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5044         and MONO_TYPE_MVAR.
5045         (unwrap_arrays): Remove duplicate tests.
5046         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5047         generic instantiated class to find any arguments that are generic
5048         parameters.
5049         (mono_type_create_from_typespec_full): Use find_generic_param to
5050         avoid evicting some generic instantiations from the typespec
5051         cache.
5052
5053 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5054
5055         * reflection.c: fixed writing of doubles on ARM FPA.
5056
5057 2005-12-02  Robert Jordan  <robertj@gmx.net>
5058
5059         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5060
5061 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5062
5063         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5064         least on SUSE 10 they are not the same (on debian, they are just the
5065         same thing).
5066
5067 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5068
5069         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5070         DeclaringType for VARs and MVARs.
5071         * class.c (set_generic_param_owner): Fix initialization of owner
5072         fields.
5073
5074 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5075
5076         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5077
5078 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5079
5080         * threadpool.c: workaround for a bug that shows up on the Mac:
5081         select()+connect() on a blocking socket is not like it should
5082         be, so we proceed to connect() in that case, wasting the I/O
5083         threadpool thread until connect succeedes. Fixes bug #75436.
5084
5085 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5086
5087         * threadpool.c: fix typo when setting file descriptor states.
5088
5089 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5090
5091         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5092         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5093         create a temporary signature container.
5094         (mono_metadata_parse_generic_param): Update to changes.
5095         (mono_type_create_from_typespec_full): Update to changes.
5096         * loader.c (method_from_memberref): Don't use a
5097         MonoGenericContainer while parsing a memberref signature.
5098         (method_from_methodspec): Remove dead-store of the 'container'
5099         variable.  It's overwritten before use.
5100
5101         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5102         checks tighter.
5103         (mono_metadata_parse_generic_param): Likewise.
5104         * loader.c (find_method_in_class): Does not need a
5105         MonoGenericContainer.  Use 'mono_method_signature' rather than
5106         'mono_method_signature_full'.
5107         (find_method, mono_get_method_constrained, method_from_memberref):
5108         Update to changes.
5109
5110         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5111         owner-less generic-parameters are never evicted from the typespec
5112         cache.
5113
5114         * loader.c (method_from_memberref): Don't use the current context
5115         when parsing signatures.
5116         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5117
5118         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5119         side-effects in g_assert.
5120         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5121         that we don't potentially lose information.
5122
5123 2005-11-26  Dick Porter  <dick@ximian.com>
5124
5125         * icall.c:
5126         * threads.c: icalls to implement basic (ie, not named)
5127         System.Threading.Semaphore.
5128
5129 2005-11-24  Dick Porter  <dick@ximian.com>
5130
5131         * process.c
5132         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5133         Use GetProcessId() if it's available.
5134
5135 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5136
5137         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5138
5139 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5140             Ankit Jain  <jankit@novell.com>
5141
5142         * loader.c (mono_get_method_from_token): Initialize 'method' field
5143         of all generic parameters before parsing the signature.  Remove
5144         code that "fixed"-up MVAR references.
5145
5146 2005-11-23  Ankit Jain  <jankit@novell.com>
5147
5148         * metadata.c (mono_metadata_has_generic_params):
5149         (mono_metadata_load_generic_param_constraints):
5150         (mono_metadata_load_generic_params): Move duplicate code ...
5151         (mono_metadata_get_generic_param_row): ... here. Returns the
5152         first row-id in GenericParam table for a given owner (token).
5153         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5154         prototype.
5155
5156 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5157             Ankit Jain  <jankit@novell.com>
5158
5159         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5160         comparing VARs too.
5161         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5162         type->data.generic_param only if the type is an MVAR.
5163         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5164         leak owner-less VARs and MVARs into managed space.
5165
5166 2005-11-21  Martin Baulig  <martin@ximian.com>
5167
5168         * class-internals.h
5169         (MonoMethod): Moved the `generic_container' here from
5170         `MonoMethodNormal' since we now also need it for
5171         `MonoMethodPInvoke';
5172         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5173         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5174         an union containing both `MonoMethodNormal' and
5175         `MonoMethodPInvoke'.
5176
5177         * loader.c
5178         (mono_get_method_from_token): Allow implementing generic methods
5179         as interncalls.
5180
5181         * threads.c
5182         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5183         icall.
5184
5185 2005-11-17  Dick Porter  <dick@ximian.com>
5186
5187         * icall.c: 
5188         * process.h: 
5189         * process.c: Split the Process Start_internal icall into
5190         ShellExecuteEx_internal and CreateProcess_internal, which are
5191         called depending on whether UseShellExecute is true.  Fixes bug
5192         76670.
5193
5194         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5195
5196 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5197
5198         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5199         'msize' parameters, use the information in 'mspec' instead.
5200         (emit_object_to_ptr_conv): Ditto.
5201
5202         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5203         fields out of order. Fixes #76733.
5204
5205 2005-11-17  Ankit Jain  <jankit@novell.com>
5206
5207         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5208
5209 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5210
5211         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5212           bug #76575.
5213
5214 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5215
5216         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5217         for types with non-auto layout. Fixes #76717.
5218
5219 2005-11-16  Ankit Jain  <jankit@novell.com>
5220
5221         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5222         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5223         if generic_context is null.
5224           (mono_metadata_generic_param_equal): param->owner can be null.
5225           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5226         null.
5227
5228 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5229
5230         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5231         the correct value.
5232
5233 2005-11-15  Martin Baulig  <martin@ximian.com>
5234
5235         * object.c (set_value): Use mono_class_from_mono_type() instead of
5236         the hack for generic instances; fixes #76136.
5237
5238 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5239
5240         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5241         fields.
5242
5243         * image.c (load_metadata_ptrs): Initialize the new fields.
5244
5245         * reflection.c (create_dynamic_mono_image): Ditto.
5246
5247         * reflection.c (build_compressed_metadata): Use the new fields.
5248
5249         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5250         icall.
5251
5252         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5253         icall.
5254         
5255 2005-11-15  Ankit Jain  <jankit@novell.com>
5256             Raja R Harinath  <harinath@gmail.com>
5257
5258         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5259         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5260         new per-generic_container cache if the cached MonoType's context matches
5261         the current context.
5262           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5263         to the expected context.
5264           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5265
5266 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5267
5268         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5269         we changed the signature of an icall.
5270         * icall.c: Modify to mono_double_ParseImpl return true/false 
5271         depending on the success, instead of throwing the exception. This will
5272         help us in Double.TryParse methods.
5273         
5274 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5275
5276         * marshal.c (emit_marshal_object): Throw an exception when
5277         marshalling 'object' instead of crashing. Fixes #76696.
5278
5279 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5280
5281         * class-internals.h: Add prototype for mono_type_get_full_name ().
5282
5283 2005-11-11  Dick Porter  <dick@ximian.com>
5284
5285         * threads.c (mono_thread_manage): Make sure the main thread has
5286         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5287
5288 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5289
5290         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5291         console about the missing type.
5292         (mono_loader_set_error_method_load): Ditto.
5293
5294 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5295
5296         * mono-config.c (mono_get_config_dir): Set the system defaults if
5297         none is specified.
5298
5299         * assembly.c (mono_set_dirs): New API entry point to set the
5300         assembly and the config directory in one call
5301
5302 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5303
5304         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5305         the ftnptr was created from a delegate in a domain other than the
5306         current domain. Fixes #75377.
5307
5308         * exception.h exception.c: Add mono_get_exception_not_supported ().
5309
5310 2005-11-08  Martin Baulig  <martin@ximian.com>
5311
5312         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5313
5314 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5315
5316         * security-manager.h: Added definitions to deal with strongname key 
5317         pairs bigger (and smaller) than 1024 bits.
5318         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5319         adjust wrt the public key length being used.
5320
5321 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5322
5323         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5324           Windows build (r51396-51397).
5325
5326 2005-11-03  Martin Baulig  <martin@ximian.com>
5327
5328         * class.c (mono_class_setup_vtable_general): Also add generic
5329         methods to the vtable; fixes #76581.
5330
5331 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5332
5333         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5334         sure that we lookup GetString method from the System.Text.Encoding
5335         class, not the derived class or we get an empty method.
5336
5337         Fixed class #76612.
5338
5339 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5340
5341         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5342         if it has been previously set (embedders). 
5343
5344         Make mono_set_rootdir available also on Unix.
5345
5346 005-10-24  Robert Jordan  <robertj@gmx.net>
5347
5348         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5349
5350 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5351
5352         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5353         only calls which are made to native code use this flag.
5354
5355         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5356
5357 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5358
5359         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5360         Add support for FieldBuilders.
5361
5362 2005-10-29  Martin Baulig  <martin@ximian.com>
5363
5364         * mono-debug.c
5365         (mono_debug_using_mono_debugger): New public method; returns
5366         whether we're running inside the debugger.
5367
5368 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5369
5370         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5371         for Method/Constructor/FieldBuilders.
5372
5373 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5374
5375         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5376         and fields as well.
5377
5378 2005-10-26  Martin Baulig  <martin@ximian.com>
5379
5380         * mono-debug-debugger.c
5381         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5382
5383 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5384
5385         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5386         integer to isspace.
5387
5388 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5389
5390         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5391         when passing valuetypes byref. Fixes #76502.
5392
5393 2005-10-19  Jackson Harper  <jackson@ximian.com>
5394
5395         * profiler.c: Don't put a . in front of types that are not in a
5396         namespace.
5397
5398 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5399
5400         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5401
5402 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5403
5404         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5405         #76436.
5406         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5407
5408 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5409
5410         * assembly.c metadata-internals.h icall.c: Define an additional
5411         parameter for mono_assembly_name_parse_full, so we can avoid creating
5412         S.R.AssemblyName.Version when no version info wasn't passed.
5413         
5414 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5415
5416         * class.c (mono_type_get_full_name): Reimplement method that was
5417         removed. 
5418
5419         * image.c: Some docs
5420
5421 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5422
5423         * profiler.c (output_newobj_profile): Fix printing of Total memory
5424         on x86.
5425
5426 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5427
5428         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5429
5430 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5431
5432         * threads.c: remove debug output.
5433
5434 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5435
5436         * threads.c (mono_thread_manage): Fix crashes if more than 64
5437         threads need to be aborted. Hopefully fixes #75899.
5438
5439         * assembly.c (mono_stringify_assembly_name): New helper function.
5440
5441         * class.c: Use mono_stringify_assembly_name instead of the similar
5442         static function.
5443
5444         * assembly.h assembly.c: Add support for calling a postload search 
5445         hook if an assembly cannot be loaded.
5446
5447         * appdomain.c: Register new search hooks which call the AssemblyResolve
5448         events in AppDomain. Fixes #75231
5449
5450 2005-10-07  Martin Baulig  <martin@ximian.com>
5451
5452         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5453         methods without debug info.
5454
5455 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5456
5457         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5458         wrappers.
5459
5460 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5461
5462         * file-io.c: now that we return symlinks, use lstat and, when the file
5463         is a symbolic link, stat, to get the file attributes. Also avoid the
5464         conversion to/from utf16/external.
5465
5466 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5467
5468         * class.c (mono_class_layout_fields): Compute klass->has_references
5469         correctly if an embedded valuetype is not yet initialized. Fixes
5470         #76331.
5471
5472 2005-10-04  Martin Baulig  <martin@ximian.com>
5473
5474         * metadata.c
5475         (mono_metadata_load_generic_param_constraints): New public
5476         function; splitted the constraints loading out from
5477         mono_metadata_load_generic_params().
5478
5479         * class.c (mono_class_create_from_typedef): Call
5480         mono_metadata_load_generic_param_constraints() after setting up
5481         the type and creating our parent; fixes #75329.
5482
5483 2005-10-04  Martin Baulig  <martin@ximian.com>
5484
5485         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5486         non-dynamic parent classes.
5487
5488 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5489
5490         * file-io.c : win32 build fix (ETXTBSY seems not found).
5491
5492 2005-10-04  Martin Baulig  <martin@ximian.com>
5493
5494         * reflection.c
5495         (mono_image_get_methodspec_token): Make the cache actually work;
5496         fixes #75974.
5497
5498 2005-10-04  Martin Baulig  <martin@ximian.com>
5499
5500         * class.c (mono_class_name_from_token): Removed the unneccessary
5501         `MonoGenericContext *' argument.
5502
5503 2005-10-04  Martin Baulig  <martin@ximian.com>
5504
5505         * loader.c
5506         (method_from_methodspec): Make the caching work again; fixes the
5507         performance regression from #76262.
5508
5509 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5510
5511         * file-io.c:
5512         * file-io.h:
5513         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
5514         GetFileSystemEntries that performs the same work but without going
5515         into io-layer, locking, etc.
5516
5517 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
5518
5519         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
5520         ThreadState_Stopped as well. Fixes #76047.
5521
5522 2005-09-29  Martin Baulig  <martin@ximian.com>
5523
5524         * class.c
5525         (inflate_generic_context): If the new context has a `gmethod', set
5526         its `container' that that gmethod's `container'.
5527
5528         * metadata.c
5529         (mono_metadata_parse_generic_param): Simplify things;
5530         `generic_container = generic_context->container;' is just fine.
5531
5532         * loader.c (method_from_methodspec): Code cleanups.
5533
5534 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
5535
5536         * decimal.c: fix warning (and let gcc generate correct
5537         code on ARM with optimizations).
5538
5539 2005-09-28  Martin Baulig  <martin@ximian.com>
5540
5541         * loader.c
5542         (method_from_memberref): Added `MonoGenericContext *class_context'
5543         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
5544         (method_from_methodspec): If we're a memberref, use the enclosing
5545         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
5546
5547 2005-09-28  Martin Baulig  <martin@ximian.com>
5548
5549         * object.c (mono_runtime_invoke_array): Added support for
5550         MONO_TYPE_GENERICINST; fixes #75917.
5551
5552 2005-09-27  Martin Baulig  <martin@ximian.com>
5553
5554         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
5555         `k->byval_arg.type' to determine the actual type.
5556
5557         * loader.c (method_from_methodspec): Removed some hacks.
5558
5559 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
5560
5561         * class-internals.h (mono_field_is_deleted): Do the test for
5562         rtspecialname before we check the actual name of the field. This
5563         prevents us from dereferencing a pointer into the string table,
5564         saving us from accessing a few pages
5565
5566         * *.c: Replace the use of {Enter,Leave}CriticalSection with
5567         macros. This will allow a deadlock debugger to easily be plugged
5568         in.
5569
5570 2005-09-27  Martin Baulig  <martin@ximian.com>
5571
5572         * loader.c (method_from_methodspec): Create a "signature"
5573         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
5574
5575 2005-09-27  Martin Baulig  <martin@ximian.com>
5576
5577         * class.c
5578         (inflate_generic_class): Correctly set the new context's
5579         container.
5580
5581         * loader.c
5582         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
5583         instead of a `MonoGenericContext *'.
5584         (mono_method_signature_full): Take a `MonoGenericContainer *'
5585         instead of a `MonoGenericContext *'.
5586
5587         * metadata.c
5588         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
5589         instead of a `MonoGenericContext *'.
5590         (mono_metadata_parse_method_signature_full): Likewise.
5591
5592 2005-09-26  Martin Baulig  <martin@ximian.com>
5593
5594         * class.c
5595         (mono_class_from_generic_parameter): Set `klass->generic_container'
5596         (mono_class_from_generic_parameter): Likewise.
5597         (mono_bounded_array_class_get): We inherit the generic container
5598         from the element class.
5599
5600         * loader.c
5601         (find_method, find_method_in_class): Take a `MonoGenericContext *'
5602         argument rather than computing it here.
5603         (method_from_memberref): Correctly set the generic context before
5604         parsing the signature.  Fixes #75681.
5605
5606 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
5607
5608         * object.c (mono_class_has_special_static_fields): Fix warnings.
5609
5610 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5611
5612         * assembly.c: Add parse_public_key function, to
5613         par the public keys. Also added mono_assembly_name_parse_full,
5614         to define it the parsed key should be freed or not.
5615         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
5616         to parse a long format assembly name.
5617         * metadata-internals.h: Keep mono_assembly_name_parse_full as
5618         private, since calling it to preserve the key requires
5619         freeing it manually.
5620         
5621 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
5622
5623         * locales.c : removed HAVE_ICU part.
5624
5625 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
5626
5627         * object.c (mono_class_create_runtime_vtable): Avoid calling 
5628         field_is_special_static if the klass has no special static fields.
5629
5630         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
5631         (MonoCachedClassInfo): Likewise.
5632
5633         * object.c (mono_class_has_special_static_fields): New helper function.
5634
5635 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5636
5637         * class.c (mono_class_create_from_typedef): Don't call 
5638         interfaces_from_typedef_full for enums.
5639         (mono_class_create_from_typedef): Compute the base types of enums directly
5640         without calling mono_class_setup_fields ().
5641         (mono_class_find_enum_basetype): New helper function.
5642
5643         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
5644         one place inside the string heap.
5645         
5646 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
5647
5648         * class.c: locking fixes, code cleanups, some docs added.
5649         Allocate some data structures in the image mempool.
5650
5651 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5652
5653         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5654         the example code.
5655         
5656 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
5657
5658         * class-internals.h, class.c, reflection.c: reduce memory taken by
5659         MonoClass.
5660
5661 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
5662
5663         * metadata.c, metadata.h, loader.h: documentation updates, code and
5664         API cleanups.
5665
5666 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5667
5668         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5669         the example code.
5670
5671         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
5672         page faults caused by the runtime while reading metadata.
5673
5674 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5675
5676         * socket-io.c: the field names were changed 3 months ago and no one
5677         realized until bug #76077 got filed!
5678
5679 2005-09-20  Martin Baulig  <martin@ximian.com>
5680
5681         * icall.c (assembly_icalls): Removed some unused debugger icalls.
5682
5683 2005-09-20  Martin Baulig  <martin@ximian.com>
5684
5685         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
5686         write the rank into the class entry.
5687
5688 2005-09-20  Martin Baulig  <martin@ximian.com>
5689
5690         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
5691
5692 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
5693
5694         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5695
5696         * icall.c (custom_attrs_defined_internal): New icall.
5697
5698         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
5699         function.
5700         (mono_custom_attrs_construct_by_type): New helper function.
5701
5702 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
5703
5704         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
5705         terminate the resulting string. Fixes #76123.
5706
5707 2005-09-16  Martin Baulig  <martin@ximian.com>
5708
5709         * mono-debug.c
5710         (mono_debug_add_method): Ignore inflated methods for the moment.
5711
5712 2005-09-14  Martin Baulig  <martin@ximian.com>
5713
5714         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
5715
5716 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
5717
5718         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
5719         return a success/failure indication.
5720         (mono_metadata_interfaces_from_typedef_full): Ditto.
5721         (get_constraints): Ditto.
5722
5723 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
5724
5725         * marshal.c (emit_marshal_array): Fix handling of null arrays.
5726         
5727         * marshal.c (emit_marshal_array): Add support for returning string
5728         arrays from delegates. Fixes #76063.
5729
5730         * marshal.c: Use the emit_ldloc/stloc macros where possible.
5731
5732 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
5733
5734         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
5735         icall.
5736
5737 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
5738
5739         * reflection.c icall.c: Fix after mono_get_exception_type_load
5740         signature change.
5741
5742         * assembly.c (mono_assembly_get_assemblyref): New helper function.
5743         (mono_assembly_load_reference): Use the new helper.
5744
5745         * class-internals.h (MonoLoaderError): New structure containing 
5746         information about type loading errors.
5747
5748         * class-internals.h loader.c: Add APIs to store per-thread loader
5749         error information.
5750
5751         * loader.c class.c: Set the loader error if needed.
5752
5753         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
5754
5755 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
5756
5757         * decimal.c: fixed to handle the broken ARM fp format.
5758
5759 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
5760
5761         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
5762         broken.
5763
5764 2005-09-06  Martin Baulig  <martin@ximian.com>
5765
5766         * domain.c (supported_runtimes): Added v2.0.50727.
5767
5768 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
5769
5770         * culture-info.h: reduce the size of some structures.
5771
5772 2005-09-05  Martin Baulig  <martin@ximian.com>
5773
5774         Reflect latest API changes in the August CTP.
5775
5776         * icall.c
5777         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
5778         ("MonoType.HasGenericArguments"): Removed.
5779         ("MonoMethod.BindGenericParameters"): Renamed to
5780         "MakeGenericMethod".
5781         ("MethodBuilder.BindGenericParameters"): Renamed to
5782         "MakeGenericMethod".    
5783
5784 2005-09-05  Martin Baulig  <martin@ximian.com>
5785
5786         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
5787
5788 2005-09-05  Martin Baulig  <martin@ximian.com>
5789
5790         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5791
5792         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
5793         generic_container is non-NULL.
5794
5795 2005-09-05  Martin Baulig  <martin@ximian.com>
5796
5797         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5798
5799         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
5800
5801 2005-08-29  Michal Moskal  <malekith@nemerle.org>
5802
5803         * reflection.c (encode_locals,
5804         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
5805         for large generic types.
5806
5807 2005-09-05  Martin Baulig  <martin@ximian.com>
5808
5809         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5810
5811         * class.c (mono_dup_array_type): New public method.
5812         (mono_metadata_signature_deep_dup): New public method.
5813         (dup_type): Correctly duplicate array and function types.
5814
5815 2005-09-05  Martin Baulig  <martin@ximian.com>
5816
5817         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5818
5819         * reflection.c (get_default_param_value_blobs): Handle generic types
5820         and generic methods.
5821
5822 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
5823
5824         * class.c: Fixed error reporting (method/class were inversed) for 
5825         inheritance demands.
5826         * security-manager.c|h: Added the AppDomain when calling the managed
5827         System.Security.SecurityManager.InheritanceDemand method.
5828
5829 2005-09-01  Raja R Harinath  <rharinath@novell.com>
5830
5831         * reflection.c (encode_marshal_blob): 'marshaltype' and
5832         'marshaltyperef' are alternate sources for the custom marshaler
5833         name.
5834
5835 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
5836
5837         * class.c: fix creation of array classes with rank == 1
5838         (patch by Ankit Jain <jankit@novell.com>).
5839
5840 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
5841
5842         * object.c: fix check for creating the bound data for arrays vs
5843         szarrays.
5844
5845 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5846
5847         * object.c: configuration file name is now based on the executable name,
5848         not the image name. Fixes bug #75931.
5849
5850 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
5851
5852         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
5853         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
5854
5855 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
5856
5857         * rand.c: Use wincrypt.h instead of WinCrypt.h.
5858
5859 2005-08-24  Ankit Jain  <jankit@novell.com>
5860             Raja R Harinath  <rharinath@novell.com>
5861
5862         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
5863           called by it recursively.
5864           (mono_class_init): Remove special case in pending_init handling, since it's
5865           superseded by the fix to mono_class_from_typeref.
5866
5867 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
5868
5869         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
5870         BROKEN_THREAD_START stuff.
5871
5872 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
5873
5874         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
5875         trampoline.
5876
5877         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
5878         
5879         * object.c (mono_delegate_ctor): Replace the original function address with
5880         a delegate trampoline.
5881
5882 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
5883
5884         * icall.c: add boolean argument to base64_to_byte_array and 
5885         InternalFromBase64String to control whether a whitespace-only string
5886         is allowed (or should casue a FormatException to be thrown). We need
5887         this as the behavior has changed between MS.NET 1.x and 2.0, and we
5888         to match the MS behaviour in both profiles.
5889         * appdomain.c: Bump corlib version.
5890
5891 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5892
5893         This patch implements a big portion of publisher policy
5894         support, used to bind assembly versions and redirect
5895         one assembly from version A to version B.
5896
5897         * assembly.c:
5898         New GSList loaded_assembly_bindings, for storing the cached
5899         assembly bindings.
5900         (assembly_binding_maps_name): New static function for checking if a 
5901         assembly binding information maps an assembly name.
5902         (mono_assembly_binding_info_free): New function for freeing
5903         assembly binding information resources.
5904         (get_publisher_policy_info): New static function for retrieving 
5905         assembly binding information from a MonoImage.
5906         (compare_versions): New static function for comparing an assembly
5907         binding information data and the version of an assembly name.
5908         (check_policy_versions): New static function for checking if an
5909         assembly binding info mapping an assembly name is valid for it.
5910         (mono_assembly_load_publisher_policy): New static function for
5911         loading the 'policy.major.minor.MyAssembly' image for an assembly
5912         with an assembly name 'aname'.
5913         (mono_assembly_bind_version): New static function for updating
5914         assembly redirection.
5915         (mono_assembly_apply_binding): New static function for applying
5916         assembly binding.
5917         (search_binding_loaded): New static function for searching 
5918         loaded assembly binding infos in the cache domain.
5919         (mono_assembly_load_full): Don't apply assembly binding for
5920         reflection only assemblies.
5921
5922         * metadata-internals.h: Add MonoAssemblyBindingInfo,
5923         which contains information about assembly binding. Also
5924         declare signature for mono_config_parse_publisher_policy ()
5925         function, used to retrieve pub policy info.
5926         
5927         * mono-config.c:
5928         (publisher_policy_start): New static function used to parse publisher 
5929         policy config files.
5930         (publisher_policy_parser): New static MonoParseHandler containing 
5931         the functions used when parsing config files.
5932         (mono_config_parse_publisher_policy): New function for parsing
5933         publisher policy files.
5934         
5935 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
5936
5937         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
5938
5939         * marshal.c (mono_delegate_free_ftnptr): Ditto.
5940
5941         * object.c (mono_get_addr_from_ftnptr): New helper function.
5942
5943         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
5944
5945         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5946
5947 2005-08-19  Dick Porter  <dick@ximian.com>
5948
5949         * threads.c, threads.h, appdomain.c, appdomain.h,
5950         profiler-private.h, monitor.c, object.c, object-internals.h,
5951         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
5952         store the thread ID, so it can hold a 64 bit value if needed.
5953
5954 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
5955
5956         * reflection.c (mono_reflection_create_dynamic_method): Store the
5957         handle class into the method references as well so ldtoken works in
5958         dynamic methods.
5959
5960         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
5961         types.
5962
5963 2005-08-19  Ankit Jain <jankit@novell.com>
5964
5965         Fix #75847.
5966         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
5967           here rather than using the method signature of a arbitrary function
5968           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
5969           two arguments.
5970           Hack done with Harinath.
5971
5972 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5973
5974         * threadpool.c: disable printing stack traces when we get a exception
5975         in a threadpool thread. I need to do more testing to figure out which
5976         cases actually print this. Fixes bug #75828.
5977
5978 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5979
5980         * icall.c: there might be ignored whitespace after the last '='. This
5981         fixes length computation and bug #75840.
5982
5983 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
5984
5985         * assembly.c (mono_assembly_load_full): Consider .exe extension as
5986         well. Fixes #75809.
5987
5988         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
5989         #75784.
5990         
5991         * reflection.c (create_custom_attr_data): Ditto.
5992
5993 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
5994
5995         * locales.c, culture-info.h : removed RegionLCIDMap.
5996         * culture-info-tables.h : regenerated.
5997
5998 2005-08-16  Martin Baulig  <martin@ximian.com>
5999
6000         * class.c (mono_type_get_name_recurse): Small fix.
6001
6002 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
6003
6004         * locales.c : indentation fixie.
6005
6006 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6007
6008         * object-internals.h,
6009           locales.h,
6010           locales.c,
6011           culture-info.h,
6012           icall.c : added RegionInfo table support.
6013         * culture-info-table.h : regenerated for region support.
6014
6015 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6016
6017         * reflection.c (resolve_object): handle all kinds of MonoMethod
6018         including generic ones
6019
6020 2005-08-12  Ankit Jain <jankit@novell.com>
6021
6022         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6023           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6024
6025 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6026
6027         * process.c: Don't close a thread handle when it's NULL. This is a
6028         workaround for bug #75733.
6029
6030 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6031
6032         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6033
6034 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6035
6036         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6037
6038 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6039
6040         * threadpool.c: if a work item in the thread pool has a callback that
6041         catches a exception, don't propagate it after invoking the callback.
6042         Fixes bug #75336.
6043
6044 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6045
6046         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6047
6048         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6049
6050         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6051
6052         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6053
6054 2005-08-03  Ankit Jain  <jankit@novell.com>
6055
6056         Fix #75683.
6057         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6058           PInvoke calling convention is 0.
6059
6060 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6061
6062         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6063         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6064
6065 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6066
6067         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6068         to handle threads not started by the GC (patch by Michael Meeks
6069         <michael.meeks@novell.com>).
6070
6071 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6072
6073         * reflection.c: Make buffer used in emitting types larger for some
6074         big generic types (patch by Michal Moskal).
6075
6076 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6077
6078         * mono-debug.c: Fix some (not all) alignment problems.
6079
6080 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6081
6082         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6083         Invoke mono_image_load_from_data_full passing the refonly
6084         parameter.
6085
6086         * assembly.c
6087         (mono_assembly_open_from_bundle): Add the refonly argument, 
6088         in order to pass it to other methods it calls to.
6089         (do_mono_assembly_open): Add the refonly argument, in order 
6090         to pass it to other methods it calls to.
6091         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6092         the refonly parameter to it.
6093
6094         * image.c: Add loaded_images_refonly_hash and
6095         loaded_images_refonly_guid_hash to cache the reflection
6096         only loaded images.
6097         (mono_images_init): Initialize the hash tables used for
6098         caching the reflection only images.
6099         (load_modules): Invoke mono_image_open_full passing the refonly
6100         parameter to load the modules the correct way.
6101         (build_guid_table): Add the refonly argument, to re-build the 
6102         correct hash table.
6103         (do_mono_image_open): Added the refonly argument, in order to
6104         define it for the loaded image.
6105         (mono_image_loaded_full): New function, which receives an
6106         additional parameter to look for the image in the refonly or
6107         non-refonly section.
6108         (mono_image_loaded): Updated, using mono_image_loaded_full.
6109         (mono_image_loaded_by_guid_full): The same case that happens
6110         with mono_image_loaded_full.
6111         (mono_image_loaded_by_guid): Likewise.
6112         (register_image): Use the ref_only variable inside MonoImage
6113         to decide in which hash table store the current image.
6114         (mono_image_open_from_data_full): Rename
6115         mono_image_open_from_data to mono_image_open_from_data_full,
6116         adding the refonly argument, to define the ref_only variable 
6117         inside MonoImage.
6118         (mono_image_open_from_data): Return 
6119         mono_image_open_from_data_full.
6120         (mono_image_open_full): Rename mono_image_open to
6121         mono_image_open_full, receiving the new refonly argument,
6122         to pass it to inner methods.
6123         (mono_pe_file_open): Update this function, to open
6124         a MonoImage as a non-refonly image.
6125         (mono_image_close): Use the refonly variable inside
6126         MonoImage to remove the image from the correct caches.
6127
6128         * image.h: Add the signatures of mono_image_open_full,
6129         mono_image_open_from_data_full, mono_image_loaded_full,
6130         mono_image_loaded_by_guid_full.
6131
6132         * metadata-internals.h: Add the ref_only field to 
6133         MonoImage.
6134         
6135 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6136
6137         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6138         Fix the last behavior, which used to load the assemblies and
6139         extract MonoReflectionAssemblyName information, instead of
6140         extract it from the metadata tables. Needed for Reflection
6141         Only assemblies.
6142         
6143 2005-07-29  Martin Baulig  <martin@ximian.com>
6144
6145         * mono-debug-debugger.c
6146         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6147         not initialized.
6148
6149         * mono-debug.c
6150         (mono_debug_address_from_il_offset): Check whether we have
6151         debugging support before attempting to take the lock.
6152         (mono_debug_source_location_from_address): Likewise.
6153         (mono_debug_source_location_from_il_offset): Likewise.
6154         (mono_debug_il_offset_from_address): Likewise.
6155         (mono_debug_address_from_il_offset): Likewise.
6156
6157 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6158
6159         * class.c (mono_class_from_name_case): Add support for dynamic images.
6160         Fixes #75650.
6161
6162         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6163         for #75479.
6164
6165 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6166         
6167         * reflection.c (mono_method_get_object): Fix warning.
6168
6169 2005-07-28  Martin Baulig  <martin@ximian.com>
6170
6171         * mono-debug.c
6172         (mono_debug_add_wrapper): Also write the wrapper type.
6173
6174 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6175
6176         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6177         
6178         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6179         data indicates the class has none.
6180
6181 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6182
6183         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6184         loader lock with the debugger lock. Prevents deadlocks for beagle.
6185
6186         Beagle can now run on an smp box for a weekend without any
6187         issues. Woohoo!
6188
6189 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6190
6191         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6192         in a module. Fixes #75629.
6193
6194 2005-07-26  Martin Baulig  <martin@ximian.com>
6195
6196         * mono-debug.c (mono_debug_add_wrapper): New static method.
6197         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6198         interncall or a wrapper.
6199
6200         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6201         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6202         (MONO_DEBUGGER_VERSION): Bump to 51.
6203
6204         * mono-debug-debugger.c
6205         (mono_debugger_add_type): Removed this empty function.
6206         (mono_debugger_add_method): Likewise.
6207
6208 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6209
6210         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6211         before accessing method->slot.
6212
6213 2005-07-21  Jb Evain  <jbevain@gmail.com>
6214
6215         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6216         Fixes #75010.
6217
6218 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6219
6220         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6221         #75587.
6222
6223 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6224
6225         * image.h image.c: Add mono_image_get_guid () API function.
6226
6227 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6228
6229         There were issues when multiple threads tried to load
6230         assemblies. A deadlock was created between assemblies_mutex and
6231         mono_domain_assemblies_lock. This fixes the issue by making the
6232         assembly ref counting be lock free. See bug 75586.
6233         
6234         * image.c (mono_image_close): The add ref function here was using
6235         Interlocked operations while the unref was using a mutex and a
6236         --. I don't think this was ever a bug that would be exposed in a
6237         non-pendantic way (ie, by an embedder doing a ref on one thread
6238         and an unref on another), but for the sake of correctness, this is
6239         now Interlocked.
6240
6241         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6242         (mono_assembly_load_reference): Call mono_assembly_addref rather
6243         than touching the refcount ourselves.
6244         (mono_assembly_close): Use InterlockedDecrement to unref the
6245         assembly. Don't acquire the lock unless it is actually needed.
6246
6247 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6248
6249         * class.c (mono_class_layout_fields): Fix calculation of has_references
6250         for generic types.
6251
6252 2005-07-12  Martin Baulig  <martin@ximian.com>
6253
6254         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6255
6256         * metadata.c
6257         (mono_type_hash): Provide better hashing for generic instances.
6258         (mono_generic_inst_hash): Improve hashing.
6259         (mono_generic_class_hash): Likewise.
6260
6261         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6262         generic instances.
6263
6264 2005-07-12  Martin Baulig  <martin@ximian.com>
6265
6266         * reflection.c (mono_reflection_create_runtime_class): Remove the
6267         hack for generic type definitions and non-`Run' assemblies.
6268         (mono_reflection_bind_generic_parameters): Also use
6269         `klass->wastypebuilder' to check for TypeBuilders.
6270
6271 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6272
6273         * class.c (mono_class_layout_fields): Fix calculation of has_references
6274         for generic types.
6275
6276         * class.c (inflate_generic_class): Fix a leak.
6277         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6278         for generic types.
6279
6280 2005-07-11  Martin Baulig  <martin@ximian.com>
6281
6282         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6283         on error.
6284
6285 2005-07-11  Martin Baulig  <martin@ximian.com>
6286
6287         * loader.c (find_method): Also lookup in
6288         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6289
6290 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6291
6292         * appdomain.c (mono_domain_unload): Don't free the error message
6293         before passing it to mono_get_exception_...
6294
6295         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6296         
6297 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6298
6299         * threads.c: try to better guess an available RT signal (bug #75387).
6300
6301 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6302
6303         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6304         and CACHE_OBJECT.
6305
6306 2005-07-07  Martin Baulig  <martin@ximian.com>
6307
6308         * class.c (mono_type_get_name_full): Return NULL for
6309         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6310         fixes #75408.
6311
6312 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6313
6314         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6315         exit the appdomain as well being aborted.
6316
6317         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6318         change back to the root domain after calling managed code. This enables
6319         appdomains using threadpools to be unloaded.
6320
6321 2005-07-07  Martin Baulig  <martin@ximian.com>
6322
6323         * class-internals.h
6324         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6325         into `MonoDynamicGenericClass' since we only need it for dynamic
6326         types.
6327
6328         * reflection.c (mono_class_bind_generic_parameters): We don't need
6329         to compute the `parent' here.
6330
6331 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6332
6333         * culture-info-table.h : regenerated.
6334
6335 2005-07-06  Martin Baulig  <martin@ximian.com>
6336
6337         * icall.c
6338         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6339
6340         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6341
6342 2005-07-06  Martin Baulig  <martin@ximian.com>
6343
6344         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6345         we're doing a signature-only comparision; fixes #74945.
6346
6347 2005-07-06  Martin Baulig  <martin@ximian.com>
6348
6349         * class-internals.h (MonoGenericClass): Moved some things out into
6350         a new `MonoInflatedGenericClass' type.  
6351         (MonoInflatedGenericClass): New type; the `klass' of a
6352         `MonoGenericClass' is now computed lazyly in
6353         mono_get_inflated_generic_class().      
6354
6355         * class.c (mono_get_inflated_generic_class): New public function.
6356         (mono_class_inflate_generic_method): Removed the unused
6357         `MonoClass *' argument.
6358         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6359         all the methods.
6360         (mono_class_create_generic): Make this static and merge it with
6361         mono_class_create_generic_2(); we're now called automatically from
6362         mono_get_inflated_generic_class().
6363
6364         * loader.c (mono_method_signature): Call
6365         mono_get_inflated_method() here.
6366
6367 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6368
6369         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6370         type of fields with RVA.
6371
6372         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6373         for this pseudo class.
6374         (my_mono_class_from_generic_parameter): Likewise.
6375         (mono_class_init): Allow interfaces to have cctors.
6376
6377 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6378
6379         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6380         lazily for AOT methods.
6381
6382 2005-07-05  Martin Baulig  <martin@ximian.com>
6383
6384         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6385         returns FALSE for a successful match, not TRUE.
6386
6387 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6388
6389         * loader.c (mono_method_get_index): Optimize this a bit.
6390
6391 2005-07-04  Martin Baulig  <martin@ximian.com>
6392
6393         * class.c
6394         (class_compute_field_layout): Move the check for generic type
6395         definitions into mono_class_layout_fields().  Fixes #74684.
6396         (mono_class_from_generic_parameter): Correctly compute
6397         `klass->parent'; fixes #75457.
6398
6399         * reflection.c (register_assembly, register_module): Make sure
6400         `domain->rejobject_hash' is already created.
6401
6402 2005-07-02  Martin Baulig  <martin@ximian.com>
6403
6404         * class-internals.h
6405         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6406         `MonoDynamicGenericClass'.      
6407
6408 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6409
6410         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6411         returned by a field getter is null, since null is a valid value.
6412
6413 2005-07-01  Martin Baulig  <martin@ximian.com>
6414
6415         * reflection.c (mono_reflection_generic_class_initialize): Update
6416         the `dgclass->fields [i].parent' to the correct class.
6417         (mono_image_get_fieldref_token): Use the declaring type, not the
6418         reflected type.
6419
6420 2005-07-01  Martin Baulig  <martin@ximian.com>
6421
6422         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6423
6424 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6425
6426         * threads.c (thread_cleanup): assert that thread != NULL
6427         (wait_for_tids_or_state_change): We were using the wrong variable
6428         when accessing wait->threads. `i' was always out of the bounds of
6429         the array.
6430
6431 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6432
6433         * loader.c: map user32 and kernel32 to libMonoSupportW
6434
6435 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6436
6437         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6438
6439 2005-06-28  Martin Baulig  <martin@ximian.com>
6440
6441         * loader.c (method_from_methodspec): Fix #75334.
6442
6443 2005-06-28  Martin Baulig  <martin@ximian.com>
6444
6445         Fix #74953 - Arrays now implement the generic IList<T> interface
6446         on the 2.0 platform.
6447
6448         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6449
6450         * reflection.c (mono_class_bind_generic_parameters): New public
6451         function; similar to mono_reflection_bind_generic_parameters(),
6452         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6453
6454         * domain.c (mono_init_internal): Try to initialize.
6455         `mono_defaults.generic_array_class' here; this'll only succeed if
6456         we're using the 2.0 corlib.
6457
6458         * icall.c
6459         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6460         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6461         (mono_lookup_internal_call): Added support for nested classes.
6462
6463         * loader.c
6464         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6465         we're an interncall and have generic arguments.
6466
6467         * class.c
6468         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6469         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6470         instance of System.Array.InternalArray<T> for arrays, so they
6471         implement the generic IList<T> interface.
6472
6473 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6474
6475         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6476         (chastamar@yahoo.com). Fixes #75374.    
6477
6478 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6479
6480         * culture-info-table.h: regenerated.
6481
6482 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6483
6484         * icall.c: handle spaces correctly for base64 strings.
6485
6486 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6487
6488         * *.c: Kill some warnings.
6489
6490 2005-06-23  Duncan Mak  <duncan@novell.com>
6491
6492         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
6493         that this builds on Solaris 10 (x86).
6494
6495 2005-06-23  Martin Baulig  <martin@ximian.com>
6496
6497         * class.c
6498         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
6499         generic type definitions.
6500
6501 2005-06-23  Martin Baulig  <martin@ximian.com>
6502
6503         Fix #75331.
6504
6505         * metadata.c (mono_class_get_overrides): Renamed to
6506         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
6507         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
6508         pass it to mono_get_method_full().
6509
6510 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
6511
6512         * reflection.c (mono_reflection_create_runtime_class): take the
6513         mono_domain_lock in this method. Prevents deadlocks
6514
6515 2005-06-22  Martin Baulig  <martin@ximian.com>
6516
6517         * loader.c (method_from_methodspec): Fix #75330.
6518
6519 2005-06-22  Martin Baulig  <martin@ximian.com>
6520
6521         * reflection.c (type_get_qualified_name): Use
6522         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
6523         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
6524         argument; use it if we don't have an assembly name.
6525
6526 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
6527
6528         * object.c: In mono_message_init, set "copy out" flag for in
6529         parameters with the [Out] flag.
6530
6531 2005-06-21  Martin Baulig  <martin@ximian.com>
6532
6533         * class.c
6534         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
6535         and MONO_TYPE_PTR.
6536
6537 2005-06-21  Martin Baulig  <martin@ximian.com>
6538
6539         * class.c (mono_class_init): Don't initialize `class->fields' for
6540         generic instances since they're initialized again in
6541         compute_field_layout(). 
6542         (compute_field_layout): Set the field's `generic_info' here; fix
6543         #75320. 
6544
6545 2005-06-21  Martin Baulig  <martin@ximian.com>
6546
6547         * class-internals.h
6548         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
6549
6550         * metadata.c (mono_metadata_generic_method_equal): Also
6551         distinguish the `generic_class'; fixes #75334.
6552
6553 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6554
6555         * domain.c:
6556         * appdomain.c:
6557         * domain-internals.h:
6558         * reflection.c: 'domain_assemblies' field is now protected by its own
6559         lock. Don't call into managed code to run the AssemblyLoad event if we
6560         now there are no registered delegates for it.
6561
6562 2005-06-20  Martin Baulig  <martin@ximian.com>
6563
6564         * class.c (mono_class_is_assignable_from): Use a custom version of
6565         mono_class_has_parent() to make things work for generic instances;
6566         fix #75300.
6567
6568 2005-06-20  Martin Baulig  <martin@ximian.com>
6569
6570         * loader.c (method_from_methodspec): Apply a patch from
6571         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
6572
6573 2005-06-20  Martin Baulig  <martin@ximian.com>
6574
6575         * class.c (mono_class_init): Reverted Zoltan's last change; it
6576         breaks generics.
6577
6578 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
6579
6580         * threads.c (wait_for_tids_or_state_change): Add missing locking.
6581
6582 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6583
6584         * socket-io.c: fix the index in the socket array for writable/error
6585         sockets. Fixes bug #75306.
6586
6587 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
6588
6589         * class.c (mono_class_init): Allow interfaces to have static ctors.
6590
6591 2005-06-17  Martin Baulig  <martin@ximian.com>
6592
6593         * loader.c (method_from_methodspec): Use `context->container' when
6594         parsing the `gmethod->inst'.
6595
6596 2005-06-17  Martin Baulig  <martin@ximian.com>
6597
6598         * class.c (mono_type_get_name_recurse): Don't add the assembly
6599         name for type arguments.
6600
6601 2005-06-15  Martin Baulig  <martin@ximian.com>
6602
6603         * reflection.c (mono_image_get_inflated_method_token): Encode
6604         correct klass; fixes #75260.
6605
6606 2005-06-13 Michal Moskal <malekith@nemerle.org>
6607
6608         * icall.c: Make GetCorrespondingMethod/Constructor take
6609         MonoReflectionMethod method not MonoMethod. Removed
6610         MonoType.GetCorrespondingField, and make
6611         MonoGenericType.GetCorrespondingField take name not
6612         MonoClassField.
6613
6614 2005-06-13  Michal Moskal <malekith@nemerle.org>
6615
6616         * reflection.c (field_encode_signature, encode_locals):
6617          Make sizes of buffers for types larger (for big generic types).
6618          (create_generic_typespec,
6619          mono_reflection_sighelper_get_signature_local,
6620          mono_reflection_sighelper_get_signature_field):
6621          Add asserts for too small buffers.
6622
6623 2005-06-15  Martin Baulig  <martin@ximian.com>
6624
6625         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
6626         if our parent is not a dynamic type.
6627
6628 2005-06-15  Martin Baulig  <martin@ximian.com>
6629
6630         * class-internals.h (MonoTypeNameFormat): New enum.
6631
6632         * class.c
6633         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
6634         (mono_type_get_full_name): Removed.
6635         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
6636         argument instead of the boolean's.
6637
6638         * icall.c (ves_icall_System_MonoType_getFullName):
6639         Added `gboolean assembly_qualified'.    
6640
6641         * reflection.h
6642         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
6643
6644         * reflection.c (mono_reflection_parse_type): Parse the new type
6645         name format.
6646
6647 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6648
6649         * icall.c: no need to convert from utf16 to utf8 and then back again
6650         after the call to GetLogicalDrives.
6651
6652 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6653
6654         * icall.c: frombase64. Fix problems exposed by new tests.
6655
6656 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6657
6658         * icall.c: added internal calls for converting char [] and strings in
6659         base64 into byte [].
6660
6661 2005-06-10  Martin Baulig  <martin@ximian.com>
6662
6663         * class.c (mono_class_create_generic_2): Read the nested classes
6664         from the metadata rather than from `gklass->nested_classes' since
6665         `gklass' might not be initialized yet.
6666
6667 2005-06-09  Duncan Mak  <duncan@novell.com>
6668
6669         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
6670         all public headers. Fixes #74919.
6671
6672 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
6673
6674         * domain.c: The key for proxy_vtable_hash is now a pointer
6675         array. Added new GHashFunc and GCompareFunc functions for this.
6676
6677         * class.h: The list of interfaces in MonoRemoteClass is known in
6678         advance and can't grow (we create a new MonoRemoteClass if needed),
6679         so now the interface array can be allocated together with
6680         MonoRemoteClass.
6681         
6682         * object.c: Added a new method create_remote_class_key.
6683         Fixed mono_remote_class so it does not depend on
6684         mono_upgrade_remote_class.
6685         Removed extend_interface_array.
6686         Added new method clone_remote_class(), which makes a copy of a remote
6687         class and adds a new interface or class to it.
6688         mono_upgrade_remote_class() now creates a new remote class (or gets
6689         it from the cache) if an vtable upgrade is needed. In this way
6690         we make sure that other objects sharing the same remote class
6691         don't get the new vtable with unwanted interfaces.
6692         
6693         * object-internals.h:
6694         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
6695         
6696         * marshal.c: Track changes in mono_upgrade_remote_class().
6697
6698 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
6699         * icall.c: Add runtime methods for obtaining members of inflated
6700         class, which were created from supplied non-inflated members. It
6701         is used in internal Get{Method,Constructor,Field} methods in
6702         System.Type
6703
6704 2005-06-09  Martin Baulig  <martin@ximian.com>
6705
6706         * reflection.c
6707         (mono_reflection_bind_generic_method_parameters): Fix #75169.
6708
6709 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6710         * reflection.c (mono_image_basic_init): Define
6711         Version in MonoDynamicAssembly. 
6712         
6713 2005-06-08  Martin Baulig  <martin@ximian.com>
6714
6715         Fix #75136.
6716
6717         * loader.c
6718         (mono_method_signature_full): New public method; takes a
6719         `MonoGenericContext *'.
6720         (find_method): Use mono_method_signature_full() and pass the
6721         klass'es context to it.
6722
6723         * class.c (mono_class_is_inflated_method): Use
6724         mono_method_signature_full() and pass the context to it.
6725
6726 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
6727
6728         * object.c: add proper locking in mono_remote_class_vtable(),
6729         fixes possible memory corruption.
6730
6731 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
6732
6733         * marshal.c (mono_remoting_marshal_init): set
6734         initialized after initialization.
6735
6736 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
6737
6738         * locales.c : hush.
6739
6740 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
6741
6742         * object.c (extend_interface_array): fix really silly
6743         memory corrupting / comparison bug.
6744
6745 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6746
6747         * reflection.c: Functions added to support the creation
6748         of CustomAttributeData, which includes Attribute data
6749         used by ReflectionOnly methods.
6750
6751         * reflection.h:  mono_reflection_get_custom_attrs_data and
6752          mono_custom_attrs_data_construct added (functions exposed).
6753
6754          * icall.c: Added mono_reflection_get_custom_attrs_data
6755          as icall.
6756         
6757 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
6758
6759         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
6760         lupus's request.
6761
6762 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
6763
6764         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
6765
6766         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
6767         dynamic DllImportAttribute.
6768
6769         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
6770         dynamic DllImportAttribute.
6771
6772         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
6773         Fixes #75162.
6774
6775 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6776
6777         * threads.c: avoid segfault when an unstarted thread is aborted.
6778
6779 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
6780
6781         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
6782         Returns the name and version of the runtime for reporting.
6783
6784 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6785
6786         * appdomain.c: bump corlib version.
6787         * object-internals.h: new field in MonoReflectionAssembly.
6788
6789 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6790
6791         * object-internals.h: Carlos forgot to add this field.
6792
6793 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6794
6795         * icall.c: Added create_version to create instances
6796         of Version of MonoReflectionAssemblyName. This change helps
6797         the AssemblyName tests to keep running fine.
6798         
6799 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
6800   
6801         * object.c (mono_method_return_message_restore): A somehow less
6802         intrusive fix for #75138.
6803
6804 2005-06-03  Raja R Harinath  <rharinath@novell.com>
6805
6806         * object.c (mono_method_return_message_restore): Fix computation
6807         of expected number of out args.
6808
6809 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6810
6811         * reflection.c (mono_image_get_method_info): Fix the case when the
6812         charset is empty.
6813
6814 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
6815
6816         * object.c: Added missing null check in
6817           mono_method_return_message_restore.
6818
6819 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6820
6821         * reflection.c (mono_image_get_method_info): Handle the case when
6822         dllentry is empty.
6823
6824 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
6825
6826         * object.c: When creating the vtable for a proxy, take into account
6827         all inherited interfaces, not only the ones registered in
6828         iclass->interfaces. This fixs bug #74996.
6829         Also, in mono_method_return_message_restore, verify that the array
6830         of out args has the expected lengh.
6831
6832 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6833
6834         * socket-io.c: update the timeout in Poll when the call is interrupte.
6835
6836 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6837
6838         * socket-io.c: support abort/suspend in Select_internal after last
6839         change.
6840
6841 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6842
6843         * threadpool.c: remove warning.
6844
6845 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6846
6847         * icall.c:
6848         * socket-io.[ch]: Select_internal uses poll() now when available, thus
6849         removing the 1024 limit from select(). Runtime part of the fix for
6850         bug #71203.
6851
6852 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6853
6854         * socket-io.c: when resolving the addresses for the same
6855         host returned by gethostname(), get the local IPs from the interface
6856         list. Loopback addresses are discarded if the are interfaces up with
6857         non-loopback ones. Fixes bug #63265.
6858
6859 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
6860
6861         * appdomain.c, verify.c, object-internals.h, reflection.c:
6862         bumped corlib number to 36, and added new extra_flags field
6863         to ReflectionMethodBuilder and friends.  Fixes #75060.
6864
6865 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
6866
6867         * gc.c: register a new weak link only if the object is non-null
6868         (fixes bug#75047).
6869
6870 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6871
6872         * culture-info.h : short time pattern too.
6873
6874 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6875
6876         * culture-info.h : expand long time pattern string length.
6877
6878 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6879
6880         * culture-info-table.h : update (more French date format; #72788).
6881
6882 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
6883
6884         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
6885         the method is static. Fixes #75029.
6886
6887 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
6888
6889         * reflection.c: Update the table_idx field of method builders after
6890         saving the module, since it can change. This is a workaround for
6891         bug #74914. 
6892
6893 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6894
6895         * culture-info-table.h : update (additional French date format).
6896
6897 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
6898
6899         * icall.c (ves_icall_type_Equals): Revert last change.
6900         
6901         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
6902
6903         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
6904
6905 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
6906
6907         * class-internals.h: Added executioncontext_class field to 
6908         MonoDefaults structure.
6909         * domain.c: Cache System.Threading.ExecutionContext class in 
6910         mono_defaults.
6911         * object.c: Capture the ExecutionContext for asynchroneous calls in
6912          mono_async_result_new.
6913         * object-internals.h: Added execution_context and original_context 
6914         fields to MonoAsyncResult. Added execution_context to MonoThread.
6915         * security-manager.c|.h: Added mono_get_context_capture_method to 
6916         return the capture method (if required by the security manager or by
6917         the framework version used).
6918         * threadpool.c: Apply capture (if present) ExecutionContext in 
6919         mono_async_invoke and revert to original context after it completes.
6920
6921 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
6922
6923         * culture-info-table.h : updated (real hacky solution for zh-CHT).
6924
6925 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
6926
6927         * culture-info-table.h : zh-CHT related workaround.
6928
6929 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6930
6931         * marshal.c (emit_marshal_custom): Add some error checking and call the
6932         methods in the ICustomMarshaler interface. Fixes #74875.
6933         
6934         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
6935         native->managed wrappers.
6936
6937 2005-05-12  Martin Baulig  <martin@ximian.com>
6938
6939         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
6940         here and use the loader lock.
6941
6942         * mono-debug.c: Properly lock when the debugger is not attached.
6943         (mono_debug_init): Release the initial lock if we're not running
6944         in the debugger.
6945
6946 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6947
6948         * marshal.c (emit_marshal_custom): Pass through NULL values without
6949         calling the custom marshalling routines.
6950
6951         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
6952         conversion in structures. Fixes #74882.
6953
6954 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
6955
6956         * culture-info-table.h : zh-* cultures were missing.
6957
6958 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
6959
6960         * threads.c: Added a new event background_change_event which is signaled
6961         when a thread changes its background mode.
6962         Moved here several checks previously done in managed code. The checks
6963         require the thread lock, and using the thread lock in managed code
6964         can result in deadlocks.
6965         Merged Start_internal and Thread_internal into a single method. Now 
6966         Thread_internal does all work of creating and starting a thread.
6967         Added icalls for setting and getting the state of the object. Moved from
6968         managed code to avoid locking there.
6969         Added wait_for_tids_or_state_change() which is called instad of
6970         wait_for_tids when waiting for non-backround threads to end. This method
6971         will return if one of the threads ends or the background_change_event
6972         is signaled.
6973         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
6974         the background mode. This method signals the background_change_event
6975         event.
6976         * icall.c:
6977         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
6978         removed Start_internal.
6979         
6980 2005-05-11  Martin Baulig  <martin@ximian.com>
6981
6982         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
6983         to order of some fields to get proper alignment on 64-bit machines.
6984
6985 2005-05-11  Martin Baulig  <martin@ximian.com>
6986
6987         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
6988         changes as they're broken and completely fuck up the debugger.
6989
6990         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
6991
6992 2005-05-10  Martin Baulig  <martin@ximian.com>
6993
6994         * reflection.c (mono_reflection_generic_class_initialize): Don't
6995         call mono_class_setup_parent() here.
6996
6997 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6998
6999         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
7000         send/receive timeout use an integer in milliseconds. We were using a
7001         struct timeval.
7002
7003 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7004
7005         * locales.c:
7006         (internal_get_cultures): reserve the first slot of the array for the
7007         InvariantCulture, which will be filled in managed code.
7008
7009 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7010
7011         * reflection.c (mono_image_fill_module_table): Initialize the
7012         GENERATION field as well.
7013
7014 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7015
7016         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7017         Monitor.Enter on the object.
7018
7019 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7020
7021         * threads.c: Enable the wait for running threads when exiting.
7022         * icall.c: Suspend all threads before exiting.
7023
7024 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7025
7026         * assembly.c (mono_assembly_load_reference): Fix warning.
7027
7028 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7029
7030         * threadpool.c: changed the default number of threads per cpu. From now
7031         on, the default will be 20 + (5 * number of cpus) instead of 50.
7032
7033 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7034
7035         * loader.c (mono_method_get_signature_full): Add locking here.
7036
7037 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7038
7039         * appdomain.c: Moved methods for parsing and freeing assembly
7040         names to assembly.c.
7041         * assembly.c, domain-internals.h: Created public methods for parsing
7042         assembly names. Fixed mono_assembly_load_with_partial_name:
7043         it now finds the best match, taking into account the version,
7044         token and culture specified in the partial name. Also return
7045         the latest version if no version information is specified.
7046
7047 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7048
7049         * threadpool.c: replace check for SocketAsyncCall class.
7050
7051 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7052
7053         * threadpool-internals.h:
7054         * Makefile.am: added threadpool-internals.h
7055
7056         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7057         that happen in threadpool threads (tested on MS).
7058         (mono_thread_pool_remove_socket): new function that dispatch any pending
7059         AIO call on a socket that is closing. By now only epoll really needs it,
7060         as select/poll wake up when the socket closes.
7061
7062
7063         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7064
7065 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7066
7067         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7068
7069 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7070
7071         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7072
7073 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7074
7075         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7076         has an abort request, convert it into a suspend request.
7077
7078 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7079
7080         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7081         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7082         is not supported yet.
7083
7084 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7085
7086         * image.c: register assemblies loaded from data (bundles) in the loaded
7087         assemblies hash. Fixes bug #74772.
7088
7089 2005-04-29  Martin Baulig  <martin@ximian.com>
7090
7091         * class.c (mono_type_get_name_recurse): Update to the new naming
7092         schema from the latest .NET 2.x beta2.
7093         (mono_class_setup_vtable_general): If we're a generic instance,
7094         copy the vtable from our generic type definition and inflate all
7095         the methods in it.
7096
7097         * loader.c (find_method): Update to the new naming schema from the
7098         latest .NET 2.x beta2.
7099
7100 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7101
7102         * class.c (mono_class_init): Add a mono_loader_unlock to the
7103         #74734 fix.
7104
7105 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7106
7107         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7108         suspend_all_other_threads () call for the time being, since it can hang.
7109
7110         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7111         the background threads to exit, since it can also hang.
7112
7113         * class.c (mono_class_init): Applied patch from Ankit Jain 
7114         (radical@gmail.com). Avoid pending init errors when a field refers
7115         to a nested class using a typeref. Fixes #74734.
7116
7117         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7118         this for dynamic modules.
7119
7120 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7121
7122         * threads.c: don't wait for threads that are in the process of aborting
7123         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7124         and waiting for background threads to finish. This makes xsp and
7125         mod-mono-server exit without random length delays and/or hangs.
7126
7127 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7128
7129         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7130
7131 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7132
7133         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7134         dynamic types to prevent infinite loops. Fixes #74727.
7135
7136         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7137         ..._is_assignable_to.
7138
7139 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7140
7141         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7142
7143 2005-04-25  Martin Baulig  <martin@ximian.com>
7144
7145         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7146
7147         * domain.c
7148         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7149
7150         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7151
7152         * reflection.c (build_compressed_metadata): Set metadata header
7153         version to 2.0.
7154
7155 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7156
7157         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7158         number into an integral and a decimal part. Fixes #70473.
7159
7160         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7161
7162 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7163
7164         * culture-info-table.h : reflected the latest locale-builder output.
7165
7166 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7167
7168         * threadpool.c: check for SuspendRequested too when deciding if
7169         mono_thread_interruption_checkpoint should be called.
7170
7171 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7172
7173         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7174         * threads.c: remove interruption_mutex and use Interlocked instead. When
7175         suspending all the threads, wait for all the suspended events at once.
7176         If we're shutting down and get an APC that is going to be queued,
7177         call mono_thread_execute_interruption immediately, as the thread might
7178         be sleeping on a pthread condition or mutex.
7179
7180         * icall.c: call mono_runtime_set_shutting_down before suspending the
7181         threads.
7182
7183         Fixes bug #74693. And now xsp is happier when exiting.
7184
7185 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7186
7187         * loader.c (mono_stack_walk): Fix #74690.
7188
7189 2005-04-22  Martin Baulig  <martin@ximian.com>
7190
7191         * mono-debug.h (MonoDebugMethodJitInfo): Added
7192         `MonoDebugMethodJitInfo *jit'.
7193
7194         * mono-debug.c (mono_debug_read_method): Cache the
7195         MonoDebugMethodJitInfo in `address->jit'.
7196         (mono_debug_free_method_jit_info): New public method.
7197
7198 2005-04-22  Martin Baulig  <martin@ximian.com>
7199
7200         * class.c (mono_class_is_assignable_from): Disallow
7201         type parameter -> interface.
7202
7203 2005-04-21  Dick Porter  <dick@ximian.com>
7204
7205         * threads.c (mono_thread_create): Turn an assertion into an error.
7206
7207 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7208
7209         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7210         
7211         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7212         Fix some gcc 4.0 warnings.
7213
7214 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7215
7216         * file-io.c: fix alt dir separator char on unix systems
7217         and cleanup (fixes bug #71214).
7218
7219 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7220
7221         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7222         a call to a remote domain, since the method may be an
7223         interface method in the client domain. This fixes bug #74192.
7224
7225 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7226
7227         * threadpool.c: recv/send are now performed before going back to managed
7228         code to save one transition.
7229
7230 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7231
7232         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7233
7234         * metadata/threadpool.c: removed hack to workaround the bug above.
7235
7236         Fixes bug #74618.
7237
7238 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7239
7240         * reflection.c reflection.h: Fix handling of parameter defaults in
7241         dynamic methods. Also fixes handling of parameter attributes.
7242         Fixes #74609.
7243
7244         * mono-debug.c (mono_debug_close_image): Fix warning.
7245
7246 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7247
7248         * socket-io.h: replaced old unused field with new 'blocking'.
7249         * threadpool.c: restore socket blocking state on windows(tm).
7250
7251 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7252
7253         * icall.c: don't return the codebase in the AssemblyName[] returned by
7254         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7255         * object-internals.h: Removed FIXME (fields were presents) and fixed
7256         versioncompat declaration.
7257
7258 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7259
7260         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7261         not closed, so don't cleanup when it happens.
7262
7263 2005-04-13  Chris Toshok  <toshok@ximian.com>
7264
7265         * mono-debug-debugger.h: change prototype for
7266         mono_debugger_lookup_type.
7267
7268         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7269         this function, although it should probably be named
7270         mono_debugger_init_type.
7271
7272 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7273
7274         * threadpool.c: fix non-AIO case.
7275
7276 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7277
7278         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7279         the built-in profiler to measure just JIT compilation times.
7280
7281 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7282
7283         * threadpool.c: the epollfd might be closed by another thread at
7284         any time, so ignore EBADF at treat it as a "we're closing" sign.
7285
7286 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7287
7288         * threadpool.c: release the semaphores with a count equals to the number
7289         of working threads in both IO and regular pools. Fixed typo that messed
7290         up the count of IO pool threads. Don't initialize the pipe handles if
7291         we're using epoll.
7292
7293 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7294
7295         * threadpool.c: some systems don't like a NULL when deleting the socket
7296         from epoll.
7297
7298 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7299
7300         * threadpool.c: fix semaphore allocation.
7301
7302 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7303
7304         * threadpool.c: added epoll() based implementation for asynchronous IO
7305         that is used instead of the default poll() when available.
7306         It can be disabled by setting MONO_DISABLE_AIO.
7307
7308 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7309
7310         * threadpool.c: windows needs 'closesocket' and instead of returning
7311         0 when the stream is closed while in select, it returns -1. Fixes bug
7312         #74573.
7313
7314 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7315
7316         * class.c (class_compute_field_layout): Fix the regression caused by
7317         the previous try.
7318
7319 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7320
7321         * threadpool.c: separate pool for socket async. IO.
7322         * threadpool.h: mono_max_worker_threads is not a global any more.
7323
7324 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7325
7326         * class.c (class_compute_field_layout): Fix #74549.
7327
7328 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7329
7330         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7331         use 2 connected sockets instead.
7332
7333 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7334
7335         * mono-config.c: Add new entry point for mkbundle
7336         mono_config_parse_memory. 
7337
7338 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7339
7340         * threadpool.c: removed another unused function.
7341
7342 2005-04-08  Ankit Jain  <radical@corewars.org>
7343
7344         * reflection.c (get_default_param_value_blobs): Add 'types'
7345         parameter to get the types encoded in the constant table.
7346         (mono_param_get_objects): Use the type from the constant table,
7347         not the type of the parameter, when creating default values.
7348         Handle null default values correctly.
7349
7350 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7351
7352         * file-io.c:
7353         * file-io.h:
7354         * threadpool.c:
7355         * threadpool.h:
7356         * icall.c:
7357         * socket-io.c: removed dead code for async IO.
7358
7359 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7360
7361         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7362
7363         * threadpool.c: intercept socket async. calls and pass them to a thread
7364         that is polling and dispatching the job items to the threadpool as
7365         socket become ready. Fixes bugs #71217, #71933.
7366
7367         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7368         between char and short/ushort arrays.
7369
7370         * socket-io.c: remove dead code.
7371
7372 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7373
7374         * locales.c,
7375           icall.c : removed InternalToUpper_Comp() and
7376           InternalToLower_Comp().
7377
7378 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7379
7380         * char-conversions.h : The tables were incorrectly generated. Should
7381           be generated against invariant culture.
7382
7383 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7384
7385         * object.c (mono_runtime_invoke_array): Fix return value when 
7386         passing pre-created valuetype objects to ctors.
7387
7388         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7389         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7390         Fixes #74338.
7391
7392 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7393
7394         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7395         only used with --security and hides the wrong corlib version error.
7396
7397 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7398
7399         * class.c: Changed mono_class_name_from_token so that types
7400         outside of a namespace don't have an initial period.  Improved
7401         the g_warning message used in _mono_class_get when loading
7402         fails.
7403         * assembly.c: In mono_assembly_load_reference, when an assembly
7404         can't be found, "No such file or directory" is misleading and
7405         unhelpful because a few paths were checked for the presence of
7406         the assembly.  When that happens (ENOENT), display a nicer
7407         message indicating the directories that were searched.  In all
7408         cases, the warning is made easier to read for non-hackers.
7409
7410 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7411
7412         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7413         project/solution.
7414         * appdomain.h|domain.c: Removed inline from functions.
7415         * appdomain.c: Reduced warnings when compiling on windows.
7416         * icall.c: Fixed output_debug declaration to gunichar2*.
7417         * mono-config.c: Reduced warnings when compiling on windows.
7418         * rand.c: Added missing "windows.h". Added missing return value.
7419         * rawbuffer.c: Added missing winsock2.h for windows.
7420         * sysmath.h: Added mono-compiler.h header to allow/ease 
7421         compilation with non-GCC compilers.
7422         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7423         Removed cast warnings.
7424
7425         Adapted from the work of J Lothian (for VC6).
7426
7427 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7428
7429         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7430         from default_path.
7431
7432 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7433
7434         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7435         the 2.0 profile.
7436
7437 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7438
7439         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7440         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7441         stuff, and it would probably use $(prefix)/share rather than
7442         $(prefix)/lib.
7443
7444 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7445
7446         * console-io.c: added 2 includes that might be missing.
7447
7448 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7449
7450         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7451         profile.
7452
7453         * reflection.c (create_custom_attr): Allocate the params array using
7454         alloca so it gets GC tracking.
7455
7456 2005-03-23  Chris Toshok  <toshok@ximian.com>
7457
7458         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7459         out some spew.
7460
7461 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7462
7463         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7464         changes to pick up any changes in prefix, etc.
7465
7466 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7467
7468         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7469         
7470         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7471         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7472
7473 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7474
7475         * class-internals.h object-internals.h class.c reflection.c: Extend the
7476         mono_lookup_dynamic_token () function to return the class of the
7477         token as well. 
7478
7479         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7480         well. Fixes #73848.
7481
7482 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7483
7484         * security-manager.c: Skip inheritance checks for intra-corlib
7485         class inheritance and method overrides. This skips a lot of checks
7486         and (anyway) permissions cannot work until corlib is loaded.
7487
7488 2005-03-23  Martin Baulig  <martin@ximian.com>
7489
7490         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
7491         MONO_TYPE_GENERICINST.  
7492
7493 2005-03-23  Martin Baulig  <martin@ximian.com>
7494
7495         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
7496
7497 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7498
7499         * class.c: added locking comments to some functions.
7500         Cache the interface offsets arrays (saves about 20 KB
7501         of runtime memory in a typical app).
7502         Reduce the time overhead in mono_class_setup_supertypes ().
7503
7504 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
7505
7506         * icall.c: speedup and fix leaks in GetMethodsByName and
7507         GetPropertiesByName.
7508
7509 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7510
7511         * reflection.c: some locking fixes.
7512
7513 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7514
7515         * metadata.c: added missing break in case statement.
7516
7517 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
7518
7519         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7520         typedbyref return values. Fixes #73941.
7521
7522 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7523
7524         * security-manager.c|h: Added demandunmanaged method and 
7525         suppressunmanagedcodesecurity class to MonoSecurityManager.
7526         Renamed aptc class to allowpartiallytrustedcallers.
7527
7528 2005-03-17  Martin Baulig  <martin@ximian.com>
7529
7530         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
7531
7532 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7533
7534         * file-io.c: disabled file async. IO using aio_*. It uses the
7535         threadpool now. Workaround for bug #73718.
7536
7537 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7538
7539         * assembly.h, mono-config.c: added code to deal with bundled configs
7540         for bundled assemblies.
7541
7542 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
7543
7544         * *.c, private.h: cleanup, removing old private.h header file.
7545
7546 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
7547
7548         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
7549         and throw_on_unmappable_char attributes.
7550
7551 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
7552
7553         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
7554         _ProcessName_internal.
7555
7556 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
7557
7558         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
7559         #73631.
7560
7561         * icall.c threads.c threads-types.h: Remove slothash icalls as they
7562         are no longer used.
7563
7564 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
7565
7566         * object.c (compute_class_bitmap): Add support for generics. Fixes
7567         #73527.
7568
7569 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7570
7571         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
7572
7573 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7574
7575         * filewatcher.c: commented out the code for windows watcher, as we don't
7576         use it (we use the managed implementation instead).
7577
7578 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7579
7580         * object-internals.h (MonoThread): Remove 'unused1' field.
7581
7582         * appdomain.c: Bump corlib version.
7583
7584         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
7585
7586         * reflection.c (mono_reflection_create_runtime_class): Remove the
7587         AssemblyBuilder.Save optimization since it causes too many problems.
7588
7589 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
7590
7591         * exception.c|h: Added mono_get_exception_reflection_type_load to
7592         create a ReflectionTypeLoadException object.
7593         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
7594         to return NULL is a InheritanceDemand fails during reflection. Updated
7595         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
7596         ReflectionTypeLoadException if an InheritanceDemand fails during 
7597         reflection. Added icall mapping for GetLinkDemandSecurity.
7598         * security-manager.c|h: Added ves_icall_System_Security_
7599         SecurityManager_GetLinkDemandSecurity internal call to return the
7600         class and methods permissions set for a LinkDemand. Removed unused
7601         fields in MonoSecurityManager.
7602
7603 2005-03-10  Martin Baulig  <martin@ximian.com>
7604
7605         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
7606         it's a generic instance.
7607
7608 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
7609
7610         * reflection.c (mono_get_object_from_blob): Applied patch from
7611         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
7612
7613         * class.c (mono_class_is_assignable_from): Another try at fixing 
7614         #73469 without breaking anything.
7615
7616 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
7617
7618         * class.c: (mono_class_is_assignable_from): Revert the last changes
7619         since they don't work with generics.
7620         
7621         * class.c (mono_class_is_assignable_from): Fix build bustage.
7622
7623         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
7624         the managed IsAssignableFrom method. Fixes #73469.
7625
7626         * reflection.c (mono_reflection_call_is_assignable_from): New helper
7627         function.
7628
7629 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
7630
7631         * object.c (mono_load_remote_field_new): Fix returning uninitialized
7632         memory when the remoting callback does not sets the out arguments.
7633         Fixes #73007.
7634
7635         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
7636         by mistake.
7637
7638         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
7639
7640         * object-internals.h (MonoStackFrame): Sync with managed object layout.
7641
7642         * appdomain.c: Bump corlib version.
7643
7644 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
7645
7646         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
7647         function.
7648
7649         * threads.c (mono_thread_attach): Detect threads which are not started
7650         by the GC pthread wrappers.
7651
7652 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
7653
7654         * icall.c: Added new icall for RNG.
7655         * rand.c|h: Added new icall to open the RNG. This allows to share a 
7656         single handle on Linux to access /dev/urandom and fix #73183.
7657
7658 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
7659
7660         * object.c: setting the new vtable in a transparent proxy object must
7661         not change the GC descriptor.
7662
7663 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7664
7665         * object.c: fixed compilation without GCJ support.
7666         * reflection.c: for runtime-created types ensure klass->has_references
7667         is correct (bug #73215).
7668
7669 2005-03-02  Martin Baulig  <martin@ximian.com>
7670
7671         * class.c (mono_class_is_assignable_from): Make this work if
7672         `oklass' is a generic instance; fixes #72831.
7673
7674 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7675
7676         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
7677         with hasthis set.
7678         
7679         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
7680
7681         * marshal.c: Reorganize native->managed marshalling code to also use
7682         the emit_marshal_... functions.
7683
7684 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7685
7686         * object.c: typed allocs have issues with bitmap sizes > 30,
7687         so check for max_set >= 30.
7688
7689 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7690
7691         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
7692         managed code. Fixes #73012.
7693
7694         * metadata.h (MonoMarshalSpec): Add elem_mult field.
7695
7696         * metadata.c reflection.c: Load/Emit elem_mult as well.
7697         
7698         * metadata.h (MonoMarshalSpec): Add comment.
7699
7700         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
7701
7702         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
7703         num_elem to -1 if not given.
7704
7705         * object-internals.h (MonoReflectionMarshal): Add has_size field.
7706
7707         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
7708         given values.
7709
7710 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
7711
7712         * null-gc.c (mono_gc_free_fixed): Was not compilable.
7713
7714 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
7715
7716         * reflection.c (encode_marshal_blob): Encode param_num field as well.
7717
7718         * object-internals.h (MonoReflectionMarshal): Add param_num field.
7719
7720 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7721
7722         * object.c: generalized the reference bitmap creation
7723         and added hooks for the new GC.
7724         * class-internals.c: removed the gc_bitmap field from MonoClass.
7725
7726 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7727
7728         * domain.c: help the compiler to produce better code
7729         in mono_jit_info_table_find ().
7730
7731 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7732
7733         * object.c: make all allocations look typed.
7734
7735 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7736
7737         * socket-io.c: load Mono.Posix if it's not loaded already
7738         (fixes bug#73033).
7739
7740 2005-02-24  Martin Baulig  <martin@ximian.com>
7741
7742         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
7743         * reflection.c (dup_type): Likewise.
7744
7745 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
7746
7747         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
7748         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
7749
7750 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7751
7752         * domain.c, threads.c, object-internals.h: make the critical thread
7753         local vars use the fast access mode (even when we're compiled in
7754         a lib). Provide accessors to be used by the jit during codegen.
7755
7756 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7757
7758         * appdomain.c: Changed hook functios behavior to include
7759         support for the reflection only assemblies. Some icalls were changed
7760         to support the mentioned assemblies too. Signatures of static methods
7761         try_assembly_resolve and real_load now have an additional parameter:
7762         refonly.
7763
7764         * assembly.c: General changes to mono_assembly_ methods to support
7765         reflection only api. Functions mono_assembly_open, mono_assembly_load,
7766         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
7767         suffix, to support an additional gbool parameter to specify whether
7768         the assembli is reflection only or not. Created some new hook functions 
7769         to add support for reflection only assemblies. Signatures of static 
7770         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
7771         have now an additional parameter: refonly.
7772
7773         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
7774         indicating whether the assembly is reflection only or not.
7775
7776         * exception.c: Add mono_get_exception_invalid_operation.
7777
7778         * icall.c: Throw an InvalidOperationException when trying to invoke
7779         a property/method/event, or trying to set/get the value of a field.
7780         Also add an icall to retrieve the ref_only flag to the
7781         MonoReflectionAssembly.
7782
7783 2005-02-23  Chris Toshok  <toshok@ximian.com>
7784
7785         Part of fix for #72827.
7786         * mono-debug.c (mono_debug_add_method): add lexical block data to
7787         the info we write.  Kind of a hack at the moment - we copy the
7788         lexical block info from the MonoDebugMethodInfo to the
7789         MonoDebugMethodJitInfo here, before writing it.
7790         (mono_debug_read_method): read the lexical block info.
7791
7792         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
7793
7794         * debug-mono-symfile.h: add lexical block support.
7795
7796         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
7797         support.
7798
7799 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7800
7801         * loader.c (mono_lookup_pinvoke_call): Fix warning.
7802
7803         * object.c (mono_runtime_free_method): Call mono_free_method () and
7804         put the TODOs there.
7805
7806         * loader.c (mono_free_method): Free up most memory allocated for 
7807         dynamic methods.
7808
7809 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7810
7811         * reflection.c: properly flag a Type argument to a
7812         named custom attr value (bug #72248).
7813
7814 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7815
7816         * reflection.c: reduce code duplication in named custom
7817         attribute encoding.
7818
7819 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
7820
7821         * reflection.c: properly encode custom attrs of type object
7822         (bug #72649).
7823
7824 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7825
7826         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
7827
7828 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
7829
7830         * socket-io.c: load System.dll if it's not loaded already
7831         (bug #72850 and #70477).
7832
7833 2005-02-21  Martin Baulig  <martin@ximian.com>
7834
7835         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7836         generic instances.
7837
7838 2005-02-21  Martin Baulig  <martin@ximian.com>
7839
7840         * reflection.c (mono_image_build_metadata): We also need to
7841         "fixup" the MethodImpl table after we computed the final method
7842         indices.  Call fixup_methodimpl() to do that.
7843         (fixup_methodimpl): New private method.
7844
7845 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7846
7847         * assembly.c: special case mscorlib.dll (bug#72536),
7848         patch from Carlos Alberto Cortez.
7849
7850 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
7851
7852         * threads-types.h threads.c: Fix build bustage.
7853
7854         * threads.c: Use a union for long<->double conversions.
7855
7856         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
7857         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
7858
7859         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
7860         containing the checkpoint call with NOT_TAKEN.
7861         
7862         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
7863         checkpoint before pushing the arguments, so they won't have to be
7864         spilled to stack.
7865
7866 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7867
7868         * domain.c, assembly.c, domain-internals.h: make some data
7869         const and relocation-free.
7870
7871 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
7872
7873         * object.c, appdomain.c, class-internals.h: introduce the
7874         MonoClassRuntimeInfo structure to hold the info needed to
7875         use a class at runtime. Made mono_class_vtable() lock-free
7876         for all the appdomains.
7877
7878 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
7879
7880         * metadata-internals.h, image.c: introduce a per-image mempool to
7881         be used for memory that has the same lifetime as the image.
7882
7883 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
7884
7885         * domain.c: In mono_init_internal(), instead of selecting the first
7886         runtime version supported by an executable, get a list of all
7887         supported versions and select the one for which an mscorlib exists
7888         (since even if the runtime supports a given version, it doesn't mean
7889         that the framework for that version is installed).
7890         Modified get_runtimes_from_exe to support this behavior.
7891         In supported_runtimes, added information about additional system
7892         assembly versions.
7893         
7894         * assembly.c: Added support for more than one system assembly version
7895         per runtime version. Updated the assembly list.
7896         In mono_assembly_remap_version, removed the initial version check,
7897         since we don't know to which version we need to compare until we
7898         get the version set on which the assembly is based.
7899         Moved the code for loading corlib into the new method
7900         mono_assembly_load_corlib(), so it can be used by the initialization
7901         code.
7902         
7903         * domain-internals.h: Updated data structures and added declaration
7904         for mono_assembly_load_corlib.
7905
7906 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7907
7908         * reflection.c (resolve_object): Fix the creation of the signature in 
7909         the SignatureHelper case.
7910
7911         * assembly.c (mono_assembly_remap_version): Fix binary search.
7912         
7913 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
7914  
7915         * class.c: Added inheritance check when a method is overloaded (from a
7916         virtual method or when implementing an interface) and when a class is
7917         inherited. Added functions to set a failure for a class and to 
7918         retreive the exception from a failure.
7919         * class-internals.h: Added fields to MonoClass to keep the exception
7920         information status for inheritance (or other exceptions) to be thrown
7921         later (i.e. not at load time).
7922         * object.c: Throw the inheritance SecurityException when a type is to 
7923         be created with either class or method inheritance violations.
7924         * reflection.c|h: Fix when getting declsec from a class. Removed 
7925         unrequired code for class. Improved sanity in parameter naming.
7926         * security-manager.c|h: Added functions to check for class and method
7927         inheritance.
7928
7929 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7930
7931         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
7932         and has_finalize in dynamic types as well.
7933
7934 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
7935
7936         * culture-info-table.h : fixed currency format for en-GB (and so on).
7937
7938 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
7939
7940         * gc.c: ensure the GC handles never have 0 as a value.
7941
7942 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7943
7944         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
7945         a pointer to a struct to unmanaged code. Fixes #72625.
7946
7947 2005-02-16  Martin Baulig  <martin@ximian.com>
7948
7949         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
7950
7951 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7952
7953         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
7954
7955 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7956
7957         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
7958
7959         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
7960         UnmanagedFunctionPointerAttribute, use it for determining calling convention
7961         etc. Fixes #71471.
7962
7963         * reflection.c (mono_custom_attrs_get_attr): New helper function.
7964
7965         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
7966
7967 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
7968
7969         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
7970         changes to make the current context a field in MonoThread.
7971
7972 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7973
7974         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
7975         the last change.
7976         
7977         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
7978         extracted from mono_marshal_get_native_wrapper.
7979
7980         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
7981         to create wrappers around native functions.
7982
7983         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
7984         delegates for arbitrary function pointers. Fixes #71472.
7985
7986 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7987
7988         * threads.c: cleaned up the code a little.
7989
7990 2005-02-15  Martin Baulig  <martin@ximian.com>
7991
7992         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
7993         the data table.
7994
7995         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
7996         allocate larger chunks if needed.
7997
7998 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7999
8000         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
8001         in by mistake.
8002
8003 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
8004
8005         * domain.c: keep the domains in an array and ensure the domain ids
8006         are kept small, so they can be used as indexes to domain-specific data
8007         with a small memory overhead.
8008
8009 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8010
8011         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8012
8013 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8014
8015         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8016
8017 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8018
8019         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8020
8021         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8022         values.
8023
8024         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8025         
8026 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8027
8028         * domain-internals.h: add the hashtable here.
8029
8030         * class-internals.h: Remove `info' from MonoMethod
8031
8032         * domain.c: Add a new hashtable, jit_trampoline_hash
8033
8034 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8035
8036         * object.c: don't set the value of static fields
8037         (fixes bug#72494).
8038
8039 2005-02-11  Martin Baulig  <martin@ximian.com>
8040
8041         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8042         (mono_debug_add_method): Silently ignore the method if it's too big.
8043         (mono_debug_add_type): Likewise.
8044
8045 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8046
8047         * threads.c, appdomain.c: remove #ifdefs from the code.
8048
8049 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8050
8051         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8052         common security informations. This allows us to stay in unmanaged code
8053         when doing LinkDemand and it's special cases (except for the first 
8054         time for initialization). The flags a very much used with --security.
8055         * reflection.c|h: Added code to get declarative security attributes 
8056         for LinkDemand and InheritanceDemand. This required to refactor the
8057         existing code for Demand.
8058         * security-manager.c|h: Added new method fields for the special cases
8059         of LinkDemand.
8060
8061 2005-02-10  Martin Baulig  <martin@ximian.com>
8062
8063         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8064         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8065
8066 2005-02-10  Martin Baulig  <martin@ximian.com>
8067
8068         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8069         debugging code; this is almost a complete rewrite.
8070
8071         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8072
8073 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8074
8075         * domain.c, object.h: expose mono_string_equal () and 
8076         mono_string_hash ().
8077         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8078         it's implemented in managed code.
8079
8080 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8081
8082         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8083         lo leak objects between appdomains.
8084
8085 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8086
8087         * assembly.c: old compilers compilation fix from 
8088         robertj@gmx.net (Robert Jordan).
8089
8090 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8091
8092         * class-internals.h: Little reminder for the future.
8093
8094         * debug-helpers.c: Fix up wrapper_type_names
8095
8096 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8097
8098         * image.c, metadata-internals.h: when loading an image from a file,
8099         mmap all of it and use the same codepaths as when using a
8100         in-memory image: the code is simpler and we use less memory
8101         (both writable and readonly).
8102
8103 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8104
8105         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8106         API to alloc runtime data structures that need to be tracked by the
8107         GC and contain pointers.
8108         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8109         make the code more readable and eventually use a different GC.
8110
8111 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8112
8113         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8114         for out arguments.
8115         
8116 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8117
8118         * object.c: In release_type_locks(), don't release the cctor lock
8119         if it has already been released. This fixes a crash in the
8120         thread5 test.
8121
8122 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8123
8124         * gc.c, marshal.c, icall.c: register a delegate for finalization
8125         only when the native function pointer has been allocated for it.
8126
8127 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8128
8129         * object.c: cleaned up some code, allocate objects that are
8130         pointer free with the atomic malloc variant. Allocate memory
8131         for static data from the mempool if it's pointer-free.
8132         Allocate the bounds array at the end of the array data, when needed.
8133         * object-internals.h, object.h: move a private function in a private
8134         header.
8135         * class.c: handle missing case in tracking references in fields.
8136
8137 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8138
8139         * class.c, class-internals.h: keep track if a type has
8140         reference fields in either the instance or static fields.
8141
8142 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8143
8144         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8145         and renamed to MonoRuntimeInfo. Added fields to store the expected
8146         framework assembly version. Changed mono_get_framework_version and
8147         mono_get_runtime_version for a single mono_get_runtime_info method.
8148         
8149         * assembly.c: Added method to remap system assembly versions to the
8150         current executing runtime version. Removed old mapping code.
8151         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8152         
8153         * icall.c, reflection.c: Track api changes.
8154
8155 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8156
8157         * loader.c (method_from_memberref): Improve error reporting,
8158         produce the class name instead of the typeref/typedef index. 
8159
8160 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8161
8162         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8163
8164 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8165
8166         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8167         stdcall and charset name mangling.  Reorganize the code and add
8168         some tracing stuff.
8169
8170 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8171
8172         * monodiet.c: More iters!
8173
8174         * marshal.c: Iter usage.
8175
8176         * icall.c: Iter usage.
8177
8178         * object.c: Use iters.
8179
8180         * debug-helpers.c: More iters
8181
8182 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8183
8184         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8185         under win32.
8186
8187 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8188
8189         * mono-debug-debugger.c: use iters
8190
8191         * class.c, class-internals.h: mono_class_setup_events is static
8192         now
8193
8194         * All callers: use iters
8195
8196 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8197
8198         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8199         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8200
8201 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8202
8203         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8204
8205         * marshal.h: Add prototypes for ldfld/stfld_remote.
8206
8207         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8208         this is called during startup.
8209         
8210 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8211
8212         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8213         MonoThreadsSync struct private in monitor.c. Changed the way
8214         MonoThreadsSync is allocated so it's faster and there is no
8215         need to keep track of it with a finalizer and it uses less memory.
8216         This also finally allows us to allocate mono objects as ptrfree when
8217         there are no reference fields.
8218
8219 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8220
8221         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8222         disappearing link to the GC interface and use them to simplify
8223         the gchandles code.
8224
8225 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8226
8227         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8228         stfld_remote which call mono_load/store_field_new. This allows methods
8229         calling ldfld/stfld wrappers to be AOTed.
8230
8231         * console-io.c: Include sys/filio.h under solaris.
8232         
8233         * console-io.c: Include curses.h if needed correctly.
8234
8235 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8236         
8237         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8238         method->klass as well.
8239
8240         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8241
8242         * class.c (mono_class_init): Switch on lazy initialization of 
8243         methods.
8244
8245         * class.c (mono_class_get_finalizer): Handle the case when the 
8246         finalizer is inherited.
8247
8248 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8249
8250         * console-io.c: <curses.h> is needed by term.h on solaris.
8251
8252 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8253
8254         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8255         mono_class_setup_properties where possible. Remove this ftn from
8256         the header file, and make it static.
8257
8258 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8259
8260         * loader.c: Add missing setup_... call.
8261
8262         * class.c: Add missing setup_... calls.
8263
8264         * class.c (mono_class_init): Switch on lazy initialization of 
8265         the generic vtable.
8266         
8267         * class.c (mono_class_init): Fix generics broken by the recent changes.
8268
8269         * monodiet.c (handle_type): Add missing setup_... calls.
8270
8271         * class.c: Back out garbage in previous patch.
8272         
8273         * class.c: Add missing setup_... calls.
8274
8275         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8276         mono_class_setup_methods () if possible.
8277
8278         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8279
8280         * class-internals.h (MonoCachedClassInfo): New structure.
8281
8282         * class.c: Initialize properties and events fields of MonoClass lazily.
8283
8284         * class.c: Add infrastructure for lazily initializing the methods and
8285         vtable fields of MonoClass. Not yet used.
8286
8287         * class.c (mono_class_get_finalizer): New helper function.
8288
8289         * class.c: Add infrastructure for loading some class related data from
8290         an AOT file.
8291
8292         * object.c: Add infrastructure for initializing the vtable from data
8293         in the AOT file.
8294
8295         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8296
8297         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8298         appropriate initialization function before accessing parts of the
8299         MonoClass structure.
8300
8301         * marshal.c: Fix warnings.
8302         
8303         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8304
8305         * mono-debug-debugger.c (get_exception_message): Use 
8306         mono_class_get_method_from_name_flags ().
8307
8308 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8309
8310         * reflection.c, appdomain.c: Replace a few manual searches that
8311         Zoltan missed. (Paolo approved this part of my initial patch).
8312
8313 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8314
8315         * profiler.c: disable recording statistical events at report time.
8316
8317 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8318
8319         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8320         to byteswap arrays of enum values, too (bug #72080).
8321
8322 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8323
8324         * appdomain.c (set_domain_search_path): Allow this to be called if
8325         domain->setup is not yet set.
8326
8327         * loader.c (mono_method_get_index): New helper function.
8328
8329         * loader.c reflection.c: Use mono_method_get_index ().
8330
8331         * class.c (mono_class_get_method_from_name_flags): New helper method.
8332
8333         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8334         this.
8335
8336         * class.c (mono_class_get_cctor): New helper method.
8337
8338         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8339         mono_class_get_method () to look up methods.
8340
8341 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8342
8343         * console-io.c: Fix the build, this should work on Windows.
8344
8345 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8346
8347         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8348         be set to null to keep things valid
8349
8350 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8351
8352         * icall.c: added Console 2.0 icalls.
8353         * Makefile.am: added console-io.[ch]
8354         * console-io.[ch]: internal calls for Console 2.0 API.
8355
8356 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8357
8358         * class.c: make sure we consider all the interfaces
8359         when calculating max_interface_id (bug found by
8360         Jeroen Frijters running ikvm).
8361
8362 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8363
8364         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8365         valuetype fields to null.
8366
8367         * object.c (set_value): Ditto. Fixes #71669.    
8368
8369 2005-01-31  Martin Baulig  <martin@ximian.com>
8370
8371         * metadata.c (mono_metadata_has_generic_params): New public
8372         function; checks whether something is a generic method.
8373
8374 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8375
8376         * appdomain.c: fix infinite recursion when adding assemblies.
8377
8378 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8379
8380         * object.c: Fix small typo to return all items for Environment.
8381         GetCommandLineArgs.
8382
8383 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8384
8385         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8386         reflection.c: more domain and assembly-unload related fixes
8387         and memory leaks plugs.
8388
8389 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8390
8391         * 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.
8392
8393 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8394
8395         * loader.c (mono_method_signature): Make this method lazy
8396         (mono_get_method_from_token): Don't computate the signature here.
8397
8398         Doing this saves quite a bit of memory. I got 90 kb on starting up
8399         monodoc. It should also save some disk reads on startup.
8400
8401         * *: MonoMethod->signature might be NULL now. You *MUST* use
8402         mono_method_signature.
8403
8404 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8405
8406         * object.c (mono_runtime_get_main_args): Return an array from the
8407         current domain here. Fixes #71938.
8408
8409 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8410
8411         * monitor.c: formatting changes to comply with the
8412         mono coding style and remove #ifdefs from the code.
8413
8414 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8415
8416         * metadata.c, private.h: remove some unneeded data
8417         and use a more compact representation for table schemas.
8418
8419 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8420
8421         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8422         to get a better distribution in hash tables.
8423         * *.c: use mono_aligned_addr_hash() where appropriate.
8424         * assembly.c: make var static.
8425
8426 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8427
8428         * domain-internals.h: Put MonoJitInfo on a diet.
8429
8430         * domain.c: Fix a warning.
8431
8432 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8433
8434         * gc.c: rework the gc handles code to reuse handles
8435         when freed.
8436
8437 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8438
8439         * domain.c: fixed long standing bug in mono_string_equal() which
8440         was brought to light with the ldstr changes.
8441
8442 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8443
8444         * reflection.c: Remove warning by adding missing include for marshal.h
8445
8446 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8447
8448         * domain.c, object.c: change the ldstr_table to hold
8449         MonoString* as keys: makes the runtime isinterned lookup
8450         faster and simplifies memory management.
8451
8452 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8453  
8454         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8455         possible to add imperative security checks before calling the icall.
8456         * reflection.c: Return security attributes on the original MonoMethod
8457         (and not the wrapped one). This fix permissions on icalls.
8458
8459 2005-01-25  Dick Porter  <dick@ximian.com>
8460
8461         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8462         the check for mktime() support actually test the mktime() return
8463         value.  "Fixes" bug 71682, though the output is still different to
8464         MS.
8465
8466 2005-01-25  Martin Baulig  <martin@ximian.com>
8467
8468         * class.c (mono_class_is_assignable_from): Make this work for
8469         generic instances.
8470
8471 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8472
8473         * marshal.c (mono_string_utf8_to_builder)
8474         (mono_string_builder_to_utf16): We might not have ownership of the
8475         string. In thise case, we need to create a new buffer.
8476
8477         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8478         be null, in which case, use the default capacity.
8479
8480 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8481
8482         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8483         GC events to the profiler.
8484
8485 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8486
8487         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8488         if you don't want the GC to run.
8489
8490 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
8491
8492         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
8493         start providing a GC API and keeping different implementations in
8494         their own file.
8495         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
8496
8497 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
8498
8499         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
8500         mmap rather than allocating a huge buffer.
8501         (mono_debug_close_mono_symbol_file): Free the buffer allocated
8502         above.
8503
8504 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
8505
8506         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
8507         and CheckExecutionRights.
8508         * reflection.c|h: Keep the index of the declarative security to be 
8509         used, instead of the pointer, when AOT compiler is used. Also add 
8510         class initialization when requesting demands.
8511         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
8512         CheckExecutionRights. Both properties are now FALSE by default, and
8513         unmodifiable, unless the --security option is used.
8514
8515 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8516
8517         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
8518         reflection.c: properly refcount images and assemblies, many leaks fixed.
8519
8520 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8521
8522         * threadpool.c: increase the timeout for threads in the thread pool to
8523         10s.  Fixes bug #67159.
8524
8525 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8526
8527         * class-internals.h: Sun's compiler insists on explicit
8528         signed on bit fields to handle then correctly.
8529
8530 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
8531
8532         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
8533         Make the size of the array fit only the number of invalid path
8534         chars that we have.
8535
8536         * class.c (_mono_class_get): Improve the error reporting when a
8537         class referenced is not found, to assist debugging. 
8538
8539 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
8540
8541         * threads.c: fix off-by-one error.
8542         * domain.c: free data allocated in the domain.
8543
8544 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8545
8546         * reflection.c (mono_method_body_get_object): Fill out exception info
8547         as well.
8548
8549         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
8550         structure.
8551         
8552 2005-01-19  Martin Baulig  <martin@ximian.com>
8553
8554         * loader.c (mono_get_method_constrained): Make this work again.
8555
8556 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8557
8558         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
8559         guint16 to match the managed side.
8560
8561         * reflection.c (mono_reflection_body_get_object): Fill out local
8562         variables array.
8563
8564         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
8565         as well.
8566
8567         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
8568         'local_var_sig_token'.
8569
8570 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
8571
8572         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
8573         System.Drawing.
8574
8575         * reflection.c (mono_method_body_get_object): Handle abstract and
8576         runtime methods.
8577
8578 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
8579
8580         * marshal.c, loader.c, class-internals.h, reflection.c:
8581         store the emthod data for a wrapper in an array instead of a list.
8582
8583 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
8584
8585         * marshal.c: change the code to allocate memory more
8586         conservatively for method wrappers.
8587
8588 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
8589
8590         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
8591         fields from MonoClass to the marshal info structure where they belong.
8592
8593 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8594
8595         * class.c, object.c, class-internals.h, marshal.c: rearrange
8596         some fields and tweak some types to lower memory usage.
8597
8598 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
8599
8600         * threads.c (signal_thread_state_change): Handle the case when the
8601         target thread is the current thread.
8602
8603         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
8604
8605         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
8606         emit_ptr_to_object_conv. 
8607
8608         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
8609         marshalling. Fixes #71352.
8610
8611 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8612
8613         * metadata.h, blob.h: move table enum to blob.h so it can be included
8614         in any header.
8615         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
8616         cut the size of MonoImage/MonoDynamicImage.
8617
8618 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
8619
8620         * profiler.c (mono_profiler_install_simple): Fix default arguments.
8621
8622 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8623
8624         * reflection.c, reflection.h, icall.c: add a function to check
8625         if an attribute type is defined for a metadata object.
8626
8627 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
8628
8629         * object-internals.h: Added some needed fields from StringBuilder class.
8630         * marshal.c: Set the maxCapacity when creating a StringBuilder.
8631
8632 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
8633
8634         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
8635         threads before shutting down the runtime.
8636
8637         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
8638
8639 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8640
8641         * object-internal.h, threads.c: implement stacksize and 
8642         parameterized thread start functionality (requires
8643         matching corlib). Marked broken code for later removal.
8644
8645 2005-01-12  Martin Baulig  <martin@ximian.com>
8646
8647         * class-internals.h (MonoGenericClass): Moved the `initialized'
8648         flag to MonoDynamicGenericClass, removed `init_pending'.
8649         (MonoGenericInst): Added `is_reference' flag.
8650
8651 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
8652
8653         * reflection.c (mono_image_create_pefile): Only set the pe_offset
8654         inside the MSDOS header. Fixes #71201.
8655
8656         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
8657         gc thread.
8658         (mono_domain_finalize): Ditto.
8659
8660 2005-01-12  Martin Baulig  <martin@ximian.com>
8661
8662         * class.c (mono_get_shared_generic_class): Use the cache for
8663         non-dynamic generic classes.
8664
8665         * class-internals.h (mono_class_create_generic_2): Removed
8666         function prototype, this function is now static inside class.c.
8667
8668         * class.c (mono_class_create_generic_2): Made this static, only
8669         call it from mono_class_init() and mono_class_setup_parent().
8670         (collect_implemented_interfaces_aux): Call mono_class_init() on
8671         the interfaces we collect.
8672         (mono_class_setup_vtable): Call mono_class_init (class->parent).
8673
8674 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8675
8676         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
8677         it a real thread handle.
8678
8679         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
8680         MonoJitExceptionInfo, since each catch clause needs its own variable.
8681         
8682 2005-01-11  Dick Porter  <dick@ximian.com>
8683
8684         * image.c (mono_pe_file_open): New variant on mono_image_open()
8685         that does not set up the CLI metadata; used for FileVersionInfo so
8686         it can get the data for windows binaries too.
8687         
8688         * process.c (process_read_string_block): Don't read off the end of
8689         the StringTable block.
8690
8691         These both fix bug 70766.
8692
8693 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
8694
8695         * gc.c: set some fields to NULL at GC cleanup time.
8696         * threads.c: if we quit the main thread, call exit ().
8697
8698 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8699
8700         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
8701
8702 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
8703
8704         * threads.h, threads.c, object.c: added accessor and settor for
8705         main_thread. Handle it specially when exiting from it: wait
8706         for other foreground threads to exit.
8707
8708 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
8709
8710         * process.c, verify.c: remove some bloat.
8711
8712 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
8713
8714         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
8715         the calling convention to cdecl under win32.
8716
8717 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
8718
8719         * object.c (mono_object_get_size): New function to get the size of
8720         an object instance.
8721
8722         * profiler.c (simple_allocation): Use above.
8723
8724 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
8725
8726         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
8727         ves_icall_System_AppDomain_getRootDomain (as it's not required to
8728         get an appdomain by it's id and we can't assume the root's id is 0).
8729         * domain-internals.h: Change the function prototype to match.
8730         * icall.c: Change the icall table for AppDomain.
8731
8732 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
8733
8734         * locales.c (string_invariant_compare_char): Only compute
8735         GUnicodeTypes in the case where we need them.  Test for ordinality
8736         first and return if so.
8737
8738         From the commit:
8739
8740                 /*
8741                  * FIXME: here we must use the information from c1type and c2type
8742                  * to find out the proper collation, even on the InvariantCulture, the
8743                  * sorting is not done by computing the unicode values, but their
8744                  * actual sort order.
8745                  */
8746
8747 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8748
8749         * loader.c: for P/Invoke methods, allow the "Internal" shared
8750         library name to refer to the calling process symbol namespace.
8751
8752 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
8753
8754         * Makefile.am: Add the security manager to the build.
8755         * security-manager.c|h: New. Initialization of the security manager.
8756
8757 2005-01-07  Dick Porter  <dick@ximian.com>
8758
8759         * threads.c: 
8760         * monitor.c: Update thread state during Monitor and WaitHandle
8761         waits.  Fixes bug 71031.
8762
8763 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
8764
8765         * reflection.c (property_encode_signature): Correctly handle when the
8766         property has no methods.
8767
8768 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
8769
8770         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
8771         
8772         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
8773         fields from mb, not rmb. Fixes #71017.
8774
8775         * marshal.c (emit_ptr_to_str_conv): Add support for 
8776         ByValTStr -> string conversion. Fixes #71015.
8777
8778         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
8779
8780         * mempool.c (mono_mempool_contains_addr): New helper function.
8781
8782 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8783
8784         * metadata.c (mono_metadata_compute_size): Fix size calculation of
8785         HasSematics encoded fields.
8786         
8787         * metadata.c (mono_type_to_unmanaged): Improve error message for 
8788         invalid string marshalling.
8789
8790         * metadata.c: Fix warnings.
8791         
8792 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8793
8794         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
8795         profiler support.
8796
8797 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8798
8799         * domain.c object.c domain-internals.h: Revert part of r38077 since the
8800         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
8801         tests.
8802
8803 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
8804
8805         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
8806         so methods containing these can be AOTed.
8807
8808 2005-01-03  Martin Baulig  <martin@ximian.com>
8809
8810         * loader.c (find_method): Removed the hack for generic instances.
8811         (method_from_memberref): If our parent is a generic instance, pass
8812         its generic type definition to find_method() and then inflate the
8813         method.
8814         (mono_get_method_constrained): Pass the generic type definition to
8815         find_method() and inflate the method later.
8816
8817         * class-internals.h (MonoStats): Added `generic_class_count'.
8818
8819         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
8820         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
8821
8822         * reflection.c (mono_custom_attrs_from_params): Don't ignore
8823         generic type definitions.
8824
8825 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
8826
8827         * loader.c icall.c: Fix warnings.
8828
8829 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
8830
8831         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
8832         blittable types. Fixes #70864.
8833
8834 2004-12-29  Martin Baulig  <martin@ximian.com>
8835
8836         * icall.c
8837         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
8838
8839         * reflection.c (mono_method_get_object): Create a
8840         "System.Reflection.MonoGenericMethod" for inflated methods; don't
8841         call mono_get_inflated_method().
8842
8843         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
8844
8845 2004-12-27  Martin Baulig  <martin@ximian.com>
8846
8847         * class-internals.h (MonoMethod): Added `is_inflated' flag.
8848         (MonoMethodInflated): Added `inflated' field.
8849
8850         * class.c (mono_class_inflate_generic_method): Don't really
8851         inflate the method here; just set the `is_inflated' flag in the
8852         MonoMethod.
8853         (mono_class_get_inflated_method): Actually inflate the method here
8854         if it's not already inflated; we use the MonoMethodInflated's new
8855         `inflated' field as a cache.
8856
8857 2004-12-26  Martin Baulig  <martin@ximian.com>
8858
8859         * class.c
8860         (inflate_generic_class): Moved some code out of inflate_generic_type().
8861         (mono_class_inflate_generic_method): If we're already inflated,
8862         inflate the context and use the declaring method; ie. make sure
8863         the declaring method of an inflated method is always the generic
8864         method definition.
8865         (mono_class_create_from_typedef): Create
8866         `class->generic_container->context->gclass'.
8867
8868 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
8869
8870         * metadata-internals.h, marshal.c, reflection.c: More
8871         MonoGHashTable->GHashTable.
8872
8873         * domain-internals.h, class.c: Change MonoGHashTable's into
8874         GHashTables for some cases where no gc stuff is used
8875
8876         All users: update apis
8877
8878 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
8879
8880         * metadata.c (builtin_types): Make this `const'. Makes this get
8881         put into the shareable section.
8882         (mono_metadata_init): Casts to make gcc happy.
8883
8884 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
8885
8886         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
8887
8888 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
8889
8890         * icall.c: Added an internal call to retrieve the position and length
8891         of assembly-level declarative security attributes (RequestMinimum, 
8892         RequestOptional and RequestRefuse). This is used by the Assembly class
8893         to re-create the corresponding permission sets.
8894
8895 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
8896
8897         * marshal.c: fix the stelemref wrapper to be type correct
8898         (and faster).
8899
8900 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
8901
8902         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
8903         to do key & 0x7fffffff. Hashtable already does this. It just
8904         results in longer code.
8905
8906 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
8907
8908         * appdomain.c: Bump corlib version.
8909         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
8910         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
8911         * reflection.c|h: Add functions to get declarative security infos
8912         (blob position and length) for assemblies, classes and methods.
8913
8914 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
8915
8916         * reflection.c: sort the constant table (bug #70693).
8917
8918 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
8919
8920         * object-internals.h, threads.c, domain.c: add accessors for
8921         the MonoThread and MonoDomain tls keys.
8922
8923 2004-12-18  Martin Baulig  <martin@ximian.com>
8924
8925         * class.c (inflate_generic_type): If we're inflating a generic
8926         instance, set `ngclass->context->container = context->container';
8927         ie. the container we inflated into.
8928
8929         * metadata.c (mono_metadata_parse_generic_param): Reflect above
8930         inflate_generic_type() changes.
8931
8932 2004-12-17  Martin Baulig  <martin@ximian.com>
8933
8934         * class-internals.h
8935         (MonoGenericClass): Replaced `MonoType *generic_type' with
8936         `MonoClass *generic_class'.  Removed `dynamic_info'; if
8937         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
8938         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
8939
8940 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
8941
8942         * exception.c (mono_exception_from_token): New helper function.
8943
8944 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
8945
8946         * assembly.c (mono_assembly_load_with_partial_name): Call 
8947         mono_assembly_loaded before invoking the preload hooks. Fixes
8948         #70564.
8949
8950         * object-internals.h (MonoThread): Change culture_info and 
8951         ui_culture_info into an array.
8952
8953         * threads.c: Cache culture info objects from more than one appdomain.
8954
8955         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
8956         current UI culture.
8957
8958 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
8959
8960         * threads.h threads.c appdomain.c: Clear the culture_info field of
8961         all threads during unloading if they point to an object in the dying
8962         appdomain.
8963
8964 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
8965
8966         * culture-info.h (TextInfoEntry): New struct
8967         * object-internals.h: sync with managed
8968         * locales.c: fill the `text_info_data' field
8969         * culture-info-tables.h: update
8970
8971 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
8972
8973         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
8974         collector.
8975
8976 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
8977
8978         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
8979         (ves_icall_ModuleBuilder_getMethodToken): Ditto
8980
8981 2004-12-12  Martin Baulig  <martin@ximian.com>
8982
8983         * mono-debug-debugger.c (write_type): If we're an enum and the
8984         builtin types have already been initialized, call mono_class_init().
8985
8986 2004-12-11  Martin Baulig  <martin@ximian.com>
8987
8988         * metadata.c (mono_metadata_load_generic_params): Added
8989         `MonoGenericContainer *parent_container' argument; automatically
8990         compute `container->is_method'; pass the correct owner to
8991         get_constraints().      
8992
8993         * reflection.c (compare_genericparam): Sort the GenericParam table
8994         according to increasing owners. 
8995
8996 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
8997
8998         * profiler.c: allow disabling the default profiler.
8999
9000 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
9001
9002         * decimal.c, icall.c: allow disabling System.Decimal support.
9003
9004 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9005
9006         * reflection.c: Add support for null attribute arguments.
9007
9008 2004-12-09  Martin Baulig  <martin@ximian.com>
9009
9010         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9011         names to get rid of compiler warnings.
9012
9013 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9014
9015         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9016         mono_marshal_load_type_info (). Fixes #69625.
9017         (mono_marshal_get_ptr_to_struct): Likewise.
9018
9019 2004-12-08  Martin Baulig  <martin@ximian.com>
9020
9021         * mono-debug.h: Bumped version number to 47.
9022
9023         * mono-debug-debugger.c
9024         (mono_debugger_event_handler, mono_debugger_event): Take two
9025         guint64 arguments insteed of a gpointer and a guint32.  
9026
9027 2004-12-08  Martin Baulig  <martin@ximian.com>
9028
9029         * debug-mono-symfile.h
9030         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9031         `address' to `native_offset'.
9032
9033 2004-12-08  Martin Baulig  <martin@ximian.com>
9034
9035         * class.c (mono_class_create_from_typespec): Only inflate if we
9036         either have `context->gclass' or `context->gmethod'.
9037
9038 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9039
9040         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9041
9042         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9043
9044         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9045
9046         * reflection.c (mono_assembly_get_object): Remove the workaround put
9047         in for the release.
9048         
9049         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9050
9051         * appdomain.c: Bump corlib version.
9052
9053         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9054         be visible in other appdomains.
9055
9056 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9057
9058         * threads.c: Interlocked inc and dec for longs were messed up,
9059         use a KISS based impl for this. Fixes 70234
9060
9061 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9062
9063         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9064
9065 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9066
9067         * icall.c: fix to follow policy not to allow struct
9068         arguments in icalls.
9069
9070 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9071
9072         * process.c: make the patch that handles spaces in file paths work
9073         on mono/windows too.
9074
9075 2004-12-06  Martin Baulig  <martin@ximian.com>
9076
9077         * class.c (mono_class_create_generic): Call
9078         mono_class_setup_supertypes() if we're dynamic.
9079         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9080
9081 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9082
9083         * object-internals.h: Add new fields to MonoThread.
9084
9085         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9086
9087         * icall.c threads-types.h threads.c: Add new icalls.
9088
9089         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9090
9091         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9092         managed side.
9093
9094         * appdomain.c: Bump corlib version.
9095
9096         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9097         internal assemblies. Fixes #69181.
9098
9099 2004-12-05  Martin Baulig  <martin@ximian.com>
9100
9101         * class.c (mono_class_inflate_generic_signature): Make this a
9102         no-op if `context' is NULL or we don't have any type parameters;
9103         also copy `sentinelpos'.        
9104
9105 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9106
9107         * image.c: Add unbox_wrapper_cache.
9108
9109         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9110
9111         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9112         function generator.
9113         
9114         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9115         Fixes #70173.
9116
9117         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9118         
9119 2004-12-04  Martin Baulig  <martin@ximian.com>
9120
9121         * loader.c (mono_method_get_signature_full): New public function;
9122         like mono_method_get_signature(), but with an additional
9123         `MonoGenericContext *' argument.
9124
9125         * class.c (mono_class_inflate_generic_signature): Formerly known
9126         as inflate_generic_signature(); make this public.
9127
9128 2004-12-04  Martin Baulig  <martin@ximian.com>
9129
9130         * metadata.c
9131         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9132         instead of a `MonoGenericContainer *'.  
9133         (mono_metadata_parse_array_full): Likewise.
9134         (mono_metadata_parse_signature_full): Likewise.
9135         (mono_metadata_parse_method_signature_full): Likewise.
9136         (mono_metadata_parse_generic_inst): Likewise.
9137         (mono_metadata_parse_generic_param): Likewise.
9138         (mono_metadata_parse_mh_full): Likewise.
9139         (mono_type_create_from_typespec_full): Likewise.
9140
9141 2004-12-03  Martin Baulig  <martin@ximian.com>
9142
9143         * class-internals.h (MonoGenericContainer): Replaced the
9144         `MonoGenericContext * pointer with a `MonoGenericContext'
9145         structure and made it the first element.
9146
9147 2004-12-03  Martin Baulig  <martin@ximian.com>
9148
9149         * class.c
9150         (inflate_generic_type): Set the `context->container' when creating
9151         a new MonoGenericContext.
9152         (mono_class_inflate_generic_method): Likewise.
9153         (mono_class_create_from_typespec): Just use `context->container'
9154         to get the container.
9155
9156         * loader.c (method_from_methodspec): Set `context->parent' from
9157         `context->container' - and if that's a method container, use its
9158         parent.  Also set the `context->container' when creating a new
9159         MonoGenericContext.
9160         (mono_get_method_from_token): Use just `context->container' to get
9161         the container.
9162
9163         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9164         `gclass->context->container'.
9165
9166         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9167         the `context->container' when creating a new MonoGenericContext.
9168
9169 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9170
9171         * reflection.c (compare_genericparam): Sort params with identical
9172         owner by their number. Fixes gen-111 on sparc.
9173
9174 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9175
9176         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9177         around the domain changes.
9178
9179         * appdomain.c (mono_domain_unload): Handle the case when the thread
9180         calling Unload is itself being aborted during unloading. Fixes #70022.
9181
9182         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9183
9184         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9185         checkpoint_func as an icall so it gets a wrapper.
9186         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9187         in the cross-appdomain wrappers too.
9188
9189         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9190
9191         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9192
9193         * reflection.c: Fix some memory leaks.
9194         
9195 2004-12-02  Martin Baulig  <martin@ximian.com>
9196
9197         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9198
9199         * metadata.c (generic_class_cache): New static hashtable.
9200         (mono_metadata_lookup_generic_class): New public method.
9201
9202 2004-12-02  Martin Baulig  <martin@ximian.com>
9203
9204         * class.c (mono_class_create_from_typedef): Call
9205         mono_class_setup_parent() and mono_class_create_mono_type() before
9206         parsing the interfaces.
9207
9208 2004-12-02  Martin Baulig  <martin@ximian.com>
9209
9210         * metadata.c (generic_inst_cache): New static hashtable.
9211         (mono_metadata_lookup_generic_inst): New public function.
9212         (mono_metadata_inflate_generic_inst): New public function.
9213         (mono_metadata_parse_generic_inst): New public function.
9214         (do_mono_metadata_parse_generic_class): Use the new
9215         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9216         since this'll also use the cache.
9217
9218         * reflection.c (mono_reflection_bind_generic_method_parameters):
9219         Use mono_metadata_lookup_generic_inst() to use the new cache.
9220
9221         * class.c (inflate_mono_type): Use
9222         mono_metadata_inflate_generic_inst() to inflate a generic
9223         instance; this'll also use the new cache.
9224
9225         * loader.c (method_from_methodspec): Use
9226         mono_metadata_parse_generic_inst() and
9227         mono_metadata_inflate_generic_inst() rather than parsing it
9228         manually, so we can use the new cache.
9229
9230 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9231
9232         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9233         the wait times out.
9234
9235 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9236
9237         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9238         iter->args based on whether parameters are passed in registers (i.e.
9239         MONO_ARCH_REGPARMS is defined)
9240
9241 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9242
9243         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9244         the exception message. Fixes #70070.
9245         (method_from_methodspec): Fix warnings.
9246
9247 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9248
9249         * process.c: (complete_path) return the path quoted
9250
9251 2004-12-01  Martin Baulig  <martin@ximian.com>
9252
9253         * class-internals.h (MonoGenericInst): New structure.
9254         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9255         `is_open' with `MonoGenericInst *inst'.
9256         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9257         `is_open' with `MonoGenericInst *inst'.
9258
9259 2004-11-30  Martin Baulig  <martin@ximian.com>
9260
9261         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9262
9263         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9264         to `generic_class_cache'.
9265
9266         * metadata.c
9267         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9268         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9269         (mono_generic_inst_is_valuetype): Renamed to
9270         mono_generic_class_is_valuetype().
9271
9272         * class-internals.h
9273         (MonoGenericInst): Renamed to MonoGenericClass.
9274         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9275         (MonoClass): Renamed `generic_inst' to `generic_class'.
9276         (MonoGenericContext): Renamed `ginst' to `gclass'.
9277
9278         * object-internals.h
9279         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9280
9281         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9282         mono_reflection_generic_class_initialize().
9283
9284         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9285         now known as "System.Reflection.MonoGenericClass".
9286         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9287
9288 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9289
9290         * class-internals.h: Added a flag field to MonoClass to cache the
9291         declarative security attributes actions associated with the class.
9292         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9293         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9294         applicable to the JITted method.
9295         * reflection.c|h: Added functions to extract (as flags) which security
9296         actions are available (declaratively) for a method, class or assembly.
9297         * metadata.c|h: Added functions to search the declarative security
9298         table in the metadata.
9299         
9300 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9301
9302         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9303         EXPORTEDTYPES are already in the class name cache, so there is no
9304         need to add extra code here to look at them. Just removes a bit of
9305         cruft.
9306
9307         (ves_icall_System_Environment_get_TickCount): No need for #if
9308         WINDOWS. We already have the code in io-layer.
9309
9310 2004-11-28  Martin Baulig  <martin@ximian.com>
9311
9312         * loader.c
9313         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9314         Fixes gen-112.cs.
9315
9316 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9317
9318         * assembly.c (do_mono_assembly_open): Instead of having a
9319         conditional WITH_BUNDLE, incorporate support for bundles here, by
9320         having a global `bundles' variable holding a pointer to the actual
9321         bundles. 
9322
9323         (mono_register_bundled_assemblies): New API call used by the
9324         bundle code. 
9325
9326         See mkbundle.1 for details.
9327         
9328 2004-11-27  Martin Baulig  <martin@ximian.com>
9329
9330         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9331         the vtable for generic methods.
9332
9333 2004-11-26  Martin Baulig  <martin@ximian.com>
9334
9335         * metadata.c
9336         (mono_metadata_generic_method_hash): New public function.
9337         (mono_metadata_generic_method_equal): Likewise.
9338
9339         * class-internals.h
9340         (MonoGenericContainer): Added `GHashTable *method_hash'.
9341
9342         * reflection.c (ReflectionMethodBuilder): Added
9343         `MonoGenericContainer *generic_container'.
9344         (reflection_methodbuilder_to_mono_method): Don't create a new
9345         MonoGenericContainer each time we're called.
9346         (mono_reflection_bind_generic_method_parameters): Use
9347         `container->method_hash' to cache the results so we don't create a
9348         different method if we're called several times with the same
9349         arguments.
9350
9351         * loader.c (method_from_methodspec): Use the new
9352         `container->method_hash' here, too.
9353
9354 2004-11-26  Martin Baulig  <martin@ximian.com>
9355
9356         * class.c (inflate_generic_signature): Correctly compute
9357         `res->has_type_parameters'.
9358         (mono_class_vtable): Use the `has_type_parameters' flag to
9359         determine whether we're a generic method.
9360
9361         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9362
9363 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9364
9365         * object.c (mono_runtime_run_main): Fix a small memory leak.
9366
9367 2004-11-25  Martin Baulig  <martin@ximian.com>
9368
9369         * class.c (set_generic_param_owner): Fixed the loop.
9370
9371 2004-11-25  Martin Baulig  <martin@ximian.com>
9372
9373         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9374         generic methods.
9375
9376 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9377
9378         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9379         names. Fixes #69787.
9380
9381 2004-11-24  Martin Baulig  <martin@ximian.com>
9382
9383         * class.c (mono_class_create_generic_2): If we don't have a
9384         `ginst->parent', inflate `gklass->parent' to get our parent.
9385
9386 2004-11-24  Martin Baulig  <martin@ximian.com>
9387
9388         * reflection.c (compare_genericparam): Correctly sort the
9389         GenericParam table; fixes #69779.
9390
9391 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9392
9393         * reflection.c: When writing a PE file, don't create a huge
9394         buffer in memory. Just write the arrays we have to the file.
9395         This reduces memory usage.
9396
9397         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9398         globally.
9399
9400 2004-11-17  Martin Baulig  <martin@ximian.com>
9401
9402         * class.c (mono_class_init): Don't setup `class->parent' for
9403         dynamic instances; moved this to mono_class_generic_2().
9404         (mono_class_create_generic): Also set `klass->inited' for dynamic
9405         generic instances.
9406         (mono_class_create_generic_2): Don't do anything for dynamic
9407         generic instances.  Set `klass->parent' here and also call
9408         mono_class_setup_parent() here. 
9409
9410         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9411         `MonoType *parent' argument; set `ginst->parent' before calling
9412         mono_class_create_generic_2(), so we set the correct parent.
9413
9414 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9415
9416         * reflection.c: allow getting attributes from ModuleBuilder
9417         (used by ikvm).
9418
9419 2004-11-17  Martin Baulig  <martin@ximian.com>
9420
9421         * class.c (mono_class_create_from_typedef): If a type parameter is
9422         inherited from an outer class, set its owner to that class.
9423
9424 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9425
9426         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9427           for (int*) written size. This fixes bug #69592.
9428
9429 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9430
9431         * icall.c: Added IsAuthenticodePresnet internal call.
9432         * image.c|h: New function that check a MonoImage for an Authenticode
9433         signature in the certificate PE data directory.
9434         * security.c|h: New internal call to ask the runtime if an 
9435         Authenticode signature seems referenced in the PE header.
9436
9437 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9438
9439         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9440
9441         * reflection.c (mono_image_create_pefile): Free the assembly streams
9442         after writing out the assembly file.
9443
9444         * object.c (mono_runtime_run_main): Fix small memory leak.
9445
9446         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9447         property access modifiers. Fixes #69389.
9448
9449 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9450
9451         * domain.c, object.c, object-internals.h, domain-internals.h,
9452         object.h, marshal.c: keep dynamic code info per domain.
9453
9454 2004-11-15  Martin Baulig  <martin@ximian.com>
9455
9456         * class.c (mono_type_get_name_recurse): Put type arguments in
9457         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9458         see bug #68387.
9459
9460 2004-11-15  Martin Baulig  <martin@ximian.com>
9461
9462         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9463         (mono_class_setup_vtable): When computing `the_cname' for a
9464         generic instance, don't include the namespace since we'd otherwise
9465         add it twice.
9466
9467 2004-11-15  Martin Baulig  <martin@ximian.com>
9468
9469         * class.c (mono_class_create_generic): Changed return type to void.
9470         (mono_class_create_generic_2): New public function; setup
9471         `class->method', `class->field' and `class->interfaces' here
9472         instead of in mono_class_init().
9473
9474         * class.h (mono_class_create_generic): Moved to class-internals.h.
9475
9476 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9477
9478         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9479         rather than writing to memory, write to this file. Right now,
9480         we are just writting into a buffer, and copying that. However
9481         we can avoid the buffer later.
9482
9483         (mono_dynamic_stream_reset): new function
9484
9485         * icall.c, object-internals.h: update for the above.
9486
9487 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9488
9489         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
9490         have been using gc'd memory. First it is slower, unlikely
9491         the comment in the source code said, secondly, it increases
9492         our footprint to do it in the gc.
9493
9494         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
9495         the method so that it does not have to copy to managed code.
9496
9497 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
9498
9499         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
9500
9501 2004-11-12  Martin Baulig  <martin@localhost>
9502
9503         * reflection.c (mono_image_create_token): Allow generic method
9504         definitions here, since they may appear in an `.override'; see
9505         gen-98/gen-99 for an example.
9506
9507 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
9508
9509         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
9510         #69365.
9511
9512         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
9513         descriptive.
9514
9515 2004-11-11  Martin Baulig  <martin@ximian.com>
9516
9517         * class.c (mono_class_setup_vtable): In an explicit interface
9518         implementation, the method name now includes the arity.
9519
9520 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
9521
9522         * object.c (mono_array_full_copy): Fix warning.
9523
9524 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
9525
9526         * appdomain.c: Removed look_for_method_by_name(). Use the new method
9527         mono_class_get_method_from_name() instead.
9528         
9529         * class-internals.h: Added two new types of wrappers. 
9530         Added MonoRemotingTarget enum. Added new trampoline function type, which
9531         takes an additional MonoRemotingTarget value as parameter, so it is
9532         possible to request a trampoline for a specific target.
9533         
9534         * class.c: Added new mono_class_get_method_from_name() method.
9535         
9536         * class.h: In MonoRemoteClass, we can have now to vtables, one for
9537         general remoting sinks and one specific for cross domain calls.
9538         
9539         * debug-helpers.c: Added new wrapper names.
9540         
9541         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
9542         of a remote class.
9543         
9544         * image.c: Porperly delete value objects form the remoting invoke hashtable.
9545         
9546         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
9547         with several other methods (mono_marshal_get_xappdomain_dispatch,
9548         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
9549         and others) can generate a fast remoting wrapper for cross domain calls.
9550         More information can be found in docs/remoting.
9551         Other changes: Removed mono_find_method_by_name, and used
9552         mono_class_get_method_from_name instead.
9553         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
9554         is stored in the remoting invoke hashtable.
9555         
9556         * marshal.h: published the new method for getting the xdomain wrapper,
9557         and also added a method for getting the adequate wrapper for a given
9558         method and target.
9559         
9560         * object-internals.h, object.c: Added a couple of methods for capying and
9561         cloning arrays.
9562         Modified mono_install_remoting_trampoline, which takes the new remoting
9563         trampoline that has a remoting target as parameter.
9564         mono_class_proxy_vtable now also takes a remoting target as parameter, and
9565         will return the most suitable vtable for the target.
9566         Added mono_remote_class_vtable, which returns the vtable of a remote class
9567         (which can be the normal remoting vtable or the xdomain vtable).
9568         
9569         * threads.c: the xdomain invoke and dispatch wrappers must also be
9570         protected against interruptions.
9571
9572 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9573
9574         * icall.c: use memmove in BlockCopyInternal when the source and
9575         destination arrays are the same.
9576
9577 2004-11-09  Martin Baulig  <martin@ximian.com>
9578
9579         * class-internals.h (MonoGenericContainer): Removed `method' and
9580         `signature', replaced them with `is_method' and `is_signature'
9581         flags.  Added `context'.
9582
9583         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
9584         instead of a `MonoGenericContainer *'.
9585
9586         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
9587         for dynamic type parameters.
9588         (mono_metadata_load_generic_params): Setup `container->context'.
9589
9590         * reflection.c (mono_reflection_setup_generic_class): Setup
9591         `tb->generic_container->context'.
9592         (do_mono_reflection_bind_generic_parameters): Use
9593         mono_class_inflate_generic_type() to correctly inflate types,
9594         rather than using our own hack just for MONO_TYPE_VAR.
9595
9596 2004-11-09  Martin Baulig  <martin@ximian.com>
9597
9598         * class.c (mono_class_inflate_generic_method): Small fix; don't
9599         crash here.
9600
9601         * icall.c
9602         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
9603         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
9604         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
9605         (ves_icall_Type_BindGenericParameters): Likewise.
9606         (ves_icall_Type_get_IsGenericInstance): Likewise.
9607         (ves_icall_Type_GetGenericParameterPosition): Likewise.
9608         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
9609         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
9610         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9611
9612 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
9613
9614         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
9615         assembly versions and public key tokens. Fixes #69113.
9616
9617 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
9618
9619         * metadata.c: fix bug introduced with the type cache changes
9620         on 2004-11-06.
9621
9622 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
9623
9624         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
9625         the MonoClass pointer instead of the token in exception clauses.
9626         * reflection.c: updates for the above and make the code not depend
9627         on the structure of MonoExceptionClause.
9628
9629 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
9630
9631         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9632         Add support for dynamic assemblies. Fixes #69114.
9633
9634         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
9635
9636 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
9637
9638         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
9639         since most only those methods use it. the code member of
9640         MonoMethodPInvoke was dead, so that can be removed too. Also,
9641         remove inline_count (again, not used), and move slot so that it
9642         can share bits with some other flags. This saves 8 bytes in the
9643         structure and gives us about 50 kb back for mcs helloworld.cs
9644
9645         * *.[ch]: Do naming changes for the above.
9646
9647         * loader.c (mono_method_get_header): Lazily init the header
9648         on first access.
9649         (mono_get_method_from_token): don't init the header here
9650         (mono_free_method): the header may never be allocated
9651
9652         Overall, this saves 150 kb of unmanaged allocations
9653         for mcs helloworld.cs. That accounts for 10% of the unmanaged
9654         memory at runtime.
9655         
9656         * loader.c, loader.h (mono_method_get_header): new accessor.
9657
9658         * *.[ch]: use the above method. Prepares us to lazily load
9659         the header.
9660
9661         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
9662         three warnings, which are actual bugs (see 69206).
9663
9664         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
9665         unused. Saves a cool 4 bytes / method.
9666
9667 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
9668
9669         * metadata.c (builtin_types): Add types for System.Object here.
9670         (mono_metadata_parse_type_full): Cache MonoType*'s that are
9671         for a class or valuetype from klass->this_arg or klass->byval_arg.
9672
9673         On mcs for a hello world, this gets us down from 21836 MonoType's
9674         to 14560.
9675
9676         (mono_metadata_free_type): Account for the above change.
9677
9678 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
9679
9680         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
9681         exception instead of asserting if name is null.
9682         (ves_icall_System_AppDomain_GetData): Ditto.
9683
9684 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
9685
9686         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
9687         EnumBuilder.
9688
9689         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
9690         Return NULL when the domain does not have entry_assembly set.
9691
9692         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
9693         Add a 'resource_modules' argument.
9694         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
9695
9696         * reflection.c (mono_reflection_create_runtime_class): Move setting
9697         of wastypebuilder here, so mono_get_type_object () returns a MonoType
9698         for enums too.
9699
9700         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
9701         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
9702         Throw an ArgumentNullException if 'ptr' is null.
9703
9704         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
9705         assemblies here. Fixes #69020.
9706
9707 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
9708
9709         * reflection.c (build_compressed_metadata): Fix the previous patch for
9710         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
9711         the stack.
9712
9713 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
9714
9715         * assembly.c (mono_assembly_names_equal): Allow a match if one of
9716         the cultures is false. Fixes #69090.
9717
9718         * reflection.c (build_compressed_metadata): Fix invalid memory read 
9719         detected by valgrind.
9720         
9721         * reflection.c (mono_reflection_get_type): Avoid triggering a 
9722         TypeResolve multiple times for the same type. Fixes #65577.
9723
9724 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
9725
9726         * marshal.c: Avoid using ldftn to call managed functions. It is
9727         much slower than just a call.
9728
9729         * reflection.c (mono_module_get_object): free the basename we
9730         allocate here from glib.
9731         
9732         * reflection.c (ensure_runtime_vtable): make sure to free
9733         overrides.  Also, we were allocating an array of MonoMethod not an
9734         array of MonoMethod*.
9735
9736         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
9737
9738         * image.c (mono_image_close): free image->guid here.
9739
9740 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
9741
9742         * reflection.c: Fix some spec conformance issues with the PE file
9743         structures so mcs compiled apps run on the Net 2.0 beta.
9744
9745 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
9746
9747         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
9748         Implement this. Fixes #67264.
9749
9750         * debug-helpers.h debug-helpers.c marshal.c: Move 
9751         mono_find_method_by_name to debug-helpers.c.
9752
9753 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
9754
9755         * object.c (mono_release_type_locks): type_initialization_hash is
9756         a GHashTable.
9757
9758         * reflection.c object.c object-internals.h: Fix warnings.
9759
9760         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
9761         without accessors. Fixes #61561.
9762
9763         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
9764         application base from the root domain if not set. Fixes #65641.
9765         (mono_runtime_init): Fix warning.
9766
9767 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9768
9769         * appdomain.c: call mono_thread_pool_init.
9770         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
9771         of worker threads based on the number of CPUs and the environment
9772         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
9773         for non-windows (windows) systems.
9774
9775 2004-10-27  Chris Toshok  <toshok@ximian.com>
9776
9777         * mono-debug-debugger.c (write_class): don't call mono_class_init
9778         here, as even with the check for (!klass->init_pending), we get
9779         into a situation where we're hitting cycles in class
9780         initialization.  Fixes #68816.
9781
9782 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
9783
9784         * image.c: Avoid overwriting values in the loaded_images_hash when an
9785         assembly is loaded multiple times. Fixes #61152.
9786
9787         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
9788         so multiple satellite assemblies for the same name can be loaded.
9789         Fixes #68259.
9790
9791         * mono_domain_assembly_preload: Actually return the loaded assembly, 
9792         not NULL.
9793
9794         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
9795         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
9796
9797         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
9798         pending finalizers are not invoked after the appdomain has been 
9799         unloaded. Fixes #67862.
9800
9801 2004-10-22  Martin Baulig  <martin@ximian.com>
9802
9803         * mono-debug-debugger.c
9804         (mono_debugger_runtime_invoke): Don't box valuetypes.
9805
9806 2004-10-22  Chris Toshok  <toshok@ximian.com>
9807
9808         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
9809         don't hide private methods.
9810
9811 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
9812
9813         * icall.c: Allows the runtime to "share" (when known) the public key
9814         token of an assembly. This avoid the need to recalculate the token 
9815         (from the public key) in managed code.
9816
9817 2004-10-21  Chris Toshok  <toshok@ximian.com>
9818
9819         * debug-helpers.c (append_class_name): argh, revert last patch.
9820         
9821 2004-10-21  Chris Toshok  <toshok@ximian.com>
9822
9823         * debug-helpers.c (append_class_name): use '+' as the delimiter,
9824         not '/', so that it matches what the debugger uses to look up
9825         methods.
9826
9827 2004-10-21  Martin Baulig  <martin@ximian.com>
9828
9829         * mono-debug-debugger.c (mono_debugger_throw_exception): New
9830         public method; this is called each time an exception is thrown and
9831         allows the debugger to use exception catch points.
9832
9833 2004-10-21  Martin Baulig  <martin@ximian.com>
9834
9835         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
9836         the stack pointer and the exception object in some struct and pass
9837         that to the debugger.
9838
9839 2004-10-21  Chris Toshok  <toshok@ximian.com>
9840
9841         * mono-debug-debugger.c (do_write_class): add instance/static
9842         event support.  We don't expose "raise" or "other" yet.
9843         (event_is_static): new method.
9844
9845 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
9846
9847         * mono-debug-debugger.c
9848         (mono_debugger_handle_exception): Remove
9849         bogus return value for fussy compilers.
9850
9851 2004-10-20  Martin Baulig  <martin@ximian.com>
9852
9853         * mono-debug-debugger.c
9854         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
9855         (mono_debugger_handled_exception): Likewise.
9856
9857 2004-10-20  Martin Baulig  <martin@ximian.com>
9858
9859         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9860         MONO_DEBUGGER_EVENT_EXCEPTION.
9861
9862         * mono-debug-debugger.c (mono_debugger_handle_exception): New
9863         public function to send the debugger a notification for an
9864         exception and inform it about a catch/finally clause.
9865
9866 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
9867
9868         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
9869         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
9870         fix 2.95 build. 
9871
9872         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
9873
9874 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
9875
9876         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
9877         marshalled as [In,Out]. Fixes #58325.
9878
9879 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
9880
9881         * reflection.c (mono_method_body_get_object): Implement some fields.
9882
9883 2004-10-12  Martin Baulig  <martin@ximian.com>
9884
9885         * reflection.c (mono_reflection_bind_generic_parameters): Small
9886         fix, correctly retrieve our parent from a generic instance.
9887
9888 2004-10-12  Martin Baulig  <martin@ximian.com>
9889
9890         * metadata.c (mono_metadata_generic_param_equal): We always have
9891         an owner.
9892
9893         * class.c
9894         (mono_class_from_generic_parameter): We need to have an owner.
9895         (my_mono_class_from_generic_parameter): Likewise.
9896
9897         * reflection.c (mono_reflection_setup_generic_class): Renamed to
9898         mono_reflection_create_generic_class() and added a new
9899         mono_reflection_setup_generic_class().  
9900         (mono_reflection_initialize_generic_param): If we're a nested
9901         generic type and inherited from the containing class, set our
9902         owner to the outer class.
9903
9904 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
9905
9906         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
9907
9908         * reflection.c (mono_method_body_get_object): New function to create
9909         a MethodBody object.
9910
9911         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
9912
9913 2004-10-11  Martin Baulig  <martin@ximian.com>
9914
9915         * metadata.c (_mono_metadata_type_equal): Renamed to
9916         do_mono_metadata_type_equal() and made static.
9917
9918 2004-10-11  Martin Baulig  <martin@ximian.com>
9919
9920         * appdomain.c: Bump corlib version number to 28.
9921
9922 2004-10-10  Martin Baulig  <martin@ximian.com>
9923
9924         * class-internals.h
9925         (MonoGenericInst): Added `MonoGenericContainer *container'.
9926         (MonoGenericMethod): Likewise.
9927         (MonoGenericContext): Likewise.
9928         (MonoGenericParam): Added `MonoGenericContainer *owner'.
9929
9930         * metadata.c
9931         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
9932         (do_mono_metadata_parse_generic_inst): Likewise.
9933         (mono_metadata_parse_type_full): New public method.  This is the actual
9934         mono_metadata_parse_type() implementation - with an additional
9935         `MonoGenericContainer *' argument.
9936         (mono_metadata_parse_array_full): Likewise.
9937         (mono_metadata_parse_signature_full): Likewise.
9938         (mono_metadata_parse_method_signature_full): Likewise.
9939         (mono_metadata_parse_mh_full): Likewise.
9940         (mono_type_create_from_typespec): Likewise.
9941         (mono_metadata_interfaces_from_typedef_full): New public method;
9942         this is similar to the other _full() methods, but we take a
9943         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
9944         (mono_metadata_parse_generic_param): Take an additional
9945         `MonoGenericContainer *' argument and lookup the MonoGenericParam
9946         from that container.
9947         (mono_metadata_generic_param_equal): New static method to compare
9948         two type parameters.
9949         (_mono_metadata_type_equal): New static method; takes an
9950         additional `gboolean signature_only' argument - if true, we don't
9951         compare the owners of generic parameters.
9952         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
9953         with a TRUE argument - do a signature-only comparision.
9954
9955         * loader.c: Use the new _full() methods and pass the
9956         MonoGenericContainer to them.
9957
9958         * object-internals.h (MonoReflectionTypeBuilder): Added
9959         `MonoGenericContainer *generic_container' field.
9960         (MonoReflectionMethodBuilder): Likewise.
9961
9962 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
9963
9964         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
9965         case initial images of dynamic assemblies.
9966
9967         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
9968
9969         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
9970
9971         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
9972         length of event->other array.
9973         (typebuilder_setup_events): Ditto.
9974
9975         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
9976         'assembly_by_name' and add an 'assemblies' list.
9977
9978         * assembly.h assembly.c: Add a new search hook for determining whenever
9979         an assembly is already loaded. Use this instead of searching in the
9980         loaded_assemblies list.
9981
9982         * domain.c appdomain.c: Implement the new search hook so loaded 
9983         assemblies are now scoped by appdomain. Fixes #67727.
9984
9985 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
9986
9987         * threads.c (mono_thread_attach): Initialize synch_lock field so
9988         mono_thread_detach works again.
9989
9990         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
9991         'lib' too. Fixes #63130.
9992
9993 2004-10-06  Jackson Harper  <jackson@ximian.com>
9994
9995         * culture-info-tables.h: regenerated.
9996
9997 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
9998
9999         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
10000         implemented by other interfaces in the result. Fixes #65764.
10001         
10002         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10003         Handle unloadable modules without crashing.
10004
10005         * image.c (load_modules): Revert the previous patch since modules must
10006         have a fixed index inside the array.
10007         
10008         * image.c (load_modules): Don't include native modules in the modules
10009         array.
10010
10011 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10012
10013         * reflection.h: Add param_defaults field.
10014
10015         * reflection.c: Add support for parameter defaults in dynamic methods.
10016         Fixes #64595.
10017
10018         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10019         an empty string when a type has no namespace. Fixes #64230.
10020
10021 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10022
10023         * tabledefs.h: Added "internal" security actions to support non-CAS
10024         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10025         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10026
10027 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10028
10029         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10030         constructor of abstract class. Fixes #61689.
10031
10032 2004-10-04  Martin Baulig  <martin@ximian.com>
10033
10034         * class-internals.h (MonoGenericContainer): New type.
10035         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10036         `MonoGenericContainer *generic_container'.
10037         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10038         `MonoGenericContainer *generic_container'.
10039
10040         * metadata.c (mono_metadata_load_generic_params): Return a
10041         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10042         removed the `num' argument.
10043
10044 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10045
10046         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10047         for dynamic images.
10048
10049         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10050         machine fields.
10051
10052         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10053
10054         * reflection.c: Save pe_kind and machine values into the generated
10055         image file.
10056
10057         * appdomain.c: Bump corlib version number.
10058
10059         * object-internals.h: Reorganize layout of LocalBuilder.
10060
10061         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10062         New helper function.
10063
10064         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10065         created MonoType for dynamic types. Fixes #66180.
10066
10067 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10068
10069         * threadpool.c: the ares hashtable needs a critical section around it.
10070         this prevents some nasty segfaults
10071
10072 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10073
10074         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10075         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10076         bug 67324).
10077         
10078 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10079
10080         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10081         
10082 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10083
10084         * image.c: Always canonicalize image file names, to avoid loading
10085         the same assembly twice when referenced using a relative path.
10086
10087 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10088
10089         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10090
10091         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10092
10093         * marshal.c: Fix warnings.
10094
10095 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10096
10097         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10098         attempting to marshal the delegate_trampoline as the method_addr.
10099         This patch has a static hashtable of marshalled delegates so that 
10100         we can map delegate_trampoline addresses back to delegates.  This
10101         allows a delegate passed to managed code to be passed back into native
10102         code.  Fixes #67039
10103
10104 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10105
10106         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10107
10108         * reflection.c (method_encode_code): Align method headers properly.
10109         Fixes #66025.
10110
10111 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10112
10113         * marshal.c: In the runtime invoke wrapper, reset the abort
10114         exception if it is cached. This avoids the automatic rethrowal of 
10115         the exception after the catch of the wrapper. Also check for pending
10116         interruptions before calling the managed method. This is done using
10117         the new method emit_thread_force_interrupt_checkpoint, since the
10118         normal checkpoint method is ignored when running the invoke wrapper.
10119         * object.c: If the abort exception is rethrown, set the abort_exc
10120         field of the thread, so it will be rethrown aftere every catch.
10121         * threadpool.c: Only run an interruption checkpoint if what has been
10122         requested is a stop of the thread (aborts will be ignored).
10123         * threads.c: By default, a thread will now never be interrumped while
10124         running the runtime invoke wrapper (this ensures that runtime_invoke
10125         will always return to the caller if an exception pointer is provided).
10126         There is a new special method mono_thread_force_interruption_checkpoint()
10127         to force an interruption checkpoint even if running a protected
10128         wrapper, which is used by the same runtime invoke wrapper to do a check
10129         at a safe point.
10130
10131 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10132
10133         * object.c, object-internals.h: Implemented mono_release_type_locks,
10134         which releases the cctor locks held by a thread.
10135         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10136         by a thread. Added mono_thread_exit() method to be used to safely stop
10137         a thread.
10138
10139 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10140
10141         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10142         Move null check before dereference.  Avoid indexing beyond the end
10143         of the 'modules' array.
10144
10145 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10146
10147         * metadata-internals.h (MonoImage): Add module_count field.
10148         * image.c (load_modules): Set image->module_count.
10149         (mono_image_load_file_for_image): Use image->module_count.
10150         * reflection.c (mono_image_load_module): Append to image->modules array 
10151         of dynamic assembly.
10152         (mono_module_get_object): Fix loop to actually increment index.
10153         Use image->module_count.
10154         * assembly.c (mono_assembly_load_references): Use image->module_count.
10155         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10156         Likewise.
10157
10158 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10159
10160         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10161         Avoid assert on generic types.
10162
10163 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10164
10165         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10166
10167         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10168
10169         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10170         function to convert a MarshalSpec structure to its managed counterpart.
10171
10172         * reflection.c: Fix warnings.
10173         
10174         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10175         field.
10176
10177         * icall.c (mono_create_icall_signature): Fix build.
10178
10179 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10180
10181         * icall.c: Add MakePointType icall.
10182
10183         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10184         warnings.
10185
10186 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10187
10188         * threadpool.c: reuse allocated slots in the queue.
10189
10190 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10191
10192         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10193
10194         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10195
10196         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10197         previous change.
10198
10199         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10200         ThrowOnUnmappableChar.
10201
10202         * icall.c (ves_icall_Type_GetPacking): New icall.
10203
10204 2004-09-24  Martin Baulig  <martin@ximian.com>
10205
10206         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10207
10208 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10209
10210         * appdomain.c:
10211         (mono_domain_set): allow setting a domain that is being unloaded.
10212         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10213         being unloaded.
10214
10215 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10216
10217         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10218         the GetCustomAttributes icall.
10219
10220 2004-09-23  Martin Baulig  <martin@ximian.com>
10221
10222         * object-internals.h (MonoReflectionGenericParam): Replaced
10223         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10224         with `guint32 attrs'.
10225
10226 2004-09-23  Martin Baulig  <martin@ximian.com>
10227
10228         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10229
10230 2004-09-23  Martin Baulig  <martin@ximian.com>
10231
10232         * object-internals.h (GenericParameterAttributes): New enum.
10233
10234 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10235
10236         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10237         
10238         * class.c (init_events): Fill out event->other field.
10239
10240         * class.c: Fix warnings.
10241
10242         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10243
10244 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10245
10246         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10247         walk which doesn't supply the IL offset.
10248
10249 2004-09-22  Martin Baulig  <martin@ximian.com>
10250
10251         * reflection.c (mono_reflection_setup_internal_class): If we're
10252         System.ValueType, System.Object or System.Enum, set
10253         `klass->instance_size' and create the vtable.
10254         (mono_reflection_create_internal_class): If we're an enum type,
10255         get the base class from our current corlib.
10256
10257 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10258
10259         * reflection.h (MonoResolveTokenError): New type.
10260
10261         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10262         icall.
10263
10264         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10265
10266 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10267
10268         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10269         Support also calling constructors, but only for already allocated objects.
10270
10271 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10272
10273         * reflection.c (type_get_qualified_name): If the klass is null
10274         return the typename to avoid a NullRefEx.
10275         (encode_cattr_value): Get the qualified name of the boxed type,
10276         not the underlying enumtype.  Fixes #62984.
10277
10278 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10279
10280         * marshal.c: Fix problems with previous checkin.
10281
10282 2004-09-21    <vargaz@freemail.hu>
10283
10284         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10285         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10286
10287         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10288
10289 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10290
10291         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10292         should only return a type for pointers, arrays, and passbyref types.
10293         Fixes bug #63841.
10294
10295 2004-09-21  Martin Baulig  <martin@ximian.com>
10296
10297         * domain.c (mono_debugger_check_runtime_version): New public
10298         function.
10299
10300         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10301
10302 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10303
10304         * reflection.c: Added missing sort to the declarative security 
10305         attributes table. MS implementation stops seeing the attributes if the
10306         token number regress in the table (as shown by ildasm and permview).
10307
10308 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10309
10310         * object-internals.h (MonoReflectionModule): Add 'token' field.
10311         
10312         * reflection.c (mono_reflection_get_token): Add support for Module
10313         and Assembly.
10314         (mono_module_get_object): Set 'token' field.
10315         (mono_module_file_get_object): Set 'token' field.
10316
10317         * icall.c: Add new Assembly and Module icalls.
10318
10319         * appdomain.c: Bump corlib version.
10320
10321 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10322
10323         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10324         tokens of metadata objects.
10325
10326         * reflection.h reflection.c (mono_reflection_get_token): New function
10327         to obtain the token of a metadata object.
10328
10329         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10330
10331 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10332
10333         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10334         
10335         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10336
10337 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10338
10339         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10340         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10341         AssemblyBuilder to access the permissions set in the class lib.
10342         * reflection.c: Added security attributes encoding step in 
10343         mono_image_build_metadata.
10344         * tabledefs.h: Added new security actions defined in 2.0:
10345         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10346
10347 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10348
10349         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10350         macro parameter.
10351
10352 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10353  
10354         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10355           finalized. There where random SIGSEVs at program termination, when
10356           an object being finalized was trying to do a string comparison and
10357           the current culture was already finalized.
10358  
10359 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10360
10361         * threads.c: call thread_cleanup before finishing the thread if we get
10362         there.
10363
10364 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10365
10366         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10367         assemblies from the parent. Fixes #65665.
10368
10369 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10370
10371         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10372         modifiers.
10373
10374 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10375
10376         * reflection.h: add prototype for mono_get_dbnull_object
10377         * reflection.c: add prototypes for get_default_param_value_blobs 
10378         and mono_get_object_from_blob for fussier compilers
10379
10380 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10381  
10382         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10383         false deadlock checks in class initialization.
10384  
10385 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10386
10387         * image.c (mono_image_addref): Fix comment.
10388
10389         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10390         possible.
10391
10392 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10393
10394         * reflection.c (mono_param_get_objects): Modified to return
10395         ParameterInfo.DefaultValue object.
10396
10397         (get_default_param_value_blobs):
10398         (mono_get_object_from_blob):
10399         (mono_get_dbnull_object): New helper routines. 
10400
10401         * object.c (mono_get_constant_value_from_blob): New helper routine
10402         carved out from get_default_field_value ()
10403
10404         * object-internals.h (mono_get_constant_value_from_blob): Added
10405         function declaration.
10406
10407 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10408
10409         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10410         referenced assemblies. Fixes #62135.
10411
10412         * exception.h exception.c (mono_get_exception_file_not_found2): New
10413         helper function.
10414
10415 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10416
10417         * class.h class.c: Add mono_type_get_underlying_type ().
10418
10419 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10420
10421         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10422         Fix GetTypes() to support dynamically created assemblies.
10423
10424 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10425
10426         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10427         
10428         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10429         previous patch.
10430
10431         * reflection.h reflection.c loader.c: Allow dynamic construction of
10432         pinvoke methods. Fixes #65571.
10433         
10434         * reflection.c (mono_reflection_get_type): Revert previous change since
10435         it causes regressions.
10436
10437 2004-09-08  Martin Baulig  <martin@ximian.com>
10438
10439         * class.c (class_compute_field_layout): Don't call
10440         mono_class_layout_fields() for open generic instances.
10441
10442 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10443         * threads.c appdomain.c: fix typo in GC macro
10444
10445 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10446
10447         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10448         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10449
10450 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10451
10452         * image.c (mono_image_close): Applied patch from 
10453         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10454         assembly is loaded multiple times from data.
10455         
10456         * image.c (mono_image_open): Fix warning.
10457
10458 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10459
10460         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10461         once. Fixes #58334.
10462         
10463         * reflection.c (mono_reflection_create_runtime_class): Initialize
10464         klass->nested_classes. Fixes #61224.
10465
10466 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10467
10468         * threads.c: sched_yield() on exit, to allow threads to quit.
10469
10470 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10471
10472         * object.c (mono_unhandled_exception): Remove leftover debug code.
10473
10474 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10475
10476         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10477
10478 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10479
10480         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10481         
10482         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10483
10484 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10485
10486         * marshal.c (emit_marshal_array): Null terminate string arrays.
10487         
10488         * marshal.c (raise_auto_layout_exception): Fix warning.
10489
10490         * reflection.c (mono_param_get_objects): Initialize the default value
10491         with DBNull.Value, not null. Fixes #62123.
10492
10493 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
10494
10495         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
10496         throw an exception with a cute explanation.
10497
10498 2004-09-06  Dick Porter  <dick@ximian.com>
10499
10500         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
10501         Close the new process's thread handle, as we don't use it.  The
10502         handle stays around forever otherwise.
10503
10504 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10505
10506         * object.c (arith_overflow): Fix warning.
10507
10508         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
10509         calling conventions in method refs. Fixes #65352.
10510
10511         * reflection.c: Fix warnings.
10512
10513 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10514
10515         * icall.c: Add a new icall for Array.Clear
10516
10517 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10518
10519         * object.c: When allocating an array, we have to throw
10520         an overflow exception if any of the lengths are < 0.
10521
10522 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10523
10524         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
10525         properly. Also move implementation of string array marshalling to 
10526         managed code. Fixes #42316.
10527
10528 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10529
10530         * assembly.c: provide more information when loading an assembly fails.
10531
10532 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10533
10534         * filewatcher.c: don't expect the development fam package to be
10535         installed.
10536
10537 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
10538
10539         * marshal.c: Make a copy of the signature cookie since it will be
10540         freed by the caller.
10541         
10542         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
10543
10544         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
10545
10546         * metadata.c (mono_metadata_free_marshal_spec): New function to free
10547         marshal specs.
10548
10549         * marshal.c: More refactoring.
10550         
10551         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
10552         smaller functions.
10553
10554 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
10555
10556         * object.c: In mono_message_invoke, fill the output parameter array after
10557           calling the managed method (it was done before the call). This fixes
10558           bug #59299.
10559
10560 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10561
10562         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
10563         as well.
10564
10565 2004-09-02  Martin Baulig  <martin@ximian.com>
10566
10567         * class.c (mono_class_instance_size): Don't allow generic type
10568         definitions or open generic instances.
10569         (mono_class_array_element_size): If we're a value type, call
10570         mono_class_instance_size() on the original class.
10571
10572         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
10573         handle generic instances.
10574
10575         * mono-debug-debugger.c (write_type): Handle generic instances
10576         like classes.
10577
10578 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10579
10580         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
10581         the allocation request fails. Fixes #65089.
10582
10583         * object.c (mono_runtime_free_method): Do not call mono_free_method.
10584         
10585         * object.c (mono_runtime_free_method): New function to free a dynamic
10586         method.
10587
10588         * marshal.c (mono_delegate_free_ftnptr): New function to free the
10589         delegate trampoline.
10590
10591         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
10592         with hasthis as dynamic,
10593
10594         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
10595
10596         * domain.c (mono_jit_info_table_remove): New function to remove an
10597         entry from the jit info table.
10598
10599         * class-internals.h (MonoMethod): Add 'dynamic' field.
10600
10601         * loader.c: Fix warnings.
10602
10603 2004-09-01  Martin Baulig  <martin@ximian.com>
10604
10605         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
10606         instead of mono_debugger_lock() because the latter one is a no-op
10607         unless running in the debugger.
10608
10609 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10610
10611         * class.c (class_compute_field_layout): Classes with auto-layout or
10612         reference fields are not blittable.
10613         
10614 2004-09-01  Dick Porter  <dick@ximian.com>
10615
10616         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
10617         mono_image_get_filename() to get the assembly location.
10618
10619         * icall.c:
10620         * metadata.h: Fix compile warnings
10621
10622 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10623
10624         * class.c (class_compute_field_layout): System.Object is blittable.
10625
10626         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
10627         as in/out. Fixes #59909.
10628
10629 2004-09-01  Martin Baulig  <martin@ximian.com>
10630
10631         * metadata.h (MONO_TYPE_ISREFERENCE): Call
10632         mono_metadata_generic_inst_is_valuetype() if we're a generic
10633         instance to check whether our underlying type is a reference type.
10634
10635 2004-09-01  Martin Baulig  <martin@ximian.com>
10636
10637         * metadata.c (mono_type_size): If we're a generic instance, call
10638         mono_class_value_size() for value types.
10639
10640 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
10641
10642         * marshal.c: Implement more custom marshalling functionality. Fixes
10643         #64915.
10644
10645 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10646
10647         * mono-debug.c, debug-mono-symfile.c: add some locking love.
10648
10649 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
10650
10651         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
10652
10653         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
10654
10655         * icall.c: Fix some warnings.
10656
10657         * threads.c (abort_appdomain_thread): Fix unref errors.
10658         (mono_thread_current): Fix THREAD_DEBUG define.
10659
10660 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
10661
10662         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
10663
10664         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
10665
10666 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
10667
10668         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
10669         string arrays.
10670
10671 2004-08-28  Martin Baulig  <martin@ximian.com>
10672
10673         * metadata.c
10674         (mono_metadata_generic_inst_is_valuetype): New public function.
10675
10676         * metadata.h (MONO_TYPE_ISSTRUCT): Call
10677         mono_metadata_generic_inst_is_valuetype() if we're a generic
10678         instance to check whether our underlying type is a valuetype.
10679
10680 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
10681
10682         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
10683         #63768.
10684
10685 2004-08-25  Martin Baulig  <martin@ximian.com>
10686
10687         * loader.c (mono_get_method_from_token): Abstract methods can also
10688         be generic and thus have type parameters.
10689
10690         * metadata-internals.h
10691         (MonoDynamicImage): Added `GPtrArray *gen_params'.
10692
10693         * reflection.c (mono_image_get_generic_param_info): Don't create a
10694         metadata row, just add an entry to the `gen_params' array.
10695         (build_compressed_metadata): Sort the `gen_params' array and then
10696         actually create the metadata.
10697
10698 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10699
10700         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
10701
10702 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
10703
10704         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
10705
10706 2004-08-24  Martin Baulig  <martin@ximian.com>
10707
10708         * class.cs (mono_class_is_subclass_of): Like an interface, a
10709         generic instance also derives from System.Object.
10710
10711 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
10712
10713         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
10714         custom modifiers to be in any order. Fixes #61990.
10715
10716 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
10717
10718         * object.c: Register mono_object_new_fast icall.
10719         
10720         * object.c (mono_class_get_allocation_ftn): Return to calling
10721         mono_object_new_fast, since it seems faster to compute the object 
10722         size in unmanaged code than passing it as a parameter.
10723
10724         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
10725
10726         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
10727         this function with Boehm as the oom handler, so we don't have to check
10728         the result of GC_malloc.
10729
10730         * object.c: Remove checks for oom.
10731
10732         * object.h object.c (mono_class_get_allocation_ftn): New function to
10733         return the icall which can be used to allocate an instance of a given
10734         class. 
10735
10736         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
10737
10738         * class-internals.h: Add 'enabled' field.
10739
10740 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
10741
10742         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
10743
10744 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
10745         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
10746         value 0x0010.
10747
10748 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
10749
10750         * appdomain.c: use the Tls function for appdomain too,
10751         at Zoltan's request. Actually return in mono_context_get
10752
10753         * appdomain.c, profiler.c, threads.c: use __thread
10754
10755 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
10756
10757         * appdomain.c threads.c: Call GC_CreateThread on windows.
10758
10759         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
10760         multiple libraries since this don't work on windows.
10761
10762 2004-08-18  Martin Baulig  <martin@ximian.com>
10763
10764         * class-internals.h
10765         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
10766         MonoMethodHeader.
10767
10768         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
10769         MonoMethodNormal since we also need it for abstract and interface
10770         methods.
10771
10772         * reflection.c
10773         (build_compressed_metadata): Sort the GenericParam table.
10774         (mono_image_create_token): Added `gboolean create_methodspec'
10775         argument; this is false when generating a MethodImpl token.
10776         (reflection_methodbuilder_to_mono_method): Abstract and interface
10777         methods may also have generic parameters.
10778
10779 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
10780
10781         * appdomain.c: thread local alloc
10782
10783 2004-08-17  Martin Baulig  <martin@ximian.com>
10784
10785         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
10786
10787         * icall.c
10788         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
10789         argument.
10790
10791         * class.c (mono_type_get_full_name): New public function.
10792         (mono_type_get_name): Don't include the type arguments.
10793
10794 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
10795
10796         * Makefile.am: Build static versions of libmetadata and libmonoruntime
10797         for inclusion into the mono executable.
10798
10799 2004-08-16  Martin Baulig  <martin@ximian.com>
10800
10801         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
10802         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
10803
10804 2004-08-14  Martin Baulig  <martin@ximian.com>
10805
10806         * class.c (dup_type): Also copy the `byref' field.
10807
10808 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
10809
10810         * reflection.c (create_dynamic_mono_image): Revert the last change 
10811         since it breaks bootstrap.
10812
10813 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
10814
10815         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
10816
10817         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
10818         not free them with g_free.
10819
10820 2004-08-11  Martin Baulig  <martin@ximian.com>
10821
10822         * reflection.c (mono_reflection_setup_internal_class): Also call
10823         mono_class_setup_mono_type() if we already have a `tb->type.type'.
10824
10825 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
10826
10827         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
10828         called during default (first) AppDomain creation. Keep track of
10829         Evidence when loading assemblies.
10830
10831 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10832
10833         * opcodes.c, opcodes.h: reduce runtime relocations.
10834
10835 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
10836
10837         * culture-info.h, locales.c: fixes and chages to sue the new
10838         optimized format of the locale data.
10839         * culture-info-tables.h: regenerated.
10840
10841 2004-08-06  Geoff Norton <gnorton@customerdna.com>
10842         
10843         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
10844
10845 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
10846
10847         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
10848         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
10849         * domain-internals.h: icall declaration.
10850         * icall.c: icall registration.
10851         * object-internals.h: New fields in MonoAssembly for CAS.
10852
10853 2004-08-05  Duncan Mak  <duncan@ximian.com>
10854
10855         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
10856         CEE_LDELEM_ANY.
10857
10858 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10859
10860         * reflection.c: fix to deal with object[] arrays in custom ctors
10861         (bug #62550).
10862
10863 2004-08-05  Martin Baulig  <martin@ximian.com>
10864
10865         * class.c (mono_class_array_element_size): Added support for
10866         generic instances and correctly handle "recursive" types.
10867
10868 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
10869
10870         * assembly.c: Fix warnings.
10871
10872 2004-08-04  Martin Baulig  <martin@ximian.com>
10873
10874         * class.c
10875         (mono_type_get_name_recurse): Added `gboolean include_arity'
10876         argument specifying whether or not we should include the generic
10877         arity in the type name.
10878         (_mono_type_get_name): New static function.
10879         (mono_class_setup_vtable): If we're a generic instance, don't
10880         include the generic arity in the names of explicit method
10881         implementations.        
10882
10883 2004-08-03  Martin Baulig  <martin@ximian.com>
10884
10885         * class.c (mono_type_get_name_recurse): Enclose the generic type
10886         arguments in `<', '>'.
10887
10888 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10889
10890         * gc.c: make GC warning messages use the trace API, they are just
10891         noise to most of the users.
10892
10893 2004-08-03  Martin Baulig  <martin@ximian.com>
10894
10895         * debug-mono-symfile.c (read_string): Correctly read the string.
10896
10897 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
10898
10899         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
10900         
10901         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
10902         icalls.
10903         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
10904
10905 2004-07-30  Martin Baulig  <martin@ximian.com>
10906
10907         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
10908         Reflect latest symbol writer changes.   
10909
10910 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10911
10912         * object.c: always create an object if null is passed
10913         to Invoke() where a valuetype is expected.
10914
10915 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
10916
10917         * marshal.c (mono_marshal_init): make managed
10918         signatures match native ones better for 64bits.
10919
10920 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10921
10922         * appdomain.c: hack to build correctly the private bin path on windows.
10923         Fixes bug #61991.
10924
10925 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
10926
10927         * assembly.c: Load mscorlib from the correct framework directory
10928           (mono/<version>/mscorlib.dll).
10929         * appdomain.h: Added prototypes for new functions.
10930         * internals.h: Added some prototypes.
10931         * domain.c: When initializing the runtime, get from the executable and
10932           the configuration files the runtime version that the app supports.
10933           Added support methods for reading app.exe.config. Added list of versions
10934           supported by the JIT. Added two new methods: mono_init_from_assembly,
10935           which initializes the runtime and determines the required version from
10936           the provided exe file, and mono_init_version, which initializes
10937           the runtime using the provided version.
10938         * icall.c: Get machine.config from version-specific directory.
10939         * reflection.c: When generating an image, embed the version number
10940           of the current runtime.
10941
10942 2004-07-28  Dick Porter  <dick@ximian.com>
10943
10944         * socket-io.c
10945         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
10946         returned sockaddr size before creating the remote address object.
10947         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
10948         61608.
10949
10950 2004-07-28  Dick Porter  <dick@ximian.com>
10951
10952         * locales.c (string_invariant_compare_char): Fix invariant char
10953         compares between upper and lower cases.  Fixes bug 61458.
10954
10955 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
10956         
10957         * marshal.c: actually cache stelem.ref wrappers.
10958         
10959 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
10960
10961         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
10962         sections and remove the mono_cli_rva_map () function.
10963
10964 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10965
10966         * debug-mono-symfile.c: fix one more endianess issue, from a patch
10967         by Geoff Norton (<gnorton@customerdna.com>).
10968
10969 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10970
10971         * class.c: fix class loads for pointer types (typeof(int) !=
10972         typeof(int*)).
10973
10974 2004-07-27  Martin Baulig  <martin@ximian.com>
10975
10976         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
10977         reading the debugging information from an external ".mdb" file.
10978
10979 2004-07-24  Martin Baulig  <martin@ximian.com>
10980
10981         * reflection.c (mono_image_get_type_info): Only write a class
10982         layout entry if we actually have a size or a packing size.
10983
10984 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10985
10986         * reflection.c (type_get_fully_qualified_name): 
10987         insert cast to get type checking of ?: with non-gcc compilers
10988
10989 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10990
10991         * rand.c: use g_getenv for both lookups of
10992         MONO_EGD_SOCKET
10993
10994 2004-07-17  Martin Baulig  <martin@ximian.com>
10995
10996         * reflection.c (mono_reflection_bind_generic_method_parameters):
10997         Set `gmethod->reflection_info'.
10998
10999 2004-07-17  Martin Baulig  <martin@ximian.com>
11000
11001         * class.c (mono_class_create_from_typedef): Insert the newly
11002         created class into the hash table before computing the interfaces
11003         since we could be called recursively.
11004
11005 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11006
11007         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11008         function to implement stelem.ref in managed code
11009         * class-internals.h, debug-helpers.c: a new wrapper type
11010         for the above.
11011
11012 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11013
11014         * gc.c: allow GC handles to work even when no GC is compiled in.
11015         Fix part of bug #61134 (GetAddrOfPinnedObject).
11016
11017 2004-07-13  Peter Williams  <peter@newton.cx>
11018  
11019         * process.c (complete_path): Make sure we don't attempt to execute
11020         directories.
11021  
11022 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11023
11024         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11025           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11026           and will add/subtract the hour if needed
11027
11028 2004-07-12  Martin Baulig  <martin@ximian.com>
11029
11030         * reflection.c (mono_field_get_object): If we have
11031         `field->generic_info', take the attributes from
11032         `field->generic_info->generic_type'.    
11033
11034 2004-07-12  Martin Baulig  <martin@ximian.com>
11035
11036         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11037         This function must be called before initializing the runtime.
11038         (mono_debug_init_1): New function; call this after initializing
11039         the runtime, but before loading the assembly.  It tells the
11040         debugger to load corlib and the builtin types.
11041
11042         * mono-debug-debugger.c: Did some larger changes in the debugging
11043         code; support recursive class declarations, make sure we actually
11044         add all classes.
11045
11046 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11047
11048         * debug-helpers.c: undo my previous patch and fixed the real issue in
11049         ../mini/exceptions-x86.c
11050
11051 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11052
11053         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11054         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11055         called from other .cctors.
11056
11057 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11058
11059         * loader.c: Removed the mono_loader_wine_init hack now that we are
11060         doing a managed version of Windows.Forms.
11061
11062 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11063
11064         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11065         threadpool.c, threads.c: remove static data from rootset.
11066
11067 2004-07-09  Dick Porter  <dick@ximian.com>
11068
11069         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11070         Don't do any more processing if the matched length was 0.  It was
11071         increasing the size of the string before.  Fixes bug 61167.
11072
11073 2004-07-09  Dick Porter  <dick@ximian.com>
11074
11075         * socket-io.h:
11076         * socket-io.c
11077         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11078         Add support for SO_PEERCRED if its available.
11079
11080 2004-07-09  Peter Bartok <pbartok@novell.com>
11081         * loader.c: winelib.exe.so error message is now only displayed if
11082         MONO_DEBUG is set. To help us avoid questions when people are trying
11083         out the new Managed.Windows.Forms.
11084
11085 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11086
11087         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11088         for isinst and castclass wrappers.
11089
11090         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11091         to libmetadata from the JIT, so they could be used by the marshalling
11092         code and the interpreter.
11093
11094         * marshal.c: Register marshalling related JIT icalls here instead of
11095         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11096         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11097
11098         * metadata.h: Remove unneeded marshalling conversions.
11099
11100         * opcodes.c: Update for new opcodes.
11101         
11102 2004-07-08  Martin Baulig  <martin@ximian.com>
11103
11104         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11105         (mono_debug_get_domain_data): Make this function static.
11106
11107 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11108
11109         * gc.c, object.h: add nice GC handle API for embedders.
11110
11111 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11112
11113         * reflection.c: more changes for the new api
11114
11115         * object.c: When we reflect on a field w/ a constant value, it
11116         will not have a memory location, so we must access metadata. Also,
11117         allow easier reading of strings so that we can read them from
11118         the constant data.
11119
11120         * class.c (mono_class_layout_fields): no need for literal fields here.
11121
11122         * class-internals.h: api changes for const fields
11123
11124         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11125
11126 2004-07-06  Martin Baulig  <martin@ximian.com>
11127
11128         * mono-debug.h: Increment version number to 44.
11129
11130         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11131         now a gpointer, rewrote this whole method.
11132
11133         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11134         function.  Add information about the wrapper in a new "misc table".
11135
11136         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11137         for the new misc table.
11138
11139 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11140
11141         * metadata-internals.h image.c: Add a cache for helper signatures.
11142
11143         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11144
11145 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11146
11147         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11148         delegates from a delegate. Fixes #61033.
11149         
11150         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11151         marshalling of stringbuilder arrays. Fixes #59900.
11152
11153 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11154
11155         * icall.c: Add EnumBuilder:setup_enum_type icall.
11156
11157 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11158
11159         * icall.c: Added a new icall for the property version of
11160         OffsetOfStringData.
11161
11162 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11163
11164         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11165         it has a constant size across platforms.
11166
11167         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11168         stack trace.
11169
11170 2004-06-29  Martin Baulig  <martin@ximian.com>
11171
11172         * mono-debug.c (mono_debug_add_method): Protect the whole function
11173         in mono_debugger_lock(), not just parts of it.
11174
11175 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11176
11177         * reflection.c: make sure padding bytes in heaps are zeroed.
11178
11179 2004-06-24  David Waite  <mass@akuma.org>
11180
11181         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11182         image.c, loader.c, locales.c, marshal.c, metadata.c,
11183         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11184         string-icalls.c, threads.c: change to C90-style comments from C99 /
11185         C++ -style
11186
11187 2004-06-24  Dick Porter  <dick@ximian.com>
11188
11189         * threads.c
11190         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11191         return createdNew.  Fixes bug 60412.
11192
11193         * threads-types.h: 
11194         * icall.c: Add createdNew parameter to CreateMutex icall
11195
11196 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11197
11198         * reflection.c, object-internals.h: save default value in params.
11199
11200 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11201
11202         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11203         no need to build a new path combining that with the application base.
11204         Fixes bug #60442.
11205
11206 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11207
11208         * reflection.c: fixed minor standard compliance issues.
11209
11210 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11211
11212         * reflection.c: fixed issue with encoding some custom attributes
11213         (arrays in properties and fields, bug #60411).
11214
11215 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11216
11217         * reflection.c: fix start address when copying the public key token.
11218
11219 2004-06-23  Martin Baulig  <martin@ximian.com>
11220
11221         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11222         the `exc' object in a static object to put it into the GC's root set.
11223
11224 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11225
11226         * reflection.c: make mono_reflection_setup_internal_class ()
11227         callable a second time to setup a new parent class.
11228
11229 2004-06-23  Dick Porter  <dick@ximian.com>
11230
11231         * threads.c: Check for WAIT_IO_COMPLETION return values.
11232
11233 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11234
11235         * appdomain.c: Removed the g_free on the public key token. Now copy 
11236         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11237         * assembly.c: Added public key token string value when loading 
11238         assemblies. Fix bug #60439.
11239         * icall.c: Added missing informations (like public key) in 
11240         GetReferencedAssemblies. Fix #60519.
11241         * image.h: Changed definition for public key token from const char*
11242         public_tok_value to guchar public_key_token [17];
11243         * reflection.c: Updated for changes to public key token.
11244
11245 2004-06-22  Lluis Sanchez Gual
11246
11247         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11248         for the field in base classes.
11249
11250 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11251
11252         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11253         mark headers as not supported, they are installed only for use by the
11254         debugger.
11255
11256 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11257
11258         * *.c, *.h: avoid namespace pollution in public headers.
11259
11260 2004-06-21  Martin Baulig  <martin@ximian.com>
11261
11262         * exception.c (mono_get_exception_security): It's in
11263         "System.Security", not in "System".
11264
11265         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11266         the exception classes.
11267
11268 2004-06-21  Martin Baulig  <martin@ximian.com>
11269
11270         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11271         Protect the exception object from being finalized.
11272
11273 2004-06-21  Martin Baulig  <martin@ximian.com>
11274
11275         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11276         public function.
11277
11278 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11279
11280         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11281         if it was not loaded before. Fix parts of #60439.
11282
11283 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11284
11285         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11286         code that was broken since Ben's change: wrappers are now
11287         dependent on the method signature only again.
11288
11289 2004-06-21  Martin Baulig  <martin@ximian.com>
11290
11291         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11292         added interface support.
11293
11294 2004-06-21  Martin Baulig  <martin@ximian.com>
11295
11296         * class.c (mono_vtable_get_static_field_data): New public method.
11297
11298 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11299
11300         * filewatcher.c : Windows build fix to be compliant with API changes.
11301
11302 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11303
11304         * class.h, class.c: more accessors.
11305         * metadata.h, metadata.c: prepare for hiding MonoType and
11306         MonoMethodSignature: people should use the accessors from now on
11307         outside of the tree.
11308
11309 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11310
11311         * *.c, *.h: more API cleanups.
11312
11313 2004-06-18  Jackson Harper  <jackson@ximian.com>
11314
11315         * assembly.c: Trace loading assemblies.
11316         * loader.c: Trace loading native libraries.
11317         * mono-config.c: Trace loading config files.
11318         
11319 2004-06-18  Dick Porter  <dick@ximian.com>
11320
11321         * locales.c: Tell ICU the lengths of strings, it can cope with
11322         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11323
11324 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11325
11326         * image.c: swapped name/filename;
11327
11328 2004-06-18  Martin Baulig  <martin@ximian.com>
11329
11330         * mono-debug-debugger.c (write_class): Write the parent class at
11331         the end of the header.
11332
11333 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11334
11335         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11336
11337 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11338
11339         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11340         (bundle_obj): New conditional define.
11341         (BUILT_SOURCES): Remove.
11342         ($(bundle_srcs)): Make parallel-make safe.
11343         (libmonoruntime_la_LIBADD): Make unconditional.
11344         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11345         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11346
11347 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11348
11349         * culture-info-tables.h: It was inconsistent with the latest
11350           supp info files.
11351
11352 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11353
11354         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11355         be loaded.
11356
11357         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11358         with gcc 2.95.
11359
11360 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11361
11362         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11363         cleaned up public header threads.h.
11364
11365 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11366
11367         * Makefile.am, *.c, *.h: more API cleanups.
11368
11369 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11370
11371         * Makefile.am: removed monosn from compilation.
11372         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11373         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11374         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11375         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11376         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11377         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11378
11379 2004-06-15  Jackson Harper  <jackson@ximian.com>
11380
11381         * assembly.c: Make locales lower case when searching the GAC for
11382         assemblies. gacutil will always make locales lowercase when
11383         installing so this effectively makes them case insensitive.
11384         
11385 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11386
11387         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11388         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11389           parameter which allows to choose whether the wait can be interrupted or 
11390           not. Also added the method mono_monitor_enter(), which locks the monitor
11391           using an infinite wait and without allowing interruption.
11392           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11393           interrupted.
11394         * object.h: Added new fields in MonoThread. suspend_event holds the event
11395           used to susped/resume the thread. synch_lock is the lock object to use for
11396           modifying the thread state.
11397         * threads.c: Use the new synch_lock object for locking, instead of "this",
11398           which can generate deadlocks.
11399           Moved thread state change in Thread.Sleep and Thread.Join from managed
11400           to unmanaged code. This avoids a deadlock when the thread was suspended
11401           just after acquiring the thread lock.
11402           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11403           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11404           which is not fully implemented in the io-layer.
11405         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11406
11407 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11408
11409         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11410         threads-types.h: more API cleanups.
11411
11412 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11413
11414         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11415         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11416         threadpool.c, threads.c: first pass at the exported API cleanup.
11417
11418 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11419
11420         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11421
11422 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11423
11424         * icall.c: added internalGetHome.
11425
11426 2004-06-14  Dick Porter  <dick@ximian.com>
11427
11428         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11429         possible to return successfully when '.' or '..' were the only
11430         entries in a directory, but were skipped.  The MonoIOStat was not
11431         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11432         Fixes bug 59574.
11433
11434 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11435
11436         * reflection.c: make binaries run on .Net 1.1 by default.
11437
11438 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11439
11440         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11441
11442 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11443
11444         * marshal.c: keep track of struct size with explicit layout
11445         (bug #59979).
11446
11447 2004-06-12  Martin Baulig  <martin@ximian.com>
11448
11449         * mono-debug-debugger.c: Comment out a debugging g_message().
11450
11451 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11452
11453         * reflection.c, reflection.h: do not free custom attrs that are cached.
11454         * icall.c: use braces to make code clearer.
11455
11456 2004-06-11  Martin Baulig  <martin@ximian.com>
11457
11458         * class.h (MonoInflatedField): New type.
11459         (MonoClassField): Replaced `MonoType *generic_type' with
11460         `MonoInflatedField *generic_info'.
11461
11462         * icall.c
11463         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11464
11465 2004-06-11  Martin Baulig  <martin@ximian.com>
11466
11467         * reflection.c (mono_image_create_method_token): Correctly encode
11468         varargs methods.
11469
11470 2004-06-11  Martin Baulig  <martin@ximian.com>
11471
11472         * metadata.c (mono_metadata_parse_method_signature): When parsing
11473         a MethodDef which has VarArgs, also set sentinelpos if we don't
11474         have any parameters.
11475
11476 2004-06-11  Martin Baulig  <martin@ximian.com>
11477
11478         * verify.c (mono_method_verify): In CEE_CALL, use
11479         mono_method_get_signature() to get the method's signature, unless
11480         we're a PInvoke method.
11481
11482 2004-06-10  Jackson Harper  <jackson@ximian.com>
11483
11484         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11485         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11486         logical name as the supplied path is just a prefix to the gac not
11487         the direct path to it.
11488         
11489 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
11490
11491         * reflection.c: make the token for a created method match
11492         the token of the MethodBuilder it was created from
11493         (IKVM requires this behaviour now).
11494
11495 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
11496
11497         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
11498         reflection.c, socket-io.c: leak fixes.
11499
11500 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
11501
11502         * icall.c: handle sentinel pos in vararg methods in position different
11503         from 0.
11504
11505 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11506
11507         * culture-info-tables.h: freshly generated.
11508
11509 2004-06-09  Martin Baulig  <martin@ximian.com>
11510
11511         * loader.c (mono_get_method_constrained): Call `mono_class_init
11512         (constrained_class)'.   
11513
11514 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
11515
11516         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
11517         any methods. Fixes #59629.
11518
11519 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11520
11521         * culture-info-tables.h: reflecting locale-builder updates.
11522
11523 2004-06-08  Dick Porter  <dick@ximian.com>
11524
11525         * object.h:
11526         * locales.c: Fixed compile warnings, including a real bug in
11527         CompareInfo_internal_compare.
11528         
11529 2004-06-08  Dick Porter  <dick@ximian.com>
11530
11531         * locales.c
11532         (ves_icall_System_Globalization_CompareInfo_internal_index):
11533         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11534         Double-check the resuls of usearches, because ICU currently
11535         ignores most of the collator settings here.  Fixes bug 59720.
11536         
11537 2004-06-08  Dick Porter  <dick@ximian.com>
11538
11539         * locales.c
11540         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11541         Fix memory leak and segfault-causing typo.  No idea how this one
11542         lasted so long without being noticed.
11543
11544 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
11545
11546         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
11547         any methods. Fixes #59629.
11548
11549 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11550
11551         * assembly.c:
11552         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
11553         own the critical section before). Removed dead code (that's done
11554         in the preload hook).
11555
11556         (mono_assembly_load_with_partial_name): call the preload hook.
11557
11558 2004-06-08  Martin Baulig  <martin@ximian.com>
11559
11560         * metadata.c (mono_metadata_signature_alloc): Default
11561         `sentinelpos' to -1.
11562
11563         * reflection.c (mono_image_get_array_token): Likewise.
11564
11565 2004-06-08  Martin Baulig  <martin@ximian.com>
11566
11567         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
11568
11569         * metadata.c (mono_metadata_parse_method_signature): When parsing
11570         a MethodDef which has VarArgs, set sentinelpos.
11571
11572         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
11573         `gint16' since we're using -1 for non-varargs methods.
11574
11575         * reflection.c
11576         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
11577         (method_encode_signature): Added varargs support.
11578         (method_builder_encode_signature): Likewise.
11579         (mono_image_get_varargs_method_token): New static method.
11580         (mono_image_create_method_token): New public method; this is
11581         called via an icall instead of mono_image_create_token() when
11582         calling a varargs method.       
11583
11584 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
11585
11586         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
11587
11588 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11589
11590         * culture-info-tables.h : Reflecting the latest locale-builder that
11591           fixed empty array representation ({} to {0}).
11592
11593 2004-06-07  Jackson Harper  <jackson@ximian.com>
11594
11595         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
11596         looking up extra gac paths. This allows MONO_GAC_PATH to act
11597         exactly like a prefix.
11598         
11599 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11600
11601         * reflection.c (mono_reflection_type_from_name): Make a copy of the
11602         type name before modifying it. Fixes #59405.
11603
11604 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11605
11606         * culture-info.h: added fields for "all datetime patterns".
11607         * locales.c: (  ves_icall_System_Globalization_CultureInfo
11608           _construct_datetime_format ()): fill xxx_patterns fields.
11609         * object.h: added fields for "all datetime patterns" to
11610           MonoDateTimeFormatInfo.
11611         * culture-info-tables.h: reflecting locale-builder updates.
11612
11613 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11614
11615         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
11616         the event has no add and remove methods. Fixes #59629.
11617
11618 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
11619
11620         * object.c: Fixed possible integer overflow when allocating large
11621         strings.
11622
11623 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11624
11625         * culture-info-tables.h: reflecting locale-builder updates.
11626
11627 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11628
11629         * culture-info-tables.h: reflecting locale-builder updates.
11630
11631 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
11632
11633         * culture-info-tables.h: reflecting locale-builder updates.
11634
11635 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
11636
11637         * threads.c: Made Thread.Sleep abortable.
11638
11639 2004-06-02  Martin Baulig  <martin@ximian.com>
11640
11641         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
11642
11643         * debug-mono-symfile.h: Bumped symbol file version number to 37.
11644
11645 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
11646
11647         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
11648
11649 2004-05-30  Jackson Harper  <jackson@ximian.com>
11650
11651         * reflection.c: Do not hardcode assembly versions or public key
11652         tokens anymore. All of this except the corlib section was dead
11653         code anyways.
11654         
11655 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
11656
11657         * object.c (mono_runtime_invoke_array): Automatically create boxed
11658         objects for byref valuetypes if needed. Fixes #59300.
11659         
11660         * object.c (mono_method_return_message_restore): Handle 
11661         MONO_TYPE_OBJECT as well.
11662
11663 2004-05-28  Jackson Harper  <jackson@ximian.com>
11664
11665         * reflection.c: The modified type encoding was causing build
11666         problems. Reverted for now.
11667         
11668 2004-05-28  Jackson Harper  <jackson@ximian.com>
11669
11670         * reflection.c/h: Take an assembly ref so that we dont create
11671         fully qualified names when encoding types in the same assembly as
11672         the custom attribute being emitted.
11673         * appdomain.c: Increment version number.
11674         
11675 2004-05-26  Duncan Mak  <duncan@ximian.com>
11676
11677         * icall.c
11678         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
11679         Set the full version number (major, minor, build, revision).
11680
11681 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
11682
11683         * marshal.c (emit_struct_conv): increment src/dst after blit
11684         (mono_marshal_get_managed_wrapper,
11685         mono_marshal_get_native_wrapper): make sure we have marshalling
11686         info before marshalling params (info computation affects
11687         blittable)
11688
11689         * class.c (class_compute_field_layout): correctly deal with
11690         blittable
11691         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
11692         value types (as per what windows dows by default)
11693         (mono_class_setup_mono_type): System.ValueType is blittable
11694         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
11695         blittable
11696
11697         * marshal.c (mono_marshal_load_type_info): flag types  as
11698         non-blittable if the native layout doesn't match the managed
11699         layout
11700
11701 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11702
11703         * appdomain.c: don't add stuff in the private search path that is
11704         above the application base. If application base is not set, there's
11705         no private search path.
11706
11707 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
11708
11709         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
11710         byref struct arguments in native->managed marshalling.
11711
11712 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
11713
11714         * marshal.c (mono_marshal_get_runtime_invoke): correctly
11715         cache methods using signature (special case for methods
11716         that are value type or string class)
11717         
11718         * image.c (mono_image_close): clean up allocated GSList's
11719         in runtime_invoke_cache.
11720
11721 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11722
11723         * mono-config.c: set the correct path for mono_cfg_dir on windows when
11724         there's no MONO_CFG_DIR environment variable defined.
11725
11726 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11727
11728         * threads.c: windows version must be >= 0x0500 to include OpenThread.
11729
11730 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
11731
11732         * threadpool.c: Really wait for 500ms after the async call, even if the wait
11733           is interrumped.
11734         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
11735           before waiting for it, and call CloseHandle after the wait to unref it.
11736           This will make sure that handles are not disposed too early.
11737
11738 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11739
11740         * appdomain.c:
11741         * appdomain.h:
11742         * icall.c: removed
11743         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
11744         needed now.
11745
11746         * object.c: se the application_base only for the domain that runs
11747         Main. Fixes bug #59216,
11748
11749 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11750
11751         * appdomain.c:
11752         * object.c: only the domain in which Main is run have
11753         SetupInformation.ConfigurationFile set, so moved a few lines from
11754         appdomain.c to object.c.
11755
11756 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11757
11758         * appdomain.c: we tried to load [name].(dll|exe), but according
11759         to bug #57710, we must also try [culture]/[name].(dll|exe) and
11760         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
11761         There's a test case attached to bug #58922.
11762
11763 2004-05-27  Dick Porter  <dick@ximian.com>
11764
11765         * icall.c:
11766         * file-io.c: Implemented icalls for locking and unlocking regions
11767         in a file.
11768         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
11769         FALSE on error (fixes both compiler warning and real bug.)
11770
11771 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
11772
11773         * culture-info-tables.h: reflecting locale-builder updates.
11774
11775           (Added missing ChangeLog entry for 05/26)
11776
11777 2004-05-27  Jackson Harper  <jackson@ximian.com>
11778
11779         * locales.c: Fix some cut and paste errors.
11780         
11781 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11782
11783         * mono-config.c: set the correct path for config. directory on windows.
11784
11785 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11786
11787         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
11788           on win32.
11789
11790 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11791
11792         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
11793         from pinvoke functions.
11794         
11795         * marshal.c (mono_ftnptr_to_delegate): Implement this.
11796
11797 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11798
11799         * culture-info-tables.h: reflecting locale-builder updates.
11800
11801 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11802
11803         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
11804         #59086.
11805
11806 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
11807
11808         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
11809         * icall.c: Modified icalls for RNG.
11810         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
11811         Windows (CryptoAPI).
11812
11813 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11814
11815         * locales.c: Fix build.
11816
11817 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11818
11819         * culture-info-tables.h: reflecting locale-builder updates.
11820
11821 2004-05-25  Jackson Harper  <jackson@ximian.com>
11822
11823         * locales.c: When creating the current culture use the $LANGs
11824         specific culture. So DateTimeFormat and NumberFormat entries are created.
11825         
11826 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11827
11828         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
11829         a char array as parameter.
11830
11831 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
11832
11833         * image.c: In mono_image_open(), always use an absolute path name to
11834           look for already loaded images.
11835
11836 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
11837
11838         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
11839         missing in the windows build (like older cygwin include files).
11840
11841 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
11842
11843         * icall.c: Fixed check for possible integer overflow in Buffer_
11844         BlockCopy icall. Replaced comments style // by /* */.
11845
11846 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
11847
11848         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
11849         
11850         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
11851         check after MONO_VTADDR. Fixes pinvoke2.exe.
11852
11853         * marshal.h marshal.c metadata.h: Add beginnings of support for
11854         ftnptr -> delegate marshalling.
11855
11856 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
11857
11858         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
11859         * threads.c: Fix warnings.
11860
11861 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
11862
11863         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
11864         * icall.c: Registered icalls for Suspend and Resume.
11865         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
11866           Thread.Abort.
11867         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
11868         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
11869         * process.c: Use WaitForSingleObjectEx.
11870         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
11871           checkpoints.
11872         * threads.c, threads.h: Make use of new Ex wait methods. Improved
11873           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
11874           for Suspend and Resume. Added new mono_thread_stop, used for stoping
11875           background threads. Added basic support for Abort in Windows.
11876           Start new threads using a managed delegate invoke wrapper. This wrapper
11877           has an interruption checkpoint that is needed since an interruption
11878           can be requested before the thread leaves the unmanaged code that starts 
11879           the thread.
11880         * marshal.c: Added interruption checkpoint after every native call, and
11881           also before managed calls for wrappers called from unmanaged code to
11882           go into managed code.
11883         * object.h: Added new field in MonoThread to keep track of interruption
11884           requests.
11885
11886 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
11887
11888         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
11889         calls.
11890
11891 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11892
11893         * appdomain.c:
11894         * assembly.c:
11895         * gc.c:
11896         * locales.c:
11897         * mono-config.c:
11898         * rand.c: getenv -> g_getenv (windows!)
11899
11900         * process.c: complete_path is also used on non-windows platforms.
11901
11902 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11903
11904         * icall.c: new signature for Process_Start.
11905
11906         * process.[ch]: new signature for Process_Start. If we're on windows
11907         and UseShellExecute is false, we have to search for the program by
11908         ourselves if we don't get a full path.
11909
11910 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
11911
11912         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
11913         marshalling and call CleanUpNativeData if needed. Fixes #58646.
11914
11915 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11916
11917         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
11918         Fixes bug #58373.
11919
11920 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11921
11922         * process.c: use double quotes to quote program name and arguments on
11923         windows. Fixes bug #58575.
11924
11925 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11926
11927         * file-io.c: don't return "." and ".." when using windows Find*File.
11928
11929 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
11930
11931         * marshal.c: Don't pass wrappers to message init because method 
11932         addressed used to lookup metadata. part of remoting[2|3] fix.
11933
11934 2004-05-15  Jackson Harper  <jackson@ximian.com>
11935
11936         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
11937         path is essentially the same as MONO_PATH except that it points to
11938         GACs instead of lib directories.
11939         * loader.h: The user gac is gone so we dont need function to
11940         enable/disable it.
11941         * mono-config.c: user gac option is now gone.
11942         
11943 2004-05-15  Jackson Harper  <jackson@ximian.com>
11944
11945         * culture-info.h: Make defines more consistent, add calendar data
11946         to the culture info table.
11947         * culture-info-tables.h: Add basic calendar data. Basically
11948         everyone gets default gregorian until all the data is
11949         updated.
11950         * locales.c: Use the new consistent defines. Set calendar data for
11951         culture info objects.
11952         * object.h: add a field for calendar data to CultureInfo
11953         
11954 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
11955
11956         * image.c: image->runtime_invoke_cache is keyed on signatures now.
11957         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
11958         a signature.
11959         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
11960         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
11961         an extra param that is the pointer of the method to invoke. The IL for
11962         the invoke method is no longer specific to the method, but to the
11963         signature of the method. Thus, we can share the same code for multiple
11964         methods. This reduces the number of methods that have to be compiled.
11965
11966 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
11967
11968         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
11969
11970         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11971
11972         * icall.c: Optimize Buffer.BlockCopy.
11973
11974 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11975
11976         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
11977         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
11978         quote). Changed them to "MMMM yyyy".
11979
11980 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
11981
11982         * rand.c
11983         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
11984
11985 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
11986
11987         * reflection.h: Updated after changes to managed structures.
11988
11989         * appdomain.c: Bump corlib version.
11990
11991 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11992
11993         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
11994         windows.
11995
11996 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11997
11998         * Makefile.am: link to ../os/libmonoos.la on windows.
11999
12000         * assembly.c:
12001                 -If MONO_DEBUG, warn about non-existing directories in
12002                 MONO_PATH.
12003                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
12004                 compile time variable.
12005                 -Removed init_default_path and call mono_set_rootdir from
12006                 libmonoos.a instead (windows only).
12007
12008         * assembly.h: declare mono_assembly_getrootdir().
12009
12010         * domain.c:
12011         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12012
12013         * loader.c: s/getenv/g_getenv/
12014
12015 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12016
12017         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12018
12019         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12020
12021         * metadata.h: Add new marshalling conversions.
12022
12023         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12024         function.
12025
12026         * reflection.c (mono_reflection_get_type): Lookup the type in all
12027         modules of a multi-module assembly. Fixes #58291.
12028
12029 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12030
12031         * threads.c: Before aborting a background, set the StopRequested
12032         state.  This avoids throwing the Abort exception.
12033         In mono_thread_manage, don't continue with the shutdown until all
12034         aborted threads have actually stopped.
12035
12036 2004-05-10  Jackson Harper  <jackson@ximian.com>
12037
12038         * locales.c: Remove the modifier from culture names.
12039         
12040 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12041
12042         * Makefile.am: monosn is not installed any more. It has been deprecated
12043         in favor of sn.
12044
12045 2004-05-07  Jackson Harper  <jackson@ximian.com>
12046
12047         * locales.c
12048         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12049         Fix array construction, add bailout if the length is 0.
12050
12051 2004-05-07  Dick Porter  <dick@ximian.com>
12052
12053         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12054         machine doesn't have a DNS entry.  Patch by Urs Muff
12055         (umuff@quark.com), fixes bug 57928.
12056
12057 2004-05-06  Jackson Harper  <jackson@ximian.com>
12058
12059         * reflection.c: Handle null PublicTokens properly. alloc mem for
12060         assembly names culture so we dont crash when freeing it.
12061         
12062 2004-05-06  Jackson Harper  <jackson@ximian.com>
12063
12064         * assembly.c: Check the usergac when loading with partial names.
12065         
12066 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12067
12068         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12069         does nothing for now (not required for Linux/Windows) but the class
12070         library can call it (and a newer or modified runtime could need it).
12071         * icall.c: Registred icall.
12072
12073 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12074
12075         * loader.c: prints a message on module loading error we set MONO_DEBUG
12076         environment variable.
12077
12078 2004-05-05  Jackson Harper  <jackson@ximian.com>
12079
12080         * appdomain.c: Handle PublicKeyToken=null properly.
12081         
12082 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12083
12084         * environment.c|h: Added icall ves_icall_System_Environment_
12085         GetOSVersionString to get the current OS version as a string.
12086         * icall.c: Registred icall.
12087
12088 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12089
12090         * object.c: in mono_object_get_virtual_method(), take into account that
12091         non-virtual methods don't have a slot in the vtable. Check needed when
12092         the object is a proxy.
12093
12094 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12095
12096         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12097         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12098
12099         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12100
12101         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12102         passed when a valuetype is expected.
12103
12104         * object.c (mono_unhandled_exception): Only set the exit code if the
12105         exception happens in the main thread. Fixes thread5.exe.
12106
12107         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12108         invalid names. Fixes #58047.
12109
12110 2004-05-03  Jackson Harper  <jackson@ximian.com>
12111
12112         * assembly.c: This line was committed accidently and is unneeded.
12113         
12114 2004-05-03  Jackson Harper  <jackson@ximian.com>
12115
12116         * icall.c: Add new icall for Assembly::LoadWithPartialName
12117         * assembly.c/.h: new function that probes the GAC to load partial
12118         assembly names by Paolo Molaro.
12119         
12120 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12121
12122         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12123         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12124         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12125         full type name.
12126
12127 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12128
12129         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12130         * reflection.c: fix bug when parsing a full type name and Version is not
12131         the last thing in the string.
12132
12133 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12134
12135         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12136         crashes when it is freed.
12137
12138 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12139
12140         * assembly.c: print the compat warning to stderr.
12141
12142 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12143
12144         * assembly.c (mono_assembly_load_references): Add a compatibility
12145         hack to run old applications that might be still referencing the
12146         3300-based assemblies, only do this for System.xxx.
12147
12148 2004-05-01  Jackson Harper  <jackson@ximian.com>
12149
12150         * appdomain.c: If the culture is neutral we set it to "".
12151         
12152 2004-04-29  Jackson Harper  <jackson@ximian.com>
12153
12154         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12155
12156 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12157  
12158         * string-icalls.c: added low overhead function for copying chars
12159         * icall.c: added needed icall for the above function
12160  
12161 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12162
12163         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12164         Environment.GetLogicalDrives.
12165
12166 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12167
12168         * rand.c: try and talk to egd or prngd
12169         for random bytes if opening devices fail.
12170
12171 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12172
12173         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12174         alignment for the type using the native alignment of its members 
12175         instead of using klass->min_align.
12176
12177         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12178
12179 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12180
12181         * file-io.c:
12182         * socket-io.c: added check for sys/aio.h.
12183
12184 2004-04-28  Dick Porter  <dick@ximian.com>
12185
12186         * threads.c: Don't abort a thread thats already aborting, when
12187         terminating everything.
12188
12189 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12190
12191         * icall.c: added 2 new async calls for Socket.
12192
12193         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12194         IO on *nix systems.
12195
12196         * threadpool.c: removed unused variable.
12197
12198 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12199
12200         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12201
12202 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12203
12204         * locales.c: put back string_invariant_tolower () and
12205         string_invariant_toupper ().
12206
12207 2004-04-26 David Waite <mass@akuma.org>
12208
12209         * file-io.h:
12210         * socket-io.h:
12211         * threads.h:
12212         * unicode.h: remove comma from end of enumeration declarations
12213
12214 2004-04-26 David Waite <mass@akuma.org>
12215
12216         * debug-mono-symfile.h:
12217         * decimal.c:
12218         * mono_debug.h:
12219         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12220
12221
12222 2004-04-26  Jackson Harper  <jackson@ximian.com>
12223
12224         * appdomain.c: Increment version number.
12225         
12226 2004-04-26  Jackson Harper  <jackson@ximian.com>
12227
12228         * appdomain.c: Set assembly references public token value when
12229         PublicKeyToken is specified, not the hash_value. Free public token
12230         values when free assembly name data. Previously the public key
12231         token was hex decoded, however we are using hex encoded public key
12232         tokens, so this is not neccasary.
12233         * assembly.c: Lookup assemblies in the gac if their public token
12234         value is set. Add function to allow enabling user gac
12235         lookups. Specify whether or not the assembly was loaded from the
12236         GAC. Compare full assembly names when checking the cache for
12237         assemblies (Temporarily disabled see comment in code). Remove
12238         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12239         specifies trace-loader they get extra info to stdout on the
12240         loading of assemblies.
12241         * image.h: Add a field for an assembly references public token
12242         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12243         whether an assembly has been loaded from the GAC.
12244         * image.c: Remove a corlib -> mscorlib name mapping.
12245         * loader.h: Add function to enable/disable the user gac.
12246         * mono-config.c: Check if the usergac is enabled in the config
12247         file.
12248         * icall.c: New icall to determine whether or not an assembly has
12249         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12250         * tabldefs.h: Add constant for assemblyref flag that specifies a
12251         full public key is used instead of a public token.
12252         * reflection.c: Remove mscorlib -> corlib mappings. Set
12253         PublicTokenValue instead of hash value. This value is a hex
12254         string so it does not need to be expanded.
12255
12256 2004-04-26  Martin Baulig  <martin@ximian.com>
12257
12258         * mono-debug-debugger.c (mono_debugger_initialize): Set
12259         `mono_debugger_initialized' before calling mono_debug_lock().
12260
12261 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12262
12263         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12264           InternalToUpper/InternalToLower.
12265         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12266           removed invariant culture shortcut.  This is now done in managed code.
12267         * locales.c: (string_invariant_toupper/tolower) removed.
12268
12269 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12270
12271         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12272         Added Poll internal call.
12273
12274         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12275         call for Poll. Select was too heavy for polling a single socket.
12276
12277         * threadpool.[ch]: added mono_threadpool_cleanup.
12278         * threads.c: use it. Don't use Thread_Abort on windows.
12279
12280 2004-04-23  Martin Baulig  <martin@ximian.com>
12281
12282         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12283
12284 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12285
12286         * icall.c: Registred new icalls for key pair protection and added an
12287         icall for Environment.GetFolderPath on Windows.
12288         * security.c|h: Added new icalls for key pair protection.
12289
12290 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12291
12292         * socket-io.c: don't display the non-supported family warning for known
12293         families. Now this is not displayed on windows when checking support
12294         for IPv4/IPv6.
12295
12296 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12297
12298         * class.c: don't display the layout warning for static fields.
12299
12300 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12301
12302         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12303         * locales.c, locales.h: Added new icalls for culture-specific
12304         Char.ToLower and Char.ToUpper.
12305
12306 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12307
12308         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12309         by David Waite.
12310
12311 2004-04-20  Martin Baulig  <martin@ximian.com>
12312
12313         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12314         of the type name before passing it to mono_reflection_type_from_name().
12315
12316 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12317
12318         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12319         encodings here. Fixes #56965.
12320
12321 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12322
12323         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12324         fix test on strstr result not that I can see anything that
12325         relies on the result.
12326
12327 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12328
12329         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12330         Fixes #57081.
12331
12332         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12333
12334         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12335         function to determine which marshalling to use for strings. Fixes
12336         #56965.
12337
12338         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12339
12340         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12341
12342 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12343
12344         * icall.c: #include mono-config.h
12345
12346 2004-04-15  Jackson Harper  <jackson@ximian.com>
12347
12348         * culture-info-tables.h: Fix date formats for en-US culture.
12349         
12350 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12351
12352         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12353         ThreadPool.SetMinThreads.
12354         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12355         ThreadPool.SetMinThreads.
12356
12357 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12358
12359         * mono-config.c: also load the .config file in the directory
12360         where the assembly was found.
12361
12362 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12363
12364         * assembly.c: load per-assembly config files.
12365         * icall.c: decrapified code to get the config dir and moved to
12366         mono-config.c.
12367         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12368         per-assembly config files. When doing a dll map lookup give precedence
12369         to the per-assembly data.
12370
12371 2004-04-14  Martin Baulig  <martin@ximian.com>
12372
12373         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12374         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12375         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12376
12377         * mono-debugger-debugger.c: While the debugger is locked, remember
12378         whether the symbol tables have changes and send one single
12379         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12380
12381 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12382
12383         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12384
12385         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12386         function.
12387
12388         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12389         account when marshalling string arrays. Fixes #56965.
12390
12391 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12392
12393         * icall.c: Add new icalls mapping for security.
12394         * security.c|h: Add internal calls for WindowsIdentity,
12395         WindowsImpersonationContext and WindowsPrincipal.
12396
12397 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12398
12399         * class.c: Added comment to ensure the System.MonoDummy class
12400         is removed when no longer necessary
12401
12402 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12403
12404         * appdomain.c: Pass arguments to the bootstraping exceptions to
12405         minimize JITed methods at boot
12406
12407         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12408         second string to be null.
12409
12410         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12411         Change the protocol to minimize the JIT methods at startup.  Now
12412         it Returns the internal codepage, if the value of "int_code_page"
12413         is 1 at entry, and we can not compute a suitable code page
12414         number, returns the code page as a string.
12415
12416 2004-04-13  Jackson Harper  <jackson@ximian.com>
12417
12418         * culture-info-tables.h: Fix number of decimal digits for all
12419         english locales.
12420
12421 2004-04-13  Jackson Harper  <jackson@ximian.com>
12422
12423         * icall.c: Clairfy out of sync error message. It is not always
12424         your corlib that is out of sync.
12425
12426 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12427
12428         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12429         properties when only the set accessor is overriden. Fixes #55874.
12430
12431 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12432
12433         * assembly.c (mono_assembly_load_references): Make this thread safe.
12434         Fixes #56327.
12435
12436 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12437
12438         * monosn.c: Add missing initialization calls.
12439
12440 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12441
12442         * locales.c:
12443         ves_icall_System_Globalization_CultureInfo_construct_number_format
12444         Fix g_assert so it compiles on fussier compilers re int/ptr
12445         mismatch
12446
12447 2004-04-08  Dick Porter  <dick@ximian.com>
12448
12449         * socket-io.h:
12450         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12451         53992.  Also rearrange the code so that the internal calls return
12452         an error value and exceptions are thrown from managed code.
12453
12454         * icall.c: Add type info to the socket icalls.
12455
12456 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12457
12458         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12459         owes me a beer.
12460
12461 2004-04-07  Martin Baulig  <martin@ximian.com>
12462
12463         * class.c (mono_class_from_generic_parameter): Don't default
12464         `klass->parent' to `mono_defaults.object_type'.
12465
12466 2004-04-07  Martin Baulig  <martin@ximian.com>
12467
12468         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12469         `param->pklass->reflection_info'.       
12470
12471 2004-04-07  Jackson Harper  <jackson@ximian.com>
12472
12473         * culture-info-tables.h: Fix date separator symbol.
12474         
12475 2004-04-07  Martin Baulig  <martin@ximian.com>
12476
12477         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12478         from System.Type to System.MonoType.
12479
12480 2004-04-07  Martin Baulig  <martin@ximian.com>
12481
12482         * reflection.h
12483         (MonoReflectionGenericParam): Added `has_reference_type' and
12484         `has_value_type' fields.
12485
12486         * reflection.c (mono_image_get_generic_param_info): Encode the
12487         correct flags if we have the `class' or `struct' constraint.
12488
12489 2004-04-07  Martin Baulig  <martin@ximian.com>
12490
12491         * reflection.h
12492         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
12493
12494 2004-04-07  Jackson Harper  <jackson@ximian.com>
12495
12496         * appdomain.c: Revert extra patches, just wanted to bump the
12497         version number.
12498         
12499 2004-04-07  Jackson Harper  <jackson@ximian.com>
12500
12501         * Makefile.am: Add culture-info private headers.
12502         * icall.c: Add new icalls for contructing locales.
12503         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
12504         * locales.h: Declare new culture info construction methods.
12505         * object.h: Add new fields used to avoid the CultureMap to
12506         MonoCultureInfo.
12507         * culture-info.h: Definition of structs used in the culture info
12508         tables.
12509         * culture-info-tables.h: Autogenerated tables that contain culture
12510         info data. This file was generated with the locale-builder tool.
12511         * appdomain.c: Incement corlib version number.
12512         
12513 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
12514
12515         * appdomain.c: (mono_runtime_init) move mono_thread_init
12516         to before mono_object_new calls so critical sections
12517         are initialized before use.
12518
12519 2004-04-07  Martin Baulig  <martin@ximian.com>
12520
12521         * icall.c
12522         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
12523         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
12524         (ves_icall_MonoGenericParam_initialize): Removed.
12525         (monogenericparam_icalls): Removed.
12526         (generictypeparambuilder_icalls): Added new table for
12527         System.Reflection.Emit.GenericTypeParameterBuilder.
12528
12529         * reflection.c
12530         (mono_reflection_define_generic_parameter): Removed.
12531         (mono_reflection_initialize_generic_parameter): This is now called
12532         from GenericTypeParameterBuilder's .ctor.
12533
12534 2004-04-06  Martin Baulig  <martin@ximian.com>
12535
12536         * class.c (mono_class_init): Don't inflate nested classes in a
12537         generic instance.
12538         (mono_type_get_name_recurse): Include the generic arguments for
12539         generic instances and generic type declarations.
12540         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
12541         (_mono_class_get_instantiation_name): Removed.
12542         (mono_class_create_generic): Always use `gklass->name' as our name.
12543
12544         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
12545
12546         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
12547         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
12548         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
12549         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
12550         closed generic methods here.
12551
12552         * reflection.c
12553         (mono_reflection_generic_inst_get_nested_types): Removed.
12554         (inflate_mono_method): Copy the generic parameters from the
12555         MonoMethodHeader into out MonoGenericMethod.
12556
12557 2004-04-06  Martin Baulig  <martin@ximian.com>
12558
12559         * row-indexes.h
12560         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
12561
12562         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
12563
12564         * reflection.c (build_compressed_metadata): If we have any entries
12565         in the GenericParam, MethodSpec or GenericParamConstraint tables,
12566         set the header version to 1.1.
12567
12568 2004-04-06  Martin Baulig  <martin@ximian.com>
12569
12570         * class.c (mono_class_init): If we're a generic instance,
12571         initialize our nested classes, too.
12572         (_mono_class_get_instantiation_name): Deal with the new `!%d'
12573         suffix. 
12574
12575 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12576
12577         * process.c: quote the argument passed to the shell on windows.
12578
12579 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
12580
12581         * threads.c (mono_alloc_special_static_data): Allow this to be
12582         called during startup.
12583
12584 2004-04-02  Martin Baulig  <martin@ximian.com>
12585
12586         * icall.c
12587         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
12588
12589 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
12590
12591         * icall.c: Fix build.
12592
12593 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
12594
12595         * Makefile.am: Added security.c|h.
12596         * icall.c: Added icall for get_UserName;
12597         * security.c: New file for security related icalls. Added function
12598         get_UserName for System.Environment (fix #56144).
12599         * security.h: New. Header file for security.c
12600
12601 2004-04-02  Dick Porter  <dick@ximian.com>
12602
12603         * icall.c: Deleted the icalls that were obsoleted some time ago
12604         by the ICU string code, and which were mixed into the icall
12605         rearranging.  Fixes bug 55969.
12606
12607         * string-icalls.h: 
12608         * string-icalls.c: Deleted the code that those icalls reference.
12609
12610 2004-04-01  Martin Baulig  <martin@ximian.com>
12611
12612         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
12613
12614         * class.c (mono_class_from_generic_parameter): Don't set 
12615         TYPE_ATTRIBUTE_INTERFACE.
12616         (my_mono_class_from_generic_parameter): Likewise.
12617
12618 2004-04-01  Martin Baulig  <martin@ximian.com>
12619
12620         * loader.c (find_method): Added an optional `MonoClass *ic'
12621         argument to search in a specific interface.
12622         (mono_get_method_constrained): New public function.
12623
12624 2004-04-01  Martin Baulig  <martin@ximian.com>
12625
12626         * reflection.c (mono_image_get_generic_field_token): Use the
12627         `handleref' cache here.
12628
12629 2004-04-01  Martin Baulig  <martin@ximian.com>
12630
12631         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
12632
12633         * reflection.c (create_generic_typespec): Use the `typespec' hash
12634         here, not the `typeref' one.    
12635
12636 2004-04-01  Martin Baulig  <martin@ximian.com>
12637
12638         * class.c (mono_class_inflate_generic_type): Moved the
12639         functionality into a new static inflate_generic_type() which
12640         returns NULL if it didn't do anything.  Only increment the
12641         `mono_stats.inflated_type_count' if we actually inflated
12642         something.
12643         (mono_class_get_full): Check the classes type to see whether we
12644         need to inflate it; also inflate MONO_TYPE_(M)VAR.
12645
12646 2004-04-01  Jackson Harper  <jackson@ximian.com>
12647
12648         * reflection.c: Set culture for assembly references.
12649         
12650 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
12651
12652         * reflection.[ch], icall.[ch], Fix support for pinning variables.
12653
12654 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12655
12656         * assembly.c:
12657         (do_mono_assembly_open): the critical section also covers
12658         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
12659
12660 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12661
12662         * threads.c:
12663         (mono_manage_threads): abort the background threads when finishing.
12664         Fixes bug #47232.
12665
12666 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12667
12668         * gc.c: only close the done_event handle if there was no timeout.
12669         C-ified comments.
12670
12671 2004-03-30  Martin Baulig  <martin@ximian.com>
12672
12673         * icall.c (icall_entries): It's called "System.Activator", not
12674         "System.Activation".    
12675
12676 2004-03-30  Martin Baulig  <martin@ximian.com>
12677
12678         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
12679         (mono_class_create_from_typespec): Likewise.
12680
12681 2004-03-30  Martin Baulig  <martin@ximian.com>
12682
12683         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
12684         `has_ctor_constraint' and `initialized'.
12685
12686 2004-03-30  Martin Baulig  <martin@ximian.com>
12687
12688         * reflection.c (encode_new_constraint): New static function to add
12689         the constructor constraint attribute to a type parameter.
12690         (encode_constraints): Call encode_new_constraint() if necessary.
12691
12692         * reflection.h
12693         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
12694
12695         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
12696         
12697 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
12698
12699         * reflection.c, icall.c: add support for pinning variables. 
12700
12701 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
12702
12703         * marshal.c (mono_marshal_get_managed_wrapper):
12704         init bool local with zero rather than null.
12705
12706 2004-03-29  Martin Baulig  <martin@ximian.com>
12707
12708         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
12709         the "official" behavior here.
12710         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
12711
12712 2004-03-29  Martin Baulig  <martin@ximian.com>
12713
12714         * icall.c: Reflect latest API changes.
12715
12716 2004-03-29  Martin Baulig  <martin@ximian.com>
12717
12718         * loader.c (mono_get_method_from_token): Also call
12719         mono_metadata_load_generic_params () for abstract and interface
12720         methods; replace the type arguments in the method signature with
12721         the ones which are loaded from the metadata.
12722
12723 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
12724
12725         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
12726         of the lock is not the current thread. MS.NET don't do it, in spite of
12727         what the documentation says. See bug #56157.
12728
12729 2004-03-28  Martin Baulig  <martin@ximian.com>
12730
12731         * class.c (mono_class_init): Don't call init_properties() and
12732         init_events() for generic instances; set `prop->parent' when
12733         inflating properties.
12734
12735         * reflection.c (mono_generic_inst_get_object): Call
12736         `mono_class_init (ginst->klass)'.
12737         (mono_type_get_object): Only create a MonoGenericInst if your
12738         generic type is a TypeBuilder.
12739         (do_mono_reflection_bind_generic_parameters): Only set
12740         `ginst->is_dynamic' if our generic type is a TypeBuilder.
12741
12742 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
12743
12744         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
12745         Fixes #56091.
12746
12747 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12748
12749         * icall.c: added Kill_internal icall.
12750         * process.[ch]: added Kill_internal icall.
12751
12752 2004-03-25  Martin Baulig  <martin@ximian.com>
12753
12754         * class.h (MonoStats): Added `generic_instance_count',
12755         `inflated_method_count', `inflated_type_count' and
12756         `generics_metadata_size'.       
12757
12758 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12759
12760         * reflection.c: no warnings now.
12761
12762 2004-03-25  Martin Baulig  <martin@ximian.com>
12763
12764         * class.c (mono_class_get_full): New public function; does a
12765         mono_class_get(), but also takes a `MonoGenericContext *'.
12766
12767         * loader.c (mono_field_from_memberref): Renamed to
12768         `field_from_memberref', made static and added `MonoGenericContext *'
12769         argument.
12770         (mono_field_from_token): Added `MonoGenericInst *' argument.
12771         (method_from_memberef): Likewise.
12772         (mono_get_method_from_token): Likewise.
12773         (mono_get_method_full): New public function; does a
12774         mono_get_method(), but also takes a `MonoGenericContext *'.
12775
12776         * verify.c (mono_method_verify): Get the method's generic context
12777         and pass it to mono_field_from_token(), mono_get_method_full() and
12778         mono_class_get_full().
12779
12780 2004-03-25  Martin Baulig  <martin@ximian.com>
12781
12782         * class.c (mono_class_inflate_generic_type): Take a
12783         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
12784         `MonoGenericMethod *'.
12785
12786 2004-03-25  Martin Baulig  <martin@ximian.com>
12787
12788         * loader.h (MonoMethodInflated): Store the MonoGenericContext
12789         instead of the MonoGenericMethod here.
12790
12791 2004-03-25  Martin Baulig  <martin@ximian.com>
12792
12793         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
12794         each time we create a new MonoGenericInst, we also create a new
12795         context which points back to us.
12796
12797         * class.c (inflate_method): Use `ginst->context' instead of
12798         creating a new context.
12799
12800         * loader.c (method_from_memberref): Use
12801         `klass->generic_inst->context' instead of creating a new context.
12802
12803 2004-03-25  Martin Baulig  <martin@ximian.com>
12804
12805         * class.h (MonoGenericContext): New struct.
12806         (MonoGenericMethod): Removed `generic_inst'.
12807
12808         * class.c (mono_class_inflate_generic_method): Take a
12809         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
12810
12811 2004-03-25  Martin Baulig  <martin@ximian.com>
12812
12813         * loader.h (MonoMethodInflated): New typedef.
12814
12815         * metadata.h (MonoMethodSignature): Removed `gen_method', make
12816         `generic_param_count' consume just 30 bits, added `is_inflated'
12817         and `has_type_parameters' flags (one bit each).
12818
12819         * class.c (mono_class_inflate_generic_method): Create a
12820         MonoMethodInflated instead of a MonoMethodNormal and set
12821         `is_inflated' in the method signature.
12822
12823         * class.h (MonoGenericMethod): Removed `generic_method'.
12824
12825 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
12826
12827         * image.c: Make sure the name of a MonoImage is always an absolute path.
12828           This fixes bug #54415.
12829
12830 2004-03-24  Martin Baulig  <martin@ximian.com>
12831
12832         * class.c (mono_class_setup_vtable): If we're a generic instance,
12833         use our generic type's vtable size.
12834
12835 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
12836
12837         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
12838         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
12839         problems.
12840
12841 2004-03-23  Martin Baulig  <martin@ximian.com>
12842
12843         * class.h (MonoDynamicGenericInst): Added `int count_events' and
12844         `MonoEvent *events'.
12845
12846         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
12847         (typebuilder_icalls): Added "get_event_info"; calls
12848         mono_reflection_event_builder_get_event_info(). 
12849
12850         * reflection.c (mono_reflection_generic_inst_initialize): Added
12851         `MonoArray *events'.
12852         (mono_reflection_event_builder_get_event_info): New function.
12853
12854 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
12855
12856         * object.h: add mono_type_initialization_init
12857
12858         * object.c (mono_runtime_class_init): 
12859         implement class constructor synchronization rules
12860         to cope with threading issues.  
12861         add mono_type_initialization_init
12862
12863         * appdomain.c (mono_runtime_init): call 
12864         mono_type_initialization_init
12865
12866         * class.h: removing initializing field from MonoVTable
12867
12868 2004-03-23  Martin Baulig  <martin@ximian.com>
12869
12870         * class.c (my_mono_class_from_generic_parameter): Use
12871         `param->name' if it's not NULL. 
12872
12873 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
12874
12875         * class.c: do not insert non-virtual methods in the vtable.
12876         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
12877         that means the method is non-virtual. This never would have
12878         happened before.
12879
12880 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
12881
12882         * profiler.c: Added lock for accessing coverage_hash.
12883
12884 2004-03-22  Martin Baulig  <martin@ximian.com>
12885
12886         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
12887         `method->method->signature->generic_param_count != 0' to make it
12888         work for interface methods.
12889
12890 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12891
12892         * process.c: quote the string passed to the shell using g_shell_quote.
12893
12894 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12895
12896         * threads.c:
12897         (mono_threads_manage): don't remove the finalizer thread and self
12898         from the threads hash table so that mono_thread_manage can be called
12899         more than once.
12900
12901 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12902
12903         * process.c: quote the arguments when UseShellExecute is true. Fixes
12904         bug #55790.
12905
12906 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12907
12908         * threads.c: set mono_thread_detach as a cleanup routine for every
12909         thread. This way it's always executed upon thread termination, either
12910         aborted or finished normally. No more xsp hangs!
12911
12912 2004-03-17  Martin Baulig  <martin@ximian.com>
12913
12914         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
12915         `int count_nested' and a `MonoType **nested'.
12916
12917         * reflection.c (mono_reflection_bind_generic_parameters): Moved
12918         most of the functionality into a new static
12919         do_mono_reflection_bind_generic_parameters() and don't take a
12920         `MonoType *nested_in' argument any more.  Don't compute nested
12921         types here.
12922         (mono_reflection_generic_inst_get_nested_types): New public method
12923         to get nested types.
12924
12925         * class.c (mono_class_create_generic): Set `klass->nested_in' if
12926         we're a nested class.
12927
12928         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
12929         mono_reflection_generic_inst_get_nested_types() to compute the
12930         nested types.
12931
12932 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12933
12934         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
12935         descriptive error message under windows.
12936         
12937 2004-03-17  Martin Baulig  <martin@ximian.com>
12938
12939         * class.c (dup_type): Added `const MonoType *original' argument;
12940         copy the attrs from the original type.
12941
12942 2004-03-17  Martin Baulig  <martin@ximian.com>
12943
12944         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
12945         `m->generic_inst_cache' here.
12946
12947 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12948
12949         * exception.h exception.c: Add stack_overflow_exception.
12950
12951 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12952
12953         * threadpool.c:
12954         (overlapped_callback): call SetEvent *after* invoking the callback.
12955         No need to call CloseHandle.
12956
12957 2004-03-16  Martin Baulig  <martin@ximian.com>
12958
12959         * reflection.c (mono_image_get_fieldref_token): Take a
12960         `MonoReflectionField *' instead of a `MonoClassField *' and a
12961         `MonoClass *'; store the `MonoReflectionField *' in the hash.
12962
12963 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12964
12965         * appdomain.c: don't add the culture to the filename we're looking for
12966         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
12967
12968 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12969
12970         * locales.c: don't ignore symbols when doing case insensitive compares.
12971         Thanks Dick! Fixes bug #54046.
12972
12973         * threads.c: surround 'threads' usage with enter/leave in
12974         mono_thread_manage.
12975
12976 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
12977
12978         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
12979         implicitly marshalled as [Out]. Fixes #55450.
12980
12981         (mono_marshal_get_runtime_invoke): Zero out the result if there is
12982         an exception.
12983
12984 2004-03-16  Martin Baulig  <martin@ximian.com>
12985
12986         * class.c (mono_class_from_generic_parameter): Use the actual
12987         parameter name. 
12988
12989 2004-03-16  Martin Baulig  <martin@ximian.com>
12990
12991         * reflection.c (type_get_signature_size): New static function.
12992         Compues the size of the type in a method signature.
12993         (method_get_signature_size): New static function; calls
12994         type_get_signature_size() to compute the actual size of the
12995         method's signature.
12996         (method_encode_signature): Use method_get_signature_size() to get
12997         the signature's size rather than using `nparams * 10'.
12998
12999 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13000
13001         * file-io.h: define here WapiOverlapped on windows. I don't want the
13002         regular OVERLAPPED one.
13003
13004         * file-io.c:
13005         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13006         Disabling AIO on windows.
13007
13008 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13009
13010         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13011         bug #55385.
13012
13013 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13014
13015         * appdomain.c: upgraded corlib version.
13016
13017         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13018         and BeginWrite. Allow opening files for asynchrnous operations.
13019
13020         * file-io.h: new struct that maps FileStreamAsyncResult.
13021         * icall.c: added new icalls.
13022         * process.[ch]: support setting child process environment variables
13023         and use the SHELL or COMSPEC when UseShellExecute is true.
13024
13025         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13026         callback for async. IO is here and also BindHandle.
13027
13028         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13029         from here.
13030
13031 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13032
13033         * reflection.c (create_custom_attr): Allow len == 0.
13034
13035         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13036         computation on big-endian machines.
13037
13038 2004-03-13  Martin Baulig  <martin@ximian.com>
13039
13040         * class.h (MonoGenericInst): Added `int count_ifaces'.
13041
13042         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13043         `ginst->count_ifaces' instead `klass->interface_count' since we
13044         may get called before the vtable is created.
13045
13046         * loader.c (mono_method_get_param_names): If we're a generic
13047         instance, return and don't initialize the class.
13048
13049         * reflection.c (mono_reflection_setup_generic_class): Don't call
13050         ensure_runtime_vtable().
13051         (mono_reflection_bind_generic_parameters): Set
13052         `ginst->count_ifaces'.
13053
13054 2004-03-11  Jackson Harper <jackson@ximian.com>
13055
13056         * icall.c:
13057         * unicode.c:
13058         * unicode.h: Remove unused System.Char icalls.
13059         
13060 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13061
13062         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13063         code when we P/Invoke the first library in Windows.Forms, instead
13064         of when we first open the assembly.
13065
13066         * assembly.c: Drop the lookup from here.
13067
13068 2004-03-10  Martin Baulig  <martin@ximian.com>
13069
13070         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13071         class for properties, fields and events.  Finally fixes #54945.
13072
13073 2004-03-10  Martin Baulig  <martin@ximian.com>
13074
13075         * metadata.c (mono_metadata_class_equal): New static function;
13076         checks whether two generic instances or two generic parameters are
13077         equal.
13078         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13079         compare classes.        
13080
13081 2004-03-10  Martin Baulig  <martin@ximian.com>
13082
13083         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13084
13085         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13086         argument and write it into the `reflection_info' field.
13087
13088         * icall.c
13089         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13090         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13091
13092 2004-03-09  Jackson Harper  <jackson@ximian.com>
13093
13094         * char-conversions.h: use 8 bits for numeric data its all we need
13095         * icall.c: numeric data is only 8 bits now.
13096
13097 2004-03-09  Martin Baulig  <martin@ximian.com>
13098
13099         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13100
13101         * class.c (init_properties, init_events): Initialize the new
13102         `parent' field.
13103
13104         * reflection.c (typebuilder_setup_properties): Likewise.
13105         (typebuilder_setup_events): Likewise.
13106
13107         * reflection.h (MonoEventInfo): Replaced `parent with
13108         `declaring_type' and `reflected_type'.
13109
13110         * icall.c (ves_icall_get_property_info): Distinguish between
13111         declaring and reflected type.
13112         (ves_icall_get_event_info): Likewise.
13113
13114 2004-03-09  Martin Baulig  <martin@ximian.com>
13115
13116         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13117         (ves_icall_Type_GetField): Correctly set field->klass.
13118
13119 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13120
13121         * loader.h: Fix warning.
13122
13123 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13124
13125         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13126         library routine if present.  Notice that it will still continue
13127         executing even if its missing, for those working on the Gtk#
13128         edition of Windows.Forms.
13129
13130         * assembly.c (do_mono_assembly_open): If loading the
13131         System.Windows.Forms call mono_loader_wini_init.
13132
13133 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13134
13135         * class.h: Added MonoRemoteClass struct.
13136         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13137         function for MonoStrings.
13138         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13139         Added internal call for getting the proxy type.
13140         * marshal.c: Get the type of transparent proxies from its remote_class.
13141         Added methods that generate the IL for type checks and casts:
13142         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13143         mono_marshal_get_proxy_cancast.
13144         * marshal.h: Declaration of the previous new methods.
13145         * object.c: Added new moethods for creating and updating MonoRemoteClass
13146         instances: mono_remote_class, mono_upgrade_remote_class, 
13147         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13148         * verify.c: FIx transparent_proxy_fields layout.
13149         * appdomain.c: Bump corlib version.
13150
13151 2004-03-04  Jackson Harper  <jackson@ximian.com>
13152
13153         * icall.c: Add icall to access char conversion tables.
13154         * char-conversions.h: Character conversion tables.
13155         * Makefile.am: Add char-conversions.h private header file.
13156         
13157 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13158
13159         * appdomain.c (unload_thread_main): Increase unloading timeout to
13160         10 sec as a temporary workaround for Nant problems.
13161
13162 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13163
13164         * gc.c: Add checks for GC_enable and GC_disable.
13165
13166         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13167         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13168         (bug #54988).
13169         
13170 2004-02-27  Martin Baulig  <martin@ximian.com>
13171
13172         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13173         `MonoReflectionType *' instead of a `MonoType *'.
13174
13175 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13176
13177         * gc.c (run_finalize): Avoid finalizing the object representing the
13178         finalizer thread.
13179         (finalizer_thread): Fix warning.
13180
13181 2004-02-25  Martin Baulig  <martin@ximian.com>
13182
13183         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13184         argument for nested types.
13185         (mono_class_create_generic): Added support for nested generictypes.
13186
13187         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13188         `GList *nested'.
13189
13190         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13191
13192         * reflection.c (method_encode_signature): Increase the minimum
13193         value of `size' from 10 to 11.
13194         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13195         and `MonoType **types' arguments instead of the `MonoArray
13196         *types'; added `MonoType *nested_in'.  Recursively instantiate
13197         nested classes. 
13198
13199 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13200
13201         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13202         stack_overflow_ex members which are used by exception handling.
13203
13204         * appdomain.c (mono_runtime_init): Initialize the new members.
13205
13206         * gc.c (mono_gc_enable): New helper function.
13207         * gc.c (mono_gc_disable): New helper function.
13208
13209 2004-02-23  Martin Baulig  <martin@ximian.com>
13210
13211         * icall.c: I must have been really stupid - make it actually work
13212         this time ;-)
13213
13214 2004-02-23  Martin Baulig  <martin@ximian.com>
13215
13216         * loader.c (method_from_memberref): Only inflate the method if
13217         it's in another klass.
13218
13219 2004-02-23  Martin Baulig  <martin@ximian.com>
13220
13221         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13222         (mono_class_init): If we're a generic instance and an interface,
13223         compute `class->interface_id'; also create `class->interfaces'
13224         here and inflate them.
13225
13226         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13227         `ginst->is_open'.
13228         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13229
13230         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13231
13232 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13233
13234         * reflection.c (method_encode_code): Improved the error message
13235         generated by the exception.
13236
13237 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13238
13239         * icall.c: Martin did not do what he said in the ChangeLog for
13240         2004-02-18, but put back the changes for properties and events.
13241         Commenting those changes out again and adding comment to bug #54518.
13242         
13243         * process.c: removed warning.
13244
13245 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13246
13247         * marshal.c (emit_struct_conv): Print an error message instead of
13248         asserting when a type does not have the StructLayout attribute.
13249
13250 2004-02-20  Martin Baulig  <martin@ximian.com>
13251
13252         * reflection.c (mono_type_get_object): Also use the cache for
13253         generic instances.
13254         (mono_reflection_bind_generic_parameters): Always compute
13255         `ginst->ifaces'.        
13256
13257 2004-02-20  Martin Baulig  <martin@ximian.com>
13258
13259         * class.h (MonoGenericMethod): Removed `klass'.
13260
13261         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13262         *klass' argument.
13263
13264 2004-02-20  Martin Baulig  <martin@ximian.com>
13265
13266         * reflection.c (method_encode_methodspec): Actually use the
13267         uninflated signature for the memberref.
13268
13269 2004-02-20  Martin Baulig  <martin@ximian.com>
13270
13271         * class.h (MonoGenericMethod): Removed `declaring'.
13272
13273         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13274         is NULL, compute it here.
13275
13276 2004-02-20  Martin Baulig  <martin@ximian.com>
13277
13278         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13279
13280         * metadata.c (mono_metadata_generic_inst_hash): New method.
13281         (mono_metadata_generic_inst_equal): New method.
13282
13283         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13284         `klass->image->generic_inst_cache' cache to avoid creating
13285         duplicate MonoGenericInst's.
13286
13287         * class.c (mono_class_inflate_generic_type): Use the cache.
13288
13289 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13290
13291         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13292
13293 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13294
13295         * icall.c: added Socket.WSAIoctl icall.
13296
13297         * socket-io.[ch]: implemented
13298         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13299
13300 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13301
13302         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13303
13304 2004-02-18  Urs C Muff  <umuff@quark.com>
13305
13306         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13307         this work on PPC and other big-endian architectures.
13308
13309         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13310         fields with an underscore to make sure they're only accessed by
13311         the read32() macro.
13312
13313 2004-02-18  Martin Baulig  <martin@ximian.com>
13314
13315         * icall.c: Put the klass->refclass changes back for methods and
13316         fields, but not for properties and events.  We're currently not
13317         distinguishing between DeclaringType and ReflectedType for
13318         properties and events, that's what caused the regressions.
13319
13320 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13321
13322         * object.c:
13323         (mono_async_result_new): the handle can be NULL.
13324
13325         * threadpool.c: Use an event instead of a semaphore, don't initialize
13326         it until needed. This saves quite a few semaphores from being created
13327         when using the threadpool.
13328
13329 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13330
13331         * object.c (mono_string_is_interned_lookup): Fix interning of long
13332         strings. Fixes #54473.
13333
13334         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13335
13336         * icall.c: Revert the klass->refclass changes since they introduce
13337         regressions (bug #54518).
13338
13339 2004-02-18  Martin Baulig  <martin@ximian.com>
13340
13341         * class.c (mono_class_init): If we're a generic instance and don't
13342         come from a TypeBuilder, inflate our members here.
13343         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13344         (mono_class_create_generic): New public method.
13345         (mono_class_initialize_generic): Removed.
13346         (get_instantiation_name): Renamed to
13347         _mono_class_get_instantiation_name() and made it public.
13348
13349 2004-02-18  Martin Baulig  <martin@ximian.com>
13350
13351         * class.c (mono_class_inflate_generic_type): Clear the new
13352         instance's `nginst->klass' when inflating a generic instance.
13353         (mono_class_is_subclass_of): Added (basic) support for generic
13354         instances.
13355
13356 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13357
13358         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13359         MonoMempool to hold compiled native code.
13360
13361 2004-02-17  Martin Baulig  <martin@ximian.com>
13362
13363         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13364         `properties'.
13365
13366         * reflection.c (mono_reflection_generic_inst_initialize): Added
13367         `MonoArray *properties' argument.
13368
13369         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13370
13371 2004-02-17  Martin Baulig  <martin@ximian.com>
13372
13373         * icall.c (ves_icall_Type_GetFields): Renamed to
13374         ves_icall_Type_GetFields_internal() and added a
13375         `MonoReflectionType *rtype' argument; pass it to
13376         mono_field_get_object() to set the field's "reflected" type.
13377         (ves_icall_Type_GetConstructors): Likewise.
13378         (ves_icall_Type_GetEvents): Likewise.
13379         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13380         argument; pass it to mono_method_get_object() to set the method's
13381         "reflected" type.       
13382
13383 2004-02-17  Martin Baulig  <martin@ximian.com>
13384
13385         * class.h (MonoDynamicGenericInst): New type.
13386         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13387
13388         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13389         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13390         (ves_icall_MonoGenericInst_GetFields): New interncall.
13391
13392         * class.c (mono_class_from_generic): Don't call
13393         mono_class_initialize_generic() if this is a dynamic instance;
13394         ie. it's being created from a TypeBuilder.
13395         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13396         `class->byval_arg.type'.
13397
13398         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13399         to `inflate_method' and made static.
13400         (mono_reflection_inflate_field): Removed.
13401         (mono_reflection_generic_inst_initialize): New public method.
13402
13403         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13404         `ctors' and `fields'; added `initialized'.
13405
13406 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13407
13408         * debug-helpers.c (mono_method_full_name): Fix output for empty
13409         namespaces.
13410
13411 2004-02-12  Martin Baulig  <martin@ximian.com>
13412
13413         * class.h (MonoClassField): Added `MonoType *generic_type'.
13414
13415         * reflection.c (mono_image_get_fieldref_token): Added support for
13416         instantiated generic types.
13417         (field_encode_inflated_field): Removed.
13418         (mono_image_get_inflated_field_token): Removed.
13419         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13420
13421         * reflection.h (MonoReflectionInflatedField): Removed.
13422
13423 2004-02-12  Martin Baulig  <martin@ximian.com>
13424
13425         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13426         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13427
13428         * reflection.c (mono_image_get_methodspec_token): Take a
13429         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13430         (mono_image_create_token): Check whether we have a
13431         `method->signature->gen_method' and call
13432         mono_image_get_methodspec_token() if appropriate.
13433         (inflated_method_get_object): Removed.
13434         (mono_reflection_bind_generic_method_parameters): Return a
13435         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13436         (mono_reflection_inflate_method_or_ctor): Likewise.
13437
13438         * reflection.h (MonoReflectionInflatedMethod): Removed.
13439
13440 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13441
13442         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13443         for custom valuetype marshalling.
13444
13445         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13446
13447 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13448
13449         * icall.c: fixed WSAGetLastError_internal name.
13450
13451 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13452
13453         * threads.c (mono_thread_attach): Allow this to be called multiple
13454         times for a thread.
13455         
13456         * threads.c (build_wait_tids): Do not wait for ourselves.
13457
13458         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13459         appdomain list is empty.
13460
13461         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13462         memory returned by mono_string_builder_to_utf16, since it points into
13463         managed memory. Thanks to Bernie Solomon for noticing this.
13464
13465         * icall.c: Add AppDomainSetup icalls.
13466
13467         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13468
13469         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13470         types.
13471
13472         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13473         custom attributes to the method_aux struct. Also fix array indexes etc.
13474
13475         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13476         
13477 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13478
13479         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13480         (both static and runtime) and reduce startup time.
13481
13482 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13483
13484         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13485         AsAny marshalling conversion instead of crashing.
13486
13487         * marshal.c: Fix warnings.
13488
13489 2004-02-09  Martin Baulig  <martin@ximian.com>
13490
13491         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
13492
13493         * reflection.h (MonoReflectionInflatedMethod): Removed the
13494         `declaring' field, it's now in the unmanaged MonoGenericMethod.
13495
13496         * reflection.c (method_encode_methodspec): Removed the `method'
13497         argument; we get it from `gmethod->declaring'.
13498         (inflated_method_get_object): Removed the `declaring' argument.
13499
13500 2004-02-09  Martin Baulig  <martin@ximian.com>
13501
13502         * class.h (MonoGenericMethod): New type.
13503         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
13504         `generic_method'.
13505
13506         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
13507         a `MonoGenericMethod *gen_method' one.
13508
13509         * class.c (mono_class_inflate_generic_type): Take an additional
13510         `MonoGenericMethod * argument.  This is only non-NULL if we're
13511         inflating types for a generic method.   
13512         (mono_class_inflate_generic_signature): Renamed to
13513         inflate_generic_signature() and made static; take a
13514         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13515         (inflate_generic_header): Take a `MonoGenericMethod *' argument
13516         instead of a `MonoGenericInst *' one.
13517         (mono_class_inflate_generic_method): Likewise.
13518
13519         * reflection.c (encode_generic_method_sig): Take a
13520         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13521         (method_encode_methodspec): Likewise.
13522         (inflated_method_get_object): Likewise. 
13523
13524         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
13525         field with a `MonoGenericMethod *gmethod' one.  
13526
13527 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
13528
13529         * class.h (mono_class_has_parent): add parens to expansion
13530         so you can ! this.
13531
13532 2004-02-08  Martin Baulig  <martin@ximian.com>
13533
13534         * image.h (MonoImage): Removed `generics_cache'.
13535
13536         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
13537         instead of a `MonoType *' argument; removed the `inflate_methods'
13538         argument.  Don't inflate methods here.
13539
13540         * loader.c (find_method): If it's a generic instance, call
13541         mono_class_init() on the `sclass->generic_inst->generic_type'.
13542
13543         * metadata.c (mono_type_size): Make this work on uninitialized
13544         generic instances; call it on the `ginst->generic_type's class.
13545
13546         * reflection.c (mono_reflection_bind_generic_parameters): Call
13547         mono_class_from_generic() to create the `ginst->klass'.
13548
13549 2004-02-08  Martin Baulig  <martin@ximian.com>
13550
13551         * class.h (MonoClass): Changed type of `generic_inst' from
13552         `MonoType *' to `MonoGenericInst *'.
13553
13554 2004-02-08  Martin Baulig  <martin@ximian.com>
13555
13556         * icall.c (ves_icall_Type_BindGenericParameters): Just call
13557         mono_type_get_object(), this is now creating a `MonoGenericInst'
13558         for MONO_TYPE_GENERICINST.
13559         (ves_icall_MonoGenericInst_GetParentType): Likewise.
13560         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
13561
13562         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
13563         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
13564         (inflated_method_get_object): Added `MonoClass *refclass' argument.
13565         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
13566         and reflected type.
13567
13568         * reflection.h (MonoReflectionInflatedMethod): Removed
13569         `declaring_type' and `reflected_type'.
13570
13571 2004-02-08  Martin Baulig  <martin@ximian.com>
13572
13573         * class.h (MonoGenericInst): Added `MonoType *parent' and
13574         `MonoType **ifaces'.
13575
13576         * reflection.h (MonoReflectionGenericInst): Removed `klass',
13577         `parent' and `interfaces'.
13578
13579         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13580         `MonoType *' argument and return a `MonoType *'.
13581
13582         * icall.c
13583         (ves_icall_MonoGenericInst_GetParentType): New interncall.
13584         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
13585
13586 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13587
13588         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
13589         valuetype marshalling.
13590
13591 2004-02-06  Martin Baulig  <martin@ximian.com>
13592
13593         * class.c
13594         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
13595         (my_mono_class_from_generic_parameter): Likewise.
13596
13597 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13598
13599         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
13600         contents of the symbol files lazily.
13601
13602         * object.h (MonoThread): Add 'name' and 'name_len' fields.
13603
13604         * threads.h threads.c icall.c: New icalls for getting and setting the
13605         threads name.
13606
13607 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
13608
13609         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
13610         Raise an exception when the domain is not found.
13611
13612 2004-02-03  Martin Baulig  <martin@ximian.com>
13613
13614         * reflection.c (mono_image_get_methodspec_token): Use the
13615         uninflated signature; fixes gen-33.
13616
13617 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
13618
13619         * gc.c threads.c: Make the finalizer thread a normal managed thread so
13620         the finalizer code can use thread functionality.
13621
13622         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
13623         the finalizer thread.
13624
13625         * threads.c: Make some functions more robust.
13626
13627         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
13628
13629         * metadata.h: Add new marshalling conventions.
13630
13631         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
13632         stringbuilder marshalling. Fixes #53700.
13633
13634         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
13635
13636         * reflection.c (mono_image_get_type_info): Save declarative security
13637         info.
13638
13639         * reflection.c (mono_image_get_field_info): Handle uninitialized 
13640         unmanaged fields as well.
13641
13642         * appdomain.c: Bump corlib version.
13643
13644 2004-02-01  Martin Baulig  <martin@ximian.com>
13645
13646         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
13647         method type arguments.  
13648
13649 2004-01-30  Duncan Mak  <duncan@ximian.com>
13650
13651         * marshal.h: Add prototype for
13652         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
13653         and
13654         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
13655         fix the build.
13656
13657 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
13658
13659         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
13660         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
13661
13662 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13663
13664         * marshal.c (mono_marshal_get_native_wrapper): Add support for
13665         custom marshalling of valuetypes.
13666
13667         * marshal.c: Fix some warnings.
13668
13669 2004-01-29  Martin Baulig  <martin@ximian.com>
13670
13671         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
13672         for generic method parameters.
13673
13674         * reflection.c (method_encode_methodspec): Write the uninflated
13675         signature into the methodspec table.
13676         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
13677         is always the uninflated method.
13678         (reflection_methodbuilder_to_mono_method): Copy the generic
13679         parameters from the MethodBuilder into `header->gen_params'.
13680
13681 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13682
13683         * class.c (mono_class_from_generic_parameter): Fix warning.
13684
13685 2004-01-27  Martin Baulig  <martin@ximian.com>
13686
13687         * class.c (mono_class_from_generic_parameter): Don't create
13688         `klass->methods' here.  
13689
13690 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
13691
13692         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
13693         extension since it does not work with libraries named lib<FOO>.dll.so.
13694
13695 2004-01-25  Martin Baulig  <martin@ximian.com>
13696
13697         * class.c (mono_class_inflate_generic_type): Added support for
13698         MONO_TYPE_GENERICINST.
13699
13700         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
13701         inflate methods on open constructed types.      
13702
13703 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13704
13705         * object.c: fire ProcessExit event in the root AppDomain after running
13706         Main. Fixes bug #53299.
13707
13708 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
13709
13710         * socket-io.c: include the new socket-wrappers.h header.
13711         Use the wrappers instead of the unix socket functions to make the code
13712         more clear.
13713
13714 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
13715
13716         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
13717
13718         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13719         Fixes #22532.
13720
13721 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
13722
13723         * reflection.c (mono_image_create_pefile): Handle the case when the
13724         entry point is not a MethodBuilder.
13725
13726         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13727         field to ReflectionMethod since it is not allways a builder.
13728
13729         * reflection.c (type_get_fully_qualified_name): New helper function to
13730         return the fully qualified name of a type.
13731
13732         * reflection.c (encode_marshal_blob): Always emit the fully qualified
13733         type name for custom marshallers.
13734
13735         * reflection.c (mono_marshal_spec_from_builder): Ditto.
13736
13737         * class.c (mono_class_setup_vtable): If a parent class already 
13738         implements an interface, use the implementing methods from that class.
13739         Fixes #53148.
13740
13741 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13742
13743         * threadpool.c: just return instead of ExitThread to allow for thread
13744         clean up earlier.
13745
13746 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
13747
13748         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
13749         when closing resource modules.
13750
13751         * reflection.c (mono_image_create_pefile): Handle the case when the
13752         entry point is not a MethodBuilder.
13753
13754         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13755         field to ReflectionMethod since it is not allways a builder.
13756
13757 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13758
13759         * marshal.c (mono_marshal_get_managed_wrapper): 
13760         mono_marshal_alloc takes native int so CONV_I
13761         the arg for 64bits.
13762
13763 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
13764
13765         * reflection.c (fixup_cattrs): New function to fixup the methoddef
13766         tokens in the cattr table. Fixes #53108.
13767
13768 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13769
13770         * loader.c: don't trim ".dll" before looking up in the config file.
13771         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
13772
13773 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
13774
13775         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
13776         Return the module which contains the resource as well.
13777         (ves_icall_System_Reflection_Module_Close): New icall.
13778
13779         * appdomain.c: Bump corlib version number.
13780
13781         * image.c (mono_image_addref): New public function.
13782
13783         * assembly.c: Call mono_image_addref.
13784
13785         * reflection.c (mono_module_get_object): Increase reference count of 
13786         the image.
13787
13788         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13789         Fixes #22532.
13790
13791         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
13792         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
13793         proper exceptions on DllImport problems.
13794
13795 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
13796
13797         * class.c, metadata.c: eliminate CSIZE macro.
13798
13799 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
13800
13801         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
13802         * object.h: Added async_callback field in MonoAsyncResult.
13803         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
13804         * verify.c: Added async_callback in MonoAsyncResult layout.
13805
13806 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
13807
13808         * reflection.c (mono_reflection_get_custom_attrs): Add support
13809         for Modules.
13810
13811 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13812
13813         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
13814         marshalling.
13815         (mono_marshal_method_from_wrapper): Add null pointer check.
13816
13817 2004-01-16  Martin Baulig  <martin@ximian.com>
13818
13819         * debug-mono-symfile.h: Set version number to 36 and reflect
13820         latest symbol writer changes.
13821
13822 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13823
13824         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
13825         multi-dimensional arrays.
13826         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
13827         (mono_class_from_mono_type): Use bounded_array_class_get.
13828         
13829         * class.c (mono_bounded_array_class_get): New function which takes
13830         a 'bounded' bool argument to distinguish vectors from one dimensional
13831         arrays.
13832
13833         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
13834         bounded_array_class_get if the array has bounds.
13835
13836         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13837         Search modules loaded using AssemblyBuilder:AddModule as well.
13838
13839 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13840
13841         * appdomain.c: increased corlib version.
13842         * filewatcher.c: removed g_print.
13843         * icall.c:
13844         (get_property_info): only allocate what is actually requested.
13845         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
13846
13847 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13848
13849         * Makefile.am: added filewatcher.[ch]
13850         * filewatcher.[ch]: FileSystemWatcher runtime support.
13851         * icall.c: added new FSW icalls.
13852
13853 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
13854
13855         * string-icalls.c: fix stringbuilder regression as suggested by
13856         Iain McCoy <iain@mccoy.id.au>.
13857
13858 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
13859
13860         * process.c (process_read_stringtable_block): Recognize '007f' as
13861         a language neutral stringtable block.
13862
13863 2004-01-12  Patrik Torstensson
13864
13865         * object.h (MonoStringBuilder) : Changed layout to support our
13866         new stringbuilder class.
13867         * marshal.c: Change marshalling to support the new layout of 
13868         string builder.
13869         * appdomain.c: increased version number because new layout of
13870         string builder.
13871
13872 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
13873
13874         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
13875         assembly name as an string instead of an AssemblyName, since it is
13876         easier to extract info from it.
13877
13878         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
13879         the culture subdirectories too. Fixes #52231.
13880
13881 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13882
13883         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
13884         It takes 2 new parameters with an optional name for the method to look
13885         for and case ignoring info.
13886
13887         * threadpool.c: removed unused variable.
13888
13889 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13890
13891         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
13892         It takes 2 new parameters with an optional name for the property to look
13893         for and case ignoring info.
13894         Fixes bug #52753.
13895
13896 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
13897
13898         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
13899         Fix #52451.
13900
13901 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13902
13903         * appdomain.c:
13904         * assembly.c: escape the uri before passing it to g_filename_from_uri.
13905         Fixes bug #52630.
13906
13907 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
13908
13909         * reflection.c: Add support for more than one unmanaged resource.
13910
13911         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
13912         in field->def_value, as done in all other cases.
13913
13914         * reflection.c (mono_reflection_get_custom_attrs): Add support for
13915         TypeBuilders.
13916
13917         * reflection.c (mono_reflection_create_runtime_class): Remove 
13918         errorneous assignment to klass->element_class, since it is already
13919         done in mono_reflection_setup_internal_class.
13920
13921 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13922
13923         * gc.c: added missing LeaveCriticalSection.
13924         * icall.c: indented a couple of lines.
13925         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
13926         if we call EndInvoke inside a callback. Fixes bug #52601.
13927
13928 2004-01-07  Martin Baulig  <martin@ximian.com>
13929
13930         * mono-debug-debugger.h
13931         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
13932
13933 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
13934
13935         * appdomain.c: Use messages in NotImplementedException.
13936
13937         * exception.c (mono_get_exception_not_implemented): Now this takes
13938         a message argument.
13939
13940         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
13941         exception instead of g_asserting an aborting when something is not
13942         implemented.
13943
13944         Add some inline docs.
13945
13946 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
13947
13948         * reflection.h: Update after changes to object layout.
13949
13950         * reflection.c: Implement saving of unmanaged aka win32 resources.
13951
13952         * appdomain.c: Bump version number.
13953
13954         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
13955         Handle missing domains gracefully.
13956
13957 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
13958
13959         * file-io.c : On Windows, there are much more invalid_path_chars.
13960
13961 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
13962
13963         * class.h, object.c: prepare for GetType () speedup.
13964
13965 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
13966
13967         * profiler.c: workaround for --profile null reference exception on
13968           cygwin. Patch by Patrik Torstensson.
13969
13970 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
13971
13972         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
13973         make work for unaligned access.
13974
13975 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
13976
13977         * class.c: small cleanup (class->fields [i] -> field).
13978         * image.c: check address of metadata is valid.
13979
13980 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
13981
13982         * assembly.h assembly.c (mono_assembly_loaded): New public function to
13983         search the list of loaded assemblies.
13984
13985         * reflection.c (mono_reflection_type_from_name): Use 
13986         mono_assembly_loaded instead of mono_image_loaded.
13987
13988         * reflection.c: Fix warnings.
13989
13990 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
13991
13992         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
13993         is dynamic. This is needed since an assembly can contain both dynamic and
13994         non-dynamic images.
13995
13996         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
13997         assembly->dynamic.
13998
13999         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
14000
14001         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
14002         to store modules loaded using AddModule.
14003
14004         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14005         on Modules.
14006
14007         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14008
14009         * reflection.c (mono_image_fill_export_table_from_module): New function to
14010         fill out the EXPORTEDTYPES table from a module.
14011
14012         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14013         into a separate function. Also handle loaded non-dynamic modules.
14014
14015         * reflection.c (mono_image_basic_init): Fix memory allocation.
14016
14017         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14018
14019         * assembly.c (mono_assembly_load_references): Make this public.
14020
14021 2003-12-19  Martin Baulig  <martin@ximian.com>
14022
14023         * class.c (mono_class_initialize_generic): Made this static, take
14024         a `MonoGenericInst *' instead of a `MonoClass *'.
14025         (mono_class_from_generic): Call mono_class_initialize_generic()
14026         unless we're already initialized or being called from
14027         do_mono_metadata_parse_generic_inst().
14028
14029         * class.h (MonoGenericInst): Added `initialized' and
14030         `init_pending' flags.
14031
14032         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14033         `mono_class_init (gklass)' or mono_class_initialize_generic()
14034         here; set `generic_inst->init_pending' while parsing the
14035         `type_argv'.
14036
14037 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14038
14039         * locales.c: include string.h for memxxx prototypes
14040
14041 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14042
14043         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14044         constructor when accessing literal fields.
14045
14046 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14047
14048         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14049
14050         * reflection.c (assembly_add_resource_manifest): New function to fill
14051         the MANIFESTRESOURCE table.
14052
14053         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14054
14055         * reflection.h: Update to changes in class layout.
14056
14057         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14058         Reenable call to mono_runtime_is_shutting_down ().
14059
14060         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14061         determine if the runtime is shutting down.
14062
14063 2003-12-16  Jackson Harper <jackson@ximian.com>
14064
14065         * icall.c: comment out call to mono_runtime_is_shutting_down to
14066         fix build.
14067         
14068 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14069
14070         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14071         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14072
14073 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14074
14075         * reflection.c: move definition of swap_with_size
14076         to before its first call
14077
14078 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14079
14080         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14081
14082         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14083         icall.
14084
14085         * object.c: Fix warnings.
14086
14087         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14088         members if FlattenHierarchy is set.
14089
14090         * reflection.c (mono_image_add_decl_security): New function to emit
14091         declarative security.
14092
14093         * reflection.h reflection.c: Add support for declarative security.
14094
14095         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14096         
14097 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14098
14099         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14100         
14101         * appdomain.c verify.c: Moved corlib version checking into its own
14102         function in appdomain.c since it needs to create vtables etc.
14103
14104 2003-12-13  Patrik Torstensson <p@rxc.se>
14105
14106         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14107         instead of unwrapped server.
14108
14109 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14110
14111         * verify.c (check_corlib): Fix field index.
14112
14113 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14114
14115         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14116         GetGacPath icall.
14117
14118 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14119
14120         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14121         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14122         cope with sizeof(size_t) != sizeof(guint32).
14123
14124 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14125
14126         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14127         in case of failure.
14128
14129 2003-12-10  Mark Crichton <crichton@gimp.org>
14130
14131         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14132         in managed code.
14133
14134         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14135
14136 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14137
14138         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14139         marked as deleted.
14140
14141 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14142
14143         * verify.c (check_corlib): Handle the case when the version field is 
14144         initialized by a static constructor.
14145
14146 2003-12-08  Patrik Torstensson  <p@rxc.se>
14147
14148     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14149
14150 2003-12-08  Martin Baulig  <martin@ximian.com>
14151
14152         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14153         a MonoReflectionGenericParameter, also take the parameter index
14154         and name as arguments.
14155         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14156         (ves_icall_MonoGenericParam_initialize): New interncall.
14157         (ves_icall_Type_make_byref_type): New interncall.
14158
14159         * reflection.h (MonoReflectionGenericParam): Derive from
14160         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14161         `index' fields.
14162
14163         * reflection.c (mono_reflection_define_generic_parameter): Create
14164         and return a new MonoReflectionGenericParam; don't initialize the
14165         constraints here.
14166         (mono_reflection_initialize_generic_parameter): New public method;
14167         initializes the constraints and creates the `param->pklass'.
14168
14169 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14170
14171         * reflection.h reflection.c: Use the new fields 'num_types', 
14172         'num_fields' and 'num_methods' to track the number of types etc.
14173
14174         * verify.c (check_corlib): Check corlib version number.
14175
14176 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14177
14178         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14179         function works on all methods.
14180
14181 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14182
14183         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14184         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14185         the custom_type_info flag of the transparent proxy.
14186         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14187         objects that supports IRemotingTypeInfo.
14188         * object.h: Added custom_type_info field in transparent proxy.
14189
14190 2003-12-06  Martin Baulig  <martin@ximian.com>
14191
14192         * class.c (mono_class_create_from_generic): Removed.
14193         (mono_class_from_generic): Check `ginst->klass' before doing
14194         anything else.  This is important to fully support "recursive"
14195         generic types.
14196
14197         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14198         empty `generic_inst->klass' before doing anything else.
14199
14200 2003-12-06  Dick Porter  <dick@ximian.com>
14201
14202         * verify.c: 
14203         * object.h:
14204         * icall.c:
14205         * locales.c: Use C structs to access class fields.  Don't do a
14206         conversion between MonoString and UChar because both are
14207         platform-endian UTF-16.  Compare now takes startindex and count
14208         parameters.  Add a char overload for IndexOf.  Speed up the
14209         invariant string IndexOf.
14210
14211 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14212
14213         * Makefile.am (monosn_LDADD): Fix parallel build.
14214
14215 2003-12-04  Martin Baulig  <martin@ximian.com>
14216
14217         * icall.c
14218         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14219         (ves_icall_Type_make_array_type): New interncall.       
14220
14221 2003-12-04  Martin Baulig  <martin@ximian.com>
14222
14223         * locales.c: also change it in the !HAVE_ICU case.
14224
14225 2003-12-04  Dick Porter  <dick@ximian.com>
14226
14227         * icall.c:
14228         * locales.c: construct_compareinfo is now in CompareInfo, not
14229         CultureInfo.
14230
14231 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14232
14233         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14234         image->files array.
14235
14236         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14237         table as well.
14238
14239         * assembly.c (mono_assembly_load_references): Only load references
14240         once.
14241
14242         * class.c (mono_class_from_name): Avoid linear search of the 
14243         EXPORTEDTYPE table.
14244
14245         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14246
14247 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14248
14249         * image.h (MonoImage): Add 'field_cache' field.
14250
14251         * loader.c (mono_field_from_token): Cache field lookups.
14252         
14253         * reflection.c (mono_module_get_object): Fix name property.
14254
14255         * icall.c (ves_icall_get_enum_info): Update after changes to 
14256         mono_metadata_get_constant_index ().
14257
14258         * icall.c: Get rid of get_type_info icall, use a separate icall for
14259         each type property to avoid needless memory allocations. Fixes #51514.
14260
14261         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14262         to avoid needless binary searches.
14263
14264         * class.c (class_compute_field_layout): Move the initialization of
14265         field->def_value to mono_class_vtable ().
14266
14267         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14268         non-corlib types.
14269
14270         * object.c (mono_object_allocate): Make it inline.
14271
14272         * object.c (mono_object_allocate_spec): Make it inline.
14273         
14274 2003-12-02  Dick Porter  <dick@ximian.com>
14275
14276         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14277         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14278
14279 2003-12-01  Dick Porter  <dick@ximian.com>
14280
14281         * threads.c: Fix signature and call in CreateMutex and
14282         CreateEvent.
14283
14284 2003-12-01  Dick Porter  <dick@ximian.com>
14285
14286         * icall.c: 
14287         * locales.c: Implement string compares and searching
14288
14289         * object.h: Add extra Thread field
14290
14291 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14292
14293         * reflection.c (fixup_method): Add support for MonoCMethod.
14294
14295 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14296
14297         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14298
14299         * reflection.c (assembly_name_to_aname): Allow extra characters in
14300         assembly names. Fixes #51468.
14301
14302 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14303
14304         * exception.c (mono_exception_from_name_domain): New helper function.
14305
14306         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14307         exception object in the correct domain.
14308
14309         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14310         formatting + make a copy a the input data.
14311
14312         * loader.c (mono_get_method_from_token): Methods which contain
14313         native code do not have entries in the ImplMap.
14314
14315         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14316         Thanks to Gonzalo for spotting this.
14317         
14318         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14319         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14320
14321         * assembly.h (mono_assembly_load_from): Split the second part of 
14322         assembly loading into a new public function.
14323
14324         * exception.h (mono_get_exception_bad_image_format): New function.
14325
14326 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14327
14328         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14329         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14330         
14331         * icall.c: Add new icall for creating dynamic methods.
14332
14333         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14334
14335         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14336
14337         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14338         create a dynamic method.
14339
14340         * reflection.c (resolve_object): New helper function.
14341
14342         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14343         which manipulate it so they can also work on dynamic methods.
14344
14345         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14346         creating the MonoReflectionMethodAux structure if it is not needed.
14347         
14348         * reflection.h verify.c: Update after changes to object layout.
14349
14350         * reflection.c (method_builder_encode_signature): Fix compilation on
14351         gcc 2.95.x.
14352
14353 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14354
14355         * appdomain.h: Added support for context static fields. Added static_data
14356           field to MonoAppContext and renamed thread_static_fields to a more
14357           generic special_static_fields in MonoAppDomain, since it can now contain
14358           context static fields.
14359         * domain.c: Updated hashtable name.
14360         * object.c: Replaced field_is_thread_static() for a more generic
14361           field_is_special_static() which also checks for context static attribute.
14362           In mono_class_vtable(), added support for static context fields.
14363         * threads.c: Changed methods that manage thread static fields to more
14364           generic methods so they can be reused both for thread and context static
14365           data.
14366         * threads.h: Declared some new methods.
14367
14368 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14369
14370         * reflection.h: Update after changes to the managed types.
14371
14372         * reflection.c (encode_custom_modifiers): New helper function.
14373
14374         * reflection.c (method_encode_signature): Emit custom modifiers.
14375
14376         * reflection.c (field_encode_signature): Emit custom modifiers.
14377
14378 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14379
14380         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14381
14382         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14383         implementation.
14384
14385         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14386         icall.
14387
14388         * object.c (mono_field_get_value_object): New function.
14389
14390         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14391         specific.
14392
14393 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14394
14395         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14396         return a preallocated out-of-memory exception instance.
14397
14398         * object.c (out_of_memory): Use the new function.
14399
14400         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14401         flag is before the custom modifiers. Fixes #49802.
14402
14403 2003-11-16  Martin Baulig  <martin@ximian.com>
14404
14405         * class.c (mono_class_is_open_constructed_type): Implemented the
14406         MONO_TYPE_GENERICINST case.
14407
14408 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14409
14410         * assembly.c (mono_assembly_fill_assembly_name): New function to
14411         fill out the MonoAssemblyName structure.
14412         (mono_assembly_open): Use the new function.
14413
14414         * icall.c (fill_reflection_assembly_name): New helper function.
14415
14416         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14417         new function.
14418
14419         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14420
14421 2003-11-15  Martin Baulig  <martin@ximian.com>
14422
14423         * class.c (mono_class_is_open_constructed_type): New public
14424         function; checks whether a type is an open constructed type,
14425         ie. whether it still contains type parameters.
14426         (mono_class_inflate_generic_type): If we're a type parameter and
14427         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14428         type.
14429
14430         * class.h (MonoGenericInst): Added `guint32 is_open'.
14431
14432         * loader.c (method_from_methodspec): Check whether we're an open
14433         or closed constructed type and set `ginst->is_open'.
14434
14435         * reflection.c (mono_reflection_bind_generic_parameters): Check
14436         whether we're an open or closed constructed type and set
14437         `ginst->is_open'.
14438         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14439         from open constructed types.
14440
14441 2003-11-15  Martin Baulig  <martin@ximian.com>
14442
14443         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14444         a generic instance (instead of a generic type declaration) with
14445         unbound generic parameters, bind them to our actual types.
14446
14447 2003-11-14  Martin Baulig  <martin@ximian.com>
14448
14449         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14450
14451         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14452         an interface type, populate `res->interfaces' with instantiated
14453         versions of all the interfaces we inherit.
14454
14455 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14456
14457         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14458         when MONO_PATH is set but doesn't contain the install dir.
14459
14460 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14461
14462         * icall.c:
14463         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14464         it's also implemented in base classes. Fixes bug #50927.
14465
14466 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14467
14468         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14469         if this method is called from a finalizer. Fixes #50913.
14470
14471 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14472
14473         * threads.c: Implement VolatileRead/VolatileWrite
14474
14475         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14476
14477 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14478
14479         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14480         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14481         2.95.3.
14482
14483         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14484         from Peter Ross (pro@missioncriticalit.com).
14485         
14486 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14487
14488         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
14489
14490 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14491
14492         * assembly.c (mono_assembly_load_references): Disable check because it
14493         triggers on older corlibs which lots of people have.
14494
14495 2003-11-12  Jackson Harper  <jackson@ximian.com>
14496
14497         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
14498         load corlib.dll if mscorlib.dll is not found.
14499         * assembly.h: Remove corlib name define.
14500         * class.c:
14501         * domain.c:
14502         * image.c: Change corlib name to mscorlib.
14503         
14504 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14505
14506         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
14507
14508 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
14509
14510         * appdomain.h: Added loader_optimization here to sync with the C#
14511         code, and add disallow_binding_redirects field.
14512
14513 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14514
14515         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
14516
14517         * reflection.c (mono_image_build_metadata): Fix crash on modules
14518         with no types.
14519
14520         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
14521
14522         * icall.c (ves_icall_get_method_info): Return callingConvention as
14523         well.
14524
14525         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
14526         namespaces from the EXPORTEDTYPE table as well.
14527
14528         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
14529         from all modules inside the assembly.
14530         
14531 2003-11-11  Martin Baulig  <martin@ximian.com>
14532
14533         * reflection.c (mono_reflection_bind_generic_parameters): Make
14534         this work for interfaces.
14535
14536 2003-11-11  Martin Baulig  <martin@ximian.com>
14537
14538         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
14539
14540 2003-11-11  Martin Baulig  <martin@ximian.com>
14541
14542         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
14543         "MonoInflatedMethod" and "MonoInflatedCtor".
14544
14545 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14546
14547         * reflection.c (resolution_scope_from_image): Use the assembly table
14548         from the manifest module, since other modules don't have it.
14549
14550         * debug-helpers.c (mono_type_full_name): New helper function.
14551
14552         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
14553
14554         * image.c (mono_image_load_file_for_image): New public function which
14555         is a replacement for the load_file_for_image in class.c.
14556
14557         * assembly.c (mono_assembly_load_module): A wrapper for the function
14558         above which does assembly association and reference loading too.
14559
14560         * class.c (mono_class_from_name): Call mono_assembly_load_module.
14561
14562 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14563
14564         * appdomain.c: not all of the attributes for the full assembly name
14565         are required and the order doesn't matter. Fixes bug #50787.
14566
14567 2003-11-10  Dick Porter  <dick@ximian.com>
14568
14569         * locales.c: Use platform-endian UTF16
14570
14571 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14572
14573         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14574         
14575 2003-11-10  Martin Baulig  <martin@ximian.com>
14576
14577         * metadata.c
14578         (mono_metadata_load_generic_params): Make this actually work.
14579
14580         * reflection.c (mono_reflection_bind_generic_parameters): If our
14581         parent is a generic instance, pass all the `types' to it, no
14582         matter whether it has the same number of type parameters or not.
14583
14584 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14585
14586         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14587
14588         * assembly.c (mono_assembly_load_references): Move the image<->assembly
14589         assignment code to this function so it gets called recursively for all
14590         modules.
14591
14592         * image.c (load_modules): Remove the assembly assignment since it is
14593         now done by mono_assembly_load_references.
14594         
14595         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14596         Add 'module' argument.
14597         (mono_module_get_types): New helper function.
14598         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
14599
14600 2003-11-08  Martin Baulig  <martin@ximian.com>
14601
14602         * class.c (mono_class_inflate_generic_method): Interface method
14603         don't have a header.
14604
14605         * reflection.c (mono_image_get_methodspec_token): Take an
14606         additional `MonoGenericInst *' argument instead of reading it from
14607         the header; this is necessary to support interfaces.
14608         (mono_image_create_token): Pass the `MonoGenericInst *' from the
14609         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
14610         (inflated_method_get_object): Take an additional `MonoGenericInst *'
14611         argument.
14612
14613         * reflection.h (MonoReflectionInflatedMethod): Added
14614         `MonoGenericInst *ginst'.
14615
14616 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
14617
14618         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
14619
14620 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
14621
14622         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
14623
14624 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
14625
14626         * reflection.c 
14627         (reflection_methodbuilder_from_method_builder):
14628         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
14629         initialize a ReflectionMethodBuilder structure.
14630         (mono_image_get_methodbuilder_token):
14631         (mono_image_get_ctorbuilder_token): New functions to emit memberref
14632         tokens which point to types in another module inside the same assembly.
14633
14634         * reflection.c: Use the new helper functions.
14635         
14636         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
14637
14638         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
14639         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
14640
14641         * reflection.c (resolution_scope_from_image): Emit a moduleref if
14642         neccesary.
14643
14644         * reflection.c (mono_image_build_metadata): Emit metadata only for the
14645         current module. Emit the manifest only for the main module.
14646
14647         * reflection.c (mono_image_create_token): Add assertion when a 
14648         memberref needs to be created.
14649
14650         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
14651
14652         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
14653         larger buffer for the custom attribute blob. Fixes #50637.
14654         
14655 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14656
14657         * threadpool.c: notify listener on async processing handles after
14658         invoking the async callback. Thanks to Zoltan.
14659
14660 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14661
14662         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
14663         avoid code duplication.
14664
14665         * reflection.h (MonoDynamicImage): New type which is currently unused,
14666         but will be used through the ref.emit code in place of 
14667         MonoDynamicAssembly.
14668
14669         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14670         object layout.
14671
14672         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
14673         a MonoDynamicImage instead of just a MonoImage.
14674         
14675         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
14676         icalls to ModuleBuilder but keep their semantics, so they will work
14677         with moduleb->assemblyb. This will change later.
14678         
14679 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14680
14681         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14682         object layout.
14683
14684         * reflection.c (mono_image_build_metadata): Avoid creation of a default
14685         main module, since it is now done by the managed code.
14686
14687 2003-11-03  Martin Baulig  <martin@ximian.com>
14688
14689         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
14690         `ginst->klass' here.
14691         (method_encode_methodspec): Don't use the `ginst->generic_method's
14692         klass if it's a generic instance, use `ginst->klass' in this case.
14693
14694 2003-11-03  Martin Baulig  <martin@ximian.com>
14695
14696         * reflection.c (mono_image_get_generic_method_param_info):
14697         Removed, use mono_image_get_generic_param_info() instead.
14698         (mono_image_get_type_info): Write the GenericParam table before
14699         the Method table.  This is neccessary because in the GenericParam
14700         table, type parameters of the class (ie. '!0' etc.) must come
14701         before the ones from its generic methods (ie. '!!0' etc).
14702
14703 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14704
14705         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
14706
14707 2003-11-02  Martin Baulig  <martin@ximian.com>
14708
14709         * reflection.c (create_generic_typespec): Take a
14710         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
14711         the generic parameters from it.
14712
14713 2003-11-02  Martin Baulig  <martin@ximian.com>
14714
14715         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
14716         instead of a `MonoClassField *' since we just need the type.
14717         (create_generic_typespec): New static function.  Creates a
14718         TypeSpec token for a generic type declaration.
14719         (mono_image_get_generic_field_token): New static function.
14720         (mono_image_create_token): If we're a FieldBuilder in a generic
14721         type declaration, call mono_image_get_generic_field_token() to get
14722         the token.
14723
14724 2003-11-02  Martin Baulig  <martin@ximian.com>
14725
14726         * reflection.h
14727         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
14728         `MonoReflectionGenericInst *declaring_type' and
14729         `MonoReflectionGenericInst *reflected_type' fields.
14730
14731         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
14732         `MonoReflectionGenericInst *declaring_type' and a
14733         `MonoReflectionGenericInst *reflected_type' argument instead of a
14734         single `MonoReflectionGenericInst *type' one.  Set
14735         `res->declaring_type' and `res->reflected_type' from them.
14736         (mono_reflection_inflate_field): Likewise.      
14737
14738 2003-11-02  Martin Baulig  <martin@ximian.com>
14739
14740         * class.c (mono_class_setup_vtable): Don't store generic methods
14741         in the vtable.  
14742
14743 2003-11-02  Martin Baulig  <martin@ximian.com>
14744
14745         * reflection.h (MonoReflectionGenericInst): Added
14746         `MonoReflectionType *declaring_type'.
14747
14748         * reflection.c (mono_reflection_bind_generic_parameters): Use
14749         `if (tb->parent)' instead of `klass->parent'.
14750
14751 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
14752
14753         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
14754         with an empty ASSEMBLY table.
14755
14756         * reflection.c (mono_image_build_metadata): Avoid using the same loop
14757         variable in the inner and outer loops.
14758
14759 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
14760
14761         * metadata.h (mono_metadata_make_token): Put parentheses around macro
14762         argument.
14763
14764         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
14765         
14766         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
14767         icalls. Instead, do everything in managed code. This is needed since
14768         it is hard to restore the original domain etc. in unmanaged code in the
14769         presence of undeniable exceptions.
14770
14771         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
14772         New icalls to push and pop appdomain refs.
14773
14774 2003-10-31  Martin Baulig  <martin@ximian.com>
14775
14776         * class.c (inflate_generic_type): Renamed to
14777         mono_class_inflate_generic_type() and made it public.
14778
14779         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
14780         New interncall.
14781
14782         * loader.c (mono_field_from_memberref): Also set the retklass for
14783         typespecs.
14784
14785         * fielder.c (mono_image_get_inflated_field_token): New static
14786         method; creates a metadata token for an inflated field.
14787         (mono_image_create_token, fixup_method): Added support for
14788         "MonoInflatedField".
14789         (fieldbuilder_to_mono_class_field): New static function.
14790         (mono_reflection_inflate_field): New public function.
14791
14792         * reflection.h
14793         (MonoReflectionGenericInst): Added `MonoArray *fields'.
14794         (MonoReflectionInflatedField): New typedef.     
14795
14796 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
14797
14798         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
14799         for Solaris and other platforms without s6_addr16
14800
14801 2003-10-30  Martin Baulig  <martin@ximian.com>
14802
14803         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
14804         argument instead of two.
14805         (mono_class_inflate_generic_signature): Likewise.
14806         (inflate_generic_header): Likewise.
14807         (mono_class_inflate_generic_method): Likewise.  In addition, if
14808         `ginst->klass' is set, it becomes the new `method->klass'.
14809
14810         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
14811         field.
14812
14813         * reflection.c (encode_generic_method_sig): Write a 0xa as the
14814         first byte. [FIXME]
14815         (method_encode_methodspec): If we have generic parameters, create
14816         a MethodSpec instead of a MethodRef.
14817         (fixup_method): Added support for "MonoInflatedMethod" and
14818         "MonoInflatedCtor".
14819         (mono_image_create_token): Added support for "MonoInflatedMethod"
14820         and "MonoInflatedCtor".
14821         (inflated_method_get_object): New static function; returns a
14822         managed "System.Reflection.MonoInflatedMethod" object.
14823         (mono_reflection_bind_generic_method_parameters): Return a
14824         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
14825         (mono_reflection_inflate_method_or_ctor): Likewise.
14826         (mono_image_get_generic_method_param_info): Initialize unused
14827         fields to zero.
14828         (mono_image_get_generic_param_info): Likewise.
14829
14830         * reflection.h (MonoReflectionInflatedMethod): New public
14831         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
14832         "S.R.MonoInflatedCtor" classes.
14833
14834         * loader.c (method_from_memberref): If we're a TypeSpec and it
14835         resolves to a generic instance, inflate the method.
14836
14837 2003-10-28  Dick Porter  <dick@ximian.com>
14838
14839         * object.c (mono_runtime_run_main): Convert command-line arguments
14840         into utf8, falling back to the user's locale encoding to do so.
14841
14842 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
14843
14844         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
14845         at this time.
14846
14847         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
14848
14849         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
14850         up icalls at method definition time. Partially fixes #33569.
14851
14852 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
14853
14854         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
14855         marshalling of arrays. Fixes #50116.
14856
14857         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
14858
14859         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
14860         points to a vtable in the dying appdomain.
14861
14862         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
14863         listeners into unmanaged code inside the lock.
14864
14865         * object.c (mono_class_vtable): Turn off typed allocation in non-root
14866         domains and add some comments.
14867
14868 2003-10-25  Martin Baulig  <martin@ximian.com>
14869
14870         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
14871
14872         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
14873
14874         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
14875         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
14876         currently parsing.  Create the generic class and store it in
14877         `generic_inst->klass' before parsing the type arguments.  This is
14878         required to support "recursive" definitions; see mcs/tests/gen-23.cs
14879         for an example.
14880         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
14881         to support recursive typespec entries.
14882
14883         * class.c (mono_class_setup_parent): If our parent is a generic
14884         instance, we may get called before it has its name set.
14885         (mono_class_from_generic): Splitted into
14886         mono_class_create_from_generic() and mono_class_initialize_generic().
14887
14888 2003-10-25  Martin Baulig  <martin@ximian.com>
14889
14890         * icall.c (ves_icall_Type_BindGenericParameters): Return a
14891         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
14892         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
14893         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
14894
14895         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
14896         (create_typespec): Likewise.
14897         (mono_reflection_bind_generic_parameters): Return a
14898         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
14899         (mono_reflection_inflate_method_or_ctor): New public function.
14900
14901         * reflection.h (MonoReflectionGenericInst): New typedef.        
14902
14903 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
14904
14905         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
14906         inside the domain lock. Fixes #49993.
14907         
14908         * object.c (mono_class_vtable): When typed allocation is used, 
14909         allocate vtables in the GC heap instead of in the mempool, since the
14910         vtables contain GC descriptors which are used by the collector even
14911         after the domain owning the mempool is unloaded.
14912
14913         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
14914
14915         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
14916         reflect what it does. Also invalidate mempools instead of freeing
14917         them if a define is set.
14918
14919         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
14920         of the appdomain.
14921         
14922         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
14923         hold the finalizable objects in this domain.
14924
14925         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
14926         appdomain.
14927
14928         * appdomain.c (mono_domain_set): New function to set the current
14929         appdomain, but only if it is not being unloaded.
14930
14931         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
14932         appdomain which is being unloaded.
14933         
14934         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
14935         unloading of the root appdomain.
14936
14937         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
14938         icall to execute a method in another appdomain. Intended as a 
14939         replacement for InternalSetDomain, which can confuse the code 
14940         generation in the JIT.
14941
14942         * appdomain.c (mono_domain_is_unloading): New function to determine
14943         whenever an appdomain is unloading.
14944
14945         * appdomain.c (mono_domain_unload): New function to correctly unload
14946         an appdomain.
14947
14948         * assembly.c (mono_assembly_load_references): Check that an assembly
14949         does not references itself.
14950
14951         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
14952         domain manually, it asks the finalizer thread to do it, then waits for
14953         the result. Also added a timeout.
14954
14955         * icall.c: Register the new icalls.
14956
14957         * threads.h threads.c: Export the mono_gc_stop_world and 
14958         mono_gc_start_world functions.
14959         
14960         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
14961         function to fill out the mempool with 0x2a.
14962
14963 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
14964
14965         * reflection.h (MonoReflectionMethodAux): New structure to store
14966         information which is rarely used, thus is not in the MonoMethod
14967         structure.
14968
14969         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
14970         store the aux info.
14971
14972         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
14973         and marshalling info into the aux structure.
14974
14975         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
14976         from the aux structure.
14977
14978         * loader.c (mono_method_get_param_names): Retrieve the param names from
14979         the aux structure.
14980         
14981 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
14982
14983         * exception.h exception.c: Add AppDomainUnloadedException && fix 
14984         warning.
14985
14986 2003-10-21  Dick Porter  <dick@ximian.com>
14987
14988         * socket-io.c
14989         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
14990         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
14991
14992 2003-10-21  Martin Baulig  <martin@ximian.com>
14993
14994         * reflection.c (mono_reflection_bind_generic_parameters):
14995         `klass->parent' is NULL for interfaces.
14996
14997 2003-10-21  Martin Baulig  <martin@ximian.com>
14998
14999         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15000
15001 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
15002
15003         * exception.c (mono_exception_from_name_msg): New helper function for
15004         creating exceptions and initializing their message field.
15005
15006         * exception.c: Simplify functions using the new helper.
15007
15008         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15009         New function.
15010
15011         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15012         mono_raise_exception, since otherwise gcc doesn't generate the function
15013         epilog for raise_exception, confusing the stack unwinding in the JIT.
15014         Fixes #45043.
15015
15016         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15017         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15018         Fixes #49499.
15019
15020 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15021
15022         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15023         utf8.
15024
15025 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15026
15027         * icall.c: Removed GetUninitializedObject method because
15028           AllocateUninitializedClassInstance does the same.
15029
15030 2003-10-18  Martin Baulig  <martin@ximian.com>
15031
15032         * class.c (inflate_generic_signature): Renamed to
15033         mono_class_inflate_generic_signature() and made it public.
15034         (my_mono_class_from_generic_parameter): New static function; if we
15035         don't already have the generic parameter's MonoClass, create a
15036         very simple one which is just used internally in the runtime and
15037         not passed back to managed code.
15038
15039         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15040
15041         * metadata.h (MonoMethodSignature): Moved the
15042         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15043         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15044
15045         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15046         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15047         interncall on the MonoMethod class, not on MethodInfo.
15048         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15049         calling mono_reflection_bind_generic_method_parameters() directly.
15050
15051         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15052         return the already computed `method->signature'.
15053         (method_from_methodspec): New static function to load a method
15054         from a MethodSpec entry.
15055         (mono_get_method_from_token): Call the new method_from_methodspec()
15056         for MethodSpec tokens.  
15057         (mono_get_method_from_token): If we're a generic method, load the
15058         type parameters.
15059
15060         * reflection.c (mono_image_get_memberref_token): Allow
15061         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15062         table.
15063         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15064         (mono_image_create_token): First check whether it's a generic
15065         method (so we'd need to create a MethodSpec), then do the other
15066         two alternatives.
15067         (mono_reflection_bind_generic_method_parameters): Return a
15068         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15069         called directly from the interncall.
15070
15071 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15072
15073         * reflection.c (load_public_key): Move loading of the public key
15074         into managed code.
15075
15076         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15077
15078         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15079         fields.
15080
15081         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15082         culture, hash_alg and public_key. Fixes #49555.
15083
15084 2003-10-17  Martin Baulig  <martin@ximian.com>
15085
15086         * class.h (MonoGenericInst): Moved this declaration here and added
15087         `MonoMethod *generic_method'.
15088
15089         * icall.c
15090         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15091         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15092
15093         * metadata.c (mono_metadata_type_equal): Two types of
15094         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15095         index; ie. don't compare the address of the `MonoGenericParam'
15096         structure.
15097         (mono_metadata_load_generic_params): Removed the `MonoMethod
15098         *method' argument.
15099
15100         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15101         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15102
15103         * reflection.c (method_encode_signature): Encode the number of
15104         generic parameters.
15105         (encode_generic_method_sig): New static function.
15106         (method_encode_methodspec): New static function; creates an entry
15107         in the MethodSpec table for a generic method.
15108         (mono_image_get_methodspec_token): New static function.
15109         (mono_image_create_token): Call mono_image_get_methodspec_token()
15110         for generic methods.
15111         (mono_reflection_bind_generic_method_parameters): New public
15112         function.  Instantiates a generic method.
15113
15114 2003-10-16  Martin Baulig  <martin@ximian.com>
15115
15116         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15117         *gen_params' here from MonoMethodHeader.
15118
15119         * metadata.c (mono_metadata_parse_method_signature): If we have
15120         generic parameters, initialize `method->gen_params' and then set
15121         the correct `type->data.generic_param' in all the parameters.
15122
15123 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15124
15125         * threads.c (mono_threads_get_default_stacksize): New function to 
15126         return the default stacksize.
15127
15128         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15129         termination of the finalizer thread, since the previous method had
15130         race conditions. Fixes #49628.
15131
15132         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15133         as for the other managed threads.
15134
15135 2003-10-16  Martin Baulig  <martin@ximian.com>
15136
15137         * class.c (inflate_generic_signature): Copy `generic_param_count'
15138         and `gen_params'.
15139
15140         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15141         New interncall.
15142
15143         * metadata.c (mono_metadata_parse_method_signature): Actually set
15144         the `method->generic_param_count' here.
15145         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15146
15147 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15148
15149         * object.h: Add a new field to TypedRef to simplify the implementation
15150         of the REFANY opcodes in the JIT.
15151
15152         * icall.c: Make use of the new field.
15153
15154         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15155         dynamically.
15156
15157 2003-10-15  Martin Baulig  <martin@ximian.com>
15158
15159         * class.c (mono_class_from_gen_param): Renamed to
15160         mono_class_from_generic_parameter() and moved most of the
15161         functionality from mono_reflection_define_generic_parameter()
15162         here; ie. we create a "real" class here.
15163         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15164         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15165         previously been called.
15166
15167         * class.h (MonoGenericParam): Moved the declaration of this struct
15168         here from metadata.h and added `MonoMethod *method'.
15169
15170         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15171         interncall.
15172
15173         * loader.c (mono_get_method_from_token): If we have any generic
15174         parameters, call mono_metadata_load_generic_params() to read them
15175         from the MONO_TABLE_GENERICPAR.
15176
15177         * metadata.c (mono_metadata_load_generic_params): Added
15178         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15179
15180         * metadata.h (MonoMethodSignature): Replaced
15181         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15182         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15183
15184         * reflection.c (mono_reflection_define_generic_parameter): Moved
15185         most of the functionality into the new
15186         mono_class_from_generic_parameter(); set the `method' field if
15187         we're a method parameter.       
15188
15189 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15190
15191         * marshal.c (emit_struct_conv): if native size is 0
15192         emit no code.
15193
15194 2003-10-14  Martin Baulig  <martin@ximian.com>
15195
15196         * icall.c: The generics API has changed in the spec since it was
15197         added to System.Type; these modifications make it match the spec
15198         again.
15199         (ves_icall_Type_GetGenericParameters): Renamed to
15200         `ves_icall_Type_GetGenericArguments'.
15201         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15202         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15203         `ves_icall_MonoType_get_HasGenericArguments'.
15204         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15205         `ves_icall_MonoType_get_IsGenericParameter'.
15206         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15207         this is no interncall anymore.
15208         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15209         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15210
15211 2003-10-14  Martin Baulig  <martin@ximian.com>
15212
15213         * reflection.c (mono_reflection_bind_generic_parameters): Also
15214         inflate generic methods if we're reading the class from IL.
15215
15216 2003-10-13  Martin Baulig  <martin@ximian.com>
15217
15218         * reflection.c (mono_reflection_define_generic_parameter): This
15219         method isn't called directly from the icall anymore; take a
15220         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15221         method generic parameters.
15222         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15223         (method_builder_encode_signature): Encode generic parameters.
15224         (mono_image_get_method_info): Write generic params to the
15225         MONO_TABLE_GENERICPARAM table.
15226
15227         * reflection.h (MonoReflectionMethodBuilder): Added
15228         `MonoArray *generic_params'.
15229
15230         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15231
15232         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15233         wrapper for mono_reflection_define_generic_parameter().
15234         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15235
15236 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15237
15238         * marshal.h: Add missing function to fix build.
15239
15240         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15241         the SetLastError pinvoke attribute.
15242
15243         * marshal.c (mono_marshal_set_last_error): New helper function called
15244         by the generated code.
15245         
15246         * marshal.c (mono_mb_emit_branch): New helper function.
15247
15248         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15249
15250         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15251         classes as parameters and return values of delegates. Fixes #29256. 
15252
15253 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15254
15255         * locales.c: use gint32 in non HAVE_ICU case
15256
15257 2003-10-11  Martin Baulig  <martin@ximian.com>
15258
15259         * mono-debug.c (mono_debug_add_method): Added a workaround for
15260         bug #48591.
15261
15262 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15263
15264         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15265         delegates passed to native code must use the STDCALL calling 
15266         convention. Fixes #35987.
15267
15268 2003-10-10  Martin Baulig  <martin@ximian.com>
15269
15270         * class.c (inflate_generic_type): If we're inflating for a generic
15271         type instance (and not for a generic method), return
15272         MONO_TYPE_MVAR unchanged.
15273
15274 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15275
15276         * string-icalls.c: Join ignores null strings in the source array.
15277         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15278         * threads.c: GetAvailableTheads is slightly more accurate.
15279
15280 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15281
15282         * threads.h threads.c : add mono_threads_set_default_stacksize
15283         and pass default to CreateThread calls.
15284
15285 2003-10-09  Dick Porter  <dick@ximian.com>
15286
15287         * icall.c:
15288         * locales.h:
15289         * locales.c: Internal calls for constructing CultureInfo and
15290         related objects from libicu (if its available.)
15291
15292 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15293
15294         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15295
15296 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15297
15298         * threadpool.c: added an argument to async_invoke_thread that is the
15299         item to process, pass the MonoAsyncResult to the thread start function
15300         when creating a new thread. This way we don't need to acquire any lock
15301         when we're creating a new thread. Readded a semaphore for faster
15302         response times (instead of that Sleep i added).
15303
15304 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15305
15306         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15307         get daylight change dates better on Windows, fix handling
15308         of platforms without tm_gmtoff.
15309
15310 2003-10-06  Martin Baulig  <martin@ximian.com>
15311
15312         * class.c (inflate_generic_method): Renamed to
15313         mono_class_inflate_generic_method() and made public.
15314         (mono_class_init): Don't inflate the generic methods here.
15315         (mono_class_from_generic): Added `gboolean inflate_methods'
15316         argument.  Inflate the methods here.
15317
15318         * loader.c (mono_method_get_param_names): Ignore instances of
15319         generic types for the moment.
15320
15321         * reflection.c (fixup_method): Added support for inflated methods.
15322         (mono_image_create_token): Use mono_image_get_methodref_token()
15323         for inflated methods.
15324         (mono_custom_attrs_from_param): Ignore instances of generic types
15325         for the moment.
15326         (mono_reflection_bind_generic_parameters): New public function.
15327         Moved all the functionality from
15328         ves_icall_Type_BindGenericParameters() here and added support for
15329         dynamic types.
15330         (mono_reflection_define_generic_parameter): Initialize
15331         `klass->methods' here.
15332
15333         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15334         functionality into mono_reflection_define_generic_parameter().
15335         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15336         TypeBuilder, return that TypeBuilder.
15337
15338 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15339
15340         * appdomain.c: removed mono_delegate_semaphore.
15341
15342         * threadpool.c:
15343         (mono_thread_pool_add): moved hash table creation inside and the thread 
15344         creation outside of the critical region.
15345         (mono_thread_pool_finish): removed obsolete code.
15346         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15347         continue or exit the thread depending on the queue.
15348
15349 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15350
15351         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15352         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15353         handle more bool marshalling options
15354
15355 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15356
15357         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15358         arrays of structs. Also add a more descriptive error message when
15359         a structure member is marshalled as LPArray.
15360
15361 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15362
15363         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15364         marshalling arrays of complex types. Fixes #29098. Also remove an
15365         usused and incomplete function.
15366
15367 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15368
15369         * gc.c: report heap_size - free_bytes as total memory allocated
15370         (bug#49362).
15371
15372 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15373
15374         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15375         fix timezone handling problems on Windows.
15376         
15377         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15378         asserts when the year is outside the range handled by ms the functions.
15379
15380         * class.c (setup_interface_offsets): If the class is an interface,
15381         fill out its interface_offsets slot.
15382
15383 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15384
15385         * threadpool.c: mark threadpool threads as background.
15386
15387 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15388
15389         * decimal.c - define DECINLINE to nothing if not using GCC
15390
15391 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15392
15393         * assembly.c: More refcount fixes.
15394
15395 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15396
15397         * string-icalls.c: if we're not trimming, return the same string.
15398         When not splitting, don't create a new string.
15399
15400 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15401
15402         * image.c:
15403         (mono_image_open): increment the ref_count inside the critical section.
15404
15405 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15406
15407         * image.c (mono_image_open): Fix reference counting bug.
15408
15409 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15410
15411         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15412         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15413         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15414         mono_lookup_pinvoke_call throws.        
15415
15416 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15417
15418         * reflection.c (mono_reflection_parse_type): Fix #49114.
15419
15420         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15421         temporary workaround for cygwin header problem.
15422
15423         * object.c (mono_object_isinst): Synchronize this with the code
15424         generated by the JIT for casts.
15425
15426 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15427
15428         * reflection.c (encode_type): Fix #38332.
15429
15430 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15431
15432         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15433         the original method from the wrapper method.
15434
15435 2003-09-25  Martin Baulig  <martin@ximian.com>
15436
15437         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15438         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15439         (ves_icall_Type_get_IsGenericInstance): New interncall.
15440
15441 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15442
15443         * object.c: fix cast warning in big endian code.
15444
15445 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15446
15447         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15448         
15449 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15450
15451         * assembly.c: don't call check_env from mono_assembly_load. It's
15452         already done once in mono_assemblies_init and may cause headaches when
15453         multiple threads are loading assemblies.
15454
15455 2003-09-19  Martin Baulig  <martin@ximian.com>
15456
15457         * reflection.c (mono_reflection_define_generic_parameter): Don't
15458         allocate `klass->methods', set `klass->flags' to
15459         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15460
15461 2003-09-18  Martin Baulig  <martin@ximian.com>
15462
15463         * class.c (mono_class_init): Don't create `class->methods' if it's
15464         already initialized.
15465
15466         * metadata.c (mono_metadata_load_generic_params): Make this
15467         actually work.
15468
15469         * reflection.c (mono_reflection_define_generic_parameter): Set
15470         parent class and interfaces from the constraints.
15471
15472         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15473         to keep this struct in sync with the declaration in TypeBuilder.cs.
15474
15475 2003-09-17  Martin Baulig  <martin@ximian.com>
15476
15477         * metadata.h (MonoType): Replaced the data's `int type_param'
15478         field with `MonoGenericParam *generic_param'.
15479         (MonoGenericParam): Added `MonoClass *klass'.
15480
15481         * class.c (mono_class_from_gen_param): Removed the
15482         `MonoImage *image' and `int type_num' arguments.
15483
15484         * metadata.c (mono_metadata_parse_generic_param): New static
15485         method; creates a MonoGenericParam which just contains the index.
15486         (do_mono_metadata_parse_type): Call
15487         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15488         MONO_TYPE_MVAR.
15489
15490         * reflection.c (mono_image_typedef_or_ref): Generic type
15491         parameters may be in the same assembly, but never use a typedef
15492         for them.
15493         (mono_reflection_define_generic_parameter): We're now creating a
15494         "real" class for the type parameter; it's now safe to call
15495         mono_class_from_mono_type() on the class'es type, it'll do the
15496         right thing.
15497
15498 2003-09-16  Martin Baulig  <martin@ximian.com>
15499
15500         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
15501         `symfile->range_entry_size' and `symfile->class_entry_size' here;
15502         the `symfile' data structure must be fully initialized before it
15503         gets added to the table.
15504
15505 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
15506
15507         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
15508
15509         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
15510         class init trampolines.
15511
15512 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
15513
15514         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
15515         to the built-in profiler to turn off time and allocation profiling
15516         respectively.
15517
15518 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
15519
15520         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
15521         g_direct_equal.
15522
15523         * debug-helpers.c (mono_method_full_name): Print the wrapper type
15524         in human readable form.
15525
15526 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
15527
15528         * reflection.c icall.c: Fixed warnings.
15529
15530         * image.c (load_class_names): Use a temporary hash table to hold the
15531         namespaces in order to avoid doing many string comparisons.
15532
15533         * image.h: Fix typo.
15534
15535         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
15536         Pass NULL instead of g_direct_equal to the GHashTable constructor 
15537         since the NULL case is short-circuited inside g_hash_table_lookup, 
15538         leading to better performance.  
15539
15540         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
15541         obtain the first custom attribute for a given index. Depends on the
15542         CustomAttribute table being sorted by the parent field.
15543
15544         * reflection.c (mono_custom_attrs_from_index): Use the new function 
15545         for better performance.
15546
15547 2003-09-07  Martin Baulig  <martin@ximian.com>
15548
15549         * class.c (mono_class_init): If we're a generic instance, inflate
15550         all our methods instead of loading them from the image.
15551         (mono_class_from_generic): Set `class->methods = gklass->methods'.
15552
15553 2003-09-07  Martin Baulig  <martin@ximian.com>
15554
15555         * mono-debug-debugger.c: Added support for constructors.
15556
15557 2003-09-06  Martin Baulig  <martin@ximian.com>
15558
15559         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
15560         New interncall.
15561
15562         * reflection.c (mono_reflection_setup_generic_class): Call
15563         ensure_runtime_vtable() to create the vtable.
15564
15565 2003-09-05  Martin Baulig  <martin@ximian.com>
15566
15567         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
15568         MONO_TYPE_MVAR.
15569
15570 2003-09-04  Martin Baulig  <martin@ximian.com>
15571
15572         * reflection.c (mono_reflection_define_generic_parameter): Generic
15573         parameters start with zero.
15574
15575 2003-09-04  Martin Baulig  <martin@ximian.com>
15576
15577         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15578
15579         * reflection.h (MonoReflectionGenericParam): New typedef.
15580         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
15581         the generic parameters from the managed TypeBuilder.
15582
15583         * reflection.c (mono_reflection_define_generic_parameter): New function.
15584         (mono_reflection_create_runtime_class): Encode generic parameters.
15585         (mono_reflection_setup_generic_class): New function; this is
15586         called after adding adding all generic params to the TypeBuilder.
15587         (encode_type): Added MONO_TYPE_VAR.
15588
15589 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
15590
15591         * class.h class.c (mono_class_needs_cctor_run): Moved this method
15592         here from the JIT.
15593
15594         * assembly.h assembly.c: Moved the AOT loading code into an assembly
15595         load hook.
15596
15597 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
15598
15599         * reflection.h reflection.c class.h class.c: Delete duplicate 
15600         definition of mono_type_get_name () from reflection.c and export the
15601         one in class.c.
15602
15603         * class.c: Class loading fixes from Bernie Solomon 
15604         (bernard@ugsolutions.com).
15605
15606         * reflection.c: Endianness fixes from Bernie Solomon 
15607         (bernard@ugsolutions.com).
15608         
15609 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
15610
15611         * assembly.h assembly.c: Define a file format version for AOT
15612         libraries.
15613         
15614         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
15615
15616         * appdomain.h (MonoJitInfo): New field to determine whenever the
15617         code is domain neutral.
15618         
15619 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
15620
15621         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
15622
15623 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
15624
15625         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
15626         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
15627         Avoid caching the result since strings must be domain specific. Fixes
15628         #48050.
15629
15630 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
15631
15632         * marshal.c (mono_marshal_init): Make this callable multiple times
15633         since it is hard to find a correct place to call it.
15634
15635         * object.c (mono_runtime_class_init): Execute static constructors in
15636         the correct appdomain.
15637
15638         * image.c (build_guid_table): Handle the case when multiple images have
15639         the same GUID.
15640
15641 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15642
15643         * icall.c: added a couple of icalls for System.Web.
15644
15645 2003-08-28  Martin Baulig  <martin@ximian.com>
15646
15647         * icall.c (ves_icall_Type_BindGenericParameters): Use
15648         `klass->generic_inst' instead of `&klass->byval_arg' in the
15649         mono_type_get_object() call.  The returned type must be
15650         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
15651
15652 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
15653
15654         * NOTES: New file.
15655
15656         * object.c (mono_class_proxy_vtable): Make it thread safe.
15657
15658         * pedump.c: Fix warning.
15659
15660         * object.c appdomain.h: Get rid of metadata_section. 
15661         It is no longer needed and it was causing deadlocks with domain->lock.
15662
15663         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
15664
15665 2003-08-26  Martin Baulig  <martin@ximian.com>
15666
15667         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
15668
15669 2003-08-26  Martin Baulig  <martin@ximian.com>
15670
15671         * pedump.c (main): Call mono_metadata_init(),
15672         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
15673         and mono_loader_init().
15674
15675 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
15676
15677         * loader.h: Add missing include to fix build.
15678
15679         * image.h: mono_image_load_references is no more.
15680
15681         * assembly.c: Reworked assembly loading to make it really thread safe.
15682         After these changes, the assembly returned by mono_assembly_open is
15683         fully initialized, i.e. all its references assemblies are loaded.
15684
15685         * assembly.c (mono_image_load_references): Renamed to 
15686         mono_assembly_load_references, and made private, since clients no
15687         longer need to call it.
15688
15689         * class.c: Removed calls to mono_assembly_load_references, since it was
15690         a source of deadlocks.
15691
15692         * loader.h loader.c class.h class.c: Protect data structures using a 
15693         new lock, the loader lock.
15694
15695         * class.c (mono_class_setup_vtable): Create temporary hash tables and
15696         GPtrArrays only when needed.
15697
15698         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
15699         into empty structures by mcs. Fixes pinvoke7.cs.
15700         
15701         * domain.c (mono_init): Call a new initialization function.
15702
15703         * appdomain.c (mono_runtime_init): Call the new initializer function
15704         of the marshal module.
15705
15706         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
15707         inserted into empty structures by mcs. Fixes pinvoke7.cs.
15708
15709         * marshal.h marshal.c: Added locks around the wrapper caches to make
15710         this module thread safe.
15711
15712         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
15713         this argument. Fixes pinvoke1.exe.
15714
15715 2003-08-25  Lluis Sanchez <lluis@ximian.com>
15716
15717         * object.h: Added call_type field to MonoMethodMessage and the corresponding
15718         enumeration of values. Removed fields to store remote call output values in
15719         MonoAsyncResult. Not needed any more.
15720         * object.c: Initialize call_type and async_result fields in mono_message_init.
15721         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
15722         dispatching the message.
15723         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
15724         async call to finish. To do it use a message with EndInvoke call type.
15725
15726 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
15727
15728         * loader.h loader.c (mono_method_hash_marhal_info): New function which
15729         determines whenever a method has marshalling info.
15730
15731 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15732
15733         * assembly.c: fix the build on windows.
15734
15735 2003-08-22 Lluis Sanchez <lluis@ximian.com>
15736
15737         * object.cs: Fixed bug #47785.
15738
15739 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
15740
15741         * string-icalls.c (StringReplace): If their are no occurances of
15742         the old string found return a reference to the supplied
15743         string. This saves some memory and matches MS behavoir.
15744         
15745 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15746
15747         * socket-io.c: fixed compilation for systems that define AF_INET6
15748         and don't define SOL_IP/SOL_IPV6.
15749
15750 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
15751
15752         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
15753         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
15754
15755         * rawbuffer.c rawbuffer.h: Make this module thread safe.
15756
15757         * domain.c: Make this module thread safe.
15758
15759         * domain.c (mono_init): Call new initialization function.
15760
15761         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
15762         reference types too. Fixes #38812.
15763
15764         * image.c (mono_image_init): Fixed warnings.
15765
15766         * class.c (mono_class_from_typeref): Handle assembly load failure
15767         correctly.
15768
15769         * appdomain.c (add_assemblies_to_domain): Handle the case when
15770         the references of an assembly are not yet loaded.
15771
15772         * metadata.c image.c assembly.c: Moved initialization of global
15773         variables to a separate function called at startup since lazy 
15774         initialization of these variables is not thread safe.
15775         
15776         * image.c assembly.c: Made this module thread safe by adding locks in 
15777         the appropriate places.
15778
15779         * domain.c (mono_init): Call the new initialization functions of the
15780         three modules.
15781
15782 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
15783
15784         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
15785           make a direct call. It is proxy's work to make the call asynchronous.
15786           mono_delegate_end_invoke(): If the targe is a proxy, just collect
15787           the return values.
15788         * object.cs: mono_method_call_message_new(): read AsyncResult and
15789           state object from parameters list, if this info is requested.
15790         * object.h: Added fields to store remote call output values in
15791           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
15792
15793 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15794
15795         * object.h: add needed fields to MonoThread.
15796         * threads.c, threads.h: allow registering a function to cleanup data
15797         allocated per thread by the JIT.
15798
15799 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15800
15801         * loader.h: portability fix by Bernie Solomon
15802         * <bernard@ugsolutions.com>.
15803
15804 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
15805
15806         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
15807         return a MonoArray. This simplifies the code and also ensures that
15808         the cache allways contains an object reference as a value.
15809
15810         * icall.c (ves_icall_get_parameter_info): Simplified using the new
15811         function.
15812
15813 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15814
15815         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
15816         fixes a problem with byte ordering when getting the address family for
15817         a socket.
15818
15819 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
15820
15821         * .cvsignore: Added monosn.
15822
15823         * reflection.h reflection.c loader.c: Added support for parameter
15824         marshalling to dynamically created types. Fixes #47295.
15825
15826 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
15827
15828         * rand.c: remove useless warnings.
15829
15830 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15831
15832         * class.c: implemented ldtoken for methods and fieldrefs.
15833
15834 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15835
15836         * threadpool.c: when mono_async_invoke was called, no one took care of
15837         monitoring the queue. So if the method invoked took some time and we
15838         got new async invoke requests after 500 ms (the thread created waited
15839         that long in WaitForSingleObject), the new async invoke was not called
15840         until the previous one finished.
15841
15842         This is fixed now. Thanks to Totte for helping with it.
15843
15844 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15845
15846         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
15847
15848 2003-08-11  Martin Baulig  <martin@ximian.com>
15849
15850         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
15851
15852 2003-08-06  Martin Baulig  <martin@ximian.com>
15853
15854         * mono-debug-debugger.c: Added support for static fields,
15855         properties and methods.
15856
15857 2003-08-06  Martin Baulig  <martin@ximian.com>
15858
15859         * mono-debug-debugger.c: Don't store the MonoString's vtable to
15860         make this work for applications with multiple application domains.
15861
15862 2003-08-04  Martin Baulig  <martin@ximian.com>
15863
15864         * mono-debug-debugger.c: Completely reworked the type support; the
15865         most important thing is that we're now just using one single
15866         `MonoType' instance per type.
15867
15868 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
15869
15870         * mono-endian.h, mono-endian.c, icall.c: Added icall
15871         ves_icall_System_Double_AssertEndianity to assert double word endianity
15872         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
15873
15874 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15875
15876         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
15877         support, icalls and fixes.
15878
15879 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
15880
15881         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
15882         classes that are a punctuation character in .NET is not the same a
15883         g_unichar_ispunct.
15884
15885 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15886
15887         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
15888
15889 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
15890
15891         * icall.c: Add new MemCopy internalcall.
15892         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
15893         Simplified code; It is not necessary to handle all the cases here,
15894         as the C# code takes care of it.  Only handle the case of the name
15895         resource embedded into the assembly.
15896
15897         Changed signature to return the data pointer and the size of the
15898         data. 
15899
15900 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
15901
15902         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
15903         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
15904
15905 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15906
15907         * socket-io.c: ignore EINTR error in select.
15908
15909 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15910
15911         * class.h, class.c: removed unused subclasses field in MonoClass.
15912
15913 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15914
15915         * icall.c: improve fix of get_base_definition(). If the parent class
15916           doesn't have the mehod, look at the parent of the parent.
15917         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
15918           to check if a parameter is an in or out parameter
15919           (PARAM_ATTRIBUTE_IN is not set by default).
15920           mono_method_return_message_restore(): Use mono_class_value_size to
15921           get the size of a value type. mono_type_stack_size (parameterType)
15922           does not return the correct value if parameterType is byRef.
15923           mono_load_remote_field(), mono_load_remote_field_new(),
15924           mono_store_remote_field(), mono_store_remote_field_new():
15925           raise exception if the remote call returns an exception.
15926
15927 2003-07-28  Martin Baulig  <martin@ximian.com>
15928
15929         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
15930         method.  This is a wrapper around mono_runtime_invoke() which
15931         boxes the instance object if neccessary.
15932
15933 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15934
15935         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
15936         metadata.h, row-indexes.h, verify.c: first cut of generics support.
15937
15938 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15939
15940         * icall.c: disable mcs bug workaround.
15941
15942 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
15943
15944         * object.c (mono_runtime_class_init): Take the metadata_section
15945         mutex before obtaining the domain mutex.
15946
15947         * appdomain.h: Added definition of metadata_section mutex here. 
15948
15949         * object.c: define metadata_mutex here.
15950
15951 2003-07-24  Ravi Pratap  <ravi@ximian.com>
15952
15953         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
15954         fixed.
15955
15956 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
15957
15958         * reflection.c: Fix bug #46669
15959
15960 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15961
15962         * exception.c:
15963         * exception.h:
15964         * icall.c:
15965         * object.h: fill in the type name for TypeLoadException.
15966
15967 2003-07-23  Ravi Pratap  <ravi@ximian.com>
15968
15969         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
15970         relationship between TypeBuilders while compiling corlib) and bug
15971         45993 (Array types returned from the runtime while compiling
15972         corlib were from the loaded corlib).
15973
15974 2003-07-22  Martin Baulig  <martin@ximian.com>
15975
15976         * mono-debug-debugger.c: Reworked the type support a bit more;
15977         distinguish between types and classes.
15978
15979 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
15980
15981         * icall.c: add IsArrayImpl icall.
15982
15983 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
15984
15985         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
15986         initializing real_size only once. Also fix bug #46602.
15987
15988 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
15989
15990         * object.c: Renamed mono_metadata_section to metadata_section.
15991
15992 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
15993
15994         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
15995           empty array if the type is an array. Fixed.
15996           ves_icall_MonoMethod_get_base_definition: if the base method
15997           is abstract, get the MethodInfo from the list of methods of
15998           the class.
15999         * reflection.c: ParameterInfo.PositionImpl should be zero-based
16000           and it was 1-based. Fixed in mono_param_get_objects.
16001
16002 2003-07-20  Martin Baulig  <martin@ximian.com>
16003
16004         * mono-debug.h: Set version number to 31.
16005         (mono_debug_init): Added `MonoDomain *' argument.
16006
16007         * mono-debug-debugger.c: Reworked the type support; explicitly
16008         tell the debugger about builtin types; pass the `klass' address to
16009         the debugger.
16010
16011 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16012
16013         * image.c: Allow new metadata tables to be loaded without a
16014         warning. Also update the warning message to give the new constant value.
16015                 
16016 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16017
16018         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16019         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16020         array type representation changes.
16021
16022 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16023
16024         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16025         on Environment.Exit () call.
16026
16027 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16028
16029         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16030         requires a matching corlib.
16031
16032 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16033
16034         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16035           Committed again without the CRs.
16036         
16037 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16038
16039         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16040           getting it from the "this" socket instance. Did not work
16041           if the socket is a subclass of Socket.
16042           Also fixed bug #35371.
16043
16044 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16045
16046         * metadata.c: fixed size for TypedByRef.
16047         * loader.c: when searching for a method, consider the vararg amrker.
16048         * unicode.c, decimal.c: constify some arrays.
16049
16050 2003-07-15  Dick Porter  <dick@ximian.com>
16051
16052         * socket-io.c: Fixed compilation for gcc < 3.2.
16053
16054         Fixed compilation for machines that don't have AF_INET6 (thanks to
16055         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16056
16057         Fixed compile warnings.
16058         
16059         Fixed formatting and line endings.
16060
16061 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16062
16063         * socket-io.h:
16064         * socket-io.c: Added IPv6 support.
16065
16066 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16067
16068         * class.c (mono_class_is_assignable_from): New function to implement
16069         the is_assignable_from logic. Used by mono_object_isinst, 
16070         Type::IsAssignableFrom () and the interpreter.
16071
16072         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16073         Object, even interfaces.
16074         
16075         * object.c (mono_object_isinst): Implement in terms of 
16076         is_assignable_from.
16077
16078         * icall.c (ves_icall_type_is_assignable_from): New icall.
16079
16080 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16081
16082         * domain.c (foreach_domain): fix compiler warning.
16083
16084 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16085
16086         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16087         not available on all plattforms
16088
16089 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16090
16091         * image.h image.c: Store the metadata version string in MonoImage.
16092         * icall.c: New icall to retrieve the image version.
16093         * reflection.c (create_dynamic_image): Fill in the image version field
16094         * reflection.c (build_compressed_metadata): Use the image version
16095         from the image structure.
16096
16097 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16098
16099         * appdomain.c: modified comment.
16100         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16101         That will be its last iteration when mono_gc_cleanup is called from
16102         mono_runtime_cleanup and before the domain is unloaded.
16103
16104         Fixes bug #45962.
16105
16106 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16107
16108         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16109         attributes.
16110
16111 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16112
16113         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16114         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16115         Bernie Solomon <bernard@ugsolutions.com>.
16116
16117 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16118
16119         * object.c, object.h: provide mono_object_new_fast() for faster
16120         allocation in some special cases.
16121
16122 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16123
16124         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16125         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16126
16127 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16128
16129         * threadpool.c: fix leaks.
16130
16131 2003-07-01  Dick Porter  <dick@ximian.com>
16132
16133         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16134         using MonoGHashTables.  Fixes threadpool bug posted to list.
16135
16136 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16137
16138         * image.h, image.c: added support to load an assembly from a byte array.
16139         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16140         assembly bundle support.
16141
16142 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16143
16144         * threadpool.c (mono_thread_pool_add): keep a reference to the
16145         AsyncResult to prevent GC
16146
16147 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16148
16149         * class.c: leak fix.
16150
16151 2003-06-25  Dick Porter  <dick@ximian.com>
16152
16153         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16154         for the async object, the WaitHandle object will close the handle.
16155         Fixes bug 45321.
16156
16157 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16158
16159         * class.c: in mono_array_class_get (), lookup from the hash with the
16160         same type we insert: this works around a bug in
16161         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16162         lluis. The real fix will have to wait for after the release.
16163
16164 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16165
16166         * icall.c: fix memory leak when getting type members.
16167
16168 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16169
16170         * reflection.c: added more pubtoken special cases.
16171
16172 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16173
16174         * class.c: handle field offset correctly when class size
16175         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16176
16177 2003-06-20  Martin Baulig  <martin@ximian.com>
16178
16179         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16180         *image' field.
16181
16182 2003-06-20  Martin Baulig  <martin@ximian.com>
16183
16184         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16185
16186 2003-06-20  Martin Baulig  <martin@ximian.com>
16187
16188         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16189         just distinguish between variables in registers and variables at
16190         an offset relative to a register.
16191
16192 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16193
16194         * icall.c: #ifdef out latest changes until mcs is fixed.
16195
16196 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16197
16198         * icall.c: return members in metadata order.
16199
16200 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16201
16202         * icall.c: avoid infinite loop in GetTimeZoneData.
16203
16204 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16205
16206         * icall.c: added Marshal.Prelink/All icalls.
16207
16208 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16209
16210         * object.c, object.h: fix warnings and do some overflow checking
16211         when creating arrays.
16212
16213 2003-06-17  Dick Porter  <dick@ximian.com>
16214
16215         * file-io.h:
16216         * file-io.c: File attributes need to be tweaked slightly when
16217         passed from the managed to the w32 world.
16218
16219 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16220         * profiler.h profiler-private.h profiler.c: Rework last patch
16221         based on suggestion by Paolo.
16222         
16223 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16224
16225         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16226         instruction level coverage data collection.
16227         * profiler.h profiler.c (: Added new callback function which can be
16228         used by the profiler to limit which functions should have coverage
16229         instrumentation.
16230         * profiler.c (mono_profiler_load): Call g_module_build_path to
16231         generate the file name of the profiler library.
16232
16233 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16234
16235         * profiler.c, profiler.h, profiler-private.h: added basic block 
16236         coverage profiling API.
16237
16238 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16239
16240         * reflection.c (mono_reflection_create_runtime_class): Add support
16241         for events in dynamically generated code.
16242
16243         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16244         not allocated.
16245
16246 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16247
16248         * icall.c: when getting timezone info, return reasonable values if we
16249         can't get the actual data.
16250
16251 2003-06-14  Dick Porter  <dick@ximian.com>
16252
16253         * threads.c (start_wrapper): Remove the reference to the thread
16254         object in the TLS data, so the thread object can be finalized.
16255         This won't be reached if the thread threw an uncaught exception,
16256         so those thread handles will stay referenced :-( (This is due to
16257         missing support for scanning thread-specific data in the Boehm GC
16258         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16259
16260 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16261
16262         * reflection.c: ensure streams and tables are first allocated with
16263         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16264
16265 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16266
16267         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16268
16269 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16270
16271         * reflection.c (mono_reflection_create_runtime_class): Add support for
16272         properties to dynamically created classes.
16273         * reflection.c: Fix a few places where non-MonoObjects were inserted
16274         into the tokens hashtable.
16275
16276 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16277
16278         * object.c: some support to handle out of memory exceptions.
16279
16280 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16281
16282         * marshal.c (mono_marshal_get_native_wrapper): support reference
16283         return types
16284
16285 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16286
16287         * object.h, object.c: more portability stuff from Bernie Solomon.
16288         Unexport mono_object_allocate(). Added mono_object_unbox ().
16289         Set exitcode when an unhandled exception is thrown.
16290
16291 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16292
16293         * marshal.c (mono_marshal_get_native_wrapper): use custom
16294         marshaler for return types.
16295
16296 2003-06-10  Dick Porter  <dick@ximian.com>
16297
16298         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16299         ip_mreq is available
16300
16301 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16302
16303         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16304         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16305         by Bernie Solomon <bernard@ugsolutions.com>.
16306
16307 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16308
16309         * gc.c (mono_gc_init): Avoid error message on shutdown when
16310         GC_DONT_GC=1 is used.
16311
16312         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16313         New icall to return the GUID of a module.
16314
16315 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16316
16317         * class.c: ensure instance size always includes the parent's size
16318         even whem class size is set explicitly (fixes bug#44294).
16319
16320 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16321
16322         * profiler.h, profiler.c: made the simple profiler thread-safe,
16323         get more accurate timing info. Allow the loading of an
16324         externally-developed profiler module.
16325
16326 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16327
16328         * marshal.c (mono_marshal_get_native_wrapper): improved
16329         class/byref arguments.
16330         (mono_marshal_get_native_wrapper): better string marshaling support.
16331
16332 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16333
16334         * class.c: ensure .pack and .size are handled correctly and
16335         simplified layout of static fields.
16336
16337 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16338
16339         * appdomain.c
16340         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16341
16342         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16343         current directory (fix bug 44008)
16344
16345 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16346
16347         * marshal.c (mono_marshal_get_native_wrapper): started support for
16348         custom marshalers.
16349         (mono_delegate_to_ftnptr): consider marshalling specifications
16350
16351 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16352
16353         * reflection.c, reflection.h: emit custom marshal info.
16354
16355 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16356
16357         * object.c: free the GError.
16358         * icall.c: added CloseEvent_internal.
16359         * threads.[ch]:
16360         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16361         call.
16362
16363 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16364
16365         * loader.c (mono_method_get_signature): Add support for dynamic
16366         assemblies.
16367
16368 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16369
16370         * reflection.c: fixed bug #43905.
16371
16372 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16373
16374         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16375         handling TypedReference and ArgIterator.
16376         * loader.c, loader.h: added function to get signature at call site.
16377
16378 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16379
16380         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16381         data readonly. Buglets and warning fixes. Some MethodSpec support.
16382
16383 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16384
16385         * class.h, class.c, object.c: remove relative numbering support.
16386
16387 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16388
16389         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16390         free the string, until we get a chance to fix Gtk#
16391
16392 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16393
16394         * marshal.c: revert last patch.
16395
16396 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16397
16398         * icall.c: updates for new mono_class_vtable() not calling
16399         the type constructor anymore.
16400
16401 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16402
16403         * object.h, object.c: separate vtable creation from type
16404         initialization. Make running the .cctor thread safe.
16405
16406 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16407
16408         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16409
16410 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16411
16412         * loader.c (mono_get_method): consider calling convention
16413
16414 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16415
16416         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16417         to return the invisible global type for a module.
16418
16419         * reflection.c (mono_image_build_metadata): Emit global fields too.
16420
16421 2003-05-20  Peter Williams  <peterw@ximian.com>
16422
16423         * loader.c (mono_lookup_internal_call): Add a few newlines.
16424
16425 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16426
16427         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16428         literal strings.
16429
16430         * appdomain.c (set_domain_search_path): Recalculate search path when
16431         AppDomainSetup.PrivateBinPath changes.
16432
16433         * object.c (mono_class_compute_gc_descriptor): It turns out some
16434         parts of the class libs (like System.Thread) holds pointers to
16435         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16436         to treat native int a pointer type here.
16437         
16438 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16439
16440         * appdomain.h, domain.c: add hashtable for jump target resolution.
16441
16442 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16443
16444         * reflection.h reflection.c icall.c: Added new icalls 
16445         GetManifestResourceInfoInternal, GetModulesInternal and support
16446         infrastructure.
16447
16448 2003-05-16  Dick Porter  <dick@ximian.com>
16449
16450         * icall.c:
16451         * file-io.h:
16452         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16453
16454 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16455
16456         * object.c: mono_store_remote_field: little fix to previous patch.
16457
16458 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16459
16460         * class.c: add constructors to array classes.
16461         * icall.c: special case array construction for InternalInvoke (),
16462
16463 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16464
16465         * class.h class.c reflection.c object.c: Added support for field
16466         defaults in dynamically generated classes.
16467
16468 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16469
16470         * reflection.c: properly encode charset for ddlimport.
16471
16472 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16473
16474         * threads.c: allow compiling without GC.
16475
16476 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16477
16478         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16479         handling of thread static data.
16480
16481 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16482
16483         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16484
16485 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16486
16487         * class.c (mono_array_class_get): always set the serializable flags
16488         (mono_array_class_get): always set the SEALED attribute for array types
16489
16490 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
16491
16492         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
16493         attributes (fix for bug 42021).
16494
16495 2003-05-12  Dick Porter  <dick@ximian.com>
16496
16497         * gc.c: Don't run finalizers when the finalizer thread is
16498         finishing up, because the default domain has already been
16499         destroyed.
16500
16501 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
16502
16503         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
16504         value is null, we should throw an exception.   This is slightly
16505         different than the other conventions used for the constructor.
16506
16507 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16508
16509         * socket-io.c: fixed windows build.
16510
16511 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16512
16513         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
16514
16515 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
16516
16517         * object.c (mono_string_new_wrapper): Compatibility fix for MS
16518         compilers.
16519
16520 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
16521
16522         * class.c (mono_class_layout_fields): Add experimental GC aware
16523         auto layout facility. Requires class library changes to work correctly.
16524
16525         (mono_class_setup_vtable): Avoid overriding explicit interface
16526         method implementations. Fixes iface3.exe test.
16527
16528         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
16529         object reference.
16530         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
16531         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
16532
16533         * metadata.h: Add new type classification macro which determines
16534         whenever the type holds an object reference.
16535
16536 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
16537
16538         * marshal.c (mono_marshal_get_native_wrapper): cleanups
16539
16540 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
16541
16542         * gc.c (finalizer_thread): Work around a GC bug.
16543
16544 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
16545
16546         * marshal.c (emit_struct_conv): allow unions
16547
16548         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
16549
16550 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
16551
16552         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
16553
16554 2003-05-06  Martin Baulig  <martin@ximian.com>
16555
16556         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
16557
16558 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16559
16560         * socket-io.c:
16561         (Select_internal): allow NULLs, don't create arrays if not needed.
16562         Coupled with Socket.cs changes.
16563
16564         * threadpool.c:
16565         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
16566         register a finalizer for it that will close the semaphore handle. This
16567         fixes the leak and make Lupus' test run with > 4080 loops.
16568
16569 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
16570
16571         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
16572         Jerome Laban (bug #42287)
16573
16574 2003-05-02  Martin Baulig  <martin@ximian.com>
16575
16576         * debug-mono-symfile.h
16577         (MonoSymbolFile): Moved declaration into mono-debug.h.
16578         (MonoDebugMethodJitInfo): Likewise.
16579         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
16580         argument.
16581         (_mono_debug_address_from_il_offset): Take a
16582         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
16583
16584         * mono-debug.h
16585         (MonoDebugDomainData): New struct.
16586         (mono_debug_get_domain_data): New function.
16587         (mono_debug_add_method): Take an additional `MonoDomain *'
16588         argument.
16589         (mono_debug_source_location_from_address): Likewise.
16590         (mono_debug_il_offset_from_address): Likewise.
16591         (mono_debug_address_from_il_offset): Likewise.
16592
16593 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
16594
16595         * reflection.c: one more check for null type in custom attrs.
16596
16597 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16598
16599         * reflection.c: avoid warning (comparison is always false due to limited
16600         range of data type).
16601
16602 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16603
16604         * icall.c: throw an exception in Type.GetField if the argument 'name'
16605         is NULL.
16606
16607 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
16608
16609         * reflection.c: fixed handling of enums in named arguments to custom
16610         attributes (bug #42123).
16611
16612 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
16613
16614         * reflection.c: use the right array element type and handle
16615         a null for a Type argument, too.
16616
16617 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
16618
16619         * reflection.c: handle arrays as arguments to custom attributes.
16620
16621 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16622
16623         * reflection.c: handle a string value in a custom attr
16624         ctor that takes an object.
16625
16626 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
16627
16628         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
16629         (fix bug #42063)
16630
16631 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
16632
16633         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
16634
16635 2003-04-27  Martin Baulig  <martin@ximian.com>
16636
16637         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
16638         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
16639         MONO_DEBUGGER_EVENT_BREAKPOINT.
16640         (mono_breakpoint_trampoline_code): Removed.
16641         (mono_debugger_event_handler): The last argument is now a
16642         `guint32'.
16643         (mono_debugger_insert_breakpoint_full): Removed the
16644         `use_trampoline' argument.
16645         (mono_debugger_method_has_breakpoint): Likewise.
16646         (mono_debugger_trampoline_breakpoint_callback): Renamed to
16647         mono_debugger_breakpoint_callback(); take the method and
16648         breakpoint number as arguments.
16649
16650 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
16651
16652         * metadata.c: fix off by one when loading parameters attributes.
16653
16654 2003-04-24  Martin Baulig  <martin@ximian.com>
16655
16656         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
16657
16658 2003-04-24  Martin Baulig  <martin@ximian.com>
16659
16660         * mono-debug-debugger.c: Moved all code which interacts with the
16661         Mono Debugger here.
16662
16663         * debug-mono-symfile.c: This code now just deals with the symbol
16664         file itself, the debugger code is now in mono-debug-debugger.c.
16665
16666 2003-04-23  Martin Baulig  <martin@ximian.com>
16667
16668         * mono-debug.c (mono_debug_source_location_from_il_offset):
16669         New method; like mono_debug_source_location_from_address(), but
16670         takes an IL offset instead of a machine address.
16671
16672 2003-04-23  Martin Baulig  <martin@ximian.com>
16673
16674         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
16675         `line' field; this is now computed by the debugger.
16676
16677 2003-04-23  Martin Baulig  <martin@ximian.com>
16678
16679         * mono-debug.[ch]: New files.  This is the new debugging interface.
16680
16681         * mono-debug-debugger.[ch]: New files.  Moved all code which
16682         interacts with the Mono Debugger here.
16683
16684 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
16685
16686         * domain.c (mono_init): initialize mono_defaults.monitor_class
16687
16688 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
16689
16690         * reflection.c (method_encode_code): Add a spicy exception to help
16691         future compiler authors.
16692
16693 2003-04-21  Martin Baulig  <martin@ximian.com>
16694
16695         * icall.c
16696         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16697         Make this work with relative pathnames; g_filename_to_uri() needs
16698         an absolute filename.
16699
16700 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
16701
16702         * icall.c: Track name changes in Object and ValueType.
16703
16704 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
16705
16706         * metadata.c (mono_type_stack_size): size should be a multiple of
16707         sizeof (gpointer)
16708
16709 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16710
16711         * gc.c:
16712         (internal_domain_finalize): moved into mono_domain_finalize. No need
16713         to create another thread because the finalizers will be run in the
16714         finalizer thread.
16715         
16716         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
16717         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
16718         to be run (MS does this too).
16719
16720 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
16721
16722         * object.c (mono_class_compute_gc_descriptor): Update comment.
16723
16724         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
16725
16726         * image.h: Add synchronized wrapper cache.
16727
16728         * image.c (do_mono_image_open): Initialize cache.
16729
16730         * reflection.c (create_dynamic_mono_image): Initialize cache.
16731
16732 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16733
16734         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
16735         ves_icall_System_Buffer_ByteLengthInternal.
16736
16737 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16738
16739         * reflection.c: setup klass->nested_in earlier. Allow
16740         a dash in the assembly name.
16741
16742 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
16743
16744         * metadata.c (mono_type_to_unmanaged): dont access
16745         type->data.klass for MONO_TYPE_OBJECT
16746         (mono_type_to_unmanaged): consider System.Delegate class
16747
16748 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
16749
16750         * class.c: just setup supertypes in the proper place instead of
16751         initializing the full element class for arrays.
16752
16753 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16754
16755         * class.c: ensure the element class of arrays is initialized.
16756         Setup the supertype info for array classes, too.
16757
16758 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
16759
16760         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
16761
16762 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16763
16764         * Makefile.am: re-added -m option when running cygpath. This way,
16765         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
16766         separator.
16767         * mono-config.c: same codepath for locating mono config file for WIN32
16768         and the rest.
16769         * assembly.c: if mono_assembly_setrootdir is called, don't override
16770         the value set.
16771
16772 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16773
16774         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
16775         MONO_ASSEMBLIES variable.
16776
16777 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
16778
16779         * icall.c: added Assembly::GetNamespaces() icall.
16780
16781 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16782
16783         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
16784
16785 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
16786
16787         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
16788         * object.c: fixed bug in the construction of vtable for proxies
16789
16790 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
16791
16792         * object.c (mono_array_new): Mark mono_array_new as an icall.
16793
16794 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16795
16796         * class.c: fixed test for public method when overriding interfaces.
16797         Closes bug #40970.
16798
16799 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16800
16801         * appdomain.h, domain.c: added mono_domain_foreach() to
16802         be able to access the currently loaded appdomains.
16803         * object.c: make string interning work across sppdomains.
16804         Mark some functions for use as icalls.
16805
16806 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
16807
16808         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
16809
16810         * reflection.h reflection.c: Allocate long living data using 
16811         GC_MALLOC_ATOMIC so the collector does not need to scan it.
16812
16813         * reflection.c: Double the allocation size in streams instead of
16814         increasing it, to prevent unneccesary copying on large assemblies.
16815         
16816         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
16817         creation if the assembly does not have the Run flag set.
16818
16819 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
16820
16821         * class.h: avoid the C++ keywords in header files (Jerome Laban
16822         spotted and fixed this).
16823
16824 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16825
16826         * object.c:
16827         (mono_unhandled_exception): fill in the arguments for the
16828         UnhandledException event. Only trigger that event for the default
16829         domain (as MS does).
16830
16831 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
16832
16833         * object.c: Improve typed allocation stuff based on suggestions from
16834         Paolo. Also turn it on if the GC library supports it.
16835
16836 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16837
16838         * object.c object.h class.h: Added experimental typed allocation
16839         facility using the interfaces in gc_gcj.h.
16840
16841         * os/gc_wrapper.h: Added new include files.
16842         
16843 2003-04-03  Martin Baulig  <martin@ximian.com>
16844
16845         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
16846         which is not yet enabled by default.
16847
16848         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
16849         functions.
16850         (mono_gc_lock, mono_gc_unlock): New static functions.
16851
16852         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
16853         functions; stop/start the world for the garbage collector.  This
16854         is using the windows API; we need to complete the SuspendThread()/
16855         ResumeThread() implementation in the io-layer to make this work on Unix.
16856         (mono_gc_push_all_stacks): New public function; tells the garbage
16857         collector about the stack pointers from all managed threads.
16858
16859 2003-04-03  Martin Baulig  <martin@ximian.com>
16860
16861         * object.h (MonoThread): Added `gpointer stack_ptr'.
16862
16863         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
16864
16865 2003-04-03  Martin Baulig  <martin@ximian.com>
16866
16867         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
16868
16869 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16870
16871         * reflection.c (typebuilder_setup_fields): Initialize field.first and
16872         field.last.
16873
16874 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
16875
16876         * loader.c (mono_lookup_internal_call): Report the corlib that is
16877         out of sync.
16878
16879 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
16880
16881         * icall.c (ves_icall_type_GetTypeCode): fixed check for
16882         System.DBNull (it's class not valuetype).
16883
16884 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16885
16886         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
16887         if the array method was already assigned a token (fixes bug#40646).
16888
16889 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
16890
16891         * reflection.c (mono_reflection_get_type): Attempt type resolve even
16892         if no assembly is given.
16893
16894 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
16895
16896         * metadata.h: Added the new tables.
16897
16898         * row-indexes.h: Added definitions for new tables.
16899
16900         * metadata.c: Add schemas for new tables, and add support for
16901         computing the sizes of them.
16902
16903         * class.c: Update for handling the new type cases.
16904
16905 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
16906
16907         * metadata.h (MONO_TYPE_IS_VOID): new macro
16908
16909 2003-03-31  Martin Baulig  <martin@ximian.com>
16910
16911         * threads.h (MonoThreadCallbacks): Added `thread_created'.
16912
16913         * threads.c (mono_thread_new_init): Call `thread_created' in the
16914         mono_thread_callbacks.
16915
16916 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
16917
16918         * loader.h: added marshalbyrefobject_class to mono_defaults
16919         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
16920         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
16921           generation of output parameters.
16922           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
16923         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
16924           contextbound and the target object belongs to the context of the caller.
16925         * object.h: added context and unwrapped_server variables in MonoRealProxy.
16926         * object.c: Implemented support for interfaces and abstract classes
16927           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
16928           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
16929
16930 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
16931
16932         * class.h class.c (mono_class_is_subclass_of): New function.
16933         
16934         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
16935         routines for most common case (calls from ArrayList::ToArray).
16936
16937         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
16938         routine so programs which call Environment::Exit() can be profiled.
16939
16940         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
16941         Added MONO_ARCH_SAVE_REGS.
16942
16943         * icall.c (ves_icall_type_is_subtype_of): Use new function.
16944
16945 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
16946
16947         * blob.h: Add a couple of new MonoType types definitions.
16948
16949         * tabledefs.h: Add a couple of new call convs.
16950
16951 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
16952
16953         * reflection.h (MonoReflectionDynamicAssembly): track changes in
16954         the layout of the class.
16955
16956         * reflection.c (alloc_table): double the size on overflow to avoid
16957         unnecessary copying.
16958
16959         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
16960         avoid filling out metadata tables and blobs. Also set mb->ilgen to
16961         null so it can be garbage collected.
16962         
16963 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
16964
16965         * reflection.c (mono_reflection_get_type): Return the resolved type
16966         only if it is in the assembly we searched.
16967
16968         * reflection.c (ensure_runtime_vtable): Initialize method slots.
16969
16970         * class.c (mono_class_setup_vtable): Set the slot of the overriding
16971         method.
16972
16973 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16974
16975         * appdomain.c:
16976         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
16977         the right one is 'file:///blah', but MS allows it.
16978         * assembly.c:
16979         (mono_assembly_open): allow 'file://blah'
16980
16981         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
16982
16983 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
16984
16985         * socket-io.c: fixes bug #40310.
16986
16987 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
16988
16989         * reflection.c (mono_reflection_parse_type): handle deeply nested
16990         types correctly.
16991
16992         * reflection.c (mono_image_create_token): Use unique token values
16993         since they will be put into a hash table.
16994
16995         * class.c (mono_class_setup_vtable): If a method occurs in more than
16996         one place in the vtable, and it gets overriden, then change the
16997         other occurances too.
16998
16999         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
17000         object as return type.
17001
17002 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17003
17004         * icall.c: Deleted "ToString" implementation for double and float
17005         because they are full implemented in managed code.
17006
17007 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17008
17009         * reflection.c, reflection.h: implemented and exported functions
17010         to retrieve info about custom attributes.
17011
17012 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17013
17014         * appdomain.c: moved Uri handling to assembly.c
17015         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17016         work when using a file Uri in *nix and windows.
17017
17018         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17019         GetReferencedAssemblies.
17020
17021 2003-03-18  Dick Porter  <dick@ximian.com>
17022
17023         * icall.c: Rename a couple of internal calls
17024
17025         * threads.c: Set the thread state to Stopped when a thread exits.
17026         Fixes bug 39377.
17027
17028 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17029
17030         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17031         New icall.
17032
17033         * object.c (mono_class_vtable): fix warning.
17034
17035 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17036
17037         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17038
17039         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17040         memory.
17041         (method_encode_clauses): Create exception info structures in the right
17042         order.
17043         (mono_reflection_setup_internal_class): Initialize supertypes field.
17044
17045         * class.c object.c: Handle interfaces which implement other interfaces 
17046         correctly.
17047
17048         * class.h class.c: Move the supertypes array initialization code into 
17049         a separate function so it can be used for dynamic types too. Also call
17050         it earlier, in mono_class_init(), since it can be used before the
17051         type is initialized.
17052
17053 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17054
17055         * Makefile.am:
17056         * assembly.c:
17057         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17058
17059         * appdomain.c:
17060         * appdomain.h:
17061         * marshal.c:
17062         * object.c: remove warnings.
17063
17064 2003-03-13  Martin Baulig  <martin@ximian.com>
17065
17066         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17067         (MonoDebugLexicalBlockEntry): New types.
17068
17069         * debug-mono-symfile.c
17070         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17071
17072 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17073
17074         * process.c: ret can be any non-zero value accroding to MS doc.
17075
17076 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17077
17078         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17079         fixing a warning for a miss-used prototype, would have cause
17080         random memory corruption.
17081
17082 2003-03-07  Martin Baulig  <martin@ximian.com>
17083
17084         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17085         getting really annoying ....
17086
17087 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17088
17089         * reflection.c (fixup_method): added support for array methods.
17090
17091 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17092
17093         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17094         (pointed out by Michael Adams).
17095
17096 2003-03-04  Dick Porter  <dick@ximian.com>
17097
17098         * icall.c: Temporarily reverted the Double and Single ToString()
17099         change, because it broke nunit.
17100
17101 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17102
17103         * object.h, threads.h: make include files compatible with C++
17104         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17105
17106 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17107
17108         * icall.c: Erased ToString helper functions for Double and Single.
17109         Now, that implementations ar all in managed code (Double and Single
17110         Formatters).
17111
17112 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17113
17114         * appdomain.c: Added method for initializing the default context of
17115         a domain. Added internal call for getting the default context.
17116         * appdomain.h: Added context variable in MonoDomain struct.
17117         * domain.c: mono_domain_set also sets the default context of the domain
17118         * icall.c: Mapped internal method InternalGetDefaultContext.
17119         * object.c: mono_object_get_virtual_method returns always a remoting
17120         wrapper if the object is a transparent proxy.
17121         mono_runtime_invoke_array: when creating an object by calling the
17122         constructor, if the created object is a proxy, then the constructor should
17123         be called using the a remoting wrapper.
17124
17125 2003-03-03  Dick Porter  <dick@ximian.com>
17126
17127         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17128         variable so it compiles on solaris.  Problem spotted by
17129         Christopher Taylor <ct@cs.clemson.edu>
17130
17131 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17132
17133         * appdomain.c:
17134         (get_info_from_assembly_name): don't leak value.
17135
17136         * icall.c:
17137         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17138         result.
17139
17140 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17141
17142         * assembly.c: export mono_image_load_references ().
17143         * class.c: handle function pointers. mono_class_from_name() now
17144         supports nested type names directly.
17145
17146 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17147
17148         * reflection.h reflection.c: Encode already created dynamic methods 
17149         and fields correctly as a DEF instead of a REF.
17150
17151         * reflection.c: Get rid of the force_ref argument to 
17152         mono_image_typedef_or_ref since it was wrong in the first place.
17153
17154         * string-icalls.c: add error checking to string constructors according
17155         to the MSDN docs.
17156
17157         * reflection.c: Emit types in the order their TypeBuilders were 
17158         created. Previously, a new table index was assigned to each type before
17159         the tables were emitted. This was wrong because the signature blob
17160         might already refer to a type by its original table index.
17161
17162 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17163
17164         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17165         change.
17166         
17167 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17168
17169         * Makefile.am: make assemblies dir have \ instead of / on windows.
17170
17171 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17172
17173         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17174         iterate over the NESTEDCLASS table using a linear search since the
17175         table is not guaranteed to be sorted by the secondary key.
17176
17177         * class.c (mono_class_create_from_typedef): fixed up call to
17178         mono_metadata_nesting_typedef.
17179         
17180 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17181
17182         * marshal.c (mono_string_to_byvalstr): clear the memory as
17183         suggested by Jerome Laban <jlaban@wanadoo.fr>
17184
17185 2003-02-26  Dick Porter  <dick@ximian.com>
17186
17187         * process.c: Cope with padding in .rsrc blocks
17188
17189 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17190
17191         * metadata.h: reverted the filter_len change, it breaks reflection
17192         
17193 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17194
17195         * metadata.h: added a new field to store the filter_len
17196         
17197
17198 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17199
17200         * reflection.c: handle custom attributes for types and members
17201         created with Reflection.Emit (bug#38422).
17202
17203 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17204
17205         * reflection.c: define RTSpecialName automatically for constructors for
17206         compatibility with MS.NET.
17207
17208         * reflection.c (mono_reflection_create_runtime_class): initialize
17209         nested_in field of dynamically created classes.
17210
17211 2003-02-22  Martin Baulig  <martin@ximian.com>
17212
17213         * debug-mono-symfile.h: Incremented version number.
17214
17215 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17216
17217         * object.h icall.c process.c: fix warnings.
17218
17219 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17220
17221         * appdomain.h appdomain.c:
17222         (mono_domain_try_type_resolve): split the 
17223         name_or_tb argument into a name and a tb argument.
17224         (mono_domain_has_type_resolve): new function to check whenever the
17225         application has registered a TypeResolve event handler.
17226         
17227         * icall.c reflection.h reflection.c: move the type resolve logic into
17228         mono_reflection_get_type () so it will be invoked when 
17229         Assembly::GetType () is called.
17230
17231         * reflection.c:
17232         (mono_reflection_get_type): renamed to get_type_internal.
17233         (mono_reflection_get_type): fixed type name generation so it works 
17234         for nested types too.
17235         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17236         costly type name generation if there is no resolve event handler.
17237
17238 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17239
17240         * class.c, image.c: load exported types from file references.
17241
17242 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17243
17244         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17245           used to cache the managed methods used to create proxies and make 
17246           remote invocation of methods.
17247         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17248           to be remotely created.
17249         * object.c: Modified the method mono_class_vtable(). It now initializes 
17250           the remote flag of the vtable. Modified mono_object_new_specific(), 
17251           so now it checks the remote flag.
17252         * icall.c: Added a couple of internal methods, one for enabling instance 
17253           creation interception for a type, and one for creating objects bypassing
17254           the remote check.
17255
17256 2003-02-18  Martin Baulig  <martin@ximian.com>
17257
17258         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17259         New interncall to get a method's metadata token.
17260
17261         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17262         New interncall for the debugger.
17263
17264 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17265
17266         * class.c (mono_class_setup_vtable): allocate supertype array
17267
17268 2003-02-18  Martin Baulig  <martin@ximian.com>
17269
17270         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17271
17272 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17273
17274         * reflection.c:
17275         (assembly_name_to_aname): jump over unknown properties (i've found
17276         something like: 'type, assembly, version=xxx, custom=null, public...',
17277         so now will ignore custom=null and still get the rest of the values).
17278
17279 2003-02-17  Dick Porter  <dick@ximian.com>
17280
17281         * threads.c: Have Thread.Start() wait for a semaphore to signal
17282         that the thread has set up all its local data.  This fixes bug
17283         34323, where Abort() raced the new thread's TLS data.
17284
17285         Also removes the handle_store() call from start_wrapper, because
17286         threads are now always created suspended and there is no longer a
17287         race between the parent and child threads to store the info.
17288
17289 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17290
17291         * image.c: explain the #- heap issue in a message, hopefully
17292         avoiding FAQs on mono-list.
17293
17294 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17295
17296         * icall.c:
17297         (GetEntryAssembly): if the domain has not invoked
17298         AppDomain.ExecuteAssembly yet, return the assembly of the default
17299         AppDomain.
17300
17301 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17302
17303         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17304
17305 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17306
17307         * metadata.c, reflection.c: simple speedup to type hash
17308         and equals code.
17309
17310 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17311
17312         * image.c, image.h, class.c, assembly.c: move module loading
17313         to MonoImage. When loading metadata, consider alignemnet from
17314         the start of metadata, not from the metadata address in memory.
17315
17316 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17317
17318         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17319         AssemblyBuilder objects. Factored out custom attribute creation into
17320         a separate function.
17321         (create_custom_attr): new function to create custom attributes.
17322
17323 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17324
17325         * Makefile.am: Got tired of typing the full pathname to pedump.
17326         Until there is another option, am installing this.
17327
17328 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17329
17330         * class.c (class_compute_field_layout): always set field->parent 
17331         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17332
17333 2003-02-11  Dick Porter  <dick@ximian.com>
17334
17335         * threads-types.h:
17336         * monitor.c: Rewrote Monitor, making lock much faster and
17337         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17338         creates them as needed.
17339
17340         * exception.c: Added SynchronizationLockException
17341
17342         * threads.c: Deleted old Monitor implementation.  The new one is
17343         in a new file.
17344
17345 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17346
17347         * class.c: handled TypedReference type code. Set the correct size for
17348         class data. Setup interface_offsets for interface classes, too.
17349
17350 2003-02-09  Martin Baulig  <martin@ximian.com>
17351
17352         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17353
17354 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17355
17356         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17357         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17358         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17359         * verify.c: check for code that runs after the end of the method.
17360
17361 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17362
17363         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17364         "System.Math::Round2".
17365         * sysmath.h: Added Floor, Round and Round2 definitions.
17366         * sysmath.c: Modified certain functions that were not 100% compliant
17367         with MS.NET (math precision) and added the implementation of Floor,
17368         Round and Round2.
17369
17370 2003-02-07  Martin Baulig  <martin@ximian.com>
17371
17372         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17373
17374 2003-02-07  Martin Baulig  <martin@ximian.com>
17375
17376         * debug-mono-symfile.c: Reflected latest symwriter changes.
17377         (mono_debug_create_mono_symbol_file): Removed.
17378         (mono_debug_open_mono_symbol_file): Take an argument which
17379         specifies whether to create a dynamic symbol file.
17380
17381 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17382
17383         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17384
17385 2003-02-05  Martin Baulig  <martin@ximian.com>
17386
17387         * reflection.c (mono_image_build_metadata): Make this public,
17388         protect it against being called multiple times, don't create
17389         resources and don't build the compressed metadata here.
17390         (mono_image_create_pefile): Do this here.
17391
17392         * icall.c
17393         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17394
17395 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17396
17397         * socket-io.c: fixed bug #36322.
17398
17399 2003-02-06  Piers Haken <piersh@friskit.com>
17400
17401         * appdomain.[ch]:
17402         * class.h:
17403         * debug-mono-symfile.c:
17404         * icall.c:
17405         * loader.c:
17406         * mono-config.c:
17407         * monosn.c:
17408         * reflection.c:
17409         * socket-io.c: warning cleanups
17410
17411 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17412
17413         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17414         function. works like remoting invoke, but does a check for the Proxy first.
17415
17416 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17417
17418         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17419
17420 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17421
17422         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17423         array of pointers.
17424         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17425         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17426
17427         * object.c (mono_store_remote_field_new): used by the new jit
17428         instead of mono_store_remote_field
17429         (mono_load_remote_field_new): used by the new jit
17430         instead of mono_load_remote_field
17431
17432 2003-02-05  Patrik Torstensson
17433
17434         * appdomain.c: changed unload to take the domain id instead
17435         of domain
17436         
17437         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17438
17439
17440 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17441
17442         * appdomain.c: don't look for assemblies in ApplicationBase if
17443         PrivateBinPathProbe is set.
17444
17445 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17446
17447         * object.c: make the first argument in main_args contain the absolute
17448         path to the assembly. Fixes bug #37511.
17449
17450 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17451
17452         * icall.c: get correct UTC offset for countries not using daylight
17453         time saving. Fixes bug #30030.
17454
17455 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17456
17457         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17458         and 1 are the family).
17459
17460 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17461
17462         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17463
17464         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17465
17466 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17467
17468         * reflection.c: added support for SignatureHelper tokens, which is
17469         needed by the Calli opcode.
17470
17471         * reflection.h: track changes to SignatureHelper class.
17472
17473         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17474
17475 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17476
17477         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17478
17479 2003-02-03  Patrik Torstensson
17480         * appdomain.[c|h], domain.c : 
17481          - Added support for getting a domain via domain id
17482          - Support for setting and getting domain from System.AppDomain 
17483            (used in cross appdomain channel)
17484          - Added support for get/set for a MonoAppContext on a thread 
17485            (Context class in System.Runtime.Remoting.Contexts),
17486          - Removed hack in Get/SetData and ExecuteAssembly.
17487         
17488         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
17489         the managed world to get control when a proxy is created.
17490
17491         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
17492         
17493 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
17494
17495         * icall.c
17496         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17497         Populate the codebase field as well.
17498
17499 2003-02-02  Martin Baulig  <martin@ximian.com>
17500
17501         * debug-mono-symfile.c
17502         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
17503         (mono_debug_symfile_add_method): Allow interncalls.
17504
17505 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17506
17507         * icall.c: throw parse exception if strtod fails or the string is empty.
17508
17509 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
17510
17511         * marshal.c: handle object type separately from defined
17512         class types.
17513
17514 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
17515
17516         * marshal.c: handle NATIVE_LPSTR for strings when it's
17517         explicitly specified.
17518
17519 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
17520
17521         * reflection.c, reflection.h, icall.c: setup the reflection
17522         handle cache for ModuleBuilders and AssemblyBuilders.
17523
17524 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
17525
17526         * reflection.c (reflection_methodbuilder_to_mono_method): set
17527         pinvoke flag
17528
17529 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17530
17531         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
17532
17533 2003-01-29  Dick Porter  <dick@ximian.com>
17534
17535         * threads.c: No need for the fake_thread kludge now that Thread
17536         doesn't run a class constructor
17537         
17538 2003-01-29  Dick Porter  <dick@ximian.com>
17539
17540         * threads.c: Use g_direct_hash instead of the rather bogus
17541         g_int_hash
17542
17543 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
17544
17545         * marshal.c (mono_marshal_get_native_wrapper): add check for null
17546         (fix pinvoke12.exe)
17547         (mono_marshal_get_struct_to_ptr): generate valid IL code
17548         (mono_marshal_get_ptr_to_struct): generate valid IL code
17549         (*): correctly set sig->pinvoke, we need to memdup the signature
17550         to do that
17551
17552 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17553
17554         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
17555         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
17556
17557 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17558
17559         * profiler.c: provide more callers information.
17560
17561 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
17562
17563         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
17564
17565         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
17566
17567         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
17568
17569 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17570
17571         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
17572         exception instead of going into an infinite loop on dates which it 
17573         can't yet handle.
17574
17575         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
17576         out-of-range exception if needed.
17577
17578         * class.c (mono_class_setup_vtable): allow a virtual method to provide
17579         an implementation for an interface method and to override an inherited
17580         method at the same time. 
17581         Imagine a scenario when a virtual method is used to override a
17582         virtual abstract method in a parent class, and this same method 
17583         provides an implementation for an method inherited from an interface. 
17584         In this case, the interface resolution code will set im->slot, which 
17585         means that the virtual method override pass will skip this method 
17586         which means a pointer to the abstract method inherited from the parent
17587         will remain in the vtable of this non-abstract class.
17588
17589         * class.c: (mono_class_setup_vtable): continue search for a real 
17590         method if only an abstract method is found.     
17591
17592 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17593
17594         * reflection.c: add size to encoding for ByValStr and ByValArray
17595         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
17596
17597 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17598
17599         * class.c (mono_class_setup_vtable): pass the override info as an
17600         argument.
17601
17602         * class.c (mono_class_setup_vtable): set the slot of overriding methods
17603         correctly.
17604         
17605         * reflection.c (ensure_runtime_vtable); add support for method 
17606         overrides.
17607         
17608 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17609
17610         * reflection.c (resolution_scope_from_image): Hack to work to work with
17611         dynamic assemblies.
17612
17613         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
17614         added a 'force_ref' argument to force this function to allways return 
17615         a TypeRef. This is needed by mono_image_get_memberref_token ().
17616         
17617 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17618
17619         * reflection.c (mono_image_get_type_info): interfaces really don't have
17620         a parent.
17621
17622         * reflection.c (mono_image_basic_init): fill out missing fields of
17623         image structure.
17624
17625         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
17626         dynamic assemblies. This is required so dynamic assemblies show up in
17627         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
17628         Type::GetType() etc. This is consistent with MS behaviour.
17629
17630         * image.c image.h reflection.c: add newly created classes to the name 
17631         cache so mono_class_get () will find them.      
17632
17633 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17634
17635         First part of changes to get IKVM.NET running under mono.
17636         
17637         * appdomain.h, appdomain.c: added new function 
17638         mono_domain_try_type_resolve() which will emit TypeResolve events. 
17639         This function will call AppDomain::DoTypeResolve to do the actual work.
17640
17641         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
17642         moved existing code dealing with dynamic tokens to a new function 
17643         called mono_reflection_lookup_dynamic_token (). This function will 
17644         raise TypeResolve events when appropriate. Since reflection.c is not 
17645         part of libmetadata, a new hook function called 
17646         mono_lookup_dynamic_token() is added to class.c which will call this.
17647
17648         * assembly.h assembly.c: make the invoke_load_hook function public,
17649         so it can be called for dynamic assemblies.
17650
17651         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
17652
17653         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
17654         type isn't found.
17655
17656         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
17657         MonoGHashTable, since it contains pointers to objects which the GC 
17658         needs to track.
17659
17660         * assembly.c (search_loaded): remove unused variable.
17661         
17662 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
17663
17664         * object.c: fixed issue exposed by gcc-generated IL programs
17665         that use RVA data for pointers.
17666
17667 2003-01-25  Martin Baulig  <martin@ximian.com>
17668
17669         * threads.c (start_wrapper): Moved the initialization of
17670         `start_func' above the mono_new_thread_init() call to which we
17671         pass it as argument.
17672
17673 2003-01-24  Martin Baulig  <martin@ximian.com>
17674
17675         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
17676         the MonoThread pointer.
17677
17678 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
17679
17680         * icall.c: Rename `PowImpl' to Pow.
17681
17682 2003-01-23  Dick Porter  <dick@ximian.com>
17683
17684         * threads.c (start_wrapper): Create a Thread object if needed, so
17685         the Main() thread can do the class initialisation in a subthread
17686         that has been set up to allow managed code execution.
17687
17688         Pass the thread ID instead of the MonoThread pointer to the thread
17689         start and attach callbacks.  This change is required, because the
17690         jit thread start callback must be called _before_ the Thread
17691         object can be created.
17692         
17693         (mono_thread_init): Removed much object creation code that is no
17694         longer needed.  No managed code is called from here now.
17695
17696         * object.c (mono_runtime_exec_managed_code): Create a subthread
17697         for Main, and call back to the runtime to use it.
17698         Set the exit code when Main exits.
17699
17700         * gc.c: Make sure domain finalisation happens in a subthread.
17701         Re-enable threaded GC, fixing bug 31333 (again).
17702
17703         * environment.c: System.Environment internall calls (so far just
17704         ExitCode is here, the others are still in icall.c)
17705
17706         * appdomain.c (mono_runtime_cleanup): All threads running managed
17707         code should have finished before mono_runtime_cleanup() is
17708         reached, so no need to clean up threads.
17709
17710 2003-01-22  Martin Baulig  <martin@ximian.com>
17711
17712         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
17713         `gpointer func' arguments.      
17714         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
17715         but added `MonoThread *thread' argument.
17716         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
17717
17718         * threads.c (mono_new_thread_init): Added `gpointer func' argument
17719         and pass it to the mono_thread_start_cb callback.
17720         (mono_install_thread_callbacks): New public function to install a
17721         set of callbacks which are set by the debugger.
17722         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
17723
17724 2003-01-22  Martin Baulig  <martin@ximian.com>
17725
17726         * Makefile.am: Install debug-mono-symfile.h.
17727
17728 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
17729
17730         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
17731
17732 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
17733
17734         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
17735         * class.c (mono_ptr_class_get): correctly set access levels of pointers
17736         (mono_array_class_get): correctly set access levels of arrays
17737
17738 2003-01-20      Patrik Torstensson
17739         * image.h (MonoAssemblyName): changed major, minor, build, revision
17740         from signed to unsigned.
17741
17742 2003-01-20  sean kasun <skasun@azstarnet.com>
17743
17744         * reflection.c (load_cattr_value): Now this handles
17745         MONO_TYPE_SZARRAY.  Fixes bug #35629
17746
17747 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
17748
17749         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
17750         integer value
17751
17752 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17753
17754         * decimal.c: fixed bug #26056.
17755
17756 2003-01-17  Martin Baulig  <martin@ximian.com>
17757
17758         * gc.c: Raise an ExecutionEngineException instead of using g_error().
17759
17760 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17761
17762         * exception.[ch]:
17763         (mono_get_exception_type_initialization): new function.
17764
17765         * object.c: throw a TypeInitializationException when an exception is
17766         thrown invoking the class constructor.
17767
17768 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17769
17770         * reflection.c: fixed attribute reading.
17771
17772 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17773
17774         * icall.c:
17775         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
17776         provided, look for the type in the calling assembly and then in
17777         mscorlib; if the assembly name is provided, only try that one.
17778
17779 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
17780
17781         * object.c: register the vtable before there is a chance it's
17782         queried again recursively.
17783
17784 2003-01-13  Duncan Mak  <duncan@ximian.com>
17785
17786         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
17787         gc-internal.h. 
17788         
17789 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
17790
17791         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
17792
17793 2003-01-11  Martin Baulig  <martin@ximian.com>
17794
17795         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
17796         this to 20 for the release.
17797
17798 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
17799
17800         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
17801
17802         * loader.c (mono_method_get_marshal_info): bug fix
17803
17804         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
17805         structures with explicit layout
17806
17807 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17808
17809         * profiler.c: made the output more readable (and sorted). 
17810         Added caller information for the allocation profiler.
17811
17812 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
17813
17814         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
17815
17816 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17817
17818         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
17819         to get value types.
17820         
17821 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
17822
17823         * object.c, profiler.h, profiler.c, profiler-private.h:
17824         Added object allocation profiler.
17825
17826 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
17827
17828         * reflection.h, reflection.c: handle global methods.
17829         Compress blob entries.
17830
17831 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
17832
17833         * marshal.c: fix compilation.
17834
17835 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
17836
17837         * loader.c (mono_method_get_marshal_info): impl.
17838
17839         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
17840
17841 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17842
17843         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
17844         for reference types.
17845
17846 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
17847
17848         * loader.c: fixed off by one error in loaded parameter names.
17849
17850 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
17851
17852         * marshal.c (mono_marshal_get_icall_wrapper): like
17853         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
17854         instead of a MonoMethod.
17855
17856 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17857
17858         * decimal.c: fixed bug #36537.
17859
17860 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
17861
17862         * marshal.c: throw a missing method exception if a
17863         P/Invoke method is not found.
17864
17865 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17866
17867         * icall.c: allow a null this for constructors.
17868
17869 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
17870
17871         * icall.c: raise the proper exceptions if the arguments to the
17872         internal Invoke are incorrect.
17873
17874 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
17875
17876         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
17877
17878 2003-01-03  Martin Baulig  <martin@ximian.com>
17879
17880         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17881
17882 2002-12-31  Martin Baulig  <martin@ximian.com>
17883
17884         * debug-mono-symfile.c: Completely rewrote the type section.
17885         Instead of using individual malloc()ed fields, we use one big
17886         continuous memory area and offsets into this area.
17887         See the comments in the source code for details.
17888
17889 2002-12-30  Martin Baulig  <martin@ximian.com>
17890
17891         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
17892
17893 2002-12-30  Martin Baulig  <martin@ximian.com>
17894
17895         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
17896         line number table in this data blob instead of using an external
17897         pointer.
17898
17899 2002-12-28  Martin Baulig  <martin@ximian.com>
17900
17901         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17902
17903 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
17904
17905         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
17906         as a boxed return type.
17907
17908 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
17909
17910         * appdomain.c
17911         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
17912         g_build_filename to properly get separators on the filename created.
17913
17914         * object.h: Small change, introduce MonoMarshalByRefObject to
17915         track the layout of that structure in the C# universe as we make
17916         changes there.
17917
17918 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
17919
17920         * object.c: removed assert to allow static fields on interfaces.
17921         * loader.c: a TypeSpec may be used for any type, not just arrays.
17922
17923 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17924
17925         * class.c, class.h: added mono_class_array_element_size ().
17926         Ignore static methods in interfaces.
17927
17928 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17929
17930         * threads.c: fixed the build under cygwin.
17931
17932 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
17933
17934         * reflection.c: handle nullref constants. Allocate keys for
17935         reflection handles with the GC.
17936
17937 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17938
17939         * threads.c, threads.h: added mono_thread_get_abort_signal()
17940         to get a suitable signal for thread abort.
17941
17942 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17943
17944         * metadata.c: fix handling of ExportedType table.
17945
17946 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17947
17948         * icall.c: added WriteWindowsDebugString internal call.
17949
17950 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17951
17952         * reflection.h: added fields to match C# implementation.
17953
17954 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17955
17956         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
17957
17958 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
17959
17960         * gc.h, gc-internal.h: Rename header for GC internal calls to
17961         gc-internal.h from gc.h as to not clash with Boehm GC having its
17962         header installed as <gc.h> in outside include paths.
17963         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
17964         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
17965
17966 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17967
17968         * icall.c: assign minor, build and revision in FillName.
17969
17970 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
17971
17972         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
17973         Added support for running code generated by Reflection.Emit.
17974
17975 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17976
17977         * appdomain.c: check for NULL argument in LoadFrom.
17978
17979 2002-12-10  Dick Porter  <dick@ximian.com>
17980
17981         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
17982
17983 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17984
17985         * appdomain.c: fix buglet when building exe file name.  Handle full
17986         assembly name (needed after latest changes to AssemblyName).
17987         * image.c:
17988         (mono_image_close): free some hashtables.
17989
17990 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
17991
17992         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
17993         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
17994         on some systems (redhat 7.3) 
17995
17996 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
17997
17998         * threads.c: delete the critical section of a sync block,
17999         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
18000
18001 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
18002
18003         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
18004
18005 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18006
18007         * appdomain.[ch]: handle the assembly preload event to try loading the
18008         assemblies using the paths we have in the current domain.
18009
18010         * assembly.[ch]: created an assembly preload hook that is called to try
18011         loading the assembly by other means that the ones provided here.
18012
18013         * domain.c: initialize the domain search path.
18014
18015         From now on, assemblies (TODO: except corlib and System) are loaded
18016         according to these rules when using mono_assembly_load ():
18017
18018                 1. It tries to load the assembly from the ApplicationBase
18019                 of the current domain appending .dll and .exe (TODO: have to
18020                 try loading from name/name.dll and name/name.exe).
18021
18022                 2. It tries the search path specified in PrivateBinPath for the
18023                 current domain (if any).
18024
18025                 3. Previous behavior.
18026
18027 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18028
18029         * icall.c: implemented GetInterfaceMap() related icall.
18030         * domain.c, loader.h: load MethodInfo in mono_defaults.
18031
18032 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18033
18034         * gc.c: disable the finalizer thread for now, untill all the issues
18035         with it are resolved.
18036
18037 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18038
18039         * string-icalls.c: handle embedded nulls in string ctor when the
18040         length is specified.
18041
18042 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * class.c: look for explicit interface implementation in parent
18045         classes, too.
18046
18047 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18048
18049         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18050
18051 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18052
18053         * gc.c: protect handles with a critical section.
18054
18055 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18056
18057         * icall.c:
18058         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18059         parameters. If no assembly specified, try getting the type from all
18060         the assemblies in the current domain, else, load the assembly and get
18061         the type from it.
18062
18063 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18064
18065         * marshal.c: applied patch from Aleksey Demakov that fixes
18066         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18067
18068 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18069
18070         * icall.c: fixed get_location.
18071
18072 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18073
18074         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18075         declarations to make it work with older gcc. 
18076
18077         * loader.c (mono_get_method): set signature->pinvoke for native calls
18078
18079 2002-11-20  Dick Porter  <dick@ximian.com>
18080
18081         * threads.c (mono_thread_init): Set the main thread's handle
18082
18083 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18084
18085         * gc.c: allow compilation without GC support. Changed to match the
18086         mono coding style.
18087
18088 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18089
18090         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18091
18092 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18093
18094         * reflection.c: set a public key token on the core assemblies.
18095
18096 2002-11-18  Dick Porter  <dick@ximian.com>
18097
18098         * threads.c: Split out some thread initialisation so that other
18099         files can set the start callback function.
18100
18101         * gc.c: Run finalisers in a separate thread, to avoid stack
18102         overflow.  Fixes bug 31333.
18103
18104         * appdomain.c: Set up GC finalisation thread.
18105
18106         * reflection.c: 
18107         * object.c: 
18108         * domain.c: Use gc.h macros for GC_malloc
18109         
18110 2002-11-15  Dick Porter  <dick@ximian.com>
18111
18112         * threadpool.c: 
18113         * threads.c:
18114         * appdomain.c: Removed mono_runtime_init_with_attach(),
18115         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18116         merging the extra parameter with the existing function.  Removed
18117         unneeded code in mono_thread_attach().
18118
18119 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18120
18121         * image.c (mono_image_loaded_by_guid): a method to get loaded
18122         images by guid. 
18123         (load_metadata_ptrs): we store the guid as string.
18124
18125 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18126
18127         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18128
18129         * metadata.c (mono_guid_to_string): imported method form Zoltan
18130         Varga (slightly modified)
18131
18132         * assembly.c (mono_assembly_open): load precompiled code
18133
18134         * loader.h (MonoMethod): we store the method token for use in the
18135         aot compiler. 
18136
18137 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18138
18139         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18140         the hook function called when an assembly is loaded.
18141         
18142         * domain.c: Modified file.
18143         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18144
18145         Fixes bug #33196.
18146
18147 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18148
18149         * reflection.c: Map PEFileKind to the value expected by the WinNT
18150         image loader. 
18151
18152 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18153
18154         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18155         Read until the buffer is filled completely.
18156
18157 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18158
18159         * icall.c: implemented MonoType.InternalGetEvent ().
18160
18161 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18162
18163         * appdomain.c: implemented InitAppDomainSetup. Delayed
18164         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18165         the entry_assembly.
18166
18167         * assembly.c: base_dir is now an absolute path ending with
18168         G_DIR_SEPARATOR.
18169
18170         * icall.c: modified get_location according to the above changes.
18171
18172         * object.c: init AppDomain.SetupInformation for the default domain after
18173         we have the entry assembly.
18174
18175         * domain.c: when unloading a domain, setup = NULL.
18176
18177 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18178
18179         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18180
18181 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18182
18183         * object.h, object.c: introduced mono_object_get_virtual_method ()
18184         to lookup the method invoked on an object when a callvirt is done on
18185         a method.
18186         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18187
18188 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18189
18190         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18191         current domain when loaded an assembly and failed to load it.
18192
18193         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18194
18195 2002-10-31  Dick Porter  <dick@ximian.com>
18196
18197         * icall.c: 
18198         * file-io.h: 
18199         * file-io.c: Return the error status in a parameter, as the
18200         GetLastError() value has long since been blown away if we try and
18201         look it up in a subsequent internal call invocation.  Delete the
18202         GetLastError() internal call, because it's useless.
18203
18204 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18205
18206         * class.[ch]: added cast_class to fix bug 29517
18207
18208 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18209
18210         * marshal.c: create valid IL code in the filter clause:
18211         the new JIT is less forgiving:-)
18212
18213 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18214
18215         * icall.c: removed get_property internal call.
18216
18217 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18218
18219         * appdomain.h domain.c: Added an ID to appdomains.
18220         
18221         * threads.c threads.h icall.c: Implement icall
18222         Thread:GetDomainID(), and remove unused icall 
18223         CurrentThreadDomain_internal.
18224
18225 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18226
18227         * icall.c: Don't recurse through the base types in GetConstructor.
18228         Fixes bug #32063. 
18229
18230 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18231
18232         * mempool.h, mempool.c: added mono_mempool_empty() and
18233         mono_mempool_stats().
18234
18235 2002-10-23  Dick Porter  <dick@ximian.com>
18236
18237         * file-io.c: 
18238         * file-io.h: 
18239         * icall.c: Added MonoIO.GetFileType internal call
18240
18241 2002-10-17  Dick Porter  <dick@ximian.com>
18242
18243         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18244         delegate semaphore before waiting for all threads to finish,
18245         because new threads can also call async delegates.  Fixes bug
18246         32004.
18247
18248         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18249         of 3 seconds, in case another async job is queued.  (This part is
18250         needed because the bug fix reintroduced the 3s exit lag.)  This
18251         makes the mono_runtime_shutdown flag superfluous.
18252
18253 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18254
18255         * reflection.c: include ehader size in method section headers.
18256         Really check for suplicated modules entries.
18257
18258 2002-10-17  Martin Baulig  <martin@gnome.org>
18259
18260         * debug-mono-symfile.c: Added back support for locals.
18261
18262 2002-10-14  Martin Baulig  <martin@gnome.org>
18263
18264         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18265         MONO_TYPE_VOID.
18266
18267 2002-10-14  Martin Baulig  <martin@gnome.org>
18268
18269         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18270         mono_class_get() instead of looking in the class cache. 
18271
18272 2002-10-13  Martin Baulig  <martin@gnome.org>
18273
18274         * debug-mono-symfile.c: Set version number to 28, include the
18275         signature in method names.
18276
18277 2002-10-13  Martin Baulig  <martin@gnome.org>
18278
18279         * debug-mono-symfile.h: Set version number to 27.
18280
18281 2002-10-11  Martin Baulig  <martin@gnome.org>
18282
18283         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18284
18285 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18286
18287         * metadata.c, metadata.h: added helper function to allocate signatures.
18288
18289 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18290
18291         * icall.c: added internal call to get the location of machine.config.
18292
18293 2002-10-08  Martin Baulig  <martin@gnome.org>
18294
18295         * debug-mono-symfile.c: Ignore classes with a pending init for the
18296         moment.
18297
18298 2002-10-03  Dick Porter  <dick@ximian.com>
18299
18300         * threads.c: Freebsd pthread_t is a pointer
18301
18302 2002-10-03  Dick Porter  <dick@ximian.com>
18303
18304         * socket-io.c: Implemented GetHostName_internal
18305
18306 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18307
18308         * mono-config.c:
18309         (mono_config_parse_file): don't leak the text.
18310
18311 2002-10-02  Martin Baulig  <martin@gnome.org>
18312
18313         * debug-mono-symfile.c: Added support for methods.
18314
18315 2002-10-01  Martin Baulig  <martin@gnome.org>
18316
18317         * debug-mono-symfile.c: Don't emit methods and line numbers for
18318         the dynamic symbol file, just write the type table.  We can easily
18319         have an external helper program which creates a symbol file for an
18320         IL file.        
18321
18322 2002-10-01  Dick Porter  <dick@ximian.com>
18323
18324         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18325         Only add the handle to the cleanup array when we're about to
18326         launch the thread.  Bug 31425 deadlocked when the test was run on
18327         mono under w32.
18328
18329 2002-10-01  Martin Baulig  <martin@gnome.org>
18330
18331         * debug-mono-symfile.c: Added support for properties.
18332
18333 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18334
18335         * reflection.c: unaligned store fix from Mark Crichton
18336         <crichton@gimp.org>.
18337
18338 2002-09-27  Martin Baulig  <martin@gnome.org>
18339
18340         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18341         New interncall.
18342
18343 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18344
18345         * assembly.h, assembly.c: use a sane API to hook into the assembly
18346         loading process instead of a useless special-purpouse hack
18347         (ngen needs a hook, too, for example).
18348
18349 2002-09-27  Dick Porter  <dick@ximian.com>
18350
18351         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18352         io-layer can set up some process handle info.  Not needed on w32,
18353         but doesn't hurt either.
18354
18355         * process.c: Pass the program name in the second parameter to
18356         CreateProcess, so the path is searched.  Include the working
18357         directory. Implemented process name, process enumeration, and some
18358         process detail internal calls.
18359         
18360         * icall.c: Added internal calls for process lookup, and some
18361         process details
18362
18363 2002-09-26  Martin Baulig  <martin@gnome.org>
18364
18365         * assembly.c (mono_install_open_assembly_hook): New global
18366         function to install a function to be invoked each time a new
18367         assembly is loaded.
18368         (mono_assembly_open): Run this callback function if set.
18369
18370         * debug-mono-symfile.c: Put back line numbers for the dynamic
18371         symbol file and also record the .il file as source file.  This
18372         allows us to install the temporary symbol file as `file.dbg' just
18373         like a compiler-generated one.
18374
18375 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18376
18377         * Corrected typo in gc.c (BOHEM vs BOEHM).
18378
18379 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18380
18381         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18382         GetProperties. Also avoid calling g_slist_length in GetProperties and
18383         GetMethods.
18384
18385 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18386
18387         * reflection.c: avoid unaligned stores (bug spotted by
18388         Mark Crichton  <crichton@gimp.org>).
18389
18390 2002-09-25  Martin Baulig  <martin@gnome.org>
18391
18392         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18393         instead of guint64 for addresses and added prologue/epilogue info.
18394
18395 2002-09-25  Martin Baulig  <martin@gnome.org>
18396
18397         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18398         store line number info.  For the dynamic symbol file, we only need
18399         to provide the JIT generated dynamic line number info for the dynamic
18400         symbol file.
18401
18402 2002-09-25  Martin Baulig  <martin@gnome.org>
18403
18404         * debug-mono-symfile.h: Incremented version number.
18405
18406 2002-09-24  Martin Baulig  <martin@gnome.org>
18407
18408         * class.c (mono_debugger_class_init_func): New global function
18409         pointer variable.
18410         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18411         call it.
18412
18413         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18414         function.  This is called via the mono_debugger_class_init_func
18415         hook to add all types to the dynamic type table.
18416         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18417         from its metadata token.
18418
18419         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18420         New interncall for the debugger.
18421
18422 2002-09-24  Nick Drochak <ndrochak@gol.com>
18423
18424         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18425         before using it in case it is null.
18426         
18427 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18428
18429         * metadata.c: allow custom modifiers in local var signatures
18430         (bug spotted by Zoltan Varga).
18431
18432 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18433
18434         * class.c: deal with the <Module> class that may have a NULL vtable.
18435         Eliminate warnings.
18436
18437 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18438
18439         * image.c, image.h: more strong name helpers.
18440         * monosn.c: more work: convert pem keys to cryptoapi format.
18441
18442 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18443
18444         * string-icalls.c: speedup IndexOf.
18445
18446 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18447
18448         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18449
18450 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18451
18452         * icall.c: cleanup: use mono_object_domain ().
18453
18454 2002-09-23  Martin Baulig  <martin@gnome.org>
18455
18456         * debug-mono-symfile.c: Improved type support.
18457
18458 2002-09-22  Martin Baulig  <martin@gnome.org>
18459
18460         * debug-mono-symfile.c: Added support for reference types and strings.
18461
18462 2002-09-22  Martin Baulig  <martin@gnome.org>
18463
18464         * debug-mono-symfile.c: Started to work on the type table.
18465
18466 2002-09-21  Martin Baulig  <martin@gnome.org>
18467
18468         * debug-mono-symfile.c: Largely reworked the symbol table format.
18469         The symbol table is now incrementally updated each time a new
18470         method is added.  We're now also using our own magic and version
18471         so that you don't need to recompile all your classes if the
18472         dynamic table changes.
18473         (mono_debug_update_mono_symbol_file): Removed.
18474         (mono_debug_symfile_add_method): New function to add a method.
18475
18476 2002-09-21  Martin Baulig  <martin@gnome.org>
18477
18478         * icall.c
18479         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18480         New interncall.
18481
18482         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18483         New interncall to get a method from its metadata token.
18484
18485 2002-09-21  Martin Baulig  <martin@gnome.org>
18486
18487         * debug-mono-symfile.c: Create type table.
18488
18489 2002-09-20  Martin Baulig  <martin@gnome.org>
18490
18491         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
18492
18493 2002-09-20  Martin Baulig  <martin@gnome.org>
18494
18495         * debug-mono-symfile.c: Provide information about params and locals.
18496
18497 2002-09-20  Martin Baulig  <martin@gnome.org>
18498
18499         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
18500         New interncall.
18501
18502         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
18503         interncall to get a method from its metadata token.
18504
18505 2002-09-20  Martin Baulig  <martin@gnome.org>
18506
18507         * debug-mono-symfile.c: Added a few checks for method->header
18508         being non-NULL.  This should never happen, but for the moment
18509         let's use a g_warning() rather than a g_assert().
18510
18511 2002-09-19  Mark Crichton  <crichton@gimp.org>
18512
18513         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
18514         even if support for it isn't present.  Added an #ifdef to fix this.
18515
18516         * socket-io.c: Added checks back for Solaris support.
18517
18518 2002-09-19  Martin Baulig  <martin@gnome.org>
18519
18520         * debug-mono-symfile.c (read_string, write_string): Reflect latest
18521         changes in the symbol file format.
18522
18523 2002-09-18  Martin Baulig  <martin@gnome.org>
18524
18525         * debug-mono-symfile.c: Set version number to 21.
18526
18527 2002-09-18  Dick Porter  <dick@ximian.com>
18528
18529         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
18530         on netbsd.  Fixes bug 30051.
18531
18532 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18533
18534         * reflection.c:
18535         (set_version_from_string): little fix.
18536
18537 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18538
18539         * monosn.c, Makefile.am: added strong name utility.
18540         * reflection.h, reflection.c: implemented delayed signing,
18541         locale, version and hash id assembly attributes.
18542
18543 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18544
18545         * loader.c, metadata.c: load param attributes in signatures.
18546
18547 2002-09-16  Martin Baulig  <martin@gnome.org>
18548
18549         * debug-mono-symfile.c: Added string table with all method names.
18550
18551 2002-09-14  Martin Baulig  <martin@gnome.org>
18552
18553         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
18554         fast method lookup.
18555
18556 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18557
18558         * reflection.c: record the public key token of referenced assemblies.
18559
18560 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18561
18562         * image.c, image.h: added functions to get the strong name and the
18563         public key of an assembly.
18564         * pedump.c: use them.
18565
18566 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
18567
18568         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
18569
18570 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
18571
18572         * marshal.c (mono_marshal_get_managed_wrapper): Added
18573         MONO_TYPE_BOOLEAN 
18574
18575 2002-09-11  Martin Baulig  <martin@gnome.org>
18576
18577         * gc.c: Call GC_unregister_disappearing_link() on all links when
18578         finalizing them, this is necessary to aviod a crash in boehm's
18579         finalize handler.
18580
18581 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18582
18583         * gc.c: handle GetTarget for finalized objects spotted and fixed by
18584         nick@chemlab.org.
18585
18586 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18587
18588         * icall.c: implemented MonoType::Module.
18589         * reflection.c, reflection.h: mono_module_get_object () from
18590         Tomi Pakarinen <tomi.pakarinen@welho.com>.
18591
18592 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18593
18594         * icall.c: ignore overridden methods in GetMethods ().
18595         Fix for FieldInfo::SetValue().
18596         * object.c: handle float/double in runtime invoke.
18597
18598 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18599
18600         * object.c: allow a constructor to be called again on an object.
18601
18602 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18603
18604         * class.h, class.c: move field layout code to it's own function and
18605         export it. Get an interface id earlier. Move fields in MonoClass
18606         so they are more cache friendly and align the bitfields.
18607         * loader.c: temporary handle get_param_names() for a runtime method.
18608         * reflection.c, reflection.h: more code to handle runtime creation of
18609         types.
18610
18611 2002-09-09  Martin Baulig  <martin@gnome.org>
18612
18613         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
18614         signature with the pinvoke field being set for the actual call.
18615
18616 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18617
18618         * icall.c: removed some unused icalls. Start of map of glib charsets
18619         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
18620
18621 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18622
18623         * debug-helpers.c: break infinite loop (found and fixed by
18624         Holger Arnold <harnold@gmx.de>).
18625
18626 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18627
18628         * icall.c: target may be null in create_delegate.
18629
18630 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18631
18632         * marshal.c: handle a boolean return type.
18633
18634 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18635
18636         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
18637
18638 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18639
18640         * gc.c: fix weakreferences.
18641
18642 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18643
18644         * icall.c: added icall to get default codepage.
18645
18646 2002-09-03  Dick Porter  <dick@ximian.com>
18647
18648         * threads.h: 
18649         * threads.c: Use MonoThread instead of MonoObject where
18650         apropriate.
18651
18652         Store running thread objects in a hash table, so that we have all
18653         the info to hand when waiting for them to finish
18654         (means we don't need OpenThread() any more, so mingw builds should
18655         be fully functional again.)
18656
18657         * verify.c:
18658         * object.h: Added thread ID to MonoThread
18659
18660 2002-09-03  Martin Baulig  <martin@gnome.org>
18661
18662         * icall.c (System.Reflection.Assembly::get_location): New interncall.
18663
18664 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18665
18666         * icall.c: fixed leak in get_temp_path. Thanks lupus.
18667
18668 2002-09-03  Martin Baulig  <martin@gnome.org>
18669
18670         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
18671         argument to store the end address of the disassembled instruction.
18672
18673         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
18674         here from debug-symfile.h.
18675         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
18676         JIT into this struct.
18677         (MonoSymbolFile): Added `char *image_file' field.
18678         (MonoDebugGetMethodFunc): Removed.
18679         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
18680         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
18681         (mono_debug_find_method): New method.
18682
18683         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
18684         create a full symbol file.
18685         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
18686         and static symbol files.
18687         (mono_debug_find_method): The symbol file keeps an internal method hash,
18688         call this to get a MonoDebugMethodInfo from a MonoMethod.
18689
18690         * debug-symfile.[ch]: Removed.
18691
18692 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
18693
18694         * image.c (do_mono_image_open): Remove linker version check.
18695
18696 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
18697
18698         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
18699         wrappers for instance methods.
18700         
18701 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18702
18703         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
18704
18705 2002-08-28  Dick Porter  <dick@ximian.com>
18706
18707         * Makefile.am: Export HOST_CC for w32 builds
18708
18709 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18710
18711         * file-io.c process.c: MonoString are null terminated, no
18712         need for mono_string_to_utf16() anymore.
18713
18714 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18715
18716         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
18717
18718 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
18719
18720         * icall.c, reflection.h: speedup System.MonoType.
18721
18722 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18723
18724         * reflection.c: allow null as the value of a string argument in
18725         custom attributes constructors.
18726
18727 2002-08-27  Martin Baulig  <martin@gnome.org>
18728
18729         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
18730         `trampoline_address' field.
18731
18732 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
18733
18734         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
18735         check (fixes bug #29486) 
18736
18737 2002-08-27  Martin Baulig  <martin@gnome.org>
18738
18739         * debug-mono-symfile.c: Changed the file format in a way that allows us
18740         open it read-only and to use a specially malloced area for all the
18741         dynamic data.  We can now also generate a symbol file on-the-fly if we're
18742         debugging IL code and there is no MCS generated symbol file for it.
18743
18744 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18745
18746         * object.c: added a define for a good string and array
18747         creation speedup (not enabled by default because we need to deal with
18748         the synch stuff).
18749
18750 2002-08-26  Martin Baulig  <martin@gnome.org>
18751
18752         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
18753         function to create a dynamic symbol file.  This is used by the
18754         debugger to create a symbol file for IL code on-the-fly.
18755
18756 2002-08-26  Martin Baulig  <martin@gnome.org>
18757
18758         * loader.c (mono_lookup_pinvoke_call): Include the error message
18759         from g_module_error() in the error message.
18760
18761 2002-08-24  Martin Baulig  <martin@gnome.org>
18762
18763         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
18764         function to update the symbol file.  The symbol file is mmap()ed
18765         writable, but private.  This allows us to install the symbol file
18766         together with the assembly.
18767
18768 2002-08-24  Martin Baulig  <martin@gnome.org>
18769
18770         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
18771         but they can read the new symbol file format which mcs is now creating.
18772
18773         * debug-symfile.c (mono_debug_find_source_location): Moved to
18774         debug-mono-symfile.c; this is now operating on the new symbol file.
18775
18776 2002-08-23  Martin Baulig  <martin@gnome.org>
18777
18778         * debug-helpers.c (mono_method_desc_from_method): New function to get
18779         a MonoMethodDesc from a MonoMethod.
18780
18781 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
18784         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
18785
18786 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18787
18788         * string-icalls.[ch]: make helper methods static.
18789
18790 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18791
18792         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
18793         types to it and to SetValueInternal.
18794
18795         * object.c: Moved handle_enum label to its proper place. This was the
18796         f... bug! ;-)
18797
18798         This time i compiled mcs and gtk-sharp and they both work.
18799
18800 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18801
18802         * icall.c: reverted partially my previous patch until 
18803         object.c:set_value handles enums correcly.
18804
18805 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18806
18807         * icall.c:
18808         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
18809         (ves_icall_System_Environment_get_MachineName): removed warning when
18810         compiling under cygwin.
18811
18812 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18813
18814         * object.c: fixed field_get_value() for reference types.
18815
18816 2002-08-22  Dick Porter  <dick@ximian.com>
18817
18818         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
18819         Don't free a buffer while it's still needed.  Patch from Jonathan
18820         Liger <Jonathan.liger@wanadoo.fr>
18821
18822 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
18823
18824         * icall.c (ves_icall_System_Environment_get_Platform): Add new
18825         internal call.
18826
18827 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
18828
18829         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
18830         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
18831
18832         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
18833         we call unmanaged code which throws exceptions.
18834
18835 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18836
18837         * appdomain.h: added per-domain entry_assembly.
18838         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
18839         arguments.
18840         * icall.c: Assembly::GetEntryAssembly icall.
18841         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
18842         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
18843
18844 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18845
18846         * appdomain.h, gc.c: added mono_domain_finalize ().
18847
18848 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18849
18850         * object.c:
18851         (mono_print_unhandled_exception): changed g_warning by g_printerr
18852         because g_log has a 1024 characters limit (yeah, i got a big stack
18853         trace). Don't print exception name, that should be in ToString 
18854         returned string.
18855
18856 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18857
18858         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
18859         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
18860
18861 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18862
18863         * object.c:
18864         (mono_print_unhandled_exception): after previous commit, i realized
18865         that MS calls ToString on the exception. I changed this function to
18866         do that. This way we get stack_trace for free.
18867
18868 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18869
18870         * object.c:
18871         (mono_print_unhandled_exception): invoke Message property instead of
18872         getting 'message' field from Exception. Don't allocate memory for
18873         'trace' and 'message' if not needed.
18874
18875 2002-08-18  Dick Porter  <dick@ximian.com>
18876
18877         * unicode.c: Fix asserts to match Encoder.cs checks
18878
18879 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18880
18881         * marshal.c: fix unaligned store issue and a few wrong
18882         opcode argument types.
18883
18884 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18885
18886         * icall.c: added GetUninitializedObjectInternal internal call.
18887
18888 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
18889
18890         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
18891         to the right domain.
18892
18893 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
18894
18895         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
18896
18897         * class.c (class_compute_field_layout): set blittable to false for Strings
18898
18899         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
18900
18901 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18902
18903         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
18904         first chunk of code to create types at runtime. Code to
18905         handle ReflectedType/DeclaringType. Make reflection handles
18906         domain specific.
18907
18908 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18909
18910         * class.c: set correct name in arrays.
18911
18912 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
18913
18914         * appdomain.c (mono_domain_transfer_object): make it work with
18915         valuetypes. bug fixes.
18916
18917 2002-08-12  Dick Porter  <dick@ximian.com>
18918
18919         * object.h: Rename some parameters to avoid c++ keywords (Patch
18920         from Joseph Wenninger <kde@jowenn.at>)
18921
18922 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
18923
18924         * icall.c: added icall to implement Assembly.GetFile*.
18925
18926 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18927
18928         * reflection.h, reflection.c: code to embed managed resources.
18929
18930 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18931
18932         * class.c: move all the type size stuff into
18933         class_compute_field_layout().
18934
18935 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18936
18937         * class.c: ensure enums have always the correct instance size.
18938         * unicode.c: remove wrong assert.
18939
18940 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18941
18942         * assembly.c: fix mem corruption issue.
18943         * image.h, image.c: added mono_image_get_resource () to access
18944         managed resources.
18945         * icall.c: implemented Assembly.EntryPoint property and some
18946         Managed Resources related internalcalls.
18947
18948
18949 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18950
18951         * image.c, image.h: impemented mono_image_get_entry_point ().
18952         * appdomain.c: use mono_image_get_entry_point.
18953
18954 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18955
18956         * reflection.c: support the object type argument when loading
18957         custom attributes.
18958
18959 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
18960
18961         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
18962         String as return type.
18963
18964 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
18965
18966         * reflection.c: fix encoding of named args for custom attrs to match
18967         the ms implementation. Read them back when instantiating custom
18968         attributes.
18969
18970 2002-08-02  Radek Doulik  <rodo@ximian.com>
18971
18972         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
18973         by Dietmar as quick fix
18974         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
18975         16 as stack size, used on more places as quick fix before Dietmar
18976         will fix it properly
18977
18978 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18979
18980         * object.h, object.c: added accessors for fields and properties.
18981
18982 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18983
18984         * class.c, class.h: made mono_class_get_field_from_name ()
18985         loop on parent types.
18986         Added mono_class_get_property_from_name ().
18987
18988 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18989
18990         * class.c, class.h: move the code to setup the type vtable in its own
18991         function so that it can be reused also for types created at runtime.
18992         Eliminate the "class" identifier from the header file.
18993         * reflection.c: setup the vtable for enums so that we can create
18994         objects for use in SetConstant ().
18995
18996 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
18997
18998         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
18999         instead of the delegate itself as this pointer (bug #28383)
19000
19001 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
19002
19003         * marshal.c (mono_marshal_get_managed_wrapper): added return type
19004         conversions.
19005
19006 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19007
19008         * loader.c: don't set the pinvoke bit on icalls.
19009
19010 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19011
19012         * debug-helpers.c (mono_method_full_name): only print a number to
19013         indicate wrapper type (so that the output is more readable in traces).
19014
19015 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19016
19017         * class.c (mono_class_init): include method override patch from Paolo
19018
19019 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19020
19021         * icall.c: fixed GetTypeCode().
19022
19023 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19024
19025         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19026         use real delegate invoke function to make it work with multicast
19027         delegates (fix bug# 28291).
19028
19029 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19030
19031         * object.c: load constant strings.
19032
19033 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19034
19035         * reflection.c: no magic numbers.
19036         * tabledefs.h: security action enum.
19037
19038 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19039
19040         * assembly.c: fix possible memory corruption.
19041
19042 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19043
19044         * reflection.h, reflection.c: added support for linking resources.
19045         * verify.c: check we have an updated corlib.
19046
19047 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19048
19049         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19050         string arrays.
19051         (mono_marshal_string_array): null terminate unmanaged string arrays.
19052         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19053
19054 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19055
19056         * icall.c: Type.GetType () can now return also types from the
19057         calling assembly.
19058
19059 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19060
19061         * loader.h, loader.c: stack walking support.
19062         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19063         GetCallingAssembly.
19064
19065 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19066
19067         * marshal.c: added optimisations for blittable types 
19068
19069         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19070         (mono_class_setup_mono_type): set blittable attribute for single
19071         and double.
19072
19073         * marshal.c (mono_string_utf8_to_builder): impl.
19074         (mono_string_builder_to_utf8): impl.
19075         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19076
19077 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19078
19079         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19080         (mono_marshal_get_managed_wrapper): impl. byref types
19081
19082 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19083
19084         * icall.c:
19085         (search_method): don't display debug message. 
19086
19087 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19088
19089         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19090
19091 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19092
19093         * appdomain.c: set the missing filename when throwing exception.
19094
19095 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19096
19097         * metadata.c (mono_type_size): code cleanup
19098         (mono_type_stack_size): removed some test code
19099
19100 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19101
19102         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19103         mono_get_exception_file_not_found now.
19104
19105         * exception.c (mono_exception_from_name_two_strings): New version
19106         that will call a constructor with two string arguments. 
19107         (mono_get_exception_file_not_found): New helper routine, used to
19108         report file-not-found errors.
19109
19110 2002-07-20  Dick Porter  <dick@ximian.com>
19111
19112         * process.h:
19113         * process.c: Pass file handles to CreateProcess
19114         
19115         * icall.c:
19116         * file-io.h:
19117         * file-io.c: Implemented CreatePipe
19118
19119 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19120
19121         * metadata.c (mono_get_param_info): set alignment for value types
19122
19123 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19124
19125         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19126         Constify mono_domain_assembly_open().
19127         * loader.c: handle null namespace in icalls.
19128
19129 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19130
19131         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19132         (emit_str_to_ptr_conv): marshal object as structs
19133
19134         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19135
19136         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19137
19138 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19139
19140         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19141         (mono_marshal_get_native_wrapper): we an now return value types
19142
19143 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19144
19145         * verify.c: more checks implemented.
19146
19147 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19148
19149         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19150         (fix bug #27695)
19151         (mono_marshal_get_native_wrapper): allow byref arguments
19152         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19153         impl. PtrToStringXXX methods
19154         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19155         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19156         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19157         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19158         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19159
19160 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19161
19162         * reflection.c: fix buglet in parsing an assembly name.
19163
19164 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19165
19166         * marshal.c (emit_ptr_to_str_conv): first impl.
19167
19168 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19169
19170         * object.c, class.h: cache the vtable in the class as suggested by
19171         vargaz@freemail.hu (Zoltan Varga).
19172
19173 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19174
19175         * class.h, loader.c: added mono_field_from_token().
19176         * verify.c: first cut of type checking code.
19177
19178 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19179
19180         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19181
19182 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19183
19184         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19185         (fix bug #27782)
19186         (mono_marshal_get_remoting_invoke): impl.
19187         (mono_delegate_begin_invoke): impl.
19188         (mono_mb_emit_save_args): impl.
19189         (mono_delegate_end_invoke): impl.
19190         (mono_marshal_get_delegate_begin_invoke):
19191         (mono_marshal_get_delegate_end_invoke):
19192         (mono_marshal_get_delegate_invoke): generate a special name for
19193         those methods (including the signature) and associate them whith
19194         the delegate class. 
19195
19196 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19197
19198         * reflection.[ch]: 
19199         (mono_reflection_type_from_name): now it has a MonoImage parameter
19200         which is used as the default image to search the type in. If the image
19201         is NULL or getting the type from it fails, it defaults to corlib.
19202
19203         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19204         new parameter.
19205
19206 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19207
19208         * reflection.c: update the parameter table index.
19209
19210 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19211
19212         * domain.c: don't include the mark byte in the string hash.
19213
19214 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19215
19216         * icall.cs: icall for Type.GetTypeCode ().
19217         * verify: a couple of fixes and disabled local initialization checks.
19218
19219 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19220
19221         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19222
19223         * debug-helpers.c (mono_method_full_name): print the type of the
19224         runtime wrapper
19225
19226         * metadata.c (mono_signature_hash): a hash function for signatures
19227         (mono_signature_hash): better hash algorithm
19228
19229         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19230
19231         * debug-helpers.c (mono_method_full_name): this can now generate
19232         method names with signatures
19233
19234         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19235         method dont have this pointers.
19236
19237 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19238
19239         * reflection.c: fixup typebuilder tokens.
19240         * image.c: fix buglet.
19241         * marshal.h: remove whitespace.
19242         * metadata.h, metadata.c: reinstate code that was removed.
19243         * verify.c: handle catch directives and fix another couple of bugs.
19244
19245 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19246
19247         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19248         (mono_marshal_get_native_wrapper): make it comp. with the old code
19249         (mono_marshal_get_native_wrapper): support boolean
19250         (mono_marshal_get_managed_wrapper): support more types
19251
19252 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19253
19254         * class.c (class_compute_field_layout): compute class->blittable attribute.
19255
19256 2002-07-09  Dick Porter  <dick@ximian.com>
19257
19258         * threads.c: Make the thread cleaning up cope with threads that
19259         call ExitThread()
19260
19261 2002-07-08  Radek Doulik  <rodo@ximian.com>
19262
19263         * reflection.c (method_encode_code): use non-translated values to
19264         compute finally_start, this fixes exception handling on ppc, yay!
19265
19266         * decimal.h (struct signscale): fix endianess
19267
19268 2002-07-07  Radek Doulik  <rodo@ximian.com>
19269
19270         * reflection.c: swap box_val and not val
19271
19272 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19273
19274         * reflection.c, reflection.h: handle full assembly info in type name.
19275         Handle Type arguments when loading custom attributes.
19276         * icall.c: updated to use new mono_reflection_type_from_name () method.
19277
19278 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19279
19280         * loader.c:
19281         (method_from_memberref): also print assembly name when method not found.
19282
19283 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19284
19285         * icall.c:
19286         (ves_icall_TypeGetProperties): fixed bug #27473. 
19287
19288 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19289
19290         * reflection.c: display image name and token when cannot find the
19291         .ctor for an attribute.
19292
19293 2002-07-05  Martin Baulig  <martin@gnome.org>
19294
19295         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19296
19297 2002-07-04  Dick Porter  <dick@ximian.com>
19298
19299         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19300         compile on mingw.  This will cause mingw builds to not wait for
19301         subthreads to terminate after the main thread does.  I've lodged a
19302         bug with the mingw developers for them to wrap OpenThread().
19303
19304 2002-07-03  Dick Porter  <dick@ximian.com>
19305
19306         * threads.c: Store thread IDs instead of handles, because
19307         GetCurrentThread() returns a pseudohandle and therefore stores
19308         useless values.  mono_thread_cleanup() continues checking the
19309         array of threads until it is empty, to cope with subthreads
19310         spawning new threads after the main thread has finished.
19311
19312         * profiler.h:
19313         * profiler.c:
19314         * profiler-private.h: Pass the thread ID to thread profiler
19315         functions, instead of a handle
19316
19317 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19318
19319         * verify.c: fixes to make it more usable.
19320         * pedump.c: added --verify code to verify IL code in an assembly.
19321
19322 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19323
19324         * reflection.c: turn errors into warnings to allow compiling corlib.
19325
19326 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19327
19328         * reflection.c: add special cases to compile corlib.
19329
19330 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19331
19332         * reflection.c: handle properties with only a set method.
19333
19334 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19335
19336         * opcodes.h: add enum with opcodes in opval order.
19337
19338 2002-07-01  Dick Porter  <dick@ximian.com>
19339         
19340         * object.h:
19341         * object.c (mono_runtime_run_main): Removed unneeded argument
19342
19343 2002-06-28  Martin Baulig  <martin@gnome.org>
19344
19345         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19346
19347 2002-06-27  Dick Porter  <dick@ximian.com>
19348
19349         * threads.c: Store the handle in both the parent thread and in the
19350         subthread, to minimise the time between starting a new thread and
19351         storing its ID.
19352
19353 2002-06-26  Dick Porter  <dick@ximian.com>
19354
19355         * appdomain.c (mono_runtime_cleanup): Close the socket library
19356         after all the threads have finished, not before
19357
19358 2002-06-26  Martin Baulig  <martin@gnome.org>
19359
19360         * debug-symfile.c (mono_debug_find_source_location): Added
19361         `guint32 *line_number' argument.  If it's not NULL, store the line number
19362         there and return the file name without the line number.
19363
19364 2002-06-25  Dick Porter  <dick@ximian.com>
19365
19366         * icall.c:
19367         * process.h:
19368         * process.c: Process forking and other support functions
19369
19370 2002-06-25  Dick Porter  <dick@ximian.com>
19371
19372         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19373         things dont happen when the image is closed.
19374         (mono_image_lookup_resource): Walk the resource section looking
19375         for a particular entry
19376
19377         * cil-coff.h: PE resource section decoding
19378
19379 2002-06-25  Dick Porter  <dick@ximian.com>
19380         
19381         * assembly.h:
19382         * assembly.c: 
19383         (mono_assembly_foreach): Accessor functions to walk the list of
19384         loaded assemblies
19385         (mono_assembly_set_main):
19386         (mono_assembly_get_main): Process methods need to know which
19387         assembly is the "main" one
19388
19389         * object.c (mono_runtime_run_main): Record the main assembly
19390
19391         * debug-helpers.c: Fix typo
19392
19393 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19394
19395         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19396         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19397
19398 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19399
19400         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19401
19402 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19403
19404         * image.c (do_mono_image_open): Initialize reference count,
19405         otherwise we leak the MonoImage.
19406
19407 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19408
19409         * reflection.c: small tweak to handle self-hosting.
19410
19411 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19412
19413         * reflection.c: fix type name parse code.
19414
19415 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19416
19417         * reflection.c: break out of the loop.
19418         * image.c: special case corlib.
19419
19420 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19421
19422         * reflection.c: add all the custom attrs at the end to ensure the
19423         ctors have been properly initialized when the attributes are defined
19424         in the current assembly.
19425
19426 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19427
19428         * reflection.c: handle correctly multiple-nested types.
19429
19430 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19431
19432         * row-indexes.h: fix typos.
19433         * reflection.c: adjust for typos and fix method_def_or_ref
19434         encoding in MethodImpl table.
19435
19436 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19437
19438         * reflection.c: fix entry point patching (thanks Serge!).
19439
19440 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19441
19442         * verify.c: add check for System.Exception
19443
19444 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19445
19446         * image.c, class.c: minifix for code just c&p'ed.
19447         * reflection.c: warning fix.
19448         * object.h, loader.h, domain.c: load also StringBuilder.
19449
19450 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19451
19452         * marshal.h, marshal.c: some support code to handle complex marshaling.
19453
19454 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19455
19456         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19457         Better signatures with vtable error dump.
19458
19459 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19460
19461         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19462
19463 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19464
19465         * icall.c (ves_icall_Type_GetField): impl.
19466
19467 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19468
19469         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19470         to retrieve a marshal description blob for a field or param.
19471
19472 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19473
19474         * reflection.h, reflection.c: change order of nested type emission
19475         to avoid table corruption. The NestedTypes table is sorted.
19476         * icall.c: change order of GetConstructor results to workaround mcs bug.
19477
19478 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19479
19480         * reflection.h, reflection.c: handle field and param marshal
19481         information.
19482
19483 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19484
19485         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19486
19487 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19488
19489         * reflection.c: fix call convention.
19490
19491 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19492
19493         * reflection.h, reflection.c: mono_image_get_memberref_token()
19494         takes a type instead of a class, now. Added
19495         mono_image_get_array_token() to create tokens for the special
19496         multi-dim array methods.
19497
19498 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19499
19500         * assembly.c: handle modules (no assembly table). Split
19501         loading references in its own function.
19502         * class.c: handle moduleref resolution scope.
19503         * image.c, image.h: cache module name in image.
19504
19505 2002-06-07  Martin Baulig  <martin@gnome.org>
19506
19507         * reflection.c (mono_image_get_type_info): Only add a class layout entry
19508         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
19509
19510 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19511
19512         * icall.c: more signature fixes that used uint instead of int.
19513
19514 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19515
19516         * reflection.c: fixed signature of field refs.
19517
19518 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19519
19520         * class.c, reflection.c: handle typerefs of nested types
19521         (both on read and when writing files).
19522
19523 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19524
19525         * icall.c: fix method signatures that tried to workaround the previous
19526         typo, d'oh!
19527
19528 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19529
19530         * debug-helpers.c: fix typo.
19531
19532 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19533
19534         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
19535         rewrote the PE/COFF writing code (our programs are understood by the
19536         ms runtime, now).
19537
19538 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19539
19540         * gc.c, gc.h, icall.c: weakreference support.
19541
19542 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19543
19544         * Makefile.am, mono-config.c: use $(sysconfdir).
19545
19546 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19547
19548         * icall.c: changed default precision of Double.ToString() to 15.
19549         Fixed memory leak. Unified with Single.ToString.
19550
19551 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19552
19553         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
19554
19555 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19556
19557         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
19558         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
19559         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
19560         and myself.
19561
19562 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19563
19564         * debug-symfile.c, sysmath.c: yet more compilation fixes.
19565
19566 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19567
19568         * reflection.c, socket-io.c: more compilation fixes.
19569
19570 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19571
19572         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
19573         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
19574         unicode.c: warning and compiler compatibility fixes.
19575
19576 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19577
19578         * class.h, metadata.c: fixed warnings/compilation errors.
19579
19580 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19581
19582         * Makefile.am, mono-config.c, mono-config.h: configuration file
19583         support routines.
19584         * loader.c, loader.h: make Dll mapping configurable at runtime in the
19585         config file. Export methods to insert and lookup mappings.
19586
19587 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19588
19589         * reflection.c: handle types and boxed objects in custom attr
19590         constructors.
19591
19592 2002-05-30  Martin Baulig  <martin@gnome.org>
19593
19594         * debug-symfile.c
19595         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
19596
19597 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
19598
19599         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
19600         to lookup the implmap row for a P/Invoke method.
19601         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
19602         P/Invoke method from the runtime on an as needed basis.
19603
19604 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
19605
19606         * metadata.c (mono_metadata_parse_signature): impl.
19607
19608 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19609
19610         * class.c: handle .pack directive.
19611
19612 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19613
19614         * object.c: initialize static fields with RVA data.
19615
19616 2002-05-25  Martin Baulig  <martin@gnome.org>
19617
19618         * debug-symfile.c
19619         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
19620
19621 2002-05-24  Martin Baulig  <martin@gnome.org>
19622
19623         * debug-symfile.c
19624         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
19625         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
19626         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
19627
19628 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19629
19630         * object.c: special case string ctros in invoke.
19631         * gc.c: silly whitespace changes.
19632
19633 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
19634
19635         * threadpool.[ch]: impl. a threadpool that can
19636         be used by mint and mono.
19637
19638 2002-05-22  Martin Baulig  <martin@gnome.org>
19639
19640         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
19641         The first argument is now a `MonoReflectionModuleBuilder *', the return
19642         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
19643         `methods' field to get the method builder.  The `token' argument is the
19644         unfixed token.
19645
19646         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
19647         invalid characters instead of g_assert_not_reached()ing.  This seems
19648         to be the behaviour of mscorlib.
19649
19650 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
19651
19652         * object.c (mono_runtime_invoke_array): applied patch from Rachel
19653         Hestilow to fix bug #25104
19654
19655 2002-05-21  Martin Baulig  <martin@gnome.org>
19656
19657         * debug-symfile.c (mono_debug_find_source_location): New function.
19658         Looks up an IL offset in the line number table and returns the source
19659         location as a string.
19660
19661 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19662
19663         * icall.c:
19664         (mono_double_ToStringImpl): changed %f by %g until we have something
19665         better.
19666
19667 2002-05-21  Nick Drochak  <ndrochak@gol.com>
19668
19669         * icall.c : Use different name for Math.Pow's icall.  Needed to check
19670         parameters first in C#.
19671
19672 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19673
19674         * icall.c, reflection.h: added icall to get info about an event.
19675
19676 2002-05-20  Radek Doulik  <rodo@ximian.com>
19677
19678         * object.c (mono_value_box): don't use memcpy for boxing on BIG
19679         endian
19680         (mono_value_box): don't use memcpy for small sizes on
19681         architectures with unaligned access
19682
19683 2002-05-20  Martin Baulig  <martin@gnome.org>
19684
19685         * reflection.c (mono_reflection_setup_internal_class): Don't crash
19686         if `tb->parent == NULL'.
19687         (mono_reflection_create_internal_class): New function.  This is
19688         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
19689         for enum types.
19690
19691         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
19692         New interncall.
19693
19694 2002-05-19  Martin Baulig  <martin@gnome.org>
19695
19696         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
19697         argument to get the length, don't default to the array length.
19698
19699 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
19700
19701         * assembly.c (mono_assembly_setrootdir): New function used to
19702         override the MONO_ASSEMBLIES directory.
19703
19704 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19705
19706         * icall.c: ValueType_GetHashCode() initialize local var.
19707
19708 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19709
19710         * reflection.c: sort custom attributes table.
19711
19712 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19713
19714         * reflection.c: support named args in custom attributes (write support).
19715
19716 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19717
19718         * reflection.c: fix finally position calculation.
19719
19720 2002-05-15  Radek Doulik  <rodo@ximian.com>
19721
19722         * reflection.c: fixed endianess at many places
19723
19724         * icall.c (ves_icall_InitializeArray): comment out debug msg
19725
19726 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
19727
19728         * object.c (mono_unhandled_exception): new function to handle
19729         unhandled exceptions.
19730         (mono_unhandled_exception): call the UnhandledException event.
19731         (mono_runtime_delegate_invoke): impl.
19732
19733 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
19734
19735         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
19736         returns the RVA, not the direct pointer to the data. Handle the case
19737         when the class size is fixed.
19738
19739 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19740
19741         * reflection.c: fix some endianess issues.
19742
19743 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
19744
19745         * object.c (mono_runtime_invoke): is now able to catch exceptions.
19746
19747         * threads.c (mono_thread_init): added a callback which is invoked
19748         at thread start.
19749
19750 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19751         
19752         * icall.c: make GetHashCode return non-negative values.
19753
19754 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19755
19756         * object.c, icall.c, gc.c: revert to address-based hashcode.
19757
19758 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
19759
19760         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
19761
19762 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19763
19764         * icall.c, class.c: special case <Module>.
19765
19766 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
19767
19768         * icall.c: fix bug in GetNow().
19769
19770 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
19771
19772         * object.c (mono_runtime_class_init): make sure that we call all
19773         static class constructors.
19774
19775 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19776
19777         * reflection.c: sort methodsemantics table.
19778
19779 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19780
19781         * reflection.h, reflection.c: honour init locals setting.
19782
19783 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
19784
19785         * icall.c: copied Double ToStringImpl for Single ToStringImpl
19786
19787 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19788
19789         * reflection.c: support ContructorBuilders in attribute blob creation.
19790
19791 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19792
19793         * reflection.c: some changes to build a binary that can be run
19794         directly in windows.
19795
19796 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19797
19798         * loader.c: print a big message when an icall can't be found.
19799
19800 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19801
19802         * string-icalls.c: fix bug 24248.
19803
19804 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19805
19806         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
19807         icall.c, reflection.h: separate assembly loading by pathname and by
19808         assembly name. Use the MONO_PATH env var to search for assemblies.
19809
19810 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19811
19812         * assembly.c, image.h: add some support for assemblies
19813         with multiple modules.
19814         * class.c, class.h: export mono_class_from_typeref().
19815         * loader.c: remove duplicated code and use mono_class_from_typeref(),
19816         instead.
19817
19818 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19819
19820         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
19821         documentation says (the ECMA one is correct).
19822
19823 2002-05-02  Dick Porter  <dick@ximian.com>
19824
19825         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
19826         Don't name the synchronisation mutex.
19827
19828 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
19829
19830         * rand.c
19831         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
19832         Make the prototypes match.
19833         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
19834         Same.
19835
19836         * icall.c
19837         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
19838         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
19839         all systems have tm.tm_zone, so use strftime() with %Z to print
19840         the timezone abreviation into a temp string.
19841
19842         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
19843         rather than mono_array_addr() on a MonoString on Big Endian
19844         machines.
19845
19846 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
19847
19848         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
19849         fix bug 24041
19850
19851 2002-04-30  Dick Porter  <dick@ximian.com>
19852
19853         * socket-io.c: Cope with SOCKET being an integer rather than a
19854         pointer now.
19855
19856         * threads.c: Added Thread_free_internal, to deal with thread
19857         handle cleanup.  Moved calls to handle_store() and handle_remove()
19858         to start_wrapper(), so each can only be called once.  Allocate
19859         synchronisation blocks with GC_malloc(), and use GC finalisation
19860         to close the handles.
19861
19862         * icall.c: added System.Threading.Thread::Thread_free_internal
19863
19864 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19865
19866         * icall.c: support Environment.Exit, CommandLineArgs().
19867
19868 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19869
19870         * object.c, object.h: added mono_runtime_run_main () and
19871         mono_runtime_get_main_args () for use in System.Environment.
19872
19873 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19874
19875         * gc.c: fix thinko, enable actual finalization since the jit is now
19876         fixed.
19877
19878 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19879
19880         * gc.c, object.c: take into account that an object may be offset wrt the address
19881         returned by GC_malloc().
19882
19883 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19884
19885         * image.c: handle files without entries in the assembly table (modules).
19886
19887 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
19888
19889         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
19890         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
19891         allowed to be null when it's System.Object class setup.
19892
19893 2002-04-27  Martin Baulig  <martin@gnome.org>
19894
19895         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
19896         if `tb->parent == NULL' rather than crashing.
19897
19898 2002-04-28  Nick Drochak  <ndrochak@gol.com>
19899
19900         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
19901         calling acos() where asin() should have been called.
19902
19903 2002-04-26  Martin Baulig  <martin@gnome.org>
19904
19905         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
19906         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
19907         there's a subdirectory called `System', but we don't want to read that
19908         subdirectory as an assembly.
19909
19910 2002-04-25  Martin Baulig  <martin@gnome.org>
19911
19912         * debug-symfile.c: Reflect latest MonoString changes.
19913
19914 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19915
19916         * rand.c, rand.h: instance method icalls need to have an explicit
19917         this pointer as first argument in the C implementation.
19918
19919 2002-04-25  Nick Drochak <ndrochak@gol.com>
19920
19921         * icall.c: Fix typo in map for GetNonZeroBytes
19922
19923 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19924
19925         * string-icalls.c : String does now passes unit tests without any 
19926         errors, the following changes has been made:
19927         
19928         Implemented replace methods.
19929         Renaming of methods to (try) follow the standard.
19930         Fixed compare ordinal
19931         Made all memory allocated directly to function instead of via icall function.
19932         Small performance fix in is_in_array function
19933                         
19934  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
19935
19936         c (mono_string_Internal_ctor_charp_int_int):
19937         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
19938         sindex < 0, throw ArgumentOutOfRangeException instead of
19939         ArgumentNullException.
19940
19941         Added new check for length == 0, however
19942         I need to make it return String.Empty from the C code.
19943         
19944         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
19945         that calculate the length for us here.
19946         
19947         (mono_string_Internal_ctor_sbytep_int_int): Replaced
19948         mono_string_new_utf16 with mono_string_new, since value is utf8.
19949
19950 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19951
19952         * object.c: register the object for finalization if needed.
19953         Allocate one more char in the string for the terminating 0 char.
19954
19955 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19956
19957         * class.c, class.h, image.c: check if a type implemenst a destructor.
19958         Use the proper key for array class lookups.
19959         * icall.c: register the icalls in the System.GC class.
19960         * gc.c, gc.h: GC-related functions and icalls.
19961
19962 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19963
19964         * icall.c:
19965         * socket-io.c:
19966         * unicode.c: free some strings gotten from mono_string_to_utf8 and
19967         changed a couple of free () by g_free ().
19968
19969         * decimal.c: one-liner in the comments for decimal2string ().
19970
19971 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19972
19973         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
19974
19975 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19976
19977         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
19978         * object.c (mono_runtime_invoke_array) : handle null in params
19979
19980 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19981
19982         * string-icalls.c: fixed bug in split (one off bug)
19983
19984 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19985
19986         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
19987         * icalls.c: added String::Equals as internal method
19988
19989 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19990
19991         * threads.c: fixed bug in the double interlocked functions
19992
19993 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
19994
19995         * threads.c: implemented all of the new interlocked icalls.
19996         * string-icalls.c: fix a bug in insert.
19997         * icalls.c: added the icalls for interlocked, removed old string functions.
19998         
19999 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20000
20001         * loader.c: fix off-by-one error when reading argument names.
20002
20003 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20004
20005         * profiler.c: win32 counter implementation (untested).
20006         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20007         (the latter needs testing and more complete impl. from win32 folks).
20008
20009 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20010
20011         * object.c: mono_array_new_full workaround mono_array_class_get
20012         problem.
20013
20014 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20015
20016         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20017         * object.h (mono_string_chars): Changed casting type.
20018
20019 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20020
20021         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20022                            method signatures to use gunichar2 instead of gint16.
20023
20024 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20025
20026         * object.h, object.c: domain-specific versions of mono_object_new and
20027         mono_array_new.
20028
20029 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20030
20031         * object.c: changed String layout
20032
20033         * string-icalls.c (mono_string_Internal_ctor_chara): added
20034         internal string constructors.
20035
20036 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20037
20038         * threads.c: pass 'this' to the thread start routine.
20039
20040 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20041
20042         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20043         InternalCompareStr don't call twice mono_string_cmp_char for the last
20044         character. Improved performance in mono_string_cmp_char.
20045
20046 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20047
20048         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20049         code into its own library: libmonoruntime.
20050
20051 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20052
20053         * object.h, object.c: changed array format so that szarrays do not
20054         require a bounds structure.
20055         * icall.c, appdomain.c: support for new szarray format.
20056
20057 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20058
20059         * metadata.c: compare also the retuns type when comparing signatures:
20060         we didn't do this as an optimization since really overloaded methods
20061         must differ also in the arguments, but this doesn't work with
20062         low-level IL code (or when using explicit conversion operators: see
20063         bug#23498 for an example).
20064
20065 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20066
20067         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20068
20069 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20070
20071         * icall.c: make MonoType::GetElementType its own icall.
20072
20073 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20074
20075         * icall.c: remove MonoMethod_get_Name().
20076         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20077         object.
20078
20079 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20080
20081         * string-icalls.c: optimized a few methods.
20082
20083 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20084
20085         * icall.c: added all new string internal calls
20086         * string-icalls.c: added, new string internal call implementation.
20087         * object.c: added mono_string_new_size for allocating a string a size
20088
20089 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20090
20091         * object.c (mono_object_isinst): use the same code as in the
20092         optimized x86 version.
20093
20094 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20095
20096         * profiler.c: TSC-based timer code (faster and more accurate).
20097         Not hooked up in configure, yet (set USE_X86TSC to 1).
20098
20099 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20100
20101         * profiler.c, profiler.h: track time spent compiling methods.
20102         * threads.c: track thread creation/destruction.
20103
20104 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20105
20106         * profiler.c, profiler.h, profiler-private.h: profiling interface
20107         and sample implementation. Moved here so that it can be used also by
20108         the jit.
20109
20110 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20111
20112         * reflection.c, reflection.h: keep types and other handles separate in
20113         the hash tables for referred tokens. Add guid for modules.
20114
20115 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20116
20117         * assembly.c: fix bugs found with valgrind.
20118         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20119
20120 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20121
20122         * threads: added icall support for getting current domain for
20123                    the thread.
20124  
20125 2002-04-13  Martin Baulig  <martin@gnome.org>
20126
20127         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20128         (MonoDebugVarInfo): Added `index' field for register based addresses.
20129         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20130         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20131         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20132         `MonoDebugVarInfo *this_var'.
20133
20134         * debug-symfile.c (relocate_variable): New static function to write
20135         a location description for a local variable or method parameter.
20136
20137 2002-04-12  Martin Baulig  <martin@gnome.org>
20138
20139         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20140         stack offset and begin/end scope address of a local variable.
20141         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20142         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20143         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20144
20145         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20146         Added new relocation types for start/end scope of a local variable.
20147
20148 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20149
20150         * object.h: add mono_object_domain() macro.
20151         * reflection.c: handle typespecs.
20152         * icall.c: MonoMethod::get_Name() implementation.
20153
20154 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20155
20156         * icall.c: String::GetHashCode() icall implementation.
20157
20158 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20159
20160         * icall.c: String::IndexOfAny icall.
20161         * object.c, object.h: make array->max_length more useful.
20162         Intrduced mono_object_class() and mono_string_length() macros.
20163
20164 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20165
20166         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20167         instead of g_unichar_isdigit.
20168
20169 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20170
20171         * icall.c: Implement a simple Double.ToString().
20172
20173 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20174
20175         * appdomain.h: only io-layer.h is supposed to be included.
20176         * icall.c: explicitly import environ. Fix warning.
20177
20178 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20179
20180         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20181                 return true even if it's not Daylight Savings time.
20182                 Only return false for the case where the function isn't
20183                 implemented for a plaform (read Windows).
20184
20185 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20186
20187         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20188         data with a mutex.
20189
20190 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20191
20192         * mempool.c (mono_mempool_alloc): only use g_malloc when
20193         absolutely necessary.
20194
20195 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20196
20197         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20198
20199         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20200         (mono_class_proxy_vtable): use domain mempool
20201
20202 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20203
20204         * appdomain.h, appdomain.c: split initialization that requires the
20205         execution engine support into mono_runtime_init().
20206
20207 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20208
20209         * class.c (mono_class_init): don't include vtable inside MonoClass
20210         to save some memory, gather some statistics.
20211         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20212
20213 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20214
20215         * icall.c: internalcall implementation for ValueType.Equals().
20216
20217 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20218
20219         * object.c (mono_message_init): moved 
20220         (mono_runtime_exec_main): new arch. independent impl.
20221         (mono_runtime_invoke_array): new method - like
20222         mono_runtime_invoke, but you can pass an array of objects.
20223         (mono_remoting_invoke): new arch. independent impl.
20224         (mono_message_invoke): new arch. independent impl.
20225         (mono_runtime_class_init): new arch. independent impl.
20226         (mono_runtime_object_init): new arch. independent impl.
20227
20228 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20229
20230         * metadata.c, object.c, reflection.c: documented the exported
20231         functions.
20232
20233 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20234
20235         * icall.c: simpler code to pass the assembly builder data to corlib.
20236         Implement GetNestedTypes() internalcall.
20237
20238 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20239
20240         * class.c: warn if a type can't be loaded.
20241
20242 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20243
20244         * image.h: typedef MonoImageOpenStatus
20245         * types.h: removed unused file
20246         
20247 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20248
20249         * icall.c: Enum_ToObject accepts enum value arguments.
20250
20251 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20252
20253         * class.c: move initialization of properties, events and nested
20254         classes, so that they happen for interfaces, too.
20255
20256 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20257
20258         * icall.c: cleanup some ugly casts in Array_SetValue*.
20259
20260 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20261
20262         * icall.c: the values array fro enums is of the correct type, now.
20263         Implement (correctly) getFullName instead of assQualifiedName for
20264         MonoType.
20265         * reflection.h, reflection.c: added mono_type_get_name ().
20266
20267 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20268
20269         * assembly.c, image.h: for each MonoImage, record from wich assembly
20270         it was loaded.
20271         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20272         Make Type.Assembly work.
20273
20274 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20275
20276         * debug-symfile.h: use char* instead of gpointer to avoid
20277         unnecessary casts.
20278
20279         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20280
20281         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20282         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20283
20284 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20285
20286         * icall.c (mono_message_init): impl. (code cleanup)
20287         (ves_icall_InternalExecute): impl. FieldGetter
20288
20289         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20290         defined we call all (non-static)methods through the vtable. 
20291
20292 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20293
20294         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20295         finalizer even though the memory is still referenced (and the chunk of
20296         memory is not freed).
20297
20298 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20299
20300         * assembly.c: fix brokeness.
20301
20302 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20303
20304         * class.c: kill some warnings. Check explicit interface method
20305         implementation also without considering the namespace.
20306         Load also literal strings in static class data.
20307
20308 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20309
20310         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20311         (default_assembly_name_resolver): Make the resolver take the
20312         "base" directory where the assembly was originally defined, so we
20313         can load DLLs that are in the same directory as the assembly that
20314         is being referenced.
20315
20316 2002-03-28  Dick Porter  <dick@ximian.com>
20317
20318         * file-io.h: 
20319         * file-io.c:
20320         * socket-io.c: 
20321         * unicode.h: 
20322         * unicode.c: Warning cleanups
20323
20324 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20325
20326         * object.h, reflection.h: use the correct type instead of MonoObject.
20327
20328 2002-03-28  Martin Baulig  <martin@gnome.org>
20329
20330         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20331         (mono_debug_update_symbol_file): Initialize classes if necessary.
20332
20333 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20334
20335         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20336         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20337
20338 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20339
20340         * assembly.h: fix function prototype.
20341         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20342         * mono-endian.h: use const cast.
20343
20344 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20345
20346         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20347
20348 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20349
20350         * loader.c: don't assert when a typeref can't be loaded, give
20351         a chance to the runtime to trow an exception instead.
20352         * loader.h: fix warning.
20353
20354 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20355
20356         * class.c (mono_class_proxy_vtable): added proxy support
20357
20358 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20359
20360         * icall.c: removed last of PAL calls, added System.Environment
20361         * file-io.h, file-io.c: MonoIO implementation
20362         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20363
20364 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20365
20366         * appdomain.c: do not use the byte marker in ldstr table lookup.
20367         * debug-helpers.c: allow two ':' to separate class and method name.
20368         * object.c: allocate arrays bounds with the GC, too.
20369         * verify: add a few more checks.
20370
20371 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20372
20373         * reflection.c: output also literal strings. Allocate parameter data
20374         with GC_malloc() (thanks, Martin, for catching this!).
20375
20376 2002-03-26  Martin Baulig  <martin@gnome.org>
20377
20378         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20379         include the `this' offset in the `param_offsets'.
20380
20381 2002-03-25  Martin Baulig  <martin@gnome.org>
20382
20383         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20384         mono_debug_get_class() function to get the classes. Added new
20385         relocation types for arrays and strings.
20386         (mono_debug_get_class): New static function to search in all
20387         referenced assemblies for a metadata token.
20388
20389         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20390
20391 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20392
20393         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20394         hold gc-allocated objects. Make the string heap a stream like the
20395         others. Removed duplicated code when writing stream info.
20396         Added asserts to catch possible buffer overflows. Set the sorted map
20397         for tables that need sorting. Added some documentation.
20398
20399 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20400
20401         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20402         for interned strings and vtables.
20403
20404 2002-03-24  Martin Baulig  <martin@gnome.org>
20405
20406         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20407         it in the array since it was created with g_slist_prepend().
20408
20409 2002-03-24  Martin Baulig  <martin@gnome.org>
20410
20411         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20412         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20413         (mono_debug_method_from_token): Renamed to
20414         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20415         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20416
20417         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20418         relocation types.
20419
20420         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20421
20422 2002-03-24  Martin Baulig  <martin@gnome.org>
20423
20424         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20425         (mono_debug_method_from_token): New func.
20426
20427         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20428         New interncall, calls mono_debug_local_type_from_signature().
20429         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20430         calls mono_debug_method_from_token().
20431
20432 2002-03-23  Martin Baulig  <martin@gnome.org>
20433
20434         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20435         specifies the number of bytes to be converted, not the array size.
20436         Return the number of chars, not the number of bytes.
20437         (ves_icall_iconv_get_chars): The `byteCount' argument
20438         specifies the number of bytes to be converted, not the array size.
20439
20440 2002-03-23  Martin Baulig  <martin@gnome.org>
20441
20442         * reflection.h (MonoReflectionSigHelper): New type.
20443
20444         * reflection.c (mono_reflection_sighelper_get_signature_local),
20445         (mono_reflection_sighelper_get_signature_local): New functions.
20446
20447         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20448         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20449         interncalls.
20450
20451 2002-03-23  Martin Baulig  <martin@gnome.org>
20452
20453         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20454         is_writeable is set.
20455         (mono_raw_buffer_update): New function to write the modified map
20456         back to disk.
20457
20458         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20459
20460         * debug-symfile.c (mono_debug_update_symbol_file): Call
20461         mono_raw_buffer_update() when done writing.
20462
20463 2002-03-23  Martin Baulig  <martin@gnome.org>
20464
20465         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20466
20467         * debug-symfile.c: Added support for arguments and local variables.
20468
20469 2002-03-23  Dick Porter  <dick@ximian.com>
20470
20471         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20472         protected by ifdefs, hence breaking the w32 build.
20473
20474 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20475
20476         * object.c: implement is_interned() the right way.
20477
20478 2002-03-21  Martin Baulig  <martin@gnome.org>
20479
20480         * debug-symfile.[ch]: New files to handle debugging information
20481         files. There's also support to dynamically update these symbol
20482         files to include machine dependent information.
20483
20484 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20485
20486         * threads.c (mono_thread_create): new function to create thread
20487         from C
20488
20489 2002-03-20  Martin Baulig  <martin@gnome.org>
20490
20491         * icall.c (ves_icall_InternalInvoke): Create a new object if the
20492         method is a constructor.
20493         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
20494         points to ves_icall_InternalInvoke().
20495
20496 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
20497
20498         * file-io.c: Flush shouldn't throw exceptions.
20499
20500 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
20501
20502         * file-io.c: FileStream flush support; FileSetLength now
20503         restores file pointer.
20504
20505 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20506
20507         * class.c: set image for pointer classes.
20508
20509 2002/03/19  Nick Drochak <ndrochak@gol.com>
20510
20511         * sysmath.c: Forgot one.
20512
20513 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
20514
20515         * sysmath.c: Avoid redefining existing names.
20516
20517 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
20518
20519         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
20520         handled by runtime as icall rather than dllimport from libm.so
20521         * file-io.c, file-io.h: fixed handle argument type.
20522
20523 2002-03-18  Dick Porter  <dick@ximian.com>
20524
20525         * reflection.c (mono_image_get_type_info): rename interface to
20526         iface, because of "#define interface struct" on windows.
20527
20528 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
20529
20530         * class.c, class.h: rename and export mono_ptr_class_get().
20531         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
20532         * reflection.c, reflection.h, icall.c: better/saner type name
20533         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
20534         method signatures.
20535
20536 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
20537
20538         * class.c (mono_class_init): removed hardcoded GHC_SLOT
20539
20540         * icall.c (ves_icall_InternalInvoke): impl.
20541
20542 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20543
20544         * reflection.c: output the interface map table, too.
20545
20546 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20547
20548         * class.c (class_compute_field_layout): separate computation of 
20549         static field layout
20550
20551 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
20552
20553         * icall.c: added System.Buffer support.
20554         * file-io.c: moved file icalls from PAL to FileStream.
20555
20556 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20557
20558         * icall.c (ves_icall_System_Object_GetHashCode): impl.
20559
20560 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
20561
20562         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
20563
20564 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20565
20566         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
20567
20568 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20569
20570         * debug-helpers.{c,h}: moved here from monograph some useful functions
20571         to locate a method by name/signature in a class or image. Included
20572         also a small and flexible IL disassembler.
20573
20574 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20575
20576         * reflection.c: fixup tokens in methods with small header size, too.
20577
20578 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
20579
20580         * object.c (mono_string_to_utf8): remove assert(!error), instead
20581         print a warning. 
20582
20583 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
20584
20585         * icall.c: update to the new mono_Array_class_get interface.
20586
20587 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20588
20589         * appdomain.c, object.c: Boehm-GC enable.
20590         * icall.c: make get_data_chunk() support split data requests.
20591         Ensure a class is initialized in more cases. Return only the first
20592         property found in GetProperties() or the compiler gets confused. 
20593         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
20594         * reflection.h, reflection.c: add fixup mechanism for field and method
20595         tokens. Initialize assembly->typeref in a single place. Output
20596         properties after events. Support custom attributes for events, too.
20597         Typo fix for paramter custom attrs.
20598
20599 2002-03-07  Martin Baulig  <martin@gnome.org>
20600
20601         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
20602
20603 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
20604
20605         * class.c (mono_array_class_get): fix. for multi. dim. arrays
20606
20607 2002-03-06  Martin Baulig  <martin@gnome.org>
20608
20609         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
20610         non-zero lower bounds. See testcases #F10-#F13.
20611
20612 2002-03-05  Martin Baulig  <martin@gnome.org>
20613
20614         * exception.c (mono_get_exception_argument_out_of_range): New exception.
20615
20616         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
20617         ves_icall_System_Array_GetValue(), only calculate the absolute array position
20618         here.
20619         (ves_icall_System_Array_SetValue): Likewise.
20620         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
20621         as argument and does the actual work. This function is used when copying a
20622         multi-dimensional array.
20623         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
20624         now do all the widening conversions of value types.
20625         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
20626
20627 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20628
20629         * class.c: remove some magic numbers and use the smbolic names,
20630         instead. Added init_events() to load event info at class init time.
20631         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
20632         and mono_metadata_methods_from_event().
20633         * reflection.h, reflection.c: added support for writing out the evnets
20634         related information.
20635
20636 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20637
20638         * reflection.h, icall.c: use a different method (GetInterfaces)
20639         to gather interface info and add isbyref, isprimitive and
20640         ispointer to the ves_icall_get_type_info() return value.
20641
20642 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20643
20644         * class.h: stared adding support for events.
20645         * icall.c: split find_members implementation. Added debug icall to get
20646         the address of an object.
20647         * reflection.c: handle TypeBuilders in mono_type_get_object().
20648
20649 2002-03-01  Martin Baulig  <martin@gnome.org>
20650
20651         * icall.c (ves_icall_System_Array_GetLength): This must throw an
20652         ArgumentOutOfRangeException(), not an ArgumentException().
20653         (ves_icall_System_Array_GetLowerBound): Likewise.
20654         (ves_icall_System_Array_GetValue): Improved argument checking.
20655         (ves_icall_System_Array_SetValue): Improved argument checking.
20656
20657 2002-03-01  Martin Baulig  <martin@gnome.org>
20658
20659         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
20660         called with invalid arguments rather than just dying with g_assert().
20661         (ves_icall_System_Array_SetValue): Likewise.
20662         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
20663         raise a NotImplementedException instead.
20664         (ves_icall_System_Array_GetLength): Added argument checking.
20665         (ves_icall_System_Array_GetLowerBound): Added argument checking.
20666
20667 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
20668
20669         * object.h (mono_assert): new macros mono_assert and
20670         mono_assert_not_reached
20671
20672 2002-02-28  Martin Baulig  <martin@gnome.org>
20673
20674         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
20675         and "System::String::IsInterned" to "System::String::_IsInterned".
20676
20677 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
20678
20679         * icall.c: remove hacks for typebuilder. Added icall to create a
20680         modified type from a tybebuilder.
20681         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
20682         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
20683         to create a backing MonoClass for a TypeBuilder.
20684
20685 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20686
20687         * class.c, class.h: more refactoring of class init.
20688         Export mono_class_setup_mono_type() and mono_class_setup_parent().
20689
20690 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
20691
20692         * marshal.c, marshal.h: start of marshaling interface.
20693
20694 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20695
20696         * icall.c: fix order in assembly qualified name icall.
20697
20698 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20699
20700         * class.c: do not free str, since we store it in the hash table.
20701         * reflection.h: add label field to MonoILExceptionInfo.
20702         * reflection.c: handle references to more than one assembly. Handle
20703         case when there isn't a module created in the assembly.
20704
20705 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20706
20707         * class.c: Fix typo. Start refactoring of class init code.
20708
20709 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20710
20711         * appdomain.c: exit with 1 on error.
20712         * class.c: we already have the name in MonoClassField.
20713         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
20714         MonoStreamHeader instead of an offset of image->raw_metadata.
20715
20716 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
20717
20718         * appdomain.c (mono_init): Be even more descriptive about the error.
20719
20720 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
20721
20722         * appdomain.c: give the user an informative message when corlib can't
20723         be loaded.
20724
20725 2002-02-26  Martin Baulig  <martin@gnome.org>
20726
20727         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20728         New icall to get the time zone data.
20729
20730 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20731
20732         * reflection.c: set virtual and raw size of section correctly.
20733         * threads.c: transfer domain information to newly created threads.
20734
20735 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20736
20737         * class.c: when instancing a class in a domain, load the default
20738         vaules for static fields from the constant table. Fix System.Enum to
20739         not be an enum.
20740         * icall.c: implement Object::GetType() internalcall. Implemented
20741         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
20742         Fixed checking of binding flags in find_members().
20743         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
20744         * reflection.c: handle enumerations when writing to the constant
20745         table. Use a different object cache for types.
20746
20747
20748 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
20749
20750         * object.c (mono_object_isinst): fix for arrays
20751
20752         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
20753
20754 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20755
20756         * object.c: don't use mprotect ()  and fix intern pool hash table
20757         lookup for big endian systems.
20758
20759 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20760
20761         * icall.c: change type_is_subtype_of () signature.
20762
20763 2002-02-21  Mark Crichton  <crichton@gimp.org>
20764
20765         * rand.c, rand.h: Added random number generator for
20766         System.Security.Cryptography classes.
20767
20768         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
20769
20770         * icall.c: Added System.Security.Cryptography calls.
20771
20772 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20773
20774         * class.c, icall.c, metadata.c: better support for pointer types.
20775         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
20776         * reflection.c: Add support for getting custom attrs for properties
20777         and simplify some code.
20778
20779 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20780
20781         * icall.c: change getToken () and add custom attribute GetBlob()helper
20782         method.
20783         * reflection.h: add custom attrs array to the reflection builder structures.
20784         * reflection.c: encode and emit custom attributes for all the relevant
20785         reflection objects. Cache fieldref and methodref tokens. Change
20786         mono_image_create_token() interface to take a MonoDynamicAssembly.
20787         More complete custom attributes decoder. Load custom attributes for
20788         Assembly, Field, Method and Constructor objects, too. Make the
20789         returned array an Attribute[] one, not object[]. Added
20790         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
20791         custom attribute constructor.
20792
20793 2002-02-20  Dick Porter  <dick@ximian.com>
20794
20795         * icall.c:
20796         * rawbuffer.c:
20797         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
20798         problem code out for now).
20799
20800 2002-02-19  Radek Doulik  <rodo@ximian.com>
20801
20802         * object.c (mono_ldstr): use hash table to avoid multiple swapping
20803
20804 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
20805
20806         * icall.c: register the GetCustomAttributes method.
20807         * object.c, object.h: add mono_string_new_len ().
20808         * reflection.h, reflection.c: added mono_runtime_invoke(),
20809         mono_install_runtime_invoke(). Added
20810         mono_reflection_get_custom_attrs () to load custom attributes and
20811         create the attribute objects.
20812
20813 2002-02-19  Dick Porter  <dick@ximian.com>
20814         * threads-dummy-types.c:
20815         * threads-dummy-types.h:
20816         * threads-dummy.c:
20817         * threads-dummy.h:
20818         * threads-pthread-types.c:
20819         * threads-pthread-types.h:
20820         * threads-pthread.c:
20821         * threads-pthread.h:  Deleted obsolete files
20822
20823 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
20824
20825         * class.c (mono_class_vtable): runtime init the class when we
20826         allocate static class data.
20827
20828         * icall.c (ves_icall_System_Array_SetValue): check for null values.
20829
20830         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
20831         and String - but we will need generic marshalling support in the
20832         future. 
20833         (mono_init): set the domain name in a ms compatible way
20834
20835         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
20836         String[].
20837
20838 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
20839
20840         * object.c (mono_array_clone): use alloca() instead of g_malloc  
20841         for sizes
20842
20843         * appdomain.c (mono_domain_unload): impl.
20844
20845 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20846
20847         * appdomain.c, object.c: fix intern pool implementation.
20848         * class.c: fix alignment code.
20849
20850 2002-02-16  Radek Doulik  <rodo@ximian.com>
20851
20852         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
20853         and s2 > s1, just copy lower bytes to be compatible with little
20854         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
20855         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
20856
20857         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
20858         force big_endian to be 1 for big endian machines 
20859         (ves_icall_iconv_new_decoder): ditto
20860
20861 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
20862
20863         * socket-io.c (convert_sockopt_level_and_name): If the system
20864         doesn't define SOL_IP or SOL_TCP, get them by hand using
20865         getprotobyname() and caching the values (because this could be a
20866         slow operation).
20867         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
20868         Use the appropriate struct when the system does support it. Ie,
20869         not all systems have struct ip_mreqn so use struct ip_mreq when
20870         appropriate.
20871
20872 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
20873
20874         * reflection.c: handle finally clauses.
20875
20876 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
20877
20878         * socket-io.c: use g_snprintf() instead of snprintf.
20879
20880 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20881
20882         * reflection.c (mono_param_get_objects): Cast second argument to
20883         mono_method_get_param_names to a const char** to silence the
20884         compiler warning.
20885
20886         * appdomain.c (mono_domain_assembly_open): Put parens around the
20887         truth statement in the for-loop.
20888
20889         * unicode.c (iconv_convert): Got rid of a compiler warning about
20890         int i being unused when the system has a new iconv.
20891         (iconv_get_length): Same.
20892
20893         * image.c (load_class_names): Cast the second argument to
20894         g_hash_table_insert() to char* to hush compiler warnings about the
20895         arg being a const.
20896         (mono_image_open): Same here.
20897
20898         * socket-io.c: Don't conditionally include sys/filio.h or
20899         sys/sockio.h here anymore since we now get them from
20900         io-layer/io-layer.h
20901         (inet_pton): If the system doesn't support inet_aton, implement
20902         using inet_addr and also #define INADDR_NONE if it isn't defined
20903         by the system.
20904
20905 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20906
20907         * metadata.c, metadata.h: added function to get packing and size info
20908         of a typedef.
20909         * reflection.h, reflection.c: handle field RVA data. Save info about
20910         the table layout if needed. Assign typedef indexes to all the types
20911         before dumping the info about them to avoid forward reference problems.
20912
20913 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
20914
20915         * socket-io.c (convert_sockopt_level_and_name): ifdef
20916         SO_ACCEPTCONN because it is not defined on my system (old debian)
20917
20918 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20919
20920         * opcode.c: use stddef.h to get NULL.
20921
20922 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20923
20924         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
20925         for FIONBIO, FIONREAD and SIOCATMARK.
20926         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
20927         define INADDR_NONE and besides, inet_addr() is deprecated and
20928         should not be used. Use inet_pton() instead - it also has the
20929         added bonus that it can easily handle IPv6 addresses as well.
20930         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
20931
20932 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20933
20934         * decimal.c: remove _MSC_VER conditional.
20935
20936 2002-02-13  Dick Porter  <dick@ximian.com>
20937
20938         * socket-io.c: 
20939         * icall.c: Internal calls for Blocking, Select, Shutdown,
20940         GetSocketOption and SetSocketOption
20941
20942 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20943
20944         * assembly.cs: better resolver: use it instead of some kludgy
20945         code.
20946
20947 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
20948
20949         * reflection.c: the best way to speed-up the compiler is to avoid
20950         infinite loops.
20951
20952 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
20953
20954         * class.c (mono_class_vtable): changed the object layout
20955         (obj->vtable->class). 
20956         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
20957
20958 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20959
20960         * assembly.c: look for assemblies in the assembly dir, too.
20961
20962 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20963
20964         * class.c: fix thinko in mono_class_from_type().
20965
20966 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20967
20968         * exception.h, exception.c: added TypeLoadException.
20969         * object.h, object.c: added mono_array_clone ().
20970         * icall.c: handle throwOnError in AssemblyGetType().
20971         Added Array.Clone().
20972         * opcode.h, opcode.c: use a single value for the opcode val.
20973         Compile fix for non-gcc compilers.
20974
20975 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
20976
20977         * opcodes.c, opcodes.h: export interesting info about opcodes.
20978
20979 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
20980
20981         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
20982         icalls. 
20983
20984         * class.c (class_compute_field_layout): set element_class for enums
20985         (mono_class_create_from_typedef): set element_class for normal classes
20986
20987         * icall.c (ves_icall_System_Enum_get_value): impl.
20988
20989         * class.c (mono_class_create_from_typedef): do not set valuetype
20990         flag for System.ValueType and System.Enum
20991
20992 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
20993
20994         * unicode.c (iconv_convert): fix big endian problem.
20995
20996 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20997
20998         * class.c: add asserts if we are ever going to scribble over memory.
20999         * socket-io.c: not all systems have AF_IRDA defined.
21000
21001 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
21002
21003         * class.c (class_compute_field_layout): do not consider static
21004         fields to compute alignment
21005
21006 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21007
21008         * appdomain.c (mono_appdomain_get): impl.
21009         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21010
21011 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21012
21013         * icall.c: ignore "file://" prefix when loading an assembly.
21014
21015 2002-01-23  Dick Porter  <dick@ximian.com>
21016
21017         * socket-io.c:
21018         * icall.c:
21019         * Makefile.am: Added socket support
21020
21021 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21022
21023         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21024         code back.  This should return the assemblies that are loaded by
21025         the runtime on behalf of an application domain. 
21026
21027         The current implementation is still broken, it just returns every
21028         assembly loaded, but until we get real applications domain this
21029         will do.
21030
21031 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21032
21033         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21034         AppDomain object.
21035
21036 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21037
21038         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21039         the mono_class_from_name lookup.
21040         (ves_icall_get_parameter_info): ditto.
21041         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21042         method.
21043         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21044
21045 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21046
21047         * class.c: load also nested classes on class init.
21048         System.ValueType instance methods gets passed boxed
21049         values, unless methods in derived classed that get a pointer to the
21050         data.
21051         * icall.c: use better name parsing code in GetType().
21052         * image.c, image.h: add mono_image_loaded ().
21053         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21054         * reflection.c, reflection.h: added mono_reflection_parse_type().
21055
21056 2002-01-22  Veronica De Santis <veron78@interfree.it>
21057
21058         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21059         * threads.c : Added the implementation of internal calls for events
21060         * threads.h : Added prototypes of internal calls for events
21061         
21062 2002-01-21  Radek Doulik  <rodo@ximian.com>
21063
21064         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21065
21066 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21067
21068         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21069         (mono_class_value_size): use min_align
21070
21071 2002-01-20  Dick Porter  <dick@ximian.com>
21072
21073         * threads.h:
21074         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21075         so it compiles on w32.
21076
21077 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21078
21079         * metadata.c (mono_type_stack_size): impl.
21080
21081         * class.c (mono_class_get_field): impl. memberref token
21082
21083 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21084
21085         * icall.h : Added the internal calls mapping for CreateMutex_internal
21086                     and ReleaseMutex_internal.
21087         * threads.h : Added the prototype of mutexes internal calls.
21088         * threads.c : Added the implementations of mutexes internal calls.
21089
21090 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21091
21092         * metaparse.h: removed unused file.
21093         * reflection.c, reflection.h: added stream_data_align () function 
21094         to align data in streams and keep stream aligned. Add support for
21095         exception support in method headers.
21096
21097 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21098
21099         * unicode.c: make iconv_convert () return the number of bytess written
21100         in the output buffer.
21101
21102 2002-01-15  Dick Porter  <dick@ximian.com>
21103         * threads.c: Make the runtime's idea of infinite timeouts coincide
21104         with the class library's
21105
21106         Fix a particularly egregious bug in mono_thread_cleanup(). That
21107         code was so utterly bogus it must have been written on a Monday.
21108
21109 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21110
21111         * reflection.h: add subtypes field to TypeBuilder.
21112         * reflection.c: encode constants for literal fields.
21113         Handle subtypes. Fix user string token (and add a zero byte)
21114         at the end.
21115         
21116 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21117
21118         * class.c (mono_class_init): bug fix: assign slot numbers for
21119         abstract methods.
21120
21121 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21122
21123         * reflection.c: don't try to output a code RVA for abstract methods.
21124         Small fixes for method header format. Output parameter info to the
21125         ParamDef table. Save method overriding info to MethodImpl table.
21126         Fix property support. Allow typedef.extends to be a type in the
21127         building assembly.
21128         * verify.c: fix off-by-one error.
21129
21130 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21131
21132         * class.c: fix mono_class_from_mono_type () for szarray types.
21133         Remove unused cache check in mono_class_from_type_spec().
21134         * icall.c: *type_from_name () functions handle simple arrays and byref.
21135         * reflection.c: handle byref and szarray types. Handle methods without
21136         body (gets P/Invoke compilation working). Handle types and fields in
21137         get_token ().
21138         * reflection.h: add rank to MonoTypeInfo.
21139
21140 2002-01-10  Dick Porter  <dick@ximian.com>
21141
21142         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21143         internal calls
21144
21145 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21146
21147         * icall.c: initialize class in type_from_handle ().
21148         Loop also in parent classes for get_method ().
21149         * reflection.c: properly encode class and valuetype types.
21150         Start on encoding TypeBuilder types. Handle fieldrefs.
21151         Use correct length when registering a user string.
21152         Handle ConstructorBuilder and MonoMethod in get_token ().
21153         Make mono_type_get_object () aware of cached types.
21154         * object.c: back out change to mono_string_new ().
21155
21156 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21157         * object.c: mono_string_new should return a NULL when the string 
21158         passed in is NULL -- not try to deference it.
21159         
21160 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21161
21162         * icall.c: hack to make IsSubType work for TypeBuilders.
21163         * reflection.c: emit constructors before methods.
21164         Retrieve param names in mono_param_get_objects().
21165
21166 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21167
21168         * Makefile.am: fix list of headers and sources so automake 1.5
21169         doesn't complain. Removed \# at end of list.
21170
21171 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21172
21173         * reflection.c: get token for a method ref. Set return type of
21174         constructor to void.
21175         * loader.c: debug message.
21176         * class.c: typo fix.
21177
21178 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21179
21180         * icall.c: fix array init with rank > 1. FindMembers
21181         loops in parent class as well.
21182         * image.c: do not insert nested types in name cache.
21183         * reflection.c: warning fix.
21184         * reflection.h: add override method (for interface impl).
21185
21186 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21187
21188         * metadata.c: fix customattr decoding.
21189
21190 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21191
21192         * rawbuffer.cs: Added native Win32 implementation, avoids using
21193         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21194
21195 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21196
21197         * class.c: make the low-level routines handle the cache.
21198
21199 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21200
21201         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21202
21203 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21204
21205         * class.c: fix mono_array_element_size() for objects.
21206         * class.h, class.c: add properties to MonoClass and load them
21207         at init time.
21208         * icall.c: check with isinst() when assigning a value to an array
21209         instead of requiring the classes to match exactly.
21210         Implemented icall for System.Type::GetType().
21211         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21212         enums. Handle bindingflags when looking for methods and fields.
21213         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21214         and mono_metadata_methods_from_property().
21215         * reflection.h, reflection.c: added structures for propreties,
21216         parameters and enums. Implemented mono_property_get_object() and
21217         mono_param_get_objects().
21218
21219 2001-12-18  Dick Porter  <dick@ximian.com>
21220
21221         * file-io.c: Use mono_string_to_utf16() instead of
21222         mono_string_chars()
21223
21224         * object.c: Added mono_string_to_utf16(), which copies the non
21225         NULL-terminated MonoString into a new double-null-terminated
21226         buffer.
21227
21228 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21229
21230         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21231
21232 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21233
21234         * file-io.c: raise exceptions if handle is invalid.
21235
21236 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21237
21238         * assembly.c: yet another check for mscorlib.
21239         * class.c, class.h: load nesting info for classes.
21240         * icall.c: many new functions to support the Reflection classes.
21241         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21242         * reflection.h, reflection.c: mono_image_create_token(),
21243         mono_assembly_get_object(), mono_type_get_object(),
21244         mono_method_get_object(), mono_field_get_object(): methods to return
21245         objects that parallel the C representation of assemblies, types,
21246         methods, fields.
21247
21248 2001-12-11  Dick Porter  <dick@ximian.com>
21249
21250         * icall.c:
21251         * file-io.c: Internal calls for file IO.
21252
21253 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21254
21255         * tabledefs.h: missing FileAttributes.
21256         * verify.h, verify.c: use is_valid_string () to simplify and check for
21257         valid strings more correctly. Fix warnings and speeling.
21258         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21259         Check code: branches, maxstack, method calls.
21260
21261 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21262
21263         * object.c (mono_object_allocate): removed static, so that the jit
21264         can allocate value types.
21265
21266         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21267
21268 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21269
21270         * class.c: init enum types right away and register the
21271         token->MonoClass map in mono_class_create_from_typedef ().
21272         * verify.h, verify.c: first cut of the verifier.
21273         * pedump.c: add --verify switch to verify metadata tables.
21274         * tabledefs.h: add some missing enums.
21275
21276 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21277
21278         * class.c (mono_install_runtime_class_init): impl.
21279         (mono_class_init): renamed mono_class_metadata_init to
21280         mono_class_init, also removed the metadata_inited flag
21281
21282         * object.c (mono_object_isinst): use faster algorithm
21283
21284 2001-11-30  Radek Doulik  <rodo@ximian.com>
21285
21286         * mono-endian.h: reverted last change
21287         added function prototypes
21288
21289         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21290         add mono-endian.c back
21291
21292         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21293         for unaligned access, I've mistaked it with endianess. I am
21294         sorry.
21295         (mono_read16): fix reverted endianess
21296         (mono_read64): ditto
21297         (mono_read32): ditto
21298
21299 2001-11-30  Dick Porter  <dick@ximian.com>
21300
21301         * exception.c: Implement mono_exception_from_name()
21302
21303 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21304
21305         * metadata.h, metadata.c: remove params_size and locals_size and their
21306         calculation from the metadata code: they are only usefult to the
21307         interp.
21308
21309 2001-11-29  Radek Doulik  <rodo@ximian.com>
21310
21311         * object.c (mono_ldstr): swap bytes here, it's probably not the
21312         best place, but works for me now, I'll redo it once I know mono
21313         better, also note that I add PROT_WRITE and don't reset back, also
21314         note that it's only affects big endians, so x86 should be OK
21315
21316         * mono-endian.h (read16): use just glib macros for both endians
21317
21318         * mono-endian.c: removed as glib macros are used in in
21319         mono-endian.h so we don't need to care about endianess for read
21320         macros as glib does that for us already
21321
21322 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21323
21324         * class.h, class.h: take minimum alignment into consideration so
21325         that the fields of a class remain aligned also when in an array.
21326
21327 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21328
21329         * loader.h, loader.c: add mono_method_get_param_names().
21330         * class.c: 0-init class fields.
21331
21332 2001-11-26  Dick Porter  <dick@ximian.com>
21333
21334         * icall.c:
21335         * threads-types.h:
21336         * threads.c: New file that handles System.Threading on all platforms
21337
21338         * object.c: 
21339         * object.h: Remove the synchronisation struct from MonoObject,
21340         replace it with a pointer that gets initialised on demand
21341
21342         * Makefile.am: Replace all the system-specific threading code with
21343         a single file that uses the new wrapper library
21344
21345 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21346
21347         * class.c, class.h: add mono_install_trampoline() so that the runtime
21348         can register a function to create a trampoline: removes the ugly
21349         requirement that a runtime needed to export arch_create_jit_trampoline.
21350         * object.h, object.c: added mono_install_handler() so that the runtime
21351         can install an handler for exceptions generated in C code (with
21352         mono_raise_exception()). Added C struct for System.Delegate.
21353         * pedump.c: removed arch_create_jit_trampoline.
21354         * reflection.c: some cleanups to allow registering user strings and
21355         later getting a token for methodrefs and fieldrefs before the assembly
21356         is built.
21357         * row-indexes.h: updates and fixes from the new ECMA specs.
21358
21359 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21360
21361         * class.h, class.c: add enum_basetype field to MonoClass.
21362         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21363         to get index in the constant table reated to a field, param or
21364         property.
21365         * reflection.h, reflection.c: handle constructors. Set public-key and
21366         version number of the built assembly to 0.
21367         * row-indexes.h: update from new ECMA spec.
21368
21369 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21370
21371         * class.h, class.c: add a max_interface_id to MonoClass.
21372         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21373         since it's used to do that. Added mono_type_type_from_obj().
21374         Make GetType() return NULL instead of segfaulting if the type was not
21375         found. Handle simple arrays in assQualifiedName.
21376         * object.h: add a struct to represent an Exception.
21377         * reflection.c: output call convention in method signature.
21378         Add code to support P/Invoke methods and fixed offsets for fields.
21379
21380 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21381
21382         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21383         the value.
21384         * icall.c: use mono_array_addr instead of array->vector: fixes the
21385         reflection image writing.
21386         * reflection.c: init call convention byte to 0 in method signature.
21387         Encode the property signature. Don't output property-related methods
21388         twice. Really process the properties for a type (don't cast a field to
21389         a property, my mom always told me that).
21390         Fix 64 bit issues in pointer alignment in a different and more
21391         readable way.
21392
21393 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21394
21395         * loader.h: Removed type class from MonoDefaults, added monotype
21396
21397         * loader.c: Loaded MonoType, removed loading of Type
21398
21399         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21400         and fills in System.Type._impl with a RuntimeTypeHandle rather
21401         than the actual MonoClass *
21402
21403         (ves_icall_type_from_handle): change from type_class to
21404         monotype_class
21405
21406         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21407         implemented
21408
21409         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21410         implemented
21411
21412         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21413
21414         (ves_icall_System_Reflection_Assembly_GetType): implemented
21415
21416         (ves_icall_System_MonoType_assQualifiedName): implemented
21417
21418         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21419
21420 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21421
21422         * assembly.c (mono_assembly_open): Implement a cache for the
21423         assemblies. 
21424
21425         (mono_assembly_close): only destroy the assembly when the last
21426         reference is gone.
21427         
21428 2001-11-09  Dick Porter  <dick@ximian.com>
21429
21430         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21431
21432 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21433
21434         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21435
21436 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21437
21438         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21439         from Martin Weindel.
21440         * object.h: add mono_string_chars ().
21441
21442 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21443
21444         * reflection.c (build_compressed_metadata): Eliminates warnings
21445         and uses 64-bit clean code.
21446
21447         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21448         (mono_type_equal): Change signature to eliminate warnings.
21449
21450 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21451
21452         * icall.c, loader.c: remove the internalcall array constructors.
21453         Changes to match the new MonoArray structure.
21454         * object.h, object.c: an array object doesn't allocate an extra
21455         vector. Add mono_array_new_full () to create jagged arrays easily.
21456
21457 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21458
21459         * metadata.h, metadata.c: add mono_metadata_field_info () to
21460         retreive all the info about a field from vairous tables.
21461         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21462         * class.h, class.c: augment MonoClassField with more info.
21463         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21464         policy and load a field's RVA if needed.
21465
21466 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21467
21468         * class.c (mono_class_metadata_init): create a trampoline for all
21469         virtual functions instead of actually compiling them.
21470
21471 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21472
21473         * class.h, class.c: include name in MonoClassField.
21474         * class.c: fix fundamental type of System.Object and System.String.
21475         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21476         tokens in ldtoken.
21477         * icall.c: remove internalcalls for the Reflection stuff that is now
21478         done in C# code.
21479         * loader.c: mono_field_from_memberref () implementation.
21480         * mono-endian.c: thinko (s/struct/union/g).
21481         * object.c, object.h: make the mono_string_* prototypes actually use
21482         MonoString instead of MonoObject.
21483         * reflection.c, reflection.h: updates for changes in the reflection
21484         code in corlib: we use C structures that map to the actual C# classes.
21485         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21486         fat method header if needed and use the info from the ILGenerator for
21487         methods. Handle fields in types. Misc fixes.
21488
21489 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
21490
21491         * class.c (mono_class_metadata_init): bug fix: always allocate
21492         space for static class data
21493
21494 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
21495
21496         * class.c (mono_compute_relative_numbering): use relative
21497         numbering to support fast runtime type checks.
21498
21499 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
21500
21501         * class.c (mono_class_create_from_typeref): added debugging output
21502         to print class name when MonoDummy is returned instead of real class
21503
21504 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
21505
21506         * class.c (mono_class_metadata_init): interface offset table now
21507         contains pointers into the vtable - this is more efficient for the jit
21508
21509 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
21510
21511         * class.c (mono_class_metadata_init): use a temporary vtable (the
21512         old algorithm only worked for the interpreter, but not for the jit)
21513
21514 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
21515
21516         * loader.c (method_from_memberref): use mono_class_get to get the
21517         class of an array instead of using System.Array directly.
21518         (mono_get_method): also add MEMBERREF methods to the method cache
21519         which usefull for arrays.
21520
21521 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
21522
21523         * pedump.c (arch_compile_method): added to compute vtable entry
21524
21525         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
21526         number of interfaces.
21527         
21528         * class.h: merged MonoArrayClass into MonoClass
21529
21530         * class.c (mono_class_create_from_typedef): compute the vtable size and
21531         allocate space to include the vtable inside MonoClass
21532         (mono_class_metadata_init): initialize the vtable
21533
21534 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
21535
21536         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
21537         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
21538         * image.c: endian fixes by Laurent Rioux.
21539         * object.h, object.c: rename MonoStringObject to MonoString and
21540         MonoArrayObject to MonoArray. Change some function names to conform to
21541         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
21542         guint16* as first argument, so don't use char*.
21543         Provide macros to do the interesting things on arrays in a portable way.
21544         * threads-pthread.c: updates for the API changes and #include <sched.h>
21545         (required for sched_yield()).
21546         * icall.c: updates for the API changes above.
21547         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
21548         platforms that need them.
21549
21550 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21551
21552         * class.c: set the correct type for all the fundamental
21553         type when loading the class.
21554
21555 2001-10-05  Dick Porter  <dick@ximian.com>
21556
21557         * threads-pthread.c (pthread_mutex_timedlock): Simple
21558         compatibility version for C libraries that lack this call.
21559
21560 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21561
21562         * class.c: MonoTypes stored in MonoClass are stored as
21563         fundamental MonoTypes when the class represents a
21564         fundamental type (System.Int32, ...).
21565         The TypeHandle return by ldtoken is a MonoType*.
21566         * icall.c: ves_icall_get_data_chunk () write out all the
21567         PE/COFF stuff. Implement ves_icall_define_method (),
21568         ves_icall_set_method_body (), ves_icall_type_from_handle ().
21569         * image.c: properly skip unknown streams.
21570         * loader.h, loader.c: add type_class to mono_defaults.
21571         * metadata.c, metadata.h: export compute_size () as
21572         mono_metadata_compute_size () with a better interface.
21573         Typo and C&P fixes.
21574         * pedump.c: don't try to print the entry point RVA if there is no entry point.
21575         * reflection.c, reflection.h: many cleanups, fixes, output method
21576         signatures and headers, typedef and typeref info, compress the metadata
21577         tables, output all the heap streams, cli header etc.
21578         * row-indexes.h: typo fixes.
21579
21580 2001-10-04  Dick Porter  <dick@ximian.com>
21581
21582         * object.h: Add a synchronisation mutex struct to MonoObject
21583
21584         * object.c (mono_new_object): Initialise the object
21585         synchronisation mutexes
21586
21587         * icall.c: System.Threading.Monitor internal calls
21588         
21589         * threads-pthread.h:
21590         * threads-pthread.c: System.Threading.Monitor internal calls
21591
21592         * threads-types.h: New file, includes the system-specific thread
21593         structures
21594         
21595         * threads-pthread-types.h:
21596         * threads-pthread-types.c: New files, handle pthread-specific
21597         synchronisation types
21598
21599         * threads-dummy-types.h: 
21600         * threads-dummy-types.c: New files of dummy support for
21601         thread-specific types
21602
21603         * metadata.c:
21604         * image.c:
21605         * pedump.c: include mono-endian.h not endian.h
21606         
21607         * Makefile.am: More threads files.
21608         Name mono-endian.h not endian.h
21609
21610 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
21611
21612         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
21613         stuff and implement a few more bits.
21614         * icall.c: a field needs to be dereferenced twice. Do not use the same
21615         name for two variables in the same scope.
21616         * image.c, image.h: cleanups.
21617
21618 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
21619
21620         * class.c (mono_class_metadata_init): bug fix: compute the right size
21621
21622 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
21623
21624         * icall.c: implemented some of the Reflection internalcalls.
21625         * image.c, image.h: start writing out the PE/COFF image.
21626         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
21627         that does the reverse than decode_blob_size ().
21628         * object.c: use mono_metadata_encode_value (). Move here
21629         temporary implementation of mono_string_to_utf8 ().
21630         * rawbuffer.c: make malloc_map static.
21631
21632 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21633
21634         * metadata.c: fix type comparison for arrays.
21635         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
21636         Added a couple of new classes to monodefaults.
21637         * icall.c: added a couple of Reflection-related internalcalls.
21638         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
21639         Added a byval_arg MonoType to MonoClass.
21640
21641 2001-09-28  Dick Porter  <dick@ximian.com>
21642
21643         * icall.c:
21644         * threads-pthread.h: 
21645         * threads-pthread.c: Implemented internal calls for
21646         LocalDataStoreSlot operations.  Applied mutexes around all shared
21647         data.  Reworked the thread creation and Start() operations to
21648         avoid a race condition.
21649         
21650         * threads-dummy.h:
21651         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
21652
21653 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
21654
21655         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
21656
21657 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
21658
21659         * class.c, loader.c: warn and return NULL instead of erroring out.
21660         * icall.c: added System.AppDomain::getCurDomain().
21661         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
21662
21663 2001-09-25  Dick Porter  <dick@ximian.com>
21664
21665         * threads-pthread.h:
21666         * threads-pthread.c: Implemented timed thread joining and added
21667         System.Threading.Thread::Join_internal internal call
21668
21669         * icall.c: Added System.Threading.Thread::Join_internal internal call
21670
21671         * threads-dummy.h:
21672         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
21673
21674 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
21675
21676         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
21677         mono_string_intern () to implement the semantics of the ldstr opcode
21678         and the interning of System.Strings.
21679         * icall.c: provide hooks to make String::IsIntern and String::Intern
21680         internalcalls.
21681
21682 2001-09-23  Dick Porter  <dick@ximian.com>
21683
21684         * threads-dummy.c: 
21685         * threads-dummy.h: New files of dummy threading routines
21686
21687         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
21688         support code based on system specifics
21689
21690         Rename PTHREAD_LIBS to THREAD_LIBS
21691         
21692 2001-09-23  Dick Porter  <dick@ximian.com>
21693
21694         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
21695         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
21696         internal calls.
21697         (mono_thread_init): Set up a Thread object instance to return when
21698         the main thread calls Thread.CurrentThread
21699         (mono_thread_cleanup): Wait for all subthreads to exit
21700
21701         * icall.c: New internal calls for System.Threading.Thread::Sleep
21702         (including Schedule) and CurrentThread
21703
21704         * threads.h: New file, to insulate thread-specific stuff from the
21705         rest of the code
21706
21707 2001-09-21  Dick Porter  <dick@ximian.com>
21708
21709         * threads-pthread.h: 
21710         * threads-pthread.c: New file, for handling pthreads-style
21711         threading support.  Start() now starts a new thread and executes
21712         the ThreadStart delegate instance.
21713
21714         * icall.c: Added the internalcall for
21715         System.Threading.Thread::Start_internal
21716
21717         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
21718
21719 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
21720
21721         * loader.c: work around the different signatures for delegates
21722         constructors csc generates in compiled code vs the ones compiled in mscorlib.
21723
21724 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21725
21726         * class.h, class.c: add mono_class_get_field_from_name ().
21727         * *: Fix C comments and other ANSI C issues.
21728
21729 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
21730
21731         * endian.h, assembly.c: fix some endianness issues.
21732
21733 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
21734
21735         * loader.h, load.c: add delegate_class to mono_defaults.
21736         Handle runtime provided methods in mono_get_method ().
21737
21738 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
21739
21740         * loader.c (mono_get_method): use pinvoke for internal call
21741
21742         * icall.c: use pinvoke for internal call
21743
21744         * loader.c (method_from_memberref): set the method name
21745
21746 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
21747
21748         * metadata.c: help the compiler generate better code for
21749         mono_class_from_mono_type ().
21750
21751 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
21752
21753         * class.c (mono_class_metadata_init): delayed computing of the
21754         class size to mono_class_metadata_init ()
21755
21756 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
21757
21758         * class.c, class.h: add an interfaces member to MonoClass.
21759         * image.c, image.h: add assembly_name field to MonoImage
21760         from the assembly table.
21761         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
21762
21763 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21764
21765         * class.c: Handle Array in mono_class_from_mono_type ().
21766         * metadata.c, pedump.c: some endian fixes.
21767
21768 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21769
21770         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
21771         * metadata.c: fix small problem introduced with the latest commit.
21772
21773 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
21774
21775         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
21776         We don't need a MonoMetadata pointer anymore to compare signatures in
21777         mono_metadata_signature_equal (), update callers.
21778         Reduced memory usage an number of allocations for MonoMethodHeader and
21779         MonoMethodSignature.
21780
21781 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
21782
21783         * metadata.c: added compare for szarray.
21784
21785 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
21786
21787         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
21788         and add a couple more types to it and mono_defaults. Give an hint on
21789         classes that need implementing in our corlib and are referenced
21790         in mscorlib.
21791
21792 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
21793
21794         * class.h, class.c: keep track if a class is also an Enum.
21795         * loader.c: Implement a couple more types for use in libffi
21796         marshalling. Gives better diagnostics when failing to dlopen
21797         a library. Set method->klass for P/Invoke methods, too.
21798
21799 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
21800
21801         * class.c, class.h: add a MonoType this_arg to MonoClass that
21802         represents a pointer to an object of the class' type that
21803         can be used by the interpreter and later the type cache.
21804         Add best guess alignment info for valuetype objects.
21805
21806 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
21807
21808         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
21809         into MonoType: one less level of indirection and allocation and
21810         simplifies quite a bit of code. Added cache for MonoTypes that are
21811         used frequently, so that we don't need to allocate them all the time.
21812
21813 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
21814
21815         * class.c (mono_class_create_from_typedef): System.Enum is also a
21816         value type, although it does not derive from System.ValueType
21817         (maybe a bug in the ms compiler?)
21818
21819         * metadata.c (mono_type_size): return the right size for value types
21820
21821         * loader.c (mono_get_method): only initialize method header if not abstract
21822
21823         * class.c (mono_class_from_mono_type): use mono_default values. 
21824
21825 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
21826
21827         * *: use MonoClass pointers instead of <type_tokens>
21828         
21829         * class.h: new flag: metadata_inited.
21830
21831         * class.c (mono_class_metadata_init): impl.
21832         (mono_class_instance_size): impl.
21833         (mono_class_data_size): impl.
21834
21835 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21836
21837         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
21838         MonoClass now has the name and name_space fields. 
21839         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
21840         mono_get_method () takes and optional MonoClass as argument.
21841         Removed mono_typedef_from_name() and added mono_class_token_from_name()
21842         instead that takes advantage of a map from class names to typedef
21843         tokens in MonoImage.
21844
21845 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
21846
21847         * metadata.c: zero is not a valid alignment boundary.
21848         Merge MONO_TYPE_VOID in default decoding code.
21849
21850 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
21851
21852         * image.h: merged MonoMetadata into MonoImage
21853
21854         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
21855         identify the type of elements.
21856
21857 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
21858
21859         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
21860         * cil-coff.h: split MonoMSDOSHeader and add size info.
21861         * image.c: add some consistency checks.
21862         * metadata.c: fix row size computation: one programmer
21863         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
21864         add explanation for the locator routine.
21865         Fix decoding of size in method header.
21866         
21867 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
21868
21869         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
21870         (g_concat_dir_and_file): Bring g_concat_dir_and_file
21871         function from gnome-libs.  This uses the right path separator
21872         based on the OS, and also works around a bug in some systems where
21873         a double slash is not allowed. 
21874         (default_assembly_name_resolver): Use g_concat_dir_and_file
21875         (mono_assembly_open): ditto.
21876
21877 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
21878
21879         * metadata.c (mono_metadata_signature_equal): impl.
21880
21881         * *: void is now a realy MonoType (instead of using NULL)
21882         
21883         * metadata.c (do_mono_metadata_parse_type): use
21884         mono_metadata_parse_type to parse void value.
21885
21886 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
21887
21888         * metadata.c, metadata.h: in the signature and method header store
21889         only the space required for holding the loca vars and incoming arguments.
21890
21891 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
21892
21893         * metadata.c (do_mono_metadata_parse_type): treat void like any
21894         other type (instead of assigning NULL);
21895
21896 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
21897
21898         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
21899
21900 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
21901
21902         * image.c (do_mono_image_open): added a cache for arrays.
21903
21904 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21905
21906         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
21907         decode a single column from a row in a metadata table and changes
21908         to take advantage of it in the typedef locator (gives a nice speed up).
21909         Store offset info for function params.
21910
21911 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
21912
21913         * image.h (MONO_IMAGE_IS_CORLIB): removed 
21914
21915 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
21916
21917         * assembly.c: how could mono_assembly_close () had ever worked?
21918         * metadata.c, metadata.h: provide offset info for local vars.
21919         Implement mono_type_size () to take care of alignment as well
21920         as size (it was mono_field_type_size in cli/class.c before).
21921
21922 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
21923
21924         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
21925
21926         * assembly.h (CORLIB_NAME): set to corlib.dll
21927
21928         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
21929
21930 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21931
21932         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
21933         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
21934         tokentype.h: massive namespace cleanup.
21935
21936 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21937
21938         * metadata.h, metadata.c: decode exception clauses when parsing method header.
21939
21940 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
21941
21942         * metadata.c (mono_metadata_free_type): added check for type !=
21943         NULL (void) before calling mono_metadata_free_type()
21944
21945 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
21946
21947         * metadata.h, row_indexes.h: added header with enumerations to use
21948         to index in the columns from tables in metadata and to decode coded
21949         tokens: we should start using this instead of embedding magic numbers
21950         all over the code.
21951
21952 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
21953
21954         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
21955         Move metadata_t info from cli_image_info_t to MonoImage, where
21956         it's easily accessible. Changed all the uses accordingly.
21957         Added the method and class caches to MonoImage.
21958         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
21959         and mono_metadata_decode_value () signature to be more consistent
21960         with the other parse functions (and simplify code). Taken advantage
21961         of zero-length array allocation with GCC. Removed reduntant (and
21962         wrong) MonoFieldType struct and use MonoParam instead. Changed
21963         mono_metadata_parse_field_type () to use common code for parsing.
21964         Added mono_metadata_typedef_from_field () and
21965         mono_metadata_typedef_from_method () to lookup a typedef index from a
21966         field or method token.
21967         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
21968
21969 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
21970
21971         * metadata.c (mono_metadata_parse_field_type): Implement. 
21972         (do_mono_metadata_parse_type): Split engine from
21973         mono_metadata_parse_type, so that we can create smaller structures
21974         for things that just have one pointer to the MonoType (look at
21975         the MonoFieldType)
21976
21977 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
21978
21979         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
21980         as Jan Gray found out, it is incorrect. 
21981
21982 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
21983
21984         * assembly.c: Implement asssembly loading.  This loads an image
21985         and loads all the referenced assemblies.  Come to think of it, we
21986         could always do lazy loading of the assemblies. 
21987
21988         * image.c (mono_image_open): Keep loaded images in a hashtable.
21989
21990         * image.h (MonoImage): Add reference count.
21991
21992 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
21993
21994         * assembly.c (mono_assembly_open): Keep track of the file name in
21995         case the assembly has no ASSEMBLY table.
21996
21997         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
21998         from get.c here.
21999
22000 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
22001
22002         * metadata.c, metadata.h: decode local vars in method header
22003         parse function. Change callers accordingly.
22004
22005 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22006
22007         * metadata.h, cil-coff.h: protect against multiple inclusion.
22008         Added some new structures to hold information decoded from metadata:
22009         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22010         and relevant decoding/free functions.
22011         * metadata.c: implement decoding functions. Add warning for out of bounds
22012         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22013         all the info about a method signature and invocation. Remove check on
22014         uninitialized local var in parse_mh() and fix memory leak.
22015
22016 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22017
22018         * metadata.h: More macros.
22019
22020         * tokentype.h: New file.
22021
22022 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22023
22024         * assembly.c: added a consistency check and initialize
22025         some structures with g_new0().
22026         * metadata.c: fixed a couple more bugs in table size computation
22027         and add other checks for out-of bound access to metadata.
22028
22029 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22030
22031         * metatada.c: fix bugs computing table sizes. Spew a
22032         warning when index in string heap is out of bounds.
22033
22034 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22035
22036         * metadata.h: Add a couple of macros to manipulate tokens. 
22037
22038 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22039
22040         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22041         cli_section_tables).
22042
22043 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22044
22045         * metadata.c (mono_metadata_user_string): New function, provides
22046         access to the UserString heap. 
22047
22048 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22049
22050         * metadata.c: Add inline documentation.
22051
22052 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22053
22054         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22055         files. 
22056
22057 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22058
22059         * typeattr.h: New file, TypeAttribute flags. 
22060
22061 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22062
22063         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22064         mono_assembly_ensure_section): Section loading code.
22065         (load_section_tables): Load the sections.
22066
22067         * mono/metadata/metadata.c (mono_metadata_locate_token,
22068         mono_metadata_locate): Functions to locate the information
22069         definition given a token or a table and an index.
22070         (mono_metadata_compute_table_bases): New.
22071         (compute_size): New function to compute the sizes of the various
22072         tables.
22073
22074         * mono/metadata/metadata.h: Finish listing the different index
22075         types. 
22076
22077         * mono/metadata/pedump.c: Improve to dump new information.
22078
22079 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22080
22081         * mono/metadata/metadata.c: Entered all the tables matching
22082         Beta2. 
22083
22084         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22085
22086
22087