Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
3
4         * domain.c, threads.c, threads-types.h: fix memory retention issue
5         with thread static variables not being cleared on domain unload.
6         Reuse thread static slots after domain unload.
7
8 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
9
10         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
11         nullable type.
12
13         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
14         now done in mono_runtime_invoke_array.
15
16         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
17         receiver is a nullable type.
18
19         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
20         generic parameter.
21
22 2007-07-03  Jonathan Chambers  <joncham@gmail.com>
23
24        * marshal.c: Implement COM Objects as return type for 
25        managed->unmanaged calls. Added Release calls for COM Object
26        out/return values in managed->unmanaged calls.
27        
28        Code is contributed under MIT/X11 license.
29
30 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
31
32         * threads.h, threads-type.h: move the hazard pointer declarations
33         to the private header.
34
35 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
36
37         * file-io.c, appdomain.c: memory leak fixes.
38
39 2007-08-02  Dick Porter  <dick@ximian.com>
40
41         * socket-io.c
42         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
43         SO_REUSEADDR setting into io-layer/sockets.c.
44
45 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
46
47         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
48         from Object when called on a generic parameter. Fixes #82211.
49
50 2007-08-01  Dick Porter  <dick@ximian.com>
51
52         * file-io.c (convert_share): Test FileShare values bit-by-bit.
53         Fixes bug 79250 yet again.
54
55 2007-07-30  Martin Baulig  <martin@ximian.com>
56
57         Merged the `debugger-dublin' branch.
58
59         * mono-debug.h
60         (MonoDebugDataTable): New typedef.
61         (MonoDebugMethodAddressList): New typedef.
62         (MonoDebugWrapperData): Removed.
63         (MonoDebugSymbolTable): Removed `current_data_table',
64         `current_data_table_size', `current_data_table_offset'.
65         (MonoDebugDataItemType): Moved into mono-debug.c.
66         (MonoDebugMethodJitInfo): Remove `address'.
67         (mono_debug_data_table): New global variable.
68         (mono_debug_lookup_method_addresses): New public function.
69         (mono_debug_find_method): Take a `MonoMethod *', not a
70         `MonoDebugMethodInfo *'.
71
72         * mono-debug.c: Drop support for the old symbol tables.
73
74 2007-06-28  Martin Baulig  <martin@ximian.com>
75
76         * mono-debug.c (mono_debug_debugger_version): New public variable.
77
78 2007-07-31  William Holmes  <billholmes54@gmail.com>
79
80         * metadata.c Changed mono_type_create_from_typespec to not insert
81           the type into the hash map until after
82           do_mono_metadata_parse_type has completed.
83         Fixes Bug #82194
84         Code is contributed under MIT/X11 license.
85
86 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
87
88         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
89         generic parameter. Fixes #82211.
90
91 2007-07-27  Jb Evain  <jbevain@novell.com>
92
93         * pedump.c (dump_metadata, dump_metadata_header): dump
94         versions contained in the metadata header.
95
96 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
97
98         * threads.c: register small_id_table with the GC.
99
100 2007-07-27  Mark Probst  <mark.probst@gmail.com>
101
102         * threads.c, threads.h, class-internals.h, object-internals.h:
103         Hazard pointers, to be used by lock-free parallel algorithms.
104
105 2007-07-26  Dick Porter  <dick@ximian.com>
106
107         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
108         routine on non-windows platforms, as I've not managed to think of
109         a non-kludgy way of doing this.  Finishes off bug 78739.
110
111 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
112
113         * object.c: properly setup interface_bitmap in proxy vtables.
114
115 2007-07-25  Marek Habersack  <mhabersack@novell.com>
116
117         * appdomain.c (get_shadow_assembly_location): do not use TickCount
118         to create unique shadow copy target directories, use the domain's
119         serial number instead. Each domain gets a unique target directory
120         that way.
121
122         * domain.c (mono_domain_create): added code to increment domain
123         shadow copy serial number and cache the value in the current
124         domain structure.
125
126         * domain-internals.h (struct _MonoDomain): added a new field -
127         shadow_serial to hold the serial number used in generation of
128         shadow-copy directories. This is to make sure that the directory
129         name is unique for each and every domain created. We avoid a race
130         condition with overriding assemblies already in use by other app
131         domains.
132
133 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
134
135         * class.c (mono_bounded_array_class_get): fixed memory leak when 
136         binding generic parameters.
137
138 2007-07-24  Raja R Harinath  <rharinath@novell.com>
139
140         * metadata.c (do_mono_metadata_parse_generic_class): Use
141         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
142         error.
143
144 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
145
146         * loader.c, class-internals.h, reflection.c: removed the per-method
147         generics hashtable: we use the global one through the call of
148         mono_class_inflate_generic_method ().
149
150 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
151
152         * class.c, metadata.c, class-internals.h: introduce yet another
153         generics global cache for inflated methods (fixes 98% of the perf
154         issue in bug #81806).
155
156 2007-07-23  Raja R Harinath  <rharinath@novell.com>
157
158         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
159         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
160         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
161         return a MonoGenericInst containing (a copy) of those types.
162         (mono_metadata_inflate_generic_inst): Update to changes.
163         (mono_metadata_parse_generic_inst): Likewise.
164         (mono_get_shared_generic_inst): Likewise.
165         * reflection.c (mono_class_bind_generic_parameters): Likewise.
166         (mono_reflection_bind_generic_method_parameters): Likewise.
167         * metadata-internals.h: Likewise.
168         * icall.c (free_generic_context): Kill.
169         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
170
171         * reflection.c (reflection_methodbuilder_to_mono_method): Use
172         mono_metadata_type_dup.
173         * marshal.c (mono_mb_create_method): Likewise.
174
175         * metadata.c (mono_metadata_type_dup): Rename from
176         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
177         MonoImage.  Handle a few more cases, esp. when no mempool is given.
178         * marshal.c, metadata-internals.h: Update to changes.
179
180 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
181
182         * class.c: fixed a small leak for array classes and removed warning.
183
184 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
185
186         * loader.c (mono_method_get_param_token): Make this work on generic methods.
187         Return 0x8000000 for return parameters. Fixes #82161.
188
189 2007-07-21  Marek Habersack  <grendello@gmail.com>
190
191         * appdomain.c (get_shadow_assembly_location): append the current
192         ticks value to the path. Avoids overwriting the same assemblies by
193         several threads at the same time.
194
195 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
196         and Raja R Harinath  <rharinath@novell.com>
197
198         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
199         Simplify slightly.
200         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
201         property for testing if a method is a generic method definition.
202
203 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
204
205         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
206
207 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
208
209         * verify.c: used function from private branch, reverted to the one in class.h 
210
211 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
212
213         * verify.c: a typo slipped in and the code wont compile
214
215 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
216
217         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
218         disabled box instruction as it is doing the wrong thing
219         improved stack dump messages, now it is easier to debug type related issues
220
221
222 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
223
224         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
225
226 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
227
228         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
229         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
230         grouped with class and valuetype. This change will simply 
231         the code as it should be handled just like unmanaged pointers.
232
233 2007-07-19  Mark Probst  <mark.probst@gmail.com>
234
235         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
236
237 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
238
239         * verify.c: several stack merge issues fixed, reference comparisons now
240         check the type size. strict type check now works correctly.
241         added more uses of IS_MANAGED_POINTER macro.
242         fixed issues pointed by running the test suite against .net.
243         
244
245 2007-07-19  Mark Probst  <mark.probst@gmail.com>
246
247         * class.c, loader.c, class-internals.h: Removed the
248         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
249         defines.
250
251         * icall.c: Better error checking in some internal reflection
252         methods.
253
254 2007-07-18  William Holmes  <billholmes54@gmail.com>
255
256         * filewatcher.c : removed unused variable 'filename' in 
257           ves_icall_System_IO_FSW_SupportsFSW
258
259 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
260
261         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
262         obsolete, removed.
263
264 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
265
266         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
267         
268         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
269
270 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
271
272         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
273         Implement generics support.
274         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
275
276         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
277         type_args and method_args arguments.
278         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
279         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
280         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
281
282 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
283
284         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
285           It adds a rootimage parameter to mono_reflection_get_type_internal,
286           adds new function mono_reflection_get_type_with_rootimage and use
287           the rootimage to resolve the types instead of the current image
288
289 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
290
291         * culture-info-table.h: Forgot to update after r78304.
292
293 2007-07-13  Raja R Harinath  <rharinath@novell.com>
294
295         * class.c (mono_class_is_open_constructed_type)
296         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
297
298 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
299
300         * class.c (mono_bounded_array_class_get):  method fails if used with
301         an incomplete TypeBuilder enum (no basetype field), fixed it by 
302         avoiding calculating the size for such array as it cannot be instantiated.
303         Fix bug #82015
304
305 2007-07-12  Raja R Harinath  <rharinath@novell.com>
306
307         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
308         field.
309         * metadata.c, reflection.c: Update to changes.
310
311 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
312
313         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
314         mono_class_is_valid_enum, they are used to valide a enum when loading.
315         * reflection.c: used new functions to throw TypeLoadException when and
316         invalid enum is build with TypeBuilder. Fixes #82018
317   
318 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
319
320         * object.c: forgot commit of mono_class_setup_methods () to access
321         iface->methods.
322         * object-internals.h: added a few more handy fields to
323         MonoIMTCheckItem.
324
325 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
326
327         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
328         iface->methods.
329
330 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
331
332         * class-internals.h, object-internals.h, object.c: IMT-based
333         interface invocation core from Massimiliano Mantione
334         (massi@ximian.com) with a reworked arch-specific interface,
335         bsearch implementation and a few bugfixes and memory savings by me.
336
337 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
338
339         * class.c (mono_class_create_from_typedef): mono would segfault if 
340         an enum did not have a __value field. It now throws a TypeLoadException
341         for such cases. Fix bug #82022
342
343 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
344
345         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
346
347 2007-07-09  Mark Probst  <mark.probst@gmail.com>
348
349         * class.c (mono_class_init): If a class is already inited but has
350         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
351
352 2007-07-09  Mark Probst  <mark.probst@gmail.com>
353
354         * class.c: Properly handle the case of an unimplemented interface
355         method.  Fixes: 81673.
356
357 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
358
359         * class-internals.h, object.c: cleanup patch from massi: use
360         MonoVTable->interface_bitmap since the vtable interfaces offset array
361         is going away.
362
363 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
364
365         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
366         GetMDStreamVersion icall instead.
367
368 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
369
370         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
371         not use mono_dl_build_path() with a full library name: makes
372         fallbacks to libgaim and libfam work.
373
374 2007-07-06  William Holmes  <billholmes54@gmail.com>
375
376         * assembly.c: Added a continue statement in probe_for_partial_name when
377          parse_assembly_directory_name fails.  Fixes : 82002
378
379 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
380
381         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
382         and added a verification  for TYPEDBYREF.
383         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
384         make native int interchangeable with int32 and some small cleanup and formating.
385         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
386         handle byref of byref.
387         * verify.c (push_local): handle byref of byref.
388         * verify.c (do_binop): invalid mix of values is unverifiable
389         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
390         added visibility checks
391         * verify.c (field related method): added visibility checks
392         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
393
394 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
395
396         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
397         string.
398
399 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
400
401         * profiler.c (mono_profiler_load): Fix an off-by-one error.
402
403         * marshal.c (emit_marshal_string): When returning a string from managed code,
404         allways make a copy even for unicode strings. Fixes #81990.
405
406 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
407
408         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
409         of byref generic inst types (bug #81997).
410
411 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
412
413         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
414         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
415
416 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
417
418         * marshal.c (emit_marshal_string): Add support for unicode strings in
419         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
420
421 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
422
423         * verify.c: field load/store are now verified, missing only access checks now
424
425 2007-06-28  Martin Baulig  <martin@ximian.com>
426
427         * mono-debug.c (mono_debug_debugger_version): New public variable.
428
429 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
430
431         * locales.c: When constructing DateTimeFormat or NumberFormat for
432         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
433         MonoCultureInfo contructed from the current locale is always
434         read-only and has UseUserOverride set to true. All MonoCultureInfo
435         instances returned for GetCultures have both IsReadOnly and
436         UseUserOverride set to true. Fixes part of bug #81930.
437
438 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
439
440        * icall-def.h: Update System.__ComObject icalls
441        * marshal.c: Avoid managed transition (and object creation)
442        when looking up COM interface in RCW.
443        * marshal.h: Ditto.
444        
445        Code is contributed under MIT/X11 license.
446
447 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
448
449         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
450         to avoid crashes during assembly unloading.
451
452 2007-06-22  Raja R Harinath  <rharinath@novell.com>
453
454         Fix MethodInfo.IsGenericMethodDefinition
455         * reflection.c (mono_reflection_bind_generic_method_parameters):
456         Rearrange code to ensure we always uses a generic method definition.
457         * class.c (mono_class_inflate_generic_method_full): Set
458         'generic_container' field only for generic method definitions.
459         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
460         Use presense of 'generic_container' field as indication of being a
461         generic method definition.
462
463 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
464
465         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
466
467         * object-internals.h: Reflect changes in the layout of the managed Delegate
468         class.
469         
470         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
471         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
472         runtime memory used by the dynamic method. Fixes #77146.
473
474 2007-06-21  Dick Porter  <dick@ximian.com>
475
476         * file-io.h: 
477         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
478         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
479         81767.
480
481 2007-06-21  Raja R Harinath  <rharinath@novell.com>
482
483         * reflection.c (method_encode_methodspec): Add a tripwire.
484         * class.c (inflate_generic_type): The fully open generic type is
485         not the same as the generic type definition.
486
487 2007-06-21  Martin Baulig  <martin@ximian.com>
488
489         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
490
491         * mono-debug-debugger.h
492         (MonoDebuggerBreakpointInfo): Removed.
493         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
494         (mono_debugger_remove_breakpoint): Likewise.
495         (mono_debugger_breakpoint_callback): Likewise.
496         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
497
498 2007-06-21  Raja R Harinath  <rharinath@novell.com>
499
500         * metadata.c (mono_metadata_lookup_generic_class): The fully open
501         generic type is not the same as the generic type definition.
502         * class.c (mono_generic_class_get_class): Likewise.
503
504 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
505
506         * icall.c: The second argument to 
507         System.Reflection.MethodBase.GetMethodFromHandleInternalType
508         is a MonoType not a MonoClass.
509
510 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
511
512         * verify.c: support for function pointers in the verifier
513
514 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
515
516         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
517
518 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
519
520         * assembly.c: removed Mono.Data.SqliteClient from the list of
521         forward-compatible assemblies as it breaks the ABI (bug #81899).
522
523 2007-06-19  Raja R Harinath  <rharinath@novell.com>
524
525         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
526         lookup/update with the loader lock.
527         * reflection.c (mono_class_bind_generic_parameters): No need to
528         protect mono_metadata_lookup_* with the loader lock.
529         * class.c (inflate_generic_type): Likewise.
530         
531         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
532         on a generic instantiated type.
533
534 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
535
536         *verify.c: produce meanfull error messages on verification error
537         *verify.c: fixed some cases of verification errors reported as validation errors
538         *pedump.c: fixed the error name array, now it shows validation errors properly
539         *verify.h: fixed the contant that should be used for verification errors
540
541 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
542
543         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
544         for bug #77596, 81858 and 80743 (generics data structures on domain
545         unload).
546
547 2007-06-15  Raja R Harinath  <rharinath@novell.com>
548
549         Avoid allocating 'MonoGenericContext' on the heap.
550         * class-internals (_MonoMethodInflated::context): Make field
551         inline, not a pointer.
552         * loader.c (method_from_methodspec): Allocate 'new_context' on the
553         stack.  Use the context embedded within the inflated method as the
554         hash key, rather than 'new_context'.
555         * class.c (inflate_generic_context): Simplify.  Return a struct
556         rather than allocating on the heap.
557         (mono_class_inflate_generic_method_full): Update to changes.  Now,
558         doesn't salt away a copy of the context -- simplifying the
559         lifetime rules of a 'MonoGenericContext *'.
560         (mono_method_get_context): Return pointer to embedded context.
561         (setup_generic_array_ifaces): Allocate temporary context on stack.
562         * reflection.c (inflate_mono_method): Likewise.
563         (mono_reflection_bind_generic_method_parameters): Likewise.
564         Use the context embedded within the inflated method as the hash key.
565
566         Avoid a source of allocation of 'MonoGenericContext'.
567         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
568         and 'cached_context' fields into embedded 'MonoGenericContext' field.
569         * class.c: Update to changes.
570         (mono_generic_class_get_context): Simplify drastically.  Now just
571         returns a pointer to the field.
572         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
573         argument as a const pointer.
574         (mono_metadata_generic_context_equal): Likewise.
575         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
576         Update to changes.
577
578 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
579
580         * verify.c improved the handling of brtrue/brfalse, factored out common code
581
582 2007-06-14  Raja R Harinath  <rharinath@novell.com>
583
584         Kill MonoGenericMethod.
585         * class-internals.h (MonoGenericContext::method_inst): Rename from
586         'gmethod' and convert to a MonoGenericInst.
587         (MonoGenericMethod): Remove.
588         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
589         * loader.c (method_from_methodspec): Update to changes.  Use a
590         MonoGenericContext as the key to the hashtable.
591         * metadata.c (mono_metadata_generic_context_equal): Rename from 
592         'mono_metadata_generic_method_equal' and take MonoGenericContext.
593         (mono_metadata_generic_context_hash): Likewise from
594         'mono_metadata_generic_method_hash'.  Change hash function.
595         (mono_metadata_load_generic_params): Update to changes.
596         (mono_get_shared_generic_method): Remove.
597         * metadata-internals.h (mono_get_shared_generic_method): Remove.
598         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
599         (inflate_generic_context): Likewise.
600         (mono_class_inflate_generic_method_full): Likewise.
601         (setup_generic_array_ifaces): Likewise.
602         (mono_class_create_from_typespec): Likewise.
603         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
604         (method_encode_methodspec): Update callsite.
605         (reflection_methodbuilder_to_mono_method): Update to changes.
606         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
607         MonoGenericContext as the key to the hashtable.
608         (inflate_mono_method): Update to changes.
609
610         * class-internals.h (MonoGenericMethod::container): Remove.
611         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
612
613 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
614
615         * profiler-private.h, profiler.c, profiler.h: added API to profile
616         exception events.
617
618 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
619
620         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
621
622 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
623
624         * verify.c: method invocation is now validated, now we verify parameter types on stack.
625         Fixed overflow and underflow not aborting the verification process.
626
627 2007-06-13  Mark Probst  <mark.probst@gmail.com>
628
629         * class-internals.h (MonoStats): Added stats entries for dynamic
630         code allocations.
631
632 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
633
634         * loader.c (mono_free_method): Free header->locals and header->clauses.
635
636         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
637         dynamic case.
638
639         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
640
641         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
642
643 2007-06-12  Raja R Harinath  <rharinath@novell.com>
644
645         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
646         the tables.
647
648 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
649
650         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
651
652 2007-06-11  Raja R Harinath  <harinath@gmail.com>
653
654         MonoGenericMethod on a diet
655         * class-internals.h (_MonoMethodInflated::reflection_info): Move
656         here ...
657         (_MonoGenericMethod::reflection_info): ... from here.
658         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
659         Update to changes.
660         * reflection.c (inflate_mono_method): Likewise.
661         (mono_reflection_bind_generic_method_parameters): Likewise.
662
663 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
664
665         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
666         *verify.c: factored long ldarg forms to share code with short forms
667
668 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
669
670         *verify.c: fixed code formating factored some duplicate code
671         into a new function
672
673         *verify.h: fixed binary incompatibility introduced earlier
674
675         *pedump.c: fixed formating
676
677 2007-06-11  Raja R Harinath  <harinath@gmail.com>
678
679         Fix assertion when disassembling Mono.C5.dll
680         * loader.c (method_from_methodspec): Avoid inflating a method
681         twice with the same context.  If the methodref is inflated, use
682         the declaring method instead.
683
684         * class.c (mono_class_from_generic_parameter): Fix case similar to
685         bug #81830 handled below, but for method containers.
686
687 2007-06-10  Raja R Harinath  <harinath@gmail.com>
688
689         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
690         get_shared_generic_class.  Directly inflate the instance.
691         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
692         (inflate_generic_class): Delete.
693         (get_shared_generic_class): Delete.  Move setting of
694         'cached_class' and 'cached_context' ...
695         * metadata.c (mono_metadata_lookup_generic_class): ... here.
696
697         * metadata.c (mono_metadata_lookup_generic_class): Change
698         signature to take the components of a MonoGenericClass rather than
699         an allocated MonoGenericClass.  Change semantics to be intern-like.
700         * reflection.c (mono_class_bind_generic_parameters): Update to
701         changes.  Make locking region tighter.
702         * class.c (inflate_generic_class): Update to changes.
703         (get_shared_generic_class): Likewise.
704         * metadata-internals.h: Likewise.
705
706         * reflection.c (mono_class_bind_generic_parameters): Take and
707         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
708         (mono_reflection_bind_generic_parameters): Use
709         'mono_class_bind_generic_parameters' rather than duplicate the code.
710         * class.c (mono_bounded_array_class_get): Update to changes.
711         * object-internals.h: Likewise.
712
713         * reflection.c (mono_class_bind_generic_parameters): Only support
714         parameterizing generic type definitions.  Remove support for other
715         open types.
716
717 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
718
719         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
720
721         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
722         in the dynamic case.
723
724 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
725
726         * threads.c: When cleaning up thread, reset the Background bit.
727         Fixes bug #81720.
728
729 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
730
731        * metadata.c: Move variable declarations to top of scope.
732        * verify.c: Move variable declarations to top of scope.
733
734        Code is contributed under MIT/X11 license.
735
736 2007-06-08  Raja R Harinath  <rharinath@novell.com>
737
738         * reflection.c (mono_class_bind_generic_parameters): Replace
739         open-coded loop with mono_metadata_inflate_generic_inst.
740
741         * class.c (get_shared_generic_class): Don't call
742         mono_get_shared_generic_inst.  Use the container's own
743         'class_inst'.
744
745         * metadata.c (mono_metadata_load_generic_params): Move
746         initialization of 'context' field here from ...
747         * class.c (mono_class_create_from_typedef): ... here, and ...
748         * loader.c (mono_get_method_from_token): ... here.
749
750         * class.c (get_shared_generic_class): Rename from
751         mono_get_shared_generic_class and make static.
752         (mono_get_shared_generic_inst): Move to metadata.c.
753         * loader.c (mono_get_shared_generic_method): Likewise.
754         * class-internals.h, metadata-internals.h: Update to changes.
755
756         Fix #81830
757         * class.c (mono_class_from_generic_parameter): Don't assume a
758         generic container owner exists.  Generic containers from monodis
759         don't have any.
760
761 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
762
763         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
764         * verify.h: new typedefs to returns the non-verifiable status
765         * verify.c: initial implementation of generics, stack merging and object compatibility check
766
767 2007-06-06  Mark Probst  <mark.probst@gmail.com>
768
769         * class.c, image.c, class-internals.h (MonoImage): class_cache is
770         a MonoInternalHashTable again (fixed bug in internal hash table
771         code).
772
773 2007-06-06  Mark Probst  <mark.probst@gmail.com>
774
775         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
776         MonoInternalHashTable again (fixed bug in internal hash table
777         code).
778
779 2007-06-06  Mark Probst  <mark.probst@gmail.com>
780
781         * class.c, image.c, class-internals.h, domain.c,
782         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
783         changes.  Have to figure out what makes them break the SWF
784         regression.
785
786 2007-06-04  Mark Probst  <mark.probst@gmail.com>
787
788         * class.c, image.c, class-internals.h (MonoImage): class_cache is
789         a MonoInternalHashTable now.
790
791 2007-06-04  Mark Probst  <mark.probst@gmail.com>
792
793         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
794         MonoInternalHashTable now.
795
796 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
797
798         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
799         invoke_impl code.
800
801         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
802
803         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
804         dependent trampoline.
805
806         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
807
808         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
809
810 2007-05-29  Robert Jordan  <robertj@gmx.net>
811
812         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
813
814 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
815
816         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
817
818 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
819
820        * marshal.c: Fix interface lookup loops for
821        cominterop_get_com_slot_for_method and 
822        cominterop_get_method_interface. Only need to lookup
823        if type is a class, else use interface type method is on.
824
825        Code is contributed under MIT/X11 license.
826
827 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
828
829         * reflection.c: HasSecurity can be present even if no specially 
830         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
831         SecurityAttribute). Fix CAS regression tests on buildbot.
832
833 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
834
835        * appdomain.c: Add configure checks for header files.
836        * image.c: Add configure checks for header files.
837        * file-io.c: Add configure checks for header files.
838        * debug-mono-symfile.c: Add configure checks for header files.
839        * threadpool.c: Add configure checks for header files.
840        * console-io.c: Add configure checks for header files.
841        * profiler.c: Add configure checks for header files.
842        * rawbuffer.c: Add configure checks for header files.
843        * icall.c: Add configure checks for header files.
844        * rand.c: Add configure checks for header files.
845        * socket-io.c: Add configure checks for header files.
846
847        Code is contributed under MIT/X11 license.
848
849 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
850
851         * reflection.c (mono_custom_attrs_from_builders): Remove the 
852         assertion as it breaks the build.
853         
854         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
855
856         * reflection.c (lookup_custom_attr): Make a copy here too.
857
858         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
859         dynamic images.
860
861         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
862         images.
863
864         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
865         info.
866
867 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
868
869         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
870         (load_cattr_value): Ditto.
871
872 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
873
874         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
875
876 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
877
878         * threads.c: In "start_wrapper", set apartment_state to MTA if
879         apartment_state is Unknown and we're running on 2.0 profile or
880         higher.
881         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
882         to main method, then set apartment_state to Unknown on 1.0 profile,
883         and MTA on 2.0 profile.
884
885 2007-05-16  Jb Evain  <jb@nurv.fr>
886
887         * class-internals.h (MonoDefaults): Add an attribute_class and
888           customattribute_data_class.
889         * domain.c (mono_init_internal): Populate them.
890         * reflection.c: Use them to remove duplicates. Make a vew
891         MonoClass variables `static'.
892
893 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
894
895         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
896         step in implementing IMT, so that all isinst checks now can go
897         through the bitmap.
898         This was needed because vtables for TransparentProxy need to look
899         like the vtable of the "target" class, so they need to point to
900         its interface bitmap directly.
901
902         * object.c: inside "mono_class_create_runtime_vtable" and
903         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
904
905 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
906
907         * object-internals.h
908           culture-info.h : added territory field in MonoCulture and
909           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
910         * locales.c : fill territory field above too.
911         * culture-info-table.h : regenerated.
912
913 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
914
915         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
916         Fixes #81599.
917
918 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
919
920         * object.c: Always initialize apartment, even if 
921         there is no custom attributes on entry point.
922         
923         Code is contributed under MIT/X11 license.
924
925 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
926
927         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
928         * metadata.c: If no encoding is set, check for unicode
929         on class.
930         
931         Code is contributed under MIT/X11 license.
932
933 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
934
935         * threads.c: Handle if mono_thread_current returns NULL 
936         
937         Code is contributed under MIT/X11 license.
938
939 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
940
941         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
942         in start_wrapper. Added mono_thread_init_apartment_state and
943         mono_thread_cleanup_apartment_state.
944         * object.c: Initialize thread apartment state on main thread
945         by checking for STAThreadAttribute on entry point.
946         * object-internals.h: Add apartment_state field to MonoThread.
947         * threads-types.h: Add unmanaged definition of 
948         System.Threading.ApartmentState, MonoThreadApartmentState.
949         
950         Code is contributed under MIT/X11 license.
951         
952 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
953
954         * class.c: Fix windows build.
955         * class-internals.h: Fix windows build.
956         
957         Code is contributed under MIT/X11 license.
958
959 2007-05-08  Robert Jordan  <robertj@gmx.net>
960
961         * process.c (CreateProcess_internal):
962         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
963         .CreateNoWindow was specified. Fixes #81496.
964
965 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
966
967         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
968         step in implementing IMT, replaced it with two compact arrays
969         (interfaces_packed and interface_offsets_packed) and a bitmap that
970         is used for isinst checks (interface_bitmap).
971
972         * class.c: (compare_interface_ids): compare function to pass to
973         bsearch when looking for an interface with a given id.
974         (mono_class_interface_offset): reimplemented using bsearch on
975         interfaces_packed, getting the offset from interface_offsets_packed.
976         (print_implemented_interfaces): utility debugging function.
977         (setup_interface_offsets): reworked to initialize interfaces_packed,
978         interface_offsets_packed and interface_bitmap.
979
980         * object.c: replaced all accesses to "MonoClass.interface_offsets"
981         with uses of interfaces_packed and interface_offsets_packed.
982
983 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
984
985         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
986         mono_class_interface_offset prototype to wrap all accesses to
987         "MonoClass.interface_offsets".
988
989         * class.c: Implemented mono_class_interface_offset, and wrapped all
990         accesses to "MonoClass.interface_offsets".
991
992         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
993         "MonoClass.interface_offsets".
994
995 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
996
997         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
998         GetMethodFromHandle overloads (bug #78637).
999
1000 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
1001
1002         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
1003         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
1004
1005 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
1006
1007         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
1008         #81498.
1009
1010         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
1011         gracefully.
1012         (mono_custom_attrs_from_index): Ditto.
1013
1014         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
1015         Fixes #81501.
1016
1017 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
1018
1019         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
1020         is now allocated from a mempool.
1021
1022 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
1023
1024         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
1025         caller holds threads_lock, leading to deadlocks. Fixes #81476.
1026
1027 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
1028
1029         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
1030         mono_loader_clear_error () too late. Fixes #81463.
1031
1032 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
1033
1034         * culture-info-table.h : regenerated.
1035
1036 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
1037
1038         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
1039         is missing.
1040
1041 2007-04-25  Dick Porter  <dick@ximian.com>
1042
1043         * Makefile.am: Put the mingw enforced-optimisation back into the
1044         PLATFORM_WIN32 section.
1045
1046 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
1047
1048         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
1049         patch.
1050
1051         * image.c (mono_image_load_module): New API function to load a module reference.
1052
1053         * image.c (load_modules): Load modules lazily. Fixes #80812.
1054
1055         * class.c (mono_class_from_typeref): Use mono_image_load_module.
1056         
1057         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
1058
1059         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
1060         to mono_image_load_module_dynamic.
1061
1062 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
1063
1064         * marshal.c: Fix calling convention for CCW on non-windows
1065         platforms. STDCALL on windows, CDECL everywhere else to work 
1066         with XPCOM and MainWin COM.
1067         
1068         Code is contributed under MIT/X11 license.
1069
1070 2007-04-23  Martin Baulig  <martin@ximian.com>
1071
1072         Fix #80969.
1073
1074         * loader.c
1075         (method_from_memberref): Added `gboolean *used_context' argument.
1076         (mono_get_method_from_token): Likewise.
1077         (mono_get_method_full): Don't insert the method in the cache when
1078         `used_context' is true.
1079
1080 2007-04-23  Raja R Harinath  <rharinath@novell.com>
1081
1082         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
1083
1084         * reflection.c (mono_reflection_bind_generic_parameters): Don't
1085         create new MonoTypes for returned types.
1086         * class.c (mono_generic_class_get_class): Export mono-internal.
1087         * class-internals.h: Update to changes.
1088
1089 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
1090
1091         * threadpool.c, threadpool.h, icall-def.h: patch from
1092         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
1093
1094 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
1095
1096         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
1097         
1098         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
1099
1100         * threads.c (mono_thread_get_stack_bounds): New helper function.
1101
1102         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
1103         Correctly compute stack bounds when attaching. Fixes #81394.
1104
1105 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
1106
1107         * reflection.c: fix handling of doubles in custom attributes
1108         for the arm-fpa format (bug #81368).
1109
1110 2007-04-18  Raja R Harinath  <rharinath@novell.com>
1111
1112         * reflection.c (assembly_add_win32_resources): Mildly relax an
1113         bounds check to let the end pointer point just past the end of the
1114         allocated buffer.  (may fix #81384)
1115
1116 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
1117
1118         * culture-info-table.h : regenerated.
1119
1120 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
1121
1122         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
1123         the thread is aborted early.
1124
1125 2007-04-05  Dick Porter  <dick@ximian.com>
1126
1127         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
1128         FindFirstFile()/FindNextFile() to find entries.  This lets the
1129         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
1130         81038.
1131
1132         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
1133         the parameters of
1134         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
1135
1136 2007-04-04  Martin Baulig  <martin@ximian.com>
1137
1138         * debug-helpers.c
1139         (mono_method_desc_full_match): Add support for nested classes.
1140
1141 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
1142
1143         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
1144
1145 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
1146
1147         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
1148         waiting for too many threads.
1149
1150 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
1151
1152         * environment.c: Fix return value check on uname so we can get the 
1153         executing version on Solaris operating systems.
1154
1155 2007-03-28  Jb Evain  <jbevain@gmail.com>
1156
1157         * class.c (mono_type_get_name_recurse): Complete the
1158         fix for the creation of assembly qualified names for
1159         pointer types. Fixes #81208.
1160
1161 2007-03-27  Dick Porter  <dick@ximian.com>
1162
1163         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
1164         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
1165         changed.
1166
1167         * threads.c
1168         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
1169         the value of ReleaseMutex().
1170
1171 2007-03-27  Dick Porter  <dick@ximian.com>
1172
1173         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
1174         in little-endian order, not network endian, so must be converted
1175         to host endian here.  Fixes bug 80593.
1176
1177 2007-03-22  Jb Evain  <jbevain@gmail.com>
1178
1179         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
1180         qualified names for pointer types. Fixes #81208.
1181
1182 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
1183
1184         * marshal.c: Add support for PreserveSigAttribute. 
1185         
1186         Code is contributed under MIT/X11 license.
1187
1188 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
1189
1190         * process.c: Fix endianness issues. Fixes #81126.
1191
1192         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
1193         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
1194
1195         * image.c (mono_image_lookup_resource): Make this work on big-endian
1196         machines.Change API contract so the caller needs to free the return value.
1197         
1198         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
1199         API change.
1200         
1201 2007-03-14  Martin Baulig  <martin@ximian.com>
1202
1203         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
1204         mono_type_get_desc() as well.
1205
1206 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
1207
1208         * icall.c:  Fix environ access in VS.  
1209         
1210 2007-03-13  Alp Toker  <alp@atoker.com>
1211
1212         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
1213         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
1214         #63841.
1215
1216 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
1217
1218         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
1219         circular references among dynamic methods. Fixes #81091.
1220
1221         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
1222
1223 2007-03-09  Martin Baulig  <martin@ximian.com>
1224
1225         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
1226
1227 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
1228
1229         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
1230         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
1231         
1232         Code is contributed under MIT/X11 license.
1233         
1234 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
1235
1236         * loader.c: Reapply patch for bug #79424.
1237
1238 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1239
1240         * metadata.c (mono_type_to_unmanaged): Only convert object to
1241         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
1242
1243 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
1244
1245         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
1246         (and incorrectly set) is_reference field from MonoGenericInst.
1247
1248 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
1249
1250         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
1251         a little earlier.
1252
1253         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
1254
1255         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
1256
1257 2007-03-05  Miguel de Icaza  <miguel@novell.com>
1258
1259         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
1260         FileOptions.1 value to mean "temporary", map that to
1261         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
1262
1263         Fixes 80688
1264
1265 2007-03-03  Marek Habersack  <mhabersack@novell.com>
1266
1267         * appdomain.c: implement MS .Net style shadow copying. Copies of
1268         the assemblies are made in a subdirectory of the dynamic base
1269         directory, the assembly names are preserved.
1270         Copy .mdb and .config files along with the assemblies being shadowed.
1271
1272 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1273
1274         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
1275         (emit_marshal_handleref): Ditto.
1276
1277         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
1278         on Visual C++. Fixes #80671.
1279
1280 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
1281
1282         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
1283         for clone operations.
1284
1285 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
1286
1287         * marshal.c: Fix warnings.
1288
1289 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
1290
1291         * loader.c: allow case-insensitive matching of the dll name
1292         in dllmap handling when prefixed with "i:".
1293
1294 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
1295
1296         * threads.c: Fix #ifdef for dummy_apc function for VS.
1297
1298 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
1299
1300         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
1301
1302 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
1303         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
1304         giving precedence to the methods with a fully qualified name
1305         (InterfaceName.MethodName) when building the interface sections
1306         of the vtable.
1307
1308 2007-02-16  Dick Porter  <dick@ximian.com>
1309
1310         * threadpool.c (append_job): Fix fast-path array handling, so it's
1311         less likely the array will grow exponentially when the load is
1312         heavy.
1313
1314 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1315
1316         * metadata-internals.h, loader.c: fix dllmap lookup order
1317         for non-function maps, too, and prepare for fallback code.
1318
1319 2007-02-12  Robert Jordan  <robertj@gmx.net>
1320
1321         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
1322         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
1323         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
1324         GlobalFree. Fixes a part of bug #77075.
1325
1326 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
1327
1328         * loader.c: implemented typedef parent in field memberref.
1329
1330 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
1331
1332         * marshal.c: Fix warnings and remember to call Release on
1333         IUnknown of RCW.
1334         
1335         Code is contributed under MIT/X11 license.
1336
1337 2007-02-10  Miguel de Icaza  <miguel@novell.com>
1338
1339         * class-internals.h: Add MonoHandleRef definition, and
1340         handleref_class to mono_defaults. 
1341
1342         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
1343         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
1344
1345         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
1346         (do nothing on this stage)
1347         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
1348         (emit_marshal_handleref): New method, used for argument handling
1349         of HandleRefs. 
1350
1351 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
1352
1353         * class.c (mono_class_setup_parent): Lazily init com types.
1354         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
1355         init com types.
1356         * object.c (mono_remote_class_vtable): Lazily init com types.
1357         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
1358         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
1359         * domain-internals.h: Expose mono_init_com_types.
1360         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
1361         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
1362         Add support for COM Callable Wrapper marshalling.
1363         * marshal.h: Add icall definitions.
1364         * gc.c: Handle freeing of CCWs in finalizer code.
1365         
1366         Code is contributed under MIT/X11 license.
1367
1368 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
1369
1370         * reflection.c: changed all the signature encoding code to use
1371         a variable-sized buffer.
1372
1373 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1374
1375         * marshal.c: locking fixes: never take the loader lock
1376         or other runtime locks when holding the marshal lock
1377         (fixes bug#80664).
1378
1379 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
1380
1381         * marshal.c: make the delegate function pointer mapping
1382         work for the moving GC.
1383
1384 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
1385
1386         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
1387         for bug #80618.
1388
1389 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
1390
1391         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
1392         gmodule.
1393
1394 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
1395
1396         * threadpool.c: made the code moving-GC safe.
1397
1398 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
1399
1400         * assembly.c, boehm-gc.c, class-internals.h, class.c,
1401         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
1402         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
1403         warning cleanup.
1404         * reflection.c: warning cleanup, some threading and moving GC fixes.
1405
1406 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
1407
1408         * class.c, loader.c: create the needed Set/Get/Address array methods
1409         as well as the .ctors in mono_class_init (), fixes bug #80567.
1410
1411 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
1412
1413         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
1414         we doesn't decrease its alignment. Should fix the sparc build.
1415
1416 2007-01-24  Dick Porter  <dick@ximian.com>
1417
1418         * socket-io.c
1419         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1420         Create the returned object if we need to ignore an unsupported
1421         socket option.  Fixes a segfault reported by Atsushi.
1422
1423 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
1424
1425         * class.c, object.c: restrict GC-tracked fields to
1426         UIntPtr fields used inside corlib, so we provide better
1427         type info to the GC and also allow broken packing as in
1428         bug #80580.
1429
1430 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
1431
1432         * sgen-gc.c: removed duplicated function.
1433
1434 2007-01-19  Miguel de Icaza  <miguel@novell.com>
1435
1436         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
1437         value that means that the value is not supported, but that we
1438         should not return a failure, but instead report this as a
1439         successful operation.
1440
1441 2007-01-19  Raja R Harinath  <rharinath@novell.com>
1442
1443         Fix tests/bug79956.2.il
1444         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
1445         (mono_generic_class_get_class): If the generic definition in an
1446         enum, copy over other fields related to it.
1447
1448 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
1449
1450         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
1451         genericinst enums (bug #79215).
1452
1453 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
1454         * class.c: Fix bug 80307.
1455
1456 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
1457
1458         * image.c: if the file table is not present, try to load
1459         all the modules, since we don't have info about them
1460         having or not metadata (bug #80517).
1461         * assembly.c: allow mono_assembly_load_references () to
1462         work for netmodules.
1463
1464 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
1465
1466         * image.c, metadata-internals.h, object.c: execute module
1467         cctors when running on the 2 runtime if present (bug #80487).
1468
1469 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
1470
1471         * icall.c: optimized InitializeArray() on bigendian.
1472
1473 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
1474
1475         * icall.c: fix for the broken ARM FPA double format.
1476
1477 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
1478
1479         * icall.c: handle endian issues for r4 and r8 types, too, in
1480         the InitializeArray() icall.
1481
1482 2007-01-15  Miguel de Icaza  <miguel@novell.com>
1483
1484         * loader.c (mono_loader_error_prepare_exception): Clear the error
1485         once we have extracted the information from it, do this before we
1486         call into the JIT's class loading mechanisms.
1487
1488         * object.c (mono_class_create_runtime_vtable): Do not clear the
1489         loader error before calling mono_class_get_exception_for_failure
1490         as the loader error is needed inside
1491         mono_class_get_exception_for_failure to throw the error (thinko).
1492
1493         Fixes #80521
1494         
1495 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
1496
1497         * reflection.c: align fields rva data so it's faster to load at
1498         runtime.
1499
1500 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1501
1502         Prepare to simplify GenericMethod handling.
1503         * class-internals.h (mono_method_get_context): New accessor function.
1504         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
1505         rather than directly accessing '->context' field.
1506
1507         * class-internals.h (_MonoGenericParam.method): Move ...
1508         (_MonoGenericContainer): ... here.  Add into union with klass field.
1509         * class.c, icall.c, loader.c, metadata.c, reflection.c:
1510         Update to changes.
1511
1512 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
1513
1514         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
1515         the wrapper type enum and reduce relocations.
1516
1517 2007-01-12  Raja R Harinath  <rharinath@novell.com>
1518
1519         * reflection.c (inflate_mono_method): Reuse method instantiation
1520         from the generic method, if available.
1521
1522 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1523
1524         * marshal.c (emit_marshal_variant): Fix conv_arg
1525         type in last commit, based on whether parameter is byref.
1526         
1527 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1528
1529         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
1530         marshalling.
1531         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
1532         MONO_TYPE_OBJECT back for VARIANT support.
1533
1534 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
1535
1536         * marshal.c, marshal.h, icall-def.h: Implement 
1537         Marshal.ReAllocCoTaskMem.
1538
1539 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
1540
1541         * marshal.c: memory retention fixes: use the proper
1542         image cache for runtime_invoke method lookups.
1543
1544 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
1545
1546         * mempool.c: added code to help debug mempool allocations.
1547
1548 2007-01-11  Dick Porter  <dick@ximian.com>
1549
1550         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
1551         support (experimenting with faking it with IP_MTU_DISCOVER for
1552         systems that don't have IP_DONTFRAGMENT.)
1553         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
1554         icall.
1555
1556         * icall-def.h: new System.Net.Sockets.Disconnect icall.
1557
1558         * socket-io.h: Add new fields to MonoSocketAsyncResult
1559         corresponding to the new ones in Socket.cs.
1560
1561 2007-01-11  Raja R Harinath  <rharinath@novell.com>
1562
1563         Fix IronPython regression mentioned in #80249
1564         * metadata.c (do_mono_metadata_parse_generic_class): Clear
1565         'cached_context' field, since it may have been initialized as a
1566         side-effect of metadata parsing.
1567
1568         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
1569         (_MonoGenericClass.cached_class): Move here and rename from lone
1570         remaining field of ...
1571         (_MonoInflatedGenericClass): ... this.  Remove.
1572         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
1573         to changes.
1574
1575         Fix mcs/tests/test-128.cs regression.
1576         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
1577         2007-01-10 change below.
1578         [MONO_TYPE_OBJECT]: Recurse into array case.
1579
1580 2007-01-11  Raja R Harinath  <harinath@gmail.com>
1581
1582         * class-internals.h (mono_get_inflated_generic_class): Remove.
1583         * class.c (mono_get_inflated_generic_class): Remove.
1584         (mono_generic_class_get_class): Rename from
1585         mono_class_create_generic.
1586         (mono_class_from_mono_type) [GENERICINST]: Use it.
1587         * reflection.c, metadata.c: Update to changes.  Use
1588         'mono_class_from_mono_type'.
1589
1590 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
1591
1592         * reflection.c: use passed type when encoding an array element
1593         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
1594
1595 2007-01-09  Robert Jordan  <robertj@gmx.net>
1596
1597         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
1598         result arguments (someDelegate.EndInvoke (unrelatedAres)).
1599         Fixes bug #80392.
1600
1601 2007-01-09  Raja R Harinath  <rharinath@novell.com>
1602
1603         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
1604
1605         * object.c (set_value): Avoid aliasing between type->data.klass
1606         and type->data.generic_class.
1607
1608         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
1609
1610 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1611
1612         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
1613         between type->data.klass and type->data.generic_class.
1614
1615 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
1616
1617         * marshal.c: In MS.NET, StringBuilder objects are not copied by
1618         value in out parameters.
1619
1620 2007-01-08  Raja R Harinath  <rharinath@novell.com>
1621
1622         Simplify invariant for MonoGenericClass::klass field.
1623         * class.c (mono_class_create_generic): Verify 'klass' is null.
1624         * metadata.c (do_mono_metadata_parse_generic_class): Don't
1625         initialize 'klass' field.
1626
1627 2007-01-05  Raja R Harinath  <rharinath@novell.com>
1628
1629         Ongoing work to avoid redundant data and simplify invariants.
1630         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
1631         'generic_class', and change type to a GenericInst.
1632         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
1633         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
1634
1635 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1636
1637         * class.c : skip io-layer under PLATFORM_WIN32.
1638
1639 2007-01-03  Tor Lillqvist  <tml@novell.com>
1640
1641         Fix #80305: In a bundled executable, look in the bundled exe
1642         assembly to determine the runtime version. Add the possibility to
1643         bundle also the machine.config file.
1644         
1645         * assembly.c (mono_assembly_open_from_bundle): Make
1646         non-static. Allow being called even if we have no bundled
1647         assemblies, and return NULL right away in that case.
1648
1649         * domain-internals.h: Declare mono_assembly_open_from_bundle()
1650         here.
1651
1652         * domain.c (app_config_parse): Take an assembly exe file name as
1653         parameter instead of a config file name. Check for a bundled
1654         config file for that assembly by calling
1655         mono_config_string_for_assembly_file() (see below) before looking
1656         for one in the file system.
1657         (get_runtimes_from_exe): Corrsponding change to call of
1658         app_config_parse().
1659         (get_runtimes_from_exe): Check for bundled assembly exe file first
1660         by calling mono_assembly_open_from_bundle(). If no bundled
1661         assembly exe file is found, call mono_image_open() as before to
1662         look it up in the file system.
1663
1664         * mono-config.c: Add variable bundled_machinec_onfig.
1665         (mono_config_string_for_assembly_file): New function.
1666         (mono_config_for_assembly): Move code snippet that looks for a
1667         bundled assembly .config file into the above new function. Call
1668         it.
1669         (mono_register_machine_config, mono_get_machine_config): New
1670         functions to set and retrieve
1671
1672         * assembly.h: Declare mono_register_machine_config().
1673
1674         * mono-config.h: Declare mono_get_machine_config() and
1675         mono_config_string_for_assembly_file().
1676
1677         * icall.c: No declaration of environ necessary on Win32. It is
1678         declared (as a macro expanding to a function call) in stdlib.h.
1679         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
1680         New internal mono function. Returns the value of
1681         mono_get_machine_config() as a Mono string.
1682
1683         * icall-def.h: Add get_bundled_machine_config().
1684
1685 2007-01-04  Raja R Harinath  <rharinath@novell.com>
1686
1687         Remove redundant field
1688         * class-internals.h (_MonoGenericContext.container): Remove field.
1689         * loader.c (mono_method_get_signature_full): Don't parse a
1690         "container" for a signature parse when the signature is inflated
1691         immediately.
1692         (method_from_methodspec): Likewise, for a generic_inst.
1693         * class.c, metadata.c, reflection.c: Update to changes.
1694
1695 2006-01-04  Raja R Harinath  <rharinath@novell.com>
1696
1697         * class-internals.h (_MonoGenericClass): Rename 'context' field to
1698         'cached_context', and change semantics -- it starts off NULL, and
1699         is initialized on demand.
1700         * class.c (mono_generic_class_get_context): New accessor to
1701         replace 'context' field accesses.
1702         (mono_class_get_context): New helper.
1703         (*): Update to changes.
1704         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
1705
1706 2007-01-03  Miguel de Icaza  <miguel@novell.com>
1707
1708         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
1709         before the memcpy.   Fixes Marshal2 regression.
1710
1711 2007-01-02  Jb Evain  <jbevain@gmail.com>
1712
1713         * blob.h: add a MONO_TYPE_ENUM definition
1714         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
1715         fix the encoding of arrays of enums in custom attributes.
1716
1717         Fixes #79666.
1718
1719 2007-01-01  Miguel de Icaza  <miguel@novell.com>
1720
1721         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
1722         string is null terminated, but only cut the string short if it
1723         overflows the buffer.   
1724         
1725         (mono_string_to_byvalstr): Also fix this routine.   The code here
1726         was not properly terminating a string (it was only terminated
1727         because of the previous catch-all memset). 
1728
1729         I left the memset, because I do not know if applications expect
1730         the runtime to clear this region. 
1731
1732         Fixes #79944.
1733
1734         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
1735         Clear the error before returning to unmanaged code to prevent the
1736         runtime from being confused later on (fixes  80420).
1737         (ves_icall_type_from_name): Always call mono_loader_clear_error
1738         after parsing a type that could have failed.
1739         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
1740
1741         * loader.c (mono_loader_clear_error): Fix indentation.
1742
1743 2006-12-28  Martin Baulig  <martin@ximian.com>
1744
1745         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
1746
1747 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
1748
1749         * reflection.c: patch from Rolf Bjarne Kvinge to fix
1750         getting a token for an EnumBuilder.
1751
1752 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1753
1754         * reflection.c: be more careful in case resource generation
1755         fails to create the data array.
1756
1757 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
1758
1759         * sgen-gc.c: write barrier for clone and fix unregister handles.
1760
1761 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
1762
1763         * reflection.c: some fixes needed in the generics code for the moving GC.
1764
1765 2006-12-22  Robert Jordan  <robertj@gmx.net>
1766
1767         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
1768         account. Fixes bug #80299.
1769
1770 2006-12-21  Raja R Harinath  <rharinath@novell.com>
1771
1772         Fix WaitHandle usage in delegates.
1773         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
1774         * object.c (mono_wait_handle_new): Use the property set method to
1775         initialize the handle.
1776         (mono_wait_handle_get_handle): New.
1777         * threadpool.c (mono_async_invoke): Use it.
1778         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
1779         Likewise.
1780         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
1781
1782 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
1783
1784         * marshal.c (emit_marshal): Call emit_marshal_variant and
1785         emit_marshal_com_interface when applicable.
1786         (emit_marshal_variant, emit_marshal_com_interface): Add
1787         methods for this case and remove if's from emit_marshal_object.
1788         
1789 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
1790
1791         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
1792
1793 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
1794
1795         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
1796         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
1797         and GlobalFree on Windows. Remove FIXME.
1798
1799 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1800
1801         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
1802         implementation for managed objects.
1803
1804 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
1805
1806         * object.c: implemented code to be used for checking
1807         that no reference field overlaps with non-references.
1808
1809 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1810
1811         * threadpool.c: fix queue code to be compatible with the
1812         moving GC.
1813
1814 2006-12-18  Miguel de Icaza  <miguel@novell.com>
1815
1816         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
1817         in structures by throwing ArgumentNullException.
1818
1819         (emit_marshal_safehandle): Also when they are null parameters.
1820
1821         (emit_marshal_safehandle): Add support for ref
1822         SafeHandles parameters
1823
1824 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1825
1826         * profiler.c: updated to use the mono-dl API instead of
1827         gmodule.
1828
1829 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1830
1831         * profiler.c: updated to use the mono-dl dynamic loading
1832         API instead of gmodule.
1833
1834 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
1835
1836         * profiler.c: use readlink, older versions of glib don't have
1837         g_file_read_link ().
1838
1839 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1840
1841         * profiler.c: try to detect the path to mono if libc fails to provide
1842         a useful name (bug #80286).
1843
1844 2006-12-16  Raja R Harinath  <rharinath@novell.com>
1845
1846         Fix #80242
1847         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
1848         instance, use the generic type definition instead.
1849         (ves_icall_Type_GetNestedTypes): Likewise.
1850         * class.c (mono_class_create_generic): Always set the
1851         nested_classes of a generic instance to NULL, even if the generic
1852         type definition has nested types.
1853
1854 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
1855
1856         * marshal.c (mono_string_from_bstr): Revert previous Windows change
1857         and fix on Linux.
1858         
1859 2006-12-15  Miguel de Icaza  <miguel@novell.com>
1860
1861         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
1862         my arguments were in the wrong order.   I also fixed the Windows
1863         version which seems to have had the same issue.
1864
1865         (mono_free_bstr): On Unix, this is g_free.
1866         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
1867         conversions (for the tests in corlib to pass).
1868
1869 2006-12-14  Miguel de Icaza  <miguel@novell.com>
1870
1871         * marshal.c (emit_ptr_to_object_conv): For now, ignore
1872         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
1873         exception if a ref SafeHandle in a struct has changed).
1874         
1875         (emit_struct_conv): Do not perform layout checks for classes
1876         derived from SafeHandle, as those are specially handled. 
1877
1878         (emit_object_to_ptr_conv): Add support for
1879         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
1880
1881         (emit_marshal_safehandle): Implement conversion of return values
1882         of safehandles (MARSHAL_ACTION_CONV_RESULT).
1883         
1884         * threads.c: WaitHandle now is compiled with two different handles
1885         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
1886         for 2.0.
1887         
1888         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
1889         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
1890         these routines to cope with both kinds of fields.
1891
1892 2006-12-12  Miguel de Icaza  <miguel@novell.com>
1893
1894         * metadata.c (mono_type_to_unmanaged): Handle the case where
1895         type->data.klass is a SafeHandle, and in that case, return the
1896         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
1897         MONO_MARSHAL_CONV_SAFEHANDLE. 
1898
1899 2006-12-11  Miguel de Icaza  <miguel@novell.com>
1900
1901         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
1902         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
1903         calling emit_marshal_object.
1904
1905         (emit_marshal_safehandle): Implement marshalling of
1906         SafeHandle parameters (no ref support yet).
1907
1908         (MarshalAction): Document the defines as I implement
1909         them for SafeHandle.
1910
1911         (emit_marshal_object): indentation police.
1912
1913         * class-internals.h: Define MonoSafeHandle.
1914         Add safehandle_class to MonoDefaults type.
1915
1916         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
1917         list of classes to check for fields. 
1918
1919         * domain.c (mono_init_internal): Add SafeHandle to the list of
1920         mono_defaults loaded.
1921
1922 2006-12-15  Raja R Harinath  <rharinath@novell.com>
1923
1924         Fix #80253
1925         * reflection.c (mono_reflection_bind_generic_parameters): If the
1926         generic type definition is a type builder, ensure that it is fully
1927         initialized before instantiating it.  Kill some dead code.
1928
1929 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
1930
1931         * object.c: clear the loader_error () before loading
1932         more metadata stuff (bug #80258).
1933
1934 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
1935
1936         * icall.c, icall-defs.h: type modifiers icalls for
1937         parameters and properties.
1938
1939 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
1940
1941         * object.c, icall.c: fixed warnings.
1942
1943 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1944
1945         * marshal.c: fixed a couple of leaks and coding style in a few places.
1946
1947 2006-12-08  Dick Porter  <dick@ximian.com>
1948
1949         * process.c: Cope with NULL ProcessStartInfo arguments on windows
1950         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
1951         80173.
1952
1953 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1954
1955         * process.c: ProcessStartInfo may have only filename set and
1956         arguments can be NULL.
1957
1958 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1959
1960         * icall.c: fix leak found by Robert Jordan.
1961
1962 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
1963
1964         * marshal.c, marshal.h: generate managed method to access an element
1965         of a multi-dimensional array.
1966
1967 2006-11-30  Paolo Molaro (lupus@ximian.com)
1968
1969         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
1970
1971 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1972
1973         * icall.c: back out GetFields () fix until the serialization code is
1974         fixed to not depend on the incorrect behaviour.
1975
1976 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
1977
1978         * profiler.c: provide defaults if none are set.
1979
1980 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
1981
1982         * Makefile.am, attrdefs.h: new public header file with
1983         constants for attributes for use by embedders.
1984
1985 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
1986
1987         * icall.c: GetFields () fix for bug #80064.
1988
1989 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
1990
1991         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
1992         removed long unused icalls.
1993
1994 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
1995   
1996         * marshal.c: 
1997                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
1998                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
1999                 can be generated without a delegate class.
2000                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
2001         
2002         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2003
2004 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2005
2006         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
2007         #80069.
2008
2009 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2010
2011         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
2012         icall-def.h: added icalls needed by System.GC.
2013
2014 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
2015
2016         * loader.c: ensure the class in catch clauses is handled
2017         correctly for generics methods (fixes bug#79980).
2018
2019 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
2020
2021         * monitor.h, monitor.c: added mono_locks_dump () function
2022         to help debug deadlocks involving managed locks.
2023
2024 2006-11-13  Dick Porter  <dick@ximian.com>
2025
2026         * file-io.c (get_file_attributes): If the file is a symlink try
2027         and get the stat data for the target, but also add the
2028         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
2029         the specs for the windows symlink support, but will probably have
2030         to be reworked when I have test data from a vista machine.  Fixes
2031         bug 79887.
2032
2033 2006-11-13  Dick Porter  <dick@ximian.com>
2034
2035         * gc.c (mono_domain_finalize): 
2036         * marshal.c (mono_delegate_begin_invoke): 
2037         * threadpool.c (socket_io_init, mono_thread_pool_init)
2038         (mono_thread_pool_finish): 
2039         * monitor.c (mono_monitor_try_enter_internal): 
2040         * threads.c (mono_thread_resume, mono_thread_init)
2041         (mono_thread_suspend_all_other_threads)
2042         (mono_thread_execute_interruption): 
2043         * appdomain.c (mono_domain_unload): Check for NULL error returns
2044         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
2045         75733.
2046
2047 2006-11-11  Miguel de Icaza  <miguel@novell.com>
2048
2049         * process.c
2050         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
2051         Only close the handle if the value of the handle is not
2052         INVALID_HANDLE_VALUE.  This just makes the process a bit more
2053         robust.
2054
2055         Improvement for #75733, so that we do not run into this problem. 
2056
2057         
2058         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
2059         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
2060         internal variables.  Fixes #79462 
2061         
2062
2063 2006-11-09  Dick Porter  <dick@ximian.com>
2064
2065         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2066         Use poll() not select().  Fixes bug 79397.
2067
2068 2006-11-09  Raja R Harinath  <rharinath@novell.com>
2069
2070         Fix #79872
2071         * assembly.c (mono_assembly_load_from_full): Check that the given
2072         image has an assembly manifest.
2073
2074 2006-11-09  Ankit Jain  <jankit@novell.com>
2075
2076         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
2077         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
2078         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
2079
2080 2006-11-07  Dick Porter  <dick@ximian.com>
2081
2082         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2083         Put the old resolver behaviour back for pre-2.0 profiles.
2084
2085 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2086
2087         * threadpool.c: precise GC and locking fixes.
2088
2089 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
2090
2091         * class.c: don't load types that have an explicit unaligned
2092         managed reference. Provide better info in the TypeLoad exception.
2093         Part of the fix for bug #79744.
2094         * object.c: use the correct check for class type load issues.
2095
2096 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2097
2098         * class.c: enforce alignment of fields with managed references
2099         even when Pack=1 is forced by the user (bug #77788).
2100
2101 2006-11-03  Dick Porter  <dick@ximian.com>
2102
2103         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
2104         If the address reverse lookup fails, return it as the hostname
2105         anyway.  Fixes bug 79721.
2106
2107 2006-11-03  Dick Porter  <dick@ximian.com>
2108
2109         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
2110         Fix build on Windows.
2111
2112 2006-11-02  Dick Porter  <dick@ximian.com>
2113
2114         * icall-def.h: 
2115         * object-internals.h: 
2116         * exception.c (mono_get_exception_thread_interrupted): 
2117         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
2118         Fixes bug 74525.
2119
2120         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
2121         Check for pending Thread.Interrupt.
2122
2123 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
2124         * loader.c: Fixed bug 79684.
2125
2126 2006-10-27  Dick Porter  <dick@ximian.com>
2127
2128         * file-io.c (get_file_attributes): Force symlinks to directories
2129         to be returned as a regular file.  Fixes bug 79733.
2130 2006-10-26  Dick Porter  <dick@ximian.com>
2131
2132         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
2133         CreateFile to open a directory then we need to set the
2134         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
2135
2136 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
2137
2138         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
2139         friends.
2140
2141 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2142
2143         * sgengc.c: small cleanup of timer code.
2144
2145 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
2146
2147         * sgen-gc.c: fix some warnings and start adding support for
2148         complete object removal on domain unload.
2149
2150 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
2151
2152         * assembly.c: build_assembly_name should not consider a version
2153         number without build or revision number invalid. Fixes bug #79715.
2154
2155 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
2156
2157         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
2158         call kernel32 function OutputDebugString directly.
2159         
2160         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
2161         
2162 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
2163
2164         * reflection.c: small cleanup, using a function to insert a MonoString
2165         in the string heap.
2166
2167 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
2168
2169         * reflection.c: moving GC fixes.
2170
2171 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
2172
2173         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
2174         all the objects with finalizers belonging to an unloading appdomain.
2175
2176 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
2177
2178         * sgen-gc.c: added ability to allocate even when the nursery is fully
2179         pinned and fixed a couple of bugs.
2180
2181 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2182
2183         * threads.h: Revert the last change for now.
2184
2185         * threads.h (mono_thread_get_pending_exception): Rename this to
2186         mono_thread_get_undeniable_exception ().
2187
2188 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
2189
2190         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
2191         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
2192         when fname does not refer to valid assembly. This result in a more
2193         meaningful error message.
2194         * exception.c: added mono_get_exception_bad_image_format2 which 
2195         constructs a BadImageFormatException using the ctor taking a custom
2196         message and the file name. Passing in a NULL msg results in a default
2197         message.
2198         * exception.h: define mono_get_exception_bad_image_format2 function.
2199         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
2200         when file name pointed to an invalid IL image. Use 
2201         mono_get_exception_file_not_found2 to construct FileNotFoundException,
2202         as this results in a more meaningful error message.
2203
2204 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
2205
2206         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
2207         #79465.
2208
2209 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
2210
2211         * metadata.c (mono_type_size): Change the align parameter to guint32 for
2212         consistency with the other _size functions.
2213         (mono_type_stack_size): Ditto.
2214
2215         * class.c object.c icall.c: Fix warnings caused by the above change.
2216
2217         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
2218
2219         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
2220
2221         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
2222
2223 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
2224
2225         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
2226         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
2227         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
2228         threadpool.h, threads-types.h: mark more internal functions.
2229
2230 2006-10-11  Dick Porter  <dick@ximian.com>
2231
2232         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
2233         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
2234         reproduce the bug even before applying the fix.)
2235
2236 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
2237
2238         * reflection.c: allow retrieving attributes for arguments in generic
2239         methods (bug #79241).
2240
2241 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
2242
2243         * debug-mono-symfile.c: properly check fopen () result (found by
2244         coverity).
2245
2246 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
2247
2248         * reflection.c: make error message clearer and fixed two
2249         issuelets found by Coverity.
2250
2251 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
2252
2253         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
2254
2255 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
2256
2257         * object-internals.h, gc-internal.h, profiler-private.h:
2258         mark internal functions.
2259
2260 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
2261
2262         * reflection.c: put data in the text section.
2263         * icall.c: recognize more types in type_from_typename ().
2264         * process.c, marshal.c: added some GC FIXMEs.
2265
2266 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2267
2268         * loader.c: check for NULL before initializing.
2269
2270 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
2271
2272         * gc.c (finalizer_thread): Use a non-alertable wait here.
2273
2274         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
2275         until the correct solution is found.
2276
2277 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2278
2279         * reflection.c (mono_module_get_object): Avoid an assert when operating on
2280         modules with no metadata. Fixes #79596.
2281
2282         * image.c (load_metadata_ptrs): Put back the error message when
2283         the #- heap is encountered since the support is not complete yet.
2284
2285 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
2286
2287         * gc.c: do not allow the user to SuppressFinalize () a
2288         delegate because it would leak the trampoline if present.
2289
2290 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
2291
2292         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
2293         PropertyPtr table.
2294
2295 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
2296
2297         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
2298
2299         * metadata.c (mono_metadata_get_param_attrs): Ditto.
2300
2301         * row-indexes.h: Add definitions for *Ptr tables.
2302
2303         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
2304
2305         * metadata.c (mono_metadata_translate_token_index): New helper function to
2306         translate table indexes used in uncompressed metadata.
2307         (mono_metadata_decode_table_row): Ditto.
2308         (mono_metadata_decode_table_row_col): Ditto.
2309
2310         * metadata.c: Add table schema for *Ptr tables.
2311
2312         * class.c loader.c: Use the new helper function to access the affected metadata
2313         tables.
2314         
2315         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
2316         #38532.
2317         
2318 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
2319
2320         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
2321         sequences which can be unbounded in size. Fixes #79583.
2322
2323 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
2324
2325         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
2326         static initialization.
2327
2328         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
2329
2330         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
2331
2332         * domain.c (mono_domain_free): Free up type_init_exception_hash.
2333
2334         * object.c (mono_runtime_class_init): Implement correct semantics when a static
2335         ctor fails, i.e. throw the same exception on subsequent accesses.
2336         
2337 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
2338
2339         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
2340         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
2341         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
2342         Handle marshalling of interfaces and VARIANTs contained in structs.
2343         
2344         Code is contributed under MIT/X11 license.
2345         
2346 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
2347
2348         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
2349         
2350         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
2351         mempool.
2352
2353 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2354
2355         * console-io.c: ignore previous SIGINT handler.
2356
2357 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2358
2359         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
2360         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
2361         #79460, #79461, #79485.
2362
2363         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
2364
2365         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
2366         #79217.
2367
2368 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
2369
2370         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
2371         could be generated from it.
2372
2373 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
2374
2375         * rand.c: fix read loop to correctly handle EINTR.
2376
2377 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2378
2379         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
2380         internal calls are defined to keep methods closer to the declaring
2381         type and allow a significant reduction in runtime relocations and
2382         memory usage.
2383
2384 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
2385
2386         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
2387         exception message to have FileNotFoundException use the default
2388         assembly load error message. Fixes bug #79426.
2389         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
2390
2391 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2392
2393         * threadpool.c: (start_thread_or_queue) use the root domain when
2394         creating the thread instead of the async object one.
2395
2396 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
2397
2398         * class.c, object.c, class-internals.h, reflection.c:
2399         for arrays, store element_size inside MonoClass (speedup
2400         for array object creation).
2401
2402 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
2403
2404         * icall.c: fixed CodeBase to use the file name and not the module
2405         name (bug #79365).
2406
2407 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2408
2409         * mono-debug.c, mono-debug.h: export find_method as
2410         mono_debug_find_method ().
2411
2412 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
2413
2414         * debug-helpers.c, class-internals.h: added a few functions useful
2415         when debugging under gdb.
2416
2417 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2418
2419         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
2420         characters that need special handling.
2421
2422 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
2423
2424         * mono-config.c: make the os/cpu specification more flexible,
2425         allowing lists and negation.
2426
2427 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
2428
2429         * marshal.c: COM Interop fixes. Handle case where method->klass.
2430         is interface. Handle BSTR/MonoString when null. Use CDECL as 
2431         calling convention on non-windows platforms. This is for
2432         compatibility with XPCOM and MainWin COM.
2433         
2434         Code is contributed under MIT/X11 license.
2435         
2436
2437 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
2438
2439         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
2440         correctly. Fixes #79217.
2441
2442         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
2443
2444 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
2445
2446         * mono-config.c: allow both an os and cpu attribute for dllmap
2447         and dllentry elemnets to enable a single config file to be used
2448         for multiple architectures.
2449
2450 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
2451
2452         * loader.c: MonoLoaderError was cleared too soon on load failure.
2453         Fixes bug #79424.
2454
2455 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
2456
2457         * icall.c: use the defining class vtable when accessing a
2458         static field, not a pobblibly derived class.
2459
2460 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
2461
2462         * icall.c string-icalls.c: Remove references to unicode.h.
2463
2464         * unicode.h unicode.c Makefile.am: Remove these unused source files.
2465
2466         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
2467
2468         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
2469         indicating the image where custom marshaller types should be looked up.
2470         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
2471         custom marshallers, instead of corlib. Fixes #79425.
2472
2473 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
2474
2475         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
2476
2477 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
2478
2479         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
2480         Implement Environment.ProcessorCount.
2481         
2482         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
2483         Implement Environment.ProcessorCount.
2484         
2485         * icall.c: 
2486         Add Environment.ProcessorCount icall.
2487         
2488         Patch by Jason McFall.
2489
2490 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2491
2492         * assembly.c: don't append .exe/.dll when the filename already contains
2493         one of those extensions.
2494
2495 2006-09-12  Martin Baulig  <martin@ximian.com>
2496
2497         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
2498         to array interfaces.
2499
2500 2006-09-11  Martin Baulig  <martin@ximian.com>
2501
2502         * reflection.c (mono_image_build_metadata): Create the
2503         MethodImpl's after emitting all types and methods, so we don't
2504         need another fixup pass for them.
2505
2506 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
2507
2508         * class.c (mono_class_from_name_case): Fix regression introduced by the last
2509         change.
2510
2511 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
2512
2513         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
2514         unload.
2515
2516 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
2517
2518         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
2519         args is not set. Fixes #78926.
2520
2521 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2522
2523         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
2524
2525         * image.c (load_class_names): Move this to class.c, and rename it to 
2526         'mono_image_init_name_cache'.
2527         (load_modules): Fix a warning.
2528
2529         * class.c icall.c image.c: Initialize image->name_cache lazily.
2530
2531         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
2532         on its name using information in the AOT file.
2533
2534         * class.c (mono_class_from_name): Use the new hook function.
2535
2536 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
2537
2538         * reflection.c (mono_param_get_objects): Handle enum default parameter values
2539         correctly.
2540
2541         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
2542         Fixes #79289.
2543         
2544 2006-09-06  Martin Baulig  <martin@ximian.com>
2545
2546         * icall.c (mono_lookup_internal_call): Small fix.
2547
2548 2006-09-05  Raja R Harinath  <rharinath@novell.com>
2549
2550         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
2551         double g_free.
2552
2553 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
2554
2555         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
2556         when --debug is specified.
2557
2558 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
2559
2560         * class.c (setup_generic_array_ifaces): Fix a warning.
2561
2562 2006-09-04  Miguel de Icaza  <miguel@novell.com>
2563
2564         * Temporarily remove the patch to assemly.c that checks the
2565         assembly versions as it breaks our gacutil.
2566
2567 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
2568
2569         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
2570
2571         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
2572         a net 1.0 runtime.
2573
2574         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
2575         created using the default ctor. Fixes #79152.
2576         (mono_string_builder_to_utf16): Ditto.
2577
2578 2006-09-01  Martin Baulig  <martin@ximian.com>
2579
2580         Fix handling of the generic array interfaces.
2581
2582         * class-internals.h
2583         (MonoDefaults): Removed `generic_array_class' and added
2584         `generic_ilist' class.
2585
2586         * class.c
2587         (mono_bounded_array_class_get): Add the new generic array interfaces.
2588         (setup_generic_array_ifaces): New static method; create vtable
2589         entries for each method in the generic array interfaces.
2590
2591         * metadata.c
2592         (select_container): Allow "parent-less" generic methods.
2593
2594         * marshal.c
2595         (mono_marshal_get_generic_array_helper): New public method.
2596
2597         * icall.c
2598         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
2599         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
2600         moved the interncall into System.Array.
2601
2602 2006-09-01  Raja R Harinath  <rharinath@novell.com>
2603
2604         A few more cases of avoiding work on types with ->byref set.
2605         Has the real fix for #79238
2606         * icall.c (is_generic_parameter): New helper.
2607         (ves_icall_Type_GetGenericParameterPosition): Use it.
2608         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
2609         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
2610         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2611         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
2612         reference types.
2613         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
2614         reference types.
2615         (ves_icall_Type_get_IsGenericInstance): Likewise.
2616         (ves_icall_Type_get_IsGenericType): Likewise.
2617
2618 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
2619
2620         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
2621         class if possible.
2622
2623         * mempool.h (mono_mempool_get_allocated): New helper function.
2624
2625         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
2626         change.
2627
2628         * mempool.c: Fix warnings and the calculation of stats.
2629
2630         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
2631
2632         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
2633
2634         * loader.c (mono_get_method_from_token): Update method_count stat.
2635
2636         * class-internals.h (MonoStats): Add some stats.
2637
2638 2006-08-31 Robert Jordan  <robertj@gmx.net>
2639
2640         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
2641         with managed variants.
2642         All code is contributed under the MIT/X11 license.
2643         
2644 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
2645
2646         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
2647         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
2648
2649         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
2650
2651         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
2652         with cycles in classes.
2653
2654         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
2655
2656         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
2657         missing a [MarshalAs] directive. Fixes #79203.
2658
2659         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
2660         klass->marshal_info. Fixes #79217.
2661
2662 2006-08-30  Martin Baulig  <martin@ximian.com>
2663
2664         Committing a patch from Joachim Ante <joe@otee.dk>:
2665         Add support for binary data symbol stores.
2666
2667         * debug-mono-symfile.c
2668         (mono_debug_open_mono_symbol_file): Renamed into
2669         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
2670         arguments.
2671
2672         * mono-debug.c
2673         (mono_debug_open_image): Added `raw_contents' and `size' args.
2674         (mono_debug_init_2_memory): New public function.
2675
2676 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
2677
2678         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
2679
2680 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2681
2682         * appdomain.c: implement support for ShadowCopyFiles.
2683
2684 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
2685
2686         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
2687         when value is NULL (and should remove CID #51).
2688
2689 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2690
2691         * image.c: moved 2 functions to ../utils.
2692
2693 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
2694
2695         * gc.c: cope with the target object of a GC handle being NULL
2696         (bug #78877).
2697
2698 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
2699
2700         * class.c: recursively check parent's explicit implementations
2701         of interface methods (fixes bug #79125).
2702
2703 2006-08-19  Miguel de Icaza  <miguel@novell.com>
2704
2705         * filewatcher.c: Avoid warnings when building, do not redefine
2706         constants that are defined.
2707
2708         Remove warnings.
2709
2710 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2711
2712         * image.c: don't fail when the link points to an absolute path.
2713
2714 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
2715
2716         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
2717         Fix CID #3.
2718
2719 2006-08-17  Miguel de Icaza  <miguel@novell.com>
2720
2721         * image.c (full_path): A new method used to obtain the actual path
2722         of an assembly even in the presence of symbolic links.  
2723
2724         This is necessary for the case where we are running a binary that
2725         has been GACed, but we are using the "published" path name
2726         ($prefix/mono/1.0/blah.exe) which happens to point to the real
2727         file in the GAC.
2728
2729         This was the source of the failure for the `xsp' command with the
2730         recent AppDomain changes, as far as the runtime was concerned,
2731         there were two different assemblies: $prefix/mono/1.0/blah.exe and
2732         $prefix/mono/gac/blah/version/blah.exe.
2733
2734         (do_mono_image_open): use full path
2735
2736 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2737
2738         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
2739
2740 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
2741
2742         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
2743         domain_id is supplied. Fix CID #241 and corlib's unit tests.
2744
2745 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2746
2747         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
2748         small structures. Fixes #78990.
2749
2750 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
2751
2752         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
2753
2754         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
2755
2756 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2757
2758         * appdomain.c:
2759         * marshal.c: don't load all the assemblies from a domain into newly
2760         created ones. The new domains might have different rules and load
2761         assemblies from different locations. Fixes bug #76757.
2762
2763         Patch by Lluis. Conflicts resolved by Brian Crowell.
2764
2765 2006-08-16  Alp Toker  <alp@atoker.com>
2766
2767         * socket-io.c: First half of the fix for #79084.
2768         Set sa_size to the length of the content, not that of the struct.
2769         Don't add NULL suffix to the content, this should be done in
2770         managed code if needed.
2771
2772 2006-08-14  Raja R Harinath  <rharinath@novell.com>
2773
2774         Fix part of #79012
2775         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
2776         mono_metadata_parse_type returns NULL.
2777
2778 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
2779
2780         * normalization-tables.h : new file for string normalization data.
2781         * locales.c, locales.h, icall.c :
2782           added load_normalization_resource() for string normalization,
2783           and icall as well.
2784         * Makefile.am : added normalization-tables.h to the sources.
2785
2786 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
2787
2788         * marshal.c: Add more helper functions to reduce code duplication and use them
2789         everywhere.
2790
2791 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
2792
2793         * marshal.c: Fix non-x86 stdcall warnings.
2794         
2795         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
2796         them everywhere.
2797
2798 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
2799
2800         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
2801         type check on multi-dimensional arrays. Fixes #79000.
2802
2803 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
2804
2805         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
2806         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
2807         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
2808         * class-internals.h: add is_com_object to class structure.
2809         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
2810         null checks to COM object marshalling. Fix .ctor call on RCW.
2811         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
2812         
2813         All code is contributed under the MIT/X11 license.
2814
2815 2006-08-09  Dick Porter  <dick@ximian.com>
2816
2817         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
2818         racing mono_monitor_allocator_lock() somewhere, so don't delete
2819         the critical section for now.  Found by running and exiting
2820         monodevelop.
2821
2822 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
2823
2824         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
2825         (ves_icall_System_ComObject_FindInterface): Ditto.
2826         (ves_icall_System_ComObject_CacheInterface): Ditto.
2827
2828         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
2829         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
2830
2831 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2832
2833         * threadpool.c: treat pipes from process asynchronous reads as sockets
2834         when reading from them, so we get select/poll or epoll to wait for
2835         data.
2836
2837 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
2838
2839         * loader.c: Fix a typo (CID #233) in the null check.
2840
2841 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
2842
2843         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
2844         Hopefully fixes #78949.
2845         
2846         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
2847         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
2848         bytes. Fixes #78972.
2849
2850 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2851
2852         * filewatcher.c: we need to set errno here.
2853
2854 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2855
2856         * filewatcher.c: let Win32Exception get the error value.
2857
2858 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2859
2860         * filewatcher.c: translate errno into win32 errors for Win32Exception
2861         to know what happened.
2862
2863 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
2864
2865         * threadpool.c: Fix more warnings.
2866
2867         * assembly.c (search_loaded): Fix warnings.
2868
2869         * threadpool.c (mono_thread_pool_finish): Fix warnings.
2870         (mono_async_invoke): Ditto.
2871
2872 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
2873
2874         * object.c (mono_remote_class_vtable): Need to create proxy vtable
2875         entries for __ComObject type in addition to ComImport types.
2876         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
2877         about hash table.
2878         
2879         All code is contributed under the MIT/X11 license.
2880
2881 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
2882
2883         * image.c: avoid tentative loading of modulerefs that contain
2884         no metadata (P/Invoke library names).
2885
2886 2006-07-28  Dick Porter  <dick@ximian.com>
2887
2888         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
2889         mono_loader_lock() somewhere, so don't delete the critical section
2890         for now.  Found by running and exiting monodevelop.
2891
2892 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2893
2894         * filewatcher.c: define the inotify syscalls when we're building on
2895         linux and have sys/syscall.h. The build system might not have support
2896         for inotify but the target system might have it.
2897
2898 2006-07-26  Miguel de Icaza  <miguel@novell.com>
2899
2900         * domain.c: Documentation updates.
2901
2902         * loader.c (mono_free_method): Do not release the method
2903         information if we are being profiled, as profilers will use this
2904         information at shut down to present some data to the user.
2905
2906         This is needed so that the profiler does not crash, as the
2907         profiler tends to keep MonoMethods around, and they might become
2908         invalid if we free these.
2909
2910         (mono_get_method_constrained): Return the original CIL stream
2911         method as well, so verification can be performed against it.
2912
2913 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2914
2915         * filewatcher.[ch]: support for inotify file system watcher.
2916         * icall.c: add new internal calls for the inotify file system watcher.
2917
2918 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2919
2920         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
2921         #78888.
2922
2923 2006-07-20  Dick Porter  <dick@ximian.com>
2924
2925         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
2926         warning.
2927
2928 2006-07-20  Dick Porter  <dick@ximian.com>
2929
2930         * threads.c (start_wrapper): Do the thread cleanup while we still
2931         hold a reference to its object.  Fixes bug 78123.
2932
2933 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
2934
2935         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
2936         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
2937           "managed-to-managed".
2938         * icall.c: Redirect string constructors that take sbyte* to
2939           ves_icall_System_String_ctor_RedirectToCreateString.
2940         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
2941           to CreateString () methods with matching signature.
2942         * reflection.c: Use original security informations for
2943           MONO_WRAPPER_MANAGED_TO_MANAGED.
2944         * security-manager.c: Use original security informations for
2945           MONO_WRAPPER_MANAGED_TO_MANAGED.
2946         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
2947           that is a placeholder and only its address should be used.
2948         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
2949           that is a placeholder and only its address should be used.
2950
2951 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
2952
2953         Begin implementing COM Interop.
2954         * appdomain.c: Increment corlib version.
2955         * class.c: Set ComImport classes' parent to __ComObject.
2956         * loader.c: Mark cominterop methods as such.
2957         * domain.c: Add __ComObject class to MonoDefaults structure.
2958         * image.c: Add 2 hashtables to the image for COM Interop related methods
2959         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
2960         using the mempool allocator
2961         
2962         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
2963         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
2964         declaration for mono_metadata_type_dup_mp.
2965         
2966         * debug-helpers.c: Added strings for two additional wrapper types
2967         * object.c: Create proxy objects for ComImport classes
2968         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
2969         and added __ComObject class to MonoDefaults structure.
2970         
2971         * object-internals.h: Finish MonoRealProxy definition, and add definition of
2972         MonoComInteropProxy and MonoComObject.
2973         
2974         * marshal.c: Added support for COM Interop
2975         (signature_cominterop): Converts managed signature to corresponding
2976         unmanaged COM signature.
2977         (cominterop_get_function_pointer): gets unmanaged function pointer via
2978         COM object vtable
2979         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
2980         (cominterop_get_method_interface): returns interface type that method is defined on
2981         (mono_mb_emit_cominterop_call): emits native call to function pointer
2982         gotten from vtable
2983         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
2984         that matches signature of unmanaged function.
2985         (cominterop_get_native_wrapper): wrapper around adjusted method call.
2986         (cominterop_get_invoke): forwards call from proxy to __ComObject
2987         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
2988         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
2989         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
2990         
2991         * marshal.h: Added Marshal icall declarations.
2992         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
2993         so we can access them in finalizer
2994         
2995 2006-07-14  Dick Porter  <dick@ximian.com>
2996
2997         * object.c (mono_type_initialization_cleanup): Fix a race
2998         condition by temporarily commenting out the critical section
2999         deletion.
3000
3001 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
3002
3003         * reflection.c (create_custom_attr): Fix some warnings.
3004         (create_custom_attr_data): Ditto.
3005         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
3006         types. Fixes #78855.
3007
3008 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
3009
3010         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
3011
3012         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
3013
3014 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
3015
3016         * reflection.c (resolve_object): Add support for DynamicMethod.
3017
3018         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
3019         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
3020
3021 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
3022
3023         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
3024         don't leak GPtrArray's pdata has we have no use (nor free) for it.
3025
3026 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
3027
3028         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
3029         Fixes #77888.
3030
3031 2006-06-30  Raja R Harinath  <rharinath@novell.com>
3032
3033         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
3034         slightly: remove a shadow local variable.
3035
3036 2006-06-29  Raja R Harinath  <rharinath@novell.com>
3037
3038         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
3039         definition that introduces the virtual function slot.
3040         Also fix Coverity #105.
3041
3042 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
3043
3044         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
3045         for dynamic assemblies. Fixes #78724.
3046
3047 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
3048
3049         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
3050         Fixes #78722.
3051
3052 2006-06-21  Martin Baulig  <martin@ximian.com>
3053
3054         * reflection.c
3055         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
3056         fixes #76484.
3057
3058 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
3059
3060         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
3061
3062 2006-06-20  Raja R Harinath  <rharinath@novell.com>
3063
3064         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
3065         nor TYPEREFs.
3066         * class.c (mono_class_create_from_typespec): Add 'context' argument.
3067         Inflate result if necessary.
3068         (mono_class_get_full): Remove old version.  Rename from
3069         'mono_class_get' and add 'context' argument.  Pass it to
3070         ..._create_from_typespec.
3071         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
3072         (mono_ldtoken): Revert change below.
3073
3074 2006-06-20  Martin Baulig  <martin@ximian.com>
3075
3076         * class.c (mono_ldtoken): Don't pass the generic context to
3077         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
3078
3079 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
3080
3081         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
3082         and later freeing it. Fixes #78638.
3083
3084 2006-06-15  Miguel de Icaza  <miguel@novell.com>
3085
3086         * icall.c (mono_class_get_throw): Revert over-zealous error
3087         throwing, the caller for mono_class_get_throw will cope with
3088         errors when classes are not properly initialized already.
3089
3090         The code still copes with loader exceptions though.
3091
3092         Fixes the regression in reftype1 and reftype3 from the CAS tests.
3093         
3094 2006-06-14  Miguel de Icaza  <miguel@novell.com>
3095
3096         Fixes the `make run1' version of RuntimeAbort (to be commited,
3097         source is in Bugzilla).
3098         
3099         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
3100         FALSE on class loading failure instead of returning true.
3101
3102         * class.c (mono_class_create_from_typedef): It is possible for
3103         mono_metadata_interfaces_from_typedef_full to fail if a class is
3104         not found, cope with this.
3105         
3106
3107 2006-06-14  Dick Porter  <dick@ximian.com>
3108
3109         * socket-io.c: 
3110         * process.c: Fix a bunch of signed/unsigned warnings from gcc
3111         4.1.1
3112
3113 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
3114
3115         * culture-info-table.h : oops, forgot to make it nsync with r61548.
3116
3117 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3118
3119         * icall.c: Another fix for building mono in Visual Studio.
3120
3121 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
3122
3123         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
3124         
3125 2006-06-09  Martin Baulig  <martin@ximian.com>
3126
3127         * debug-mono-symfile.c: Put this back and really fix it this
3128         time. Sorry for all the trouble.
3129
3130 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
3131
3132         * icall.c (mono_class_get_throw): Fix a warning.
3133         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
3134         ReflectionTypeLoadException if needed. Fixes #78606.
3135
3136         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
3137         (mono_class_init): Ditto.
3138
3139         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
3140         ref_only exceptions.
3141         (mono_loader_clear_error): Make this work even if there is no error.
3142
3143 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
3144
3145         * object-internals.h marshal.c marshal.h icall.c: Implement method 
3146         Marshal.GetComSlotForMethodInfo using internal call.
3147
3148 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
3149
3150         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
3151         a function for signalling it.
3152
3153         * class.c (mono_class_from_typeref): Use the new kind of loader error when
3154         a referenced assembly is not found.
3155
3156         * loader.c (mono_loader_error_prepare_exception): Add support for 
3157         LOADER_ERROR_ASSEMBLY. Fix formatting.
3158
3159 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3160
3161         * domain.c appdomain.c class-internals.h marshal.c: Add support 
3162         for VARIANT marshalling on windows and increment corlib version
3163         since Variant struct was added.
3164
3165 2006-06-03  Miguel de Icaza  <miguel@novell.com>
3166
3167         * debug-mono-symfile.c: Revert Martin's previous patch which broke
3168         stack trace line information:
3169
3170         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
3171         (Martin) when looking up B which is between A and C, return A not C.
3172
3173         Bug is #78573.
3174
3175         Thanks to Alexander Olk for tracking this down.
3176
3177 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
3178
3179         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
3180         
3181         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
3182         avoid clobbering its value.
3183         (mono_string_to_lpstr): Fix a warning on windows.
3184
3185 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3186
3187         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
3188
3189         * reflection.c loader.c: Removed references to 'dummy' flag.
3190
3191         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
3192
3193         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
3194         it gets GC tracking.
3195
3196         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
3197         GC tracking.
3198         
3199         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
3200
3201         * marshal.c threadpool.c: Update callers of mono_async_result_new.
3202
3203         * appdomain.c: Bump corlib version.
3204
3205 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3206
3207         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3208         CEE_STIND_REF when working with object references.
3209
3210 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
3211
3212         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
3213         Fixes #78539.
3214
3215 2006-05-30  Miguel de Icaza  <miguel@novell.com>
3216
3217         * loader.c (method_from_memberref): Fix argument value for
3218         mono_loader_set_error_method_load (I was passing the MonoClass
3219         instead of the class name char *).
3220
3221 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
3222
3223         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
3224         CEE_STIND_REF when working with object references.
3225
3226 2006-05-30  Martin Baulig  <martin@ximian.com>
3227
3228         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
3229         mono_method_full_name() change and replace the ':' with a '.'
3230         here.
3231
3232 2006-05-30  Martin Baulig  <martin@ximian.com>
3233
3234         * debug-mono-symfile.c
3235         (mono_debug_symfile_lookup_location): Fix the algorithm:
3236         when looking up B which is between A and C, return A not C.
3237
3238 2006-05-29  Martin Baulig  <martin@ximian.com>
3239
3240         * mono-debug.h
3241         (MonoDebugMethodInfo): Make the typedef public.
3242         (MonoDebugSourceLocation): New public struct.
3243
3244         * mono-debug.c
3245         (mono_debug_source_location_from_address): Removed.
3246         (mono_debug_source_location_from_il_offset): Removed.
3247         (mono_debug_il_offset_from_address): Removed.
3248         (mono_debug_address_from_il_offset): Removed.
3249         (mono_debug_lookup_method): New public function.
3250         (mono_debug_lookup_source_location): New public function; replaces
3251         the old mono_debug_source_location_from_*() functions; see the
3252         inline documentation.
3253         (mono_debug_free_source_location): New public function.
3254         (mono_debug_print_stack_frame): New public function; see the
3255         inline documentation.
3256
3257         * debug-mono-symfile.c
3258         (mono_debug_find_source_location): Renamed into
3259         mono_debug_symfile_lookup_location(); only take a
3260         `MonoDebugMethodInfo *' and an `offset' argument; added inline
3261         documentation.
3262         (mono_debug_find_method): Renamed into
3263         mono_debug_symfile_lookup_method().
3264
3265 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
3266
3267         * assembly.c (mono_assembly_open_full): Dont overwrite the status
3268         returned by mono_image_open_full ().
3269
3270         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
3271         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
3272         #78517.
3273
3274         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
3275         #78518.
3276
3277 2006-05-27  Miguel de Icaza  <miguel@novell.com>
3278
3279         * class.c (mono_class_from_typeref): handle missing images
3280         earlier, deals with bug #78418.   Refactor code; 
3281
3282         Fix a warning introduced in my previous commit (some stale code
3283         from before I revisited my patch).
3284
3285         * class.c (mono_class_create_from_typedef): On failure, remove the
3286         class from the MonoImage->class_cache as the class is not
3287         initialized;   Fixes the leak pointed out by Paolo.
3288
3289 2006-05-25  Dick Porter  <dick@ximian.com>
3290
3291         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
3292         DeleteCriticalSections until I figure out which one may still be
3293         sometimes locked when mono_thread_cleanup is called.
3294
3295 2006-05-24  Dick Porter  <dick@ximian.com>
3296
3297         * threads.c (mono_thread_cleanup): Move the threading cleanup out
3298         of mono_thread_manage and back into its own function, so it can be
3299         called after the finalizer thread has finished.
3300
3301         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
3302
3303 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
3304
3305         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
3306         Fixes #78495.
3307
3308         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
3309         with non-blittable elements.
3310         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
3311
3312 2006-05-24  Martin Baulig  <martin@ximian.com>
3313
3314         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3315         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
3316
3317         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
3318         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
3319         `mono_debugger_event_handler' to NULL.
3320
3321 2006-05-24  Martin Baulig  <martin@ximian.com>
3322
3323         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
3324
3325 2006-05-24  Martin Baulig  <martin@ximian.com>
3326
3327         * mono-debug-debugger.h
3328         (mono_debugger_create_notification_function): Added
3329         `MonoCodeManager *' argument.
3330
3331 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
3332
3333         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
3334
3335 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
3336
3337         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
3338         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
3339         implementation.
3340
3341 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
3342
3343         * icall.c: precise GC support: objects can't be stored in unmanaged
3344         memory anymore, even if they are kept alive by other references: since
3345         they can move the GC needs to be able to always find them.
3346
3347 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
3348
3349         * object.c: precise GC support for static fields. Support
3350         for moving GCs: write barriers and pinned allocation for interned
3351         strings.
3352
3353 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
3354
3355         * domain.c, domain-internals.h: precise GC support for the MonoDomain
3356         structure.
3357
3358 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
3359
3360         * class.c, gc.c: sgen and precise GC updates.
3361
3362 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
3363
3364         * marshal.h, marshal.c: added write barrier wrapper and precise type
3365         fixes.
3366
3367 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
3368
3369         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
3370         support.
3371
3372 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
3373
3374         * reflection.c: precise and sgen GC updates.
3375
3376 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
3377
3378         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
3379
3380 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
3381
3382         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
3383
3384 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
3385
3386         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
3387         MONO_TYPE_OBJECT. Fixes #78462.
3388
3389 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
3390
3391         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
3392         and blittable types.
3393
3394 2006-05-17  Miguel de Icaza  <miguel@novell.com>
3395
3396         * class.c (mono_class_get_exception_for_failure): Implement parts
3397         of a TODO: if the loader error is set (instead of the class
3398         error), we return a Loader exception that can be properly thrown
3399         elsewhere.
3400
3401         This was exposed by some Winforms 2.0 code that I tried to run
3402         (Atsushi pointed me to it).
3403
3404 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
3405
3406         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
3407         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
3408         
3409         * marshal.c (emit_marshal_vtype): Add limited support for 
3410         UnmanagedType.LPStruct. Fixes #78427.
3411
3412         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
3413         Applied a patch from kangaroo to fix #77523.
3414
3415 2006-05-17  Martin Baulig  <martin@ximian.com>
3416
3417         * threads.c
3418         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
3419         (debugger_thread_created): Removed.
3420         (debugger_thread_exited): Removed.
3421
3422 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
3423
3424         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3425
3426         * object-internals.h (MonoReflectionResource): Sync with managed version.
3427
3428 2006-05-12  Wade Berrier <wberrier@novell.com>
3429
3430         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
3431
3432 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
3433
3434         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
3435         functions try to allocate from the image mempool.
3436
3437 2006-05-12  Dick Porter  <dick@ximian.com>
3438
3439         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
3440
3441 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
3442
3443         * object.c: The FieldGetter and FieldSetter methods require the full
3444         name of the class, not only the name. Fixes bug #78277.
3445
3446 2006-05-11  Miguel de Icaza  <miguel@novell.com>
3447
3448         * loader.c (method_from_memberref): Do not pass the NULL klass to
3449         mono_loader_set_error_() methods.  Pass the non-NULL value
3450         (class). 
3451
3452 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
3453
3454         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
3455         (mono_assembly_close): Null out assembly->image->references after freeing it.
3456
3457         * image.c (mono_image_close): Free image->references.
3458         
3459         * reflection.c (mono_image_basic_init): Fix a small memory leak.
3460
3461 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3462
3463         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
3464         before checking if it's NULL (g_assert).
3465
3466 2006-05-10  Martin Baulig  <martin@ximian.com>
3467
3468         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
3469         I thought I already killed that two months ago, but now it somehow reappeared.
3470
3471 2006-05-10  Martin Baulig  <martin@ximian.com>
3472
3473         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
3474
3475 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
3476
3477         * reflection.c: Allocate memory for dynamically created methods in the image
3478         mempools.
3479
3480 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
3481
3482         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
3483         don't use the ad pointer before checking if it's NULL (g_assert).
3484
3485 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
3486
3487         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
3488         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
3489
3490         * marshal.c: Allocate all signatures from mempools.
3491
3492         * marshal.c: Allocate some more signatures from mempools.
3493
3494 2006-05-09  Miguel de Icaza  <miguel@novell.com>
3495
3496         * object.c (mono_load_remote_field): The code used to provide a
3497         temporary variable for returning results if the user did not
3498         provide a result pointer.  But our temporary variable was allocted
3499         on the satck.
3500
3501         Fix calling code to always pass a result area.   Coverity ID 103.
3502
3503 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
3504
3505         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
3506         value, not the old. Fixes #78312.
3507         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
3508
3509         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
3510         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
3511         per-image cache.
3512
3513         * assembly.c (mono_assembly_close): Free image->references.
3514
3515         * assembly.c (mono_assembly_names_equal): Fix a warning.
3516         (mono_assemblies_cleanup): Cleanup more global data.
3517
3518         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
3519
3520         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
3521         ptr_cache and image->modules.
3522
3523         * image.c (mono_image_init): Allocate array_cache lazily.
3524         
3525 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3526
3527         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
3528         behavior was changed recently and has bad side effects.
3529
3530 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
3531
3532         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
3533         
3534         * assembly.c (mono_assembly_close): Remove a debug printf.
3535
3536         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
3537
3538         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
3539         to also allow for temporary references between mono_image_open ()/close ().
3540
3541         * domain.c (get_runtimes_from_exe): Add a FIXME.        
3542
3543 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
3544
3545         * marshal.c: Fix support for dynamic methods.
3546
3547         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
3548
3549         * marshal.c (mono_marshal_cleanup): New cleanup function.
3550
3551         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
3552         image mempools.
3553
3554         * class.c (mono_class_init): Fix leaking class->nested_classes.
3555
3556         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
3557
3558         * image.c (mono_image_init): Initialize the new cashes.
3559
3560         * image.c (mono_image_close): Destroy the new cashes.
3561
3562         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
3563
3564         * mempool.c (mono_mempool_strdup): New helper function.
3565
3566         * class-internals.h: Add prototype for mono_loader_unlock ().
3567
3568         * domain.c (mono_jit_info_table_find): Fix a warning.
3569         (mono_debugger_check_runtime_version): Ditto.
3570
3571         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
3572         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
3573         functions to these modules.
3574
3575         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
3576         metadata modules.
3577         
3578         * marshal.c (mono_free_bstr): Fix a warning.
3579
3580         * assembly.c (mono_assembly_open_full): Fix another small leak.
3581
3582         * object.c: Fix some unload leaks in the remoting code.
3583
3584         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
3585         function.
3586
3587         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
3588
3589         * reflection.c: Fix some unload leaks in dynamic assemblies.
3590
3591 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
3592
3593         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
3594         * marshal.h: Add BSTR support on Win32
3595         * icall.c: Add BSTR icalls
3596         * metadata.h: Add BSTR enums
3597
3598 2006-04-28  Miguel de Icaza  <miguel@novell.com>
3599
3600         Work to catch the crash from #76795 and turn it into an
3601         exception.   As I stubbed out pieces of the VisualBasic support,
3602         I found a number of places where the code was failing and I added
3603         checks to those places. 
3604         
3605         * metadata.c (do_mono_metadata_parse_generic_class): Make this
3606         function return a status code.  If we fail to parse the signature
3607         from mono_metadata_parse_generic_inst, return FALSE.
3608
3609         * loader.c (mono_get_method_from_token): If we fail to load the
3610         method (mono_class_get) return NULL.   
3611
3612         * (method_from_memberref): Return NULL if we are unable to parse
3613         the method signature
3614
3615         (mono_loader_error_prepare_exception): Since we now use the
3616         loader_error flag internally to stop processing, and obtaining
3617         exceptions that might be thrown will walk this code path the
3618         proper way of going from a MonoLoaderError into a
3619         MonoException was convoluted.   This new routine encapsulates the
3620         process of turning the error into an exception and *clearing* the
3621         error afterwards.
3622         
3623 2006-04-27  Miguel de Icaza  <miguel@novell.com>
3624
3625         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
3626         with missing assemblies), and to cope with:
3627
3628                 * Missing fieldref from a non-existing assembly.
3629                 * Missing methodref from a non-existing assembly.
3630
3631         The first batch of work to address *some* of the issues from 76661.
3632         
3633         * object.c (mono_class_create_runtime_vtable): If we fail to
3634         initialize the class raise the exception here. 
3635
3636         * metadata.c (mono_class_get_overrides_full): If any methods fail
3637         to load return the failure to the caller.
3638
3639         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
3640         flagging assemblies that failed to load.   
3641
3642         Do not crash if we are unable to load the assembly.
3643
3644         (mono_assembly_close): Do nothing with REFERENCE_MISSING
3645         assemblies. 
3646
3647         * loader.c (mono_loader_set_error_type_load): Change the
3648         convention to always pass unallocated strings, so we make our own
3649         copies (I know our own code had duplicated strings before, but
3650         this keeps the normal conventions).
3651         (method_from_memberref): Call mono_loader_set_error_method_load
3652         for all possible failures of loading the class. 
3653         Remove assert, turn into a loader error.
3654
3655         (mono_loader_error_to_exception): Move this routine from mini
3656         (mini_loader_error_to_exception) there was no need to have that in
3657         mini. 
3658
3659         * class.c (mono_class_from_typeref): If we were not able to load
3660         the assembly with mono_assembly_load_reference, call the
3661         mono_loader_set_error_type_load to register the problem.
3662
3663         (mono_class_setup_fields): If we fail to load the type from
3664         mono_metadata_parse_type_full, call mono_class_set_failure and
3665         break from the loop.
3666
3667         If class->exception_type is set, we do not layout the fields as
3668         that might crash the runtime, and instead return (from breaking
3669         from the previous loop).
3670
3671         (mono_class_setup_vtable): This now returns a boolean indicating
3672         whether the table was properly setup.   The decision is driven by
3673         mono_class_get_overrides_full which might run into non-existing
3674         methods. 
3675         
3676         (mono_class_init): Returns TRUE on success or FALSE if there was a
3677         problem in loading the type (incorrect assemblies, missing
3678         assemblies, methods, etc).
3679
3680         When we call mono_class_setup_fields we also check for a potential
3681         error inside this call (either a class exception or a general
3682         loader exception).
3683
3684         (mono_class_create_from_typedef): If the parent fails to load
3685         (calling mono_class_get_full) return NULL.
3686         
3687         ** Important **
3688
3689         calls to mono_metadata_parse_type_full should be checked
3690         everywhere and set the mono_class_set_failure
3691         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
3692
3693         The current patch checks the places where my manually constructed
3694         tests show the errors are showing up, but we should do it
3695         everywhere. 
3696
3697         ** Important2 **
3698
3699         mono_class_init return values should be tested everywhere, like
3700         the previous case this is something that we should audit
3701         everywhere and not only on the cases exposed by the tests I
3702         created. 
3703
3704 2006-04-26  Miguel de Icaza  <miguel@novell.com>
3705
3706         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
3707         boolean parameter and instead pass the information on `options'
3708         parameter (FileOptions).
3709
3710         * icall.c: Register the new signature for MonoIO.Open.
3711
3712         * debug-helpers.c (dis_one): Trying to understand how coverity
3713         works.  Fix Run 5, item 78.
3714
3715 2006-04-26  Dick Porter  <dick@ximian.com>
3716
3717         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
3718         dereference.
3719
3720 2006-04-25  Martin Baulig  <martin@ximian.com>
3721
3722         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
3723
3724         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
3725         debugger_thread_created().
3726         (debugger_gc_push_all_stacks): Don't handle the main thread in any
3727         special way.
3728         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
3729         (mono_debugger_finalize_threads): New function; undo the effects
3730         of mono_debugger_init_threads().
3731         (mono_debugger_create_all_threads): Removed.
3732
3733 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
3734
3735         * image.c (mono_image_close): Tidy up trace messages.
3736
3737         * assembly.c (mono_assembly_close): Ditto.
3738
3739         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
3740         no longer references an already freed assembly. Fixes #78168.
3741
3742 2006-04-21  Dick Porter  <dick@ximian.com>
3743
3744         * threads.c (mono_thread_detach): Fix reference counting when
3745         detaching threads.
3746
3747 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
3748
3749         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
3750         #78155.
3751
3752 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
3753
3754         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
3755         (mono_type_to_stind): Ditto.
3756
3757         * marshal.c: Use the new helper functions to simplify code.
3758
3759         * image.c (mono_image_close): Add some code for help debug assembly unloading
3760         problems.
3761
3762         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
3763         image mempool.
3764
3765         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
3766         assembly was already loaded in another appdomain. Fixes #78083.
3767
3768 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
3769
3770         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
3771         referenced assemblies.
3772         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
3773
3774         * domain.c (mono_domain_free): Add a trace message.
3775
3776         * appdomain.c (add_assemblies_to_domain): Ditto.        
3777
3778         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
3779         field.  
3780
3781 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3782
3783         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
3784
3785 2006-04-12  Martin Baulig  <martin@ximian.com>
3786
3787         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
3788         `USE_INCLUDED_LIBGC'.   
3789
3790 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
3791
3792         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
3793         the patch contains ../ and a small directory name later. Hopefully fixes
3794         #78035.
3795
3796 2006-04-10  Martin Baulig  <martin@ximian.com>
3797
3798         Clean up the debugger's thread-handling code.
3799
3800         The debugger's thread-handling code has been moved from
3801         ../mini/debug-debugger.c to threads.c.  We now iterate directly
3802         over the `threads' hash, keep track of exiting threads and also
3803         use proper locking.
3804
3805         We can now debug XSP and XSP based applications with the debugger.
3806
3807         * object-internals.h (MonoThread): Added `gpointer end_stack'.
3808
3809         * threads.h
3810         (MonoThreadCallbacks): Removed; this was only used by the debugger.
3811         (mono_install_thread_callbacks): Likewise.      
3812
3813         * threads.c (mono_thread_callbacks): Removed.
3814         (debugger_thread_created, debugger_thread_exited): New static functions.
3815         (start_wrapper): Call debugger_thread_created().
3816         (thread_cleanup): Call debugger_thread_exited().
3817         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
3818         (mono_debugger_init_threads): New public function.
3819         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
3820         iterate directly over the `threads' hash and also use proper locking.
3821
3822         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
3823
3824         * mono-debug-debugger.h
3825         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
3826
3827 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
3828
3829         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
3830         argument type=array. Fixes #78057.
3831
3832 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
3833
3834         * culture-info-table.h : regenerated. Fixed bug #69652.
3835
3836 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
3837
3838         * loader.c metadata.c: Reapply a variant r59116.
3839         
3840         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
3841
3842         * class.c (mono_class_setup_interface_offsets): New internal function.
3843
3844         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
3845         interfaces too. Fixes #77398.
3846
3847         * reflection.c (encode_cattr_value): Add support for 
3848         parameter type=object, argument type=array.
3849         (load_cattr_value): Ditto. Fixes #77916.
3850
3851         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
3852         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
3853
3854         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
3855         a byval char array and CharSet is Ansi.
3856
3857         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
3858
3859 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
3860
3861         * metadata.c: Add some locking comments.
3862         
3863         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
3864         mempool.
3865         (mono_metadata_free_method_signature): Don't free the signature itself.
3866
3867         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
3868
3869         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
3870         reference the same MonoImage.
3871         (mono_assembly_load_from_full): Add an assert.
3872
3873 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
3874
3875         * image.c (mono_image_close): Don't put the image we are about to free into the
3876         loaded_images_guid_hash.
3877
3878         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
3879         to reduce code duplication.
3880
3881         * marshal.c: Register the native functions called by this module as icalls, to
3882         somewhat centralize the creation of MonoMethodSignature's.
3883
3884         * loader.c (mono_method_signature): Add a cache for method signatures.
3885
3886         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
3887         the parameter attributes of a method.
3888         (mono_metadata_parse_method_signature_full): Refactored the computation of
3889         parameter attributes into a separate function. Also avoid one allocation in
3890         most cases.
3891
3892         * assembly.c (mono_assembly_close): Ditto.
3893
3894         * image.c (mono_image_close): Log trace messages with INFO level.
3895
3896         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
3897
3898         * image.c reflection.c: Correct reference counting of image modules.
3899         
3900         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
3901         of this function from the image mempool.
3902         
3903         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
3904         to allow more cached types to be used.
3905
3906         * mono-debug.c (mono_debug_add_method): Appled patch from
3907         David S. Miller  <davem@sunset.davemloft.net>: Access 
3908         minfo->lexical_blocks[] entry elements using read32().
3909
3910 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
3911
3912         * loader.c (mono_free_method): No longer free the method header for non-dynamic
3913         methods as it is allocated from the mempool.
3914
3915         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
3916         image mempool.
3917
3918         * metadata-internals.h: Add comments describing the reference counting scheme
3919         used for MonoImage and MonoAssembly.
3920
3921         * image.c assembly.c reflection.c: Rework reference counting of images and 
3922         assemblies so they are freed when the runtime is shut down. Free some 
3923         additional memory structures when an image is unloaded.
3924         
3925 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
3926
3927         * class.c loader.c reflection.c: Allocate more data structures in
3928         the image mempool.
3929
3930 2006-03-31  Miguel de Icaza  <miguel@novell.com>
3931
3932         * icall.c
3933         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
3934         build on pre glib 2.4 systems.
3935
3936 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
3937
3938         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
3939
3940         * icall.c: Fix some warnings.
3941
3942 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
3943
3944         * culture-info-table.h : regenerated.
3945
3946 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
3947
3948         * threads.c, object-internals.h, verify.c: changed the culture caching
3949         code to use a normal MonoArray for storage so the GC can keep track of
3950         them easily. Fixed bits of the cache logic, too and simplified the
3951         code.
3952
3953 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
3954
3955         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
3956         thread for non-Boehm GCs.
3957
3958 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
3959
3960         * domain.c, object.c, domain-internals.h: reduce the amount of memory
3961         needed to keep track of the data for static fields.
3962
3963 2006-03-29  Raja R Harinath  <rharinath@novell.com>
3964
3965         Fix #75172
3966         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
3967         for interface classes.  Use 'num_methods' instead.
3968         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
3969         before using '->vtable_size' field.
3970
3971 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
3972
3973         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
3974         doesn't contain managed pointers, so use a normal hashtable.
3975
3976 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
3977
3978         * reflection.c, class-internals.h, domain.c: fixed handling of types
3979         used as values for objects in custom attributes (bug #77915):
3980
3981 2006-03-24  Martin Baulig  <martin@ximian.com>
3982
3983         * class.c (mono_class_setup_fields): Added support for generic
3984         instances; fixes #77580.
3985
3986 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3987
3988         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
3989
3990 2006-03-24  Dick Porter  <dick@ximian.com>
3991
3992         * file-io.c (get_file_attributes): More stat macro breakage.
3993         Fixes bug 77759.
3994
3995 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
3996
3997         * profiler.c: added the file=filename option in the default profiler
3998         to output the profile data to filename.
3999
4000 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4001
4002         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
4003         bug #77877.
4004
4005 2006-03-22  Martin Baulig  <martin@ximian.com>
4006
4007         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
4008         allocated `MonoClassField *' in `fb->handle'.
4009
4010 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
4011
4012         * class.c, image.c, metadata-internals.h: implemented new mechanism to
4013         allocate interface ID to save memory and allow better ID reuse on
4014         appdomain unload. setup_generic_vtable () removal from Martin.
4015
4016 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4017
4018         * object.h, appdomain.c, domain.c, exception.c, icall.c,
4019         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
4020         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
4021         write barriers for reference stores with managed objects accessed with
4022         C structures in the runtime and in embedding programs.
4023
4024 2006-03-20  Raja R Harinath  <rharinath@novell.com>
4025
4026         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
4027         'interface_id' and 'max_interface_id' fields of MonoClasses
4028         representing open generic types.
4029
4030 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
4031
4032         * object.h, object.c, icall.c: added functions to deal with
4033         storing valuetypes that contain references in managed objects.
4034         * reflection.c, string-icalls.c, threads.c, marshal.c: small
4035         fixes and comments around uses of mono_array_addr ().
4036
4037 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
4038
4039         * object.h, icall.c, monitor.c: object.GetHashCode ()
4040         implementation that supports the moving garbage collector.
4041
4042 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
4043
4044         * icall.c, threads-types.h, threads.c: implemented finalizer for
4045         LocalDataStoreSlot.
4046
4047 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
4048
4049         * metadata.c (mono_type_size): Add a fixme.
4050         (mono_type_stack_size): Ditto.
4051
4052         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
4053         'type_forwarders' field.
4054
4055         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
4056         attribute from net 2.0.
4057
4058         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
4059         from class.c.
4060
4061         * class.c (mono_class_setup_fields): Fix a warning.
4062         
4063         * class.c (mono_class_from_name): Add support for assemblyref entries
4064         in the EXPORTEDTYPE table.
4065
4066         * reflection.c: Add support for handling type forwarders under net 2.0.
4067
4068         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
4069         
4070 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
4071
4072         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
4073         overwriting entries in ModuleBuild->types, also clean up the code
4074         a little. Fixes #77774.
4075
4076 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
4077
4078         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
4079         load friend assembly info when present.
4080
4081 2006-03-14  Raja R Harinath  <rharinath@novell.com>
4082
4083         Fix crasher on gtest-158.cs.
4084         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
4085         the return value if the MonoClass we want is yet in an
4086         inconsistent state.
4087         * class.c (mono_class_create_from_typedef): Add an comment
4088         explaining an order dependency between mono_class_setup_parent and
4089         mono_class_setup_mono_type.
4090
4091 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
4092
4093         * class.c: documentation updates and events bug fix.
4094
4095 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
4096
4097         * class.c: some cleanup, locking fixes.
4098
4099 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
4100
4101         * class.c: fix the generics code to setup nested
4102         type info to the instantiated type (bug #77770).
4103
4104 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
4105
4106         * marshal.c: fixed a few type correctness issues.
4107
4108 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4109
4110         * loader.c: the Set/Get/Addrtess array methods should be public.
4111
4112 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
4113
4114         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
4115         
4116         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
4117         info->wrapper.
4118
4119 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
4120
4121         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
4122
4123         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
4124
4125         * mempool.c (mono_mempool_alloc): Speed this up a bit.
4126         (mono_mempool_alloc0): Ditto.
4127
4128 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4129
4130         * socket-io.c:
4131         (create_object_from_sockaddr): it was allocating 4 extra bytes
4132         for the AF_UNIX data. Fixes bug #77747.
4133
4134 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
4135
4136         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
4137
4138 2006-03-09  Dick Porter  <dick@ximian.com>
4139
4140         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
4141         Fixes bug 76966 again.
4142
4143 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
4144
4145         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
4146         names from r57532
4147         * appdomain.c: Bumped corlib version to 48 (due to r57532)
4148
4149 2006-03-07  Martin Baulig  <martin@ximian.com>
4150
4151         * object.c
4152         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
4153
4154 2006-03-07  Martin Baulig  <martin@ximian.com>
4155
4156         * class.c
4157         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
4158         regression introduced in r56970; see gtest-252.cs.
4159
4160         * loader.c (mono_get_method_constrained): Correctly handle generic
4161         methods; see gtest-253.cs.
4162
4163 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
4164
4165         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
4166
4167 2006-03-04  Martin Baulig  <martin@ximian.com>
4168
4169         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
4170         compute the parent type at runtime, just like we're already doing
4171         it for interfaces.
4172
4173         * reflection.c
4174         (mono_reflection_bind_generic_parameters): Don't compute the
4175         parent type anymore.
4176
4177         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
4178
4179 2006-03-04  Martin Baulig  <martin@ximian.com>
4180
4181         * mono-debug-debugger.h
4182         (mono_debugger_create_notification_function): Allocate memory at
4183         runtime and return a pointer to it.
4184
4185 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
4186
4187         * assembly.c: Fix windows build.
4188         
4189         * assembly.c: Fix build.
4190
4191         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
4192
4193         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
4194         
4195 2006-03-03  Dick Porter  <dick@ximian.com>
4196
4197         * process.c
4198         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
4199         Check parameters before dereferencing them.  Fixes Aaron's part of
4200         bug 77393.
4201
4202 2006-03-03  Raja R Harinath  <rharinath@novell.com>
4203
4204         Fix performance regression.
4205         * loader.c (find_method_in_class): Add 'from_class' argument.
4206         Rename 'klass' argument to 'in_class'.  The signature is compared
4207         against the method in 'in_class', and the corresponding method is
4208         returned from 'from_class'.
4209         (find_method): Walk both 'in_class' and 'from_class' in parallel.
4210         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
4211         type definition and generic instantiation in parallel.
4212         (mono_get_method_constrained): Update to changes.
4213
4214 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
4215
4216         * threads.c: make sure the domain is correct, too when doing
4217         mono_thread_attach ().
4218
4219 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
4220
4221         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
4222         windows. Fixes #77683.
4223
4224 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
4225
4226         * object.h, *: introduced specific way to set elements of an array
4227         of references to be used as write barrier. Still need to audit the
4228         uses of mono_array_addr.
4229
4230 2006-03-01  Miguel de Icaza  <miguel@novell.com>
4231
4232         * object-internals.h: New field to cache the assmebly name, patch
4233         from Tambet Ingo (tambet@ximian.com)
4234
4235 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
4236
4237         * decimal.h, class-internals.h, metadata-internals.h,
4238         file-io.h: mark a few function declarations as internal, to
4239         reduce the number of PLT entries.
4240
4241 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4242
4243         * file-io.c: fix typo in warning message.
4244
4245 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
4246
4247         * loader.c: on unix, lookup the "*A" version of a function
4248         if charset is auto as a second option before failing.
4249
4250 2006-02-28  Raja R Harinath  <rharinath@novell.com>
4251
4252         * class.h (mono_class_inflate_generic_method): Revert to two
4253         argument version.
4254         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
4255         (mono_class_inflate_generic_method_full): Add.
4256         * class.c (mono_class_inflate_generic_method_full): Rename from
4257         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
4258         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
4259         * loader.c, reflection.c: Update to changes.
4260
4261 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
4262
4263         * icall.c: const fixes and small improvements.
4264
4265 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4266
4267         * threadpool.c: for asynchronous connect(), enable the same workaround
4268         for BSD 6 as for the Mac. Fixes bug #77637.
4269
4270 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
4271
4272         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
4273         formatted classes. Fixes #77524.
4274
4275 2006-02-24  Raja R Harinath  <rharinath@novell.com>
4276
4277         * class.c (inflate_generic_type): Add a couple more
4278         micro-optimizations.
4279         (inflate_generic_context): Don't use the 'gmethod' from
4280         'inflate_with'.
4281         (mono_class_inflate_generic_method): If the method has generic
4282         parameters, but the passed-in context doesn't have a 'gmethod',
4283         create one.  Use the possibly simplified generic instantiation
4284         from the declaring class instead of the one passed in.
4285
4286 2006-02-24  Raja R Harinath  <harinath@gmail.com>
4287
4288         Make generic method signature and method header handling lazy.
4289         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
4290         (inflate_generic_header): Likewise.
4291         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
4292         parameter to avoid inflating types.
4293         (mono_get_inflated_method): Empty out.
4294         * class.h (mono_class_inflate_generic_method): Update to changes.
4295         * loader.c (mono_get_method_from_token): Don't parse signature for
4296         generic methods, nor methods of generic classes.
4297         (mono_method_signature): Rename from 'mono_method_signature'.
4298         Inflate signature on demand.
4299         (mono_method_get_header): Inflate method header on demand.
4300         * reflection.c: Update to changes.
4301
4302 2006-02-23  Raja R Harinath  <rharinath@novell.com>
4303
4304         * metadata.c (mono_metadata_inflate_generic_inst): If the
4305         instantiation is closed, don't bother expanding it in the new
4306         context.
4307         * class.c (inflate_generic_class): If the generic instantiation
4308         doesn't change after inflation, return the argument itself.
4309         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
4310         Add bounds checks.
4311         (inflate_generic_context): If neither the generic class nor the
4312         generic method instantiations change, return the original context.
4313         * reflection.c (mono_method_get_object): Do
4314         'mono_get_inflated_method' before accessing the ->klass field.
4315         (inflate_mono_method): Don't create a MonoGenericMethod unless
4316         necessary.
4317         (inflate_method): Don't pass a constructed type as the declaring
4318         type of a methodbuilder.
4319
4320 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
4321
4322         * object.c: fix memory overwrite.
4323
4324 2006-02-22  Dick Porter  <dick@ximian.com>
4325
4326         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
4327         it doesn't work any more.
4328         (mono_threads_request_thread_dump): Fix unused variable warnings.
4329
4330 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
4331
4332         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
4333         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
4334         the public header file.
4335
4336 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
4337
4338         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
4339
4340 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
4341
4342         * class-internals.h, object.c: reduce the size of MonoVTable
4343         and store the interface_offsets array at negative offsets.
4344
4345 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
4346
4347         * metadata.c: tweak table descriptors data structures to reduce
4348         size and runtime relocations.
4349
4350 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4351
4352         * marshal.c: fix some types and opcodes to be type-safe
4353         in marshaling wrappers.
4354
4355 2006-02-21  Ankit Jain  <jankit@novell.com>
4356
4357         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
4358
4359 2006-02-21  Raja R Harinath  <rharinath@novell.com>
4360
4361         * metadata.c (get_constraints): Relax debugging checks for monodis.
4362
4363 2006-02-21  Ankit Jain  <jankit@novell.com>
4364
4365         * metadata.c (mono_metadata_load_generic_params): Move the code
4366         checking for ambiguous generic params from here to mono/dis/get.c
4367         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
4368
4369 2006-02-21  Raja R Harinath  <harinath@gmail.com>
4370
4371         Fix assertion triggered when compiling nemerle.
4372         * class.c (mono_get_shared_generic_inst): Rename from
4373         get_shared_inst and make non-static.
4374         * loader.c (mono_get_shared_generic_method): New.  Used to create
4375         the MonoGenericContext-equivalent of a MonoGenericContainer.
4376         (mono_get_method_from_token): Initialize the 'context' field of
4377         the created MonoGenericContainer.
4378         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
4379         * metadata.c (get_constraints): Add sanity check.
4380         * class-internals.h: Add new internal methods.
4381
4382         * reflection.c (verify_safe_for_managed_space): New sanity check.
4383         Currently checks that owner-less generic parameters aren't allowed
4384         in managed space.
4385         (mono_type_get_object): Use it.
4386         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
4387         that are now in mono_type_get_object.
4388         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
4389
4390 2006-02-19  Raja R Harinath  <harinath@gmail.com>
4391
4392         * metadata.c (mono_type_create_from_typespec): Rename from
4393         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
4394         argument and caching of types in the generic container.
4395         (unwrap_arrays, find_generic_param): Remove.
4396         * metadata-internals.h: Update.
4397         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
4398
4399 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
4400
4401         * class.c (mono_class_get_exception_for_failure): Fix a warning.
4402
4403         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
4404         return values. Fixes #77581.
4405
4406         * class.c (mono_fnptr_class_get): Switch name and name_space.
4407
4408         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
4409         classes and add support for [In, Out] attributes.
4410         (mono_marshal_free_asany): Ditto. Fixes #77524.
4411
4412 2006-02-18  Raja R Harinath  <harinath@gmail.com>
4413
4414         * class.c (mono_class_from_generic_parameter): Make more robust to
4415         incomplete MonoGenericContainers from monodis.
4416
4417 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4418
4419         * class-internals.h: added some more exception types.
4420         * class.c, metadata.c: added a few checks to handle missing
4421         types.
4422
4423 2006-02-17  Raja R Harinath  <rharinath@novell.com>
4424
4425         Use owner-less generic-params some more.
4426         * class.c (my_mono_class_from_generic_parameter): Remove.
4427         (mono_class_from_generic_parameter): Handle null image,
4428         param->name and param->owner.
4429         (mono_class_from_mono_type): Update.
4430         (mono_class_create_from_typespec): Remove 'container' parameter.
4431         If that parameter is non-null, the result is always inflated by
4432         'mono_class_get_full' anyway.
4433         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
4434         parameter.
4435         (mono_class_get_full): Update.
4436
4437         * class.c (inflate_generic_type) [GENERICINST]: If the generic
4438         instance is not open, don't bother inflating.
4439         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
4440         parse metadata for inflated classes.
4441         (_mono_class_get): Change GenericContext* parameter to
4442         GenericContainer*.
4443         (mono_class_create_from_typespec): Likewise.  Simplify, and
4444         implement trivially.  All the cases are handled in
4445         mono_class_from_mono_type.  Don't inflate returned class.
4446         (mono_class_get_full): Delegate GENERICINST optimization to
4447         inflate_generic_type.
4448         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
4449
4450 2006-02-16  Dick Porter  <dick@ximian.com>
4451
4452         * socket-io.c (create_object_from_sockaddr): Fix typo.
4453         (create_sockaddr_from_object): Check array lengths before
4454         potentially accessing items off the end.
4455         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
4456         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
4457         (ves_icall_System_Net_Sockets_Socket_Send_internal)
4458         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
4459         length checks to avoid wraparound overflows.
4460         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
4461         contents of the array of sockets
4462         (hostent_to_IPHostEntry2)
4463         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
4464         Check return value of inet_ntop ().
4465         (addrinfo_to_IPHostEntry): Fix typo
4466
4467 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4468
4469         Type metadata parsing doesn't use generic-instantiation information.
4470         * metadata.c (mono_metadata_parse_array_full): Change
4471         MonoGenericContext* parameter to MonoGenericContainer*.
4472         (mono_metadata_parse_type_full): Likewise.
4473         (mono_type_create_from_typespec_full): Likewise.
4474         (mono_metadata_parse_mh_full): Likewise.
4475         (mono_metadata_parse_generic_inst): Likewise.
4476         (do_mono_metadata_parse_generic_class): Likewise.
4477         (do_mono_metadata_parse_type): Likewise.
4478         * metadata-internals.h: Update to changes.
4479         * class.c (mono_class_find_enum_basetype): Likewise.
4480         (mono_class_setup_fields): Likewise.
4481         (mono_class_create_from_typespec): Likewise.
4482         * loader.c (method_from_methodspec): Likewise.
4483         (mono_get_method_from_token): Likewise.
4484         (mono_method_get_header): Likewise.
4485
4486 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
4487
4488         * marshal.c: handle additional GENERICINST case (patch from
4489         Thong Nguyen <tum@veridicus.com>).
4490         Fix a few cases where LDIND_I/STIND_I was used for references.
4491
4492 2006-02-16  Raja R Harinath  <rharinath@novell.com>
4493
4494         * reflection.c (mono_reflection_get_token): Remove unused variable.
4495
4496 2006-02-16  Martin Baulig  <martin@ximian.com>
4497
4498         * reflection.c (mono_reflection_get_token): Add support for fields
4499         in instantiated generic types.
4500
4501         * icall.c
4502         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
4503
4504 2006-02-15  Martin Baulig  <martin@ximian.com>
4505
4506         * icall.c
4507         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
4508         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
4509         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
4510         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
4511
4512 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
4513
4514         * class.c, metadata.c, metadata.h, object.c, icall.c,
4515         marshal.c: changed mono_type_get_underlying_type () to do
4516         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
4517         Fixed handling of instantiated generic valuetypes (bug #75479).
4518
4519 2006-02-15  Raja R Harinath  <rharinath@novell.com>
4520
4521         * metadata.c (mono_metadata_decode_signed_value): Simplify.
4522         Delegate to mono_metadata_decode_value, and work on the returned value.
4523
4524         * icall.c (ves_icall_MonoType_GetGenericArguments):
4525         Add consistency check here too.
4526         
4527 2006-02-15  Ankit Jain  <jankit@novell.com>
4528
4529         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
4530         char/short etc.
4531
4532 2006-02-15  Ankit Jain  <jankit@novell.com>
4533
4534         * metadata.c (mono_metadata_decode_signed_value): New function to decode
4535         signed values, used only for representing lower bounds of arrays.
4536         (mono_metadata_parse_array_full): Use new
4537         mono_metadata_decode_signed_value to decode lower bounds.
4538
4539 2006-02-14  Martin Baulig  <martin@ximian.com>
4540
4541         * reflection.c
4542         (mono_reflection_get_token): Support "MonoGenericMethod" and
4543         "MonoGenericCMethod" and allow generic instances / methods.
4544
4545 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
4546
4547         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
4548         to obtain the terminal size using an ioctl.
4549
4550         * object.c (mono_nullable_init): Revert this as nullable reference
4551         types are not valid.
4552         (mono_nullable_box): Ditto.
4553
4554 2006-02-09  Dick Porter  <dick@ximian.com>
4555
4556         * threads.c (mono_thread_detach): Drop a reference to the thread
4557         we're detaching.
4558
4559 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
4560
4561         * object.c (mono_nullable_init): Handle nullable reference types.
4562         (mono_nullable_box): Ditto. Fixes #77446.
4563
4564 2006-02-07  Martin Baulig  <martin@ximian.com>
4565
4566         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
4567
4568 2006-02-07  Ankit Jain  <jankit@novell.com>
4569
4570         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
4571         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
4572         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
4573         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
4574         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
4575         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
4576
4577 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
4578
4579         * class.c (mono_class_create_generic): Set type_token as well.
4580
4581         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
4582         compatible with MS.
4583
4584 2006-02-02  Martin Baulig  <martin@ximian.com>
4585
4586         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
4587         has never been used so far.
4588
4589 2006-02-02  Martin Baulig  <martin@ximian.com>
4590
4591         * mono-debug-debugger.h: Changed comment at the top of this file;
4592         the header is not installed, but it's safe to #include it from
4593         within the JIT.
4594
4595         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
4596         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
4597
4598 2006-02-02  Martin Baulig  <martin@ximian.com>
4599
4600         * mono-debug.h
4601         (MonoSymbolTable): Removed the `metadata_info' field.
4602
4603         * mono-debug.c
4604         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
4605
4606         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4607         (mono_debugger_add_builtin_types): Removed.
4608         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
4609         (mono_debugger_create_notification_function): We now operate on a
4610         pre-allocated area; take a `gpointer' and return `void'.
4611
4612         * mono-debug-debugger.c
4613         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
4614         (mono_debugger_add_builtin_types): Removed.
4615
4616 2006-02-02  Martin Baulig  <martin@ximian.com>
4617
4618         * threads.c (mono_debugger_create_all_threads): New public method.
4619
4620 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
4621
4622         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
4623         breaks on several platforms.
4624
4625 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
4626
4627         * assembly.c: the VS.NET build doesn't supply default values for
4628         MONO_ASSEMBLIES and MONO_CFG_DIR.
4629
4630 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
4631
4632         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
4633         helper function.
4634
4635         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
4636
4637         * loader.c (method_from_memberref): Fix a warning.
4638
4639         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
4640
4641         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
4642         with explicit layout. Fixes #77433.
4643
4644 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
4645
4646         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
4647         max_interface_id is initialized before using it. Fixes #77398.
4648         (ves_icall_Type_GetInterfaces): Ditto.
4649
4650 2006-01-30  Raja R Harinath  <rharinath@novell.com>
4651
4652         * metadata.c (mono_metadata_parse_method_signature_full): Don't
4653         allocate memory for parameter attributes when parsing memberref
4654         signatures.
4655         * loader.c (mono_loader_set_error_method_load): Don't warn.
4656         (method_from_memberref): Ensure MissingMethodException gets thrown
4657         if method is not found.  Make warning more informative.
4658
4659 2006-01-29  Raja R Harinath  <harinath@gmail.com>
4660
4661         Fix #77397
4662         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
4663         return true if is byref.
4664         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
4665         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
4666         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
4667
4668 2006-01-27  Raja R Harinath  <rharinath@novell.com>
4669
4670         Fix tests/find-method.2.il
4671         * loader.c (find_method, find_method_in_class): Remove is_inflated
4672         argument.  Revert 2006-01-18 change.
4673         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
4674         is generic, search for method in its generic definition.
4675         * class.c (mono_class_setup_vtable_general): Print generic
4676         arguments of generic types in debugging printf.
4677
4678 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
4679
4680         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
4681
4682         * threads.c (mono_threads_request_thread_dump): New helper function.
4683
4684 2006-01-25  Raja R Harinath  <rharinath@novell.com>
4685
4686         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
4687
4688 2006-01-25  Ankit Jain  <jankit@novell.com>
4689
4690         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
4691         move definition to ..
4692         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
4693         
4694 2006-01-25  Ankit Jain  <jankit@novell.com>
4695             Raja R Harinath  <rharinath@novell.com>
4696
4697         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
4698         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
4699         as necessary.
4700
4701 2006-01-25  Martin Baulig  <martin@ximian.com>
4702
4703         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
4704         `MonoDebuggerThread' into debug-debugger.c.
4705
4706 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
4707
4708         * profiler.c: fix printing of data.
4709
4710 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
4711
4712         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
4713           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
4714
4715 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
4716
4717         * object.c: fix deadlock related to string interning.
4718
4719 2006-01-23  Martin Baulig  <martin@ximian.com>
4720
4721         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
4722
4723         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
4724
4725 2006-01-23  Martin Baulig  <martin@ximian.com>
4726
4727         * mono-debug.h: Moved the prototypes of some functions which are
4728         used by the JIT here from mono-debug-debugger.h.
4729
4730 2006-01-21  Martin Baulig  <martin@ximian.com>
4731
4732         * Makefile.am: Don't install mono-debug-debugger.h.
4733
4734 2006-01-21  Martin Baulig  <martin@ximian.com>
4735
4736         * mono-debug-debugger.h: Enforce the private status of this header
4737         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
4738         Moved some stuff from mono-debugger-jit-wrapper.h here.
4739
4740 2006-01-20  Raja R Harinath  <rharinath@novell.com>
4741
4742         * class.c (mono_class_from_typeref): Add a sanity test to help
4743         catch lack of assembly load/search hooks.
4744
4745 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
4746
4747         * marshal.c (emit_struct_conv): Relax the fields with same offset
4748         check even more. Fixes #77230.
4749
4750 2006-01-18  Martin Baulig  <martin@ximian.com>
4751
4752         * loader.c (find_method_in_class): Added `gboolean is_inflated'
4753         argument; if false, we compare the uninstantiated signatures.
4754         (method_from_memberref): Compare the uninstantiated signatures;
4755         fixes #76417.
4756
4757 2006-01-18  Robert Jordan  <robertj@gmx.net>
4758
4759         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
4760         Clear the weak link. Fixes bug #77170.
4761
4762         * gc.c (mono_gchandle_free):
4763         Reflect *-gc.c changes (tiny optimization).
4764
4765 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
4766
4767         * metadata.c (mono_metadata_signature_dup): Applied patch from
4768         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
4769         Fixes #77288.
4770
4771 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
4772
4773         * marshal.c (emit_struct_conv): Allow fields with the same offset when
4774         marshalling from native to managed code. Fixes #77230.
4775
4776 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4777
4778         * threadpool.c: fix problem (Mac only) when more than one asynchronous
4779         connect. Fixes bug #77020.
4780
4781 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
4782
4783         * class.c: fixed id assignement for nested interfaces (bug #77275).
4784         Added also better info for --print-vtable debugging.
4785
4786 2006-01-12  Martin Baulig  <martin@ximian.com>
4787
4788         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
4789         interfaces on-the-fly; fixes #76625.
4790
4791         * class-internals.h
4792         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
4793         don't need that anymore.
4794
4795 2006-01-12  Miguel de Icaza  <miguel@novell.com>
4796
4797         * socket-io.c
4798         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4799         To avoid initing the nested_classes when not needed I turned the
4800         PeerCredData as a toplevel internal class, as it has to be shared
4801         anyways. 
4802
4803         Fixes the CASA issue.
4804
4805 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
4806
4807         * domain.c: Accessors for MonoJitInfo
4808
4809         * profiler-private.h: Add jitinfo to the end jit hook
4810
4811         * profiler.[ch]: Define new hooks, called after jitting which give
4812         the MonoJitInfo that was compiled
4813
4814 2006-01-10  Martin Baulig  <martin@ximian.com>
4815
4816         * class.c (mono_class_setup_events): Add support for generic
4817         classes; fixes #76440.
4818
4819 2006-01-06  Raja R Harinath  <rharinath@novell.com>
4820
4821         Fix #77160.
4822         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
4823         on passed-in method.
4824
4825 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4826
4827         * object.c (mono_runtime_invoke_array): Add Nullable support.
4828
4829         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
4830
4831 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
4832
4833         * file-io.c: Don't consider sockets as directory and avoid an endless
4834         loop. Fix bug #76966.
4835
4836 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
4837
4838         * object.c (mono_nullable_init): New helper function.
4839         (mono_nullable_box): Ditto.
4840
4841         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
4842
4843         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
4844
4845         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
4846         
4847 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
4848
4849         * class.c (mono_class_is_assignable_from): Make T assignable to 
4850         Nullable<T>.
4851
4852 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
4853
4854         * appdomain.c: Bump corlib version to 46.
4855         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
4856         serialization purpose) and changed ves_icall_System_Reflection_
4857         Assembly_get_code_base signature to accept a boolean (to escape, or 
4858         not, the assembly code base).
4859
4860 2005-12-23  Dick Porter  <dick@ximian.com>
4861
4862         * icall.c: 
4863         * threads-types.h: 
4864         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
4865         CreateEvent icall now returns "created" boolean parameter.
4866
4867 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
4868
4869         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
4870         #76967.
4871
4872         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
4873         when attr_klass is an interface. Fixes #77045.
4874
4875 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
4876
4877         * marshal.c (emit_struct_conv): Fix previous patch.
4878         
4879         * marshal.c (emit_struct_conv): Add a check for fields with the same
4880         offset.
4881
4882 2005-12-20  Raja R Harinath  <rharinath@novell.com>
4883
4884         Fix regression in Mono.C5.
4885         * class.c (mono_class_create_generic): If 'klass' is an interface
4886         set up the interface offsets.
4887         (mono_class_is_assignable_from): Don't throw away generic arguments.
4888
4889 2005-12-19  Raja R Harinath  <rharinath@novell.com>
4890
4891         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
4892         type parameters.
4893
4894 2005-12-15  Raja R Harinath  <rharinath@novell.com>
4895
4896         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
4897         dead store.
4898         (do_mono_metadata_parse_generic_class): Don't pass the current
4899         generic context when parsing the type being instantiated: it
4900         cannot use it, anyway.
4901
4902         * loader.c (method_from_memberref): Don't inflate a signature if
4903         it doesn't contain any type parameters.
4904
4905 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
4906
4907         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
4908
4909 2005-12-14  Martin Baulig  <martin@ximian.com>
4910
4911         * class.c
4912         (mono_type_get_name_recurse): Don't return null for type
4913         parameters and open generic classes.
4914         (mono_class_setup_methods): Don't exclude generic instances.
4915         (mono_get_unique_iid): Use different IDs for different
4916         instantiations of the same generic type.
4917         (mono_class_setup_vtable): Only use setup_generic_vtable() for
4918         open generic instances; create a normal vtable for closed generic
4919         instances.
4920         (mono_class_setup_vtable_general): We're now also called for
4921         closed generic instances.
4922
4923         * reflection.c
4924         (mono_reflection_bind_generic_parameters): Correctly use
4925         mono_metadata_lookup_generic_inst() everywhere.
4926
4927 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
4928
4929         * object.c (mono_class_create_runtime_vtable): Call 
4930         mono_class_setup_vtable ().
4931
4932         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
4933         function.
4934         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
4935         #76959.
4936
4937         * loader.c (mono_loader_set_error_type_load): Print the type load
4938         warnings to the console so they are more visible to the user.
4939         (mono_loader_set_error_method_load): Ditto.
4940
4941         * reflection.c (ensure_runtime_vtable): Revert the last change as it
4942         is still broken.
4943         
4944         * reflection.c (ensure_runtime_vtable): Fix build.
4945
4946         * reflection.c (ensure_runtime_vtable): Disable an optimization which
4947         doesn't work in all cases.
4948
4949 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
4950
4951         * object.c (mono_array_new_full): Treat a single dimensional array
4952         with 0 lower bounds as an szarray. Fixes #76973.
4953
4954         * reflection.c (custom_attr_visible): Really fix this.
4955
4956 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
4957
4958         * reflection.c (custom_attr_visible): Allow nested public attributes
4959         as well.
4960
4961         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
4962         interface check.
4963
4964 2005-12-12  Raja R Harinath  <harinath@gmail.com>
4965
4966         * class.c (set_generic_param_owner): Delete.
4967         (mono_class_create_from_typedef): Don't set ->owner field of
4968         generic parameters to "param containers" of enclosing classes.
4969         * reflection.c (mono_reflection_initialize_generic_parameter):
4970         Likewise.
4971
4972 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
4973
4974         * reflection.c (custom_attr_visible): Fix build.
4975
4976 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
4977
4978         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
4979         private attributes.
4980         
4981         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
4982         handling of null parameter defaults.
4983
4984 2005-12-09  Raja R Harinath  <rharinath@novell.com>
4985
4986         * class.c (mono_class_from_generic_parameter): Don't set
4987         klass->generic_container.
4988         (my_mono_class_from_generic_parameter): Likewise.
4989
4990 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
4991
4992         * reflection.c (load_public_key): Fix a warning.
4993         (method_encode_code): Fix unaligned accesses.
4994
4995 2005-12-07  Martin Baulig  <martin@ximian.com>
4996
4997         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
4998
4999         * reflection.c
5000         (write_generic_param_entry): Encode our custom attrs.
5001
5002         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
5003
5004 2005-12-07  Martin Baulig  <martin@ximian.com>
5005
5006         * reflection.c (encode_new_constraint): Removed; we don't use the
5007         `NewConstraintAttribute' anymore.
5008
5009 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
5010
5011         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
5012         not fire a TypeResolve event when Assembly.GetType () is called.
5013
5014 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
5015
5016         Beginning of support for nullable types in the runtime. Parts of
5017         this patch are from Martin.
5018
5019         * appdomain.c (MONO_CORLIB_VERSION): Bump
5020
5021         * domain.c (mono_init_internal): get the nullable type
5022
5023         * class.c (mono_class_is_nullable): New method
5024         (mono_class_get_nullable_param): New mehod
5025         (mono_class_create_generic): In types T? set cast_class to T
5026
5027         * class-internals.h (MonoDefaults): new nullable default class
5028         (mono_class_get_nullable_param, mono_class_get_nullable_param):
5029         new methods.
5030
5031 2005-12-05  Raja R Harinath  <rharinath@novell.com>
5032
5033         * metadata.c (select_container): New.  Refactor code to select the
5034         appropriate GenericContainer given the type of generic parameter
5035         we are looking for.
5036         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
5037         not a MonoGenericContext.  Use select_container.  Update parameters.
5038         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
5039         and MONO_TYPE_MVAR.
5040         (unwrap_arrays): Remove duplicate tests.
5041         (find_generic_param): Rename from 'has_same_context'.  Now walks a
5042         generic instantiated class to find any arguments that are generic
5043         parameters.
5044         (mono_type_create_from_typespec_full): Use find_generic_param to
5045         avoid evicting some generic instantiations from the typespec
5046         cache.
5047
5048 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
5049
5050         * reflection.c: fixed writing of doubles on ARM FPA.
5051
5052 2005-12-02  Robert Jordan  <robertj@gmx.net>
5053
5054         * icall.c: Fixed EventInfo.ReflectedType (#76829).
5055
5056 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5057
5058         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
5059         least on SUSE 10 they are not the same (on debian, they are just the
5060         same thing).
5061
5062 2005-12-01  Raja R Harinath  <rharinath@novell.com>
5063
5064         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
5065         DeclaringType for VARs and MVARs.
5066         * class.c (set_generic_param_owner): Fix initialization of owner
5067         fields.
5068
5069 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5070
5071         * icall.c: fixed Enum.ToObject() to correctly convert the values.
5072
5073 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5074
5075         * threadpool.c: workaround for a bug that shows up on the Mac:
5076         select()+connect() on a blocking socket is not like it should
5077         be, so we proceed to connect() in that case, wasting the I/O
5078         threadpool thread until connect succeedes. Fixes bug #75436.
5079
5080 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5081
5082         * threadpool.c: fix typo when setting file descriptor states.
5083
5084 2005-11-28  Raja R Harinath  <rharinath@novell.com>
5085
5086         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
5087         * metadata.c (mono_metadata_parse_method_signature_full): Don't
5088         create a temporary signature container.
5089         (mono_metadata_parse_generic_param): Update to changes.
5090         (mono_type_create_from_typespec_full): Update to changes.
5091         * loader.c (method_from_memberref): Don't use a
5092         MonoGenericContainer while parsing a memberref signature.
5093         (method_from_methodspec): Remove dead-store of the 'container'
5094         variable.  It's overwritten before use.
5095
5096         * metadata.c (mono_type_create_from_typespec_full): Make debugging
5097         checks tighter.
5098         (mono_metadata_parse_generic_param): Likewise.
5099         * loader.c (find_method_in_class): Does not need a
5100         MonoGenericContainer.  Use 'mono_method_signature' rather than
5101         'mono_method_signature_full'.
5102         (find_method, mono_get_method_constrained, method_from_memberref):
5103         Update to changes.
5104
5105         * metadata.c (mono_type_create_from_typespec_full): Ensure that
5106         owner-less generic-parameters are never evicted from the typespec
5107         cache.
5108
5109         * loader.c (method_from_memberref): Don't use the current context
5110         when parsing signatures.
5111         (method_from_methodspec, mono_get_method_from_token): Update to changes.
5112
5113         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
5114         side-effects in g_assert.
5115         * loader.c (mono_get_method_from_token): Resolve klass earlier so
5116         that we don't potentially lose information.
5117
5118 2005-11-26  Dick Porter  <dick@ximian.com>
5119
5120         * icall.c:
5121         * threads.c: icalls to implement basic (ie, not named)
5122         System.Threading.Semaphore.
5123
5124 2005-11-24  Dick Porter  <dick@ximian.com>
5125
5126         * process.c
5127         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
5128         Use GetProcessId() if it's available.
5129
5130 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
5131
5132         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
5133
5134 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5135             Ankit Jain  <jankit@novell.com>
5136
5137         * loader.c (mono_get_method_from_token): Initialize 'method' field
5138         of all generic parameters before parsing the signature.  Remove
5139         code that "fixed"-up MVAR references.
5140
5141 2005-11-23  Ankit Jain  <jankit@novell.com>
5142
5143         * metadata.c (mono_metadata_has_generic_params):
5144         (mono_metadata_load_generic_param_constraints):
5145         (mono_metadata_load_generic_params): Move duplicate code ...
5146         (mono_metadata_get_generic_param_row): ... here. Returns the
5147         first row-id in GenericParam table for a given owner (token).
5148         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
5149         prototype.
5150
5151 2005-11-23  Raja R Harinath  <rharinath@novell.com>
5152             Ankit Jain  <jankit@novell.com>
5153
5154         * metadata.c (mono_metadata_class_equal): Pass signature_only when
5155         comparing VARs too.
5156         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
5157         type->data.generic_param only if the type is an MVAR.
5158         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
5159         leak owner-less VARs and MVARs into managed space.
5160
5161 2005-11-21  Martin Baulig  <martin@ximian.com>
5162
5163         * class-internals.h
5164         (MonoMethod): Moved the `generic_container' here from
5165         `MonoMethodNormal' since we now also need it for
5166         `MonoMethodPInvoke';
5167         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
5168         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
5169         an union containing both `MonoMethodNormal' and
5170         `MonoMethodPInvoke'.
5171
5172         * loader.c
5173         (mono_get_method_from_token): Allow implementing generic methods
5174         as interncalls.
5175
5176         * threads.c
5177         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
5178         icall.
5179
5180 2005-11-17  Dick Porter  <dick@ximian.com>
5181
5182         * icall.c: 
5183         * process.h: 
5184         * process.c: Split the Process Start_internal icall into
5185         ShellExecuteEx_internal and CreateProcess_internal, which are
5186         called depending on whether UseShellExecute is true.  Fixes bug
5187         76670.
5188
5189         * appdomain.c (MONO_CORLIB_VERSION): Incremented
5190
5191 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
5192
5193         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
5194         'msize' parameters, use the information in 'mspec' instead.
5195         (emit_object_to_ptr_conv): Ditto.
5196
5197         * marshal.c (emit_struct_conv): Handle explicit layout structs with
5198         fields out of order. Fixes #76733.
5199
5200 2005-11-17  Ankit Jain  <jankit@novell.com>
5201
5202         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
5203
5204 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
5205
5206         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
5207           bug #76575.
5208
5209 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5210
5211         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
5212         for types with non-auto layout. Fixes #76717.
5213
5214 2005-11-16  Ankit Jain  <jankit@novell.com>
5215
5216         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
5217         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
5218         if generic_context is null.
5219           (mono_metadata_generic_param_equal): param->owner can be null.
5220           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
5221         null.
5222
5223 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
5224
5225         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
5226         the correct value.
5227
5228 2005-11-15  Martin Baulig  <martin@ximian.com>
5229
5230         * object.c (set_value): Use mono_class_from_mono_type() instead of
5231         the hack for generic instances; fixes #76136.
5232
5233 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
5234
5235         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
5236         fields.
5237
5238         * image.c (load_metadata_ptrs): Initialize the new fields.
5239
5240         * reflection.c (create_dynamic_mono_image): Ditto.
5241
5242         * reflection.c (build_compressed_metadata): Use the new fields.
5243
5244         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
5245         icall.
5246
5247         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
5248         icall.
5249         
5250 2005-11-15  Ankit Jain  <jankit@novell.com>
5251             Raja R Harinath  <harinath@gmail.com>
5252
5253         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
5254         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
5255         new per-generic_container cache if the cached MonoType's context matches
5256         the current context.
5257           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
5258         to the expected context.
5259           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
5260
5261 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5262
5263         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
5264         we changed the signature of an icall.
5265         * icall.c: Modify to mono_double_ParseImpl return true/false 
5266         depending on the success, instead of throwing the exception. This will
5267         help us in Double.TryParse methods.
5268         
5269 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
5270
5271         * marshal.c (emit_marshal_object): Throw an exception when
5272         marshalling 'object' instead of crashing. Fixes #76696.
5273
5274 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5275
5276         * class-internals.h: Add prototype for mono_type_get_full_name ().
5277
5278 2005-11-11  Dick Porter  <dick@ximian.com>
5279
5280         * threads.c (mono_thread_manage): Make sure the main thread has
5281         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
5282
5283 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
5284
5285         * loader.c (mono_loader_set_error_type_load): Log a warning to the
5286         console about the missing type.
5287         (mono_loader_set_error_method_load): Ditto.
5288
5289 2005-11-09  Miguel de Icaza  <miguel@novell.com>
5290
5291         * mono-config.c (mono_get_config_dir): Set the system defaults if
5292         none is specified.
5293
5294         * assembly.c (mono_set_dirs): New API entry point to set the
5295         assembly and the config directory in one call
5296
5297 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
5298
5299         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
5300         the ftnptr was created from a delegate in a domain other than the
5301         current domain. Fixes #75377.
5302
5303         * exception.h exception.c: Add mono_get_exception_not_supported ().
5304
5305 2005-11-08  Martin Baulig  <martin@ximian.com>
5306
5307         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
5308
5309 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
5310
5311         * security-manager.h: Added definitions to deal with strongname key 
5312         pairs bigger (and smaller) than 1024 bits.
5313         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
5314         adjust wrt the public key length being used.
5315
5316 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
5317
5318         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
5319           Windows build (r51396-51397).
5320
5321 2005-11-03  Martin Baulig  <martin@ximian.com>
5322
5323         * class.c (mono_class_setup_vtable_general): Also add generic
5324         methods to the vtable; fixes #76581.
5325
5326 2005-11-01  Miguel de Icaza  <miguel@novell.com>
5327
5328         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
5329         sure that we lookup GetString method from the System.Text.Encoding
5330         class, not the derived class or we get an empty method.
5331
5332         Fixed class #76612.
5333
5334 2005-10-25  Miguel de Icaza  <miguel@novell.com>
5335
5336         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
5337         if it has been previously set (embedders). 
5338
5339         Make mono_set_rootdir available also on Unix.
5340
5341 005-10-24  Robert Jordan  <robertj@gmx.net>
5342
5343         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
5344
5345 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
5346
5347         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
5348         only calls which are made to native code use this flag.
5349
5350         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
5351
5352 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
5353
5354         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
5355         Add support for FieldBuilders.
5356
5357 2005-10-29  Martin Baulig  <martin@ximian.com>
5358
5359         * mono-debug.c
5360         (mono_debug_using_mono_debugger): New public method; returns
5361         whether we're running inside the debugger.
5362
5363 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
5364
5365         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
5366         for Method/Constructor/FieldBuilders.
5367
5368 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
5369
5370         * reflection.c (module_add_cattrs): Save custom attributes for global methods
5371         and fields as well.
5372
5373 2005-10-26  Martin Baulig  <martin@ximian.com>
5374
5375         * mono-debug-debugger.c
5376         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
5377
5378 2005-10-24  Raja R Harinath  <harinath@gmail.com>
5379
5380         * icall.c (base64_to_byte_array): Don't pass an out-of-range
5381         integer to isspace.
5382
5383 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
5384
5385         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
5386         when passing valuetypes byref. Fixes #76502.
5387
5388 2005-10-19  Jackson Harper  <jackson@ximian.com>
5389
5390         * profiler.c: Don't put a . in front of types that are not in a
5391         namespace.
5392
5393 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
5394
5395         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
5396
5397 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
5398
5399         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
5400         #76436.
5401         (mono_marshal_get_ldflda_wrapper): Fix a warning.
5402
5403 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5404
5405         * assembly.c metadata-internals.h icall.c: Define an additional
5406         parameter for mono_assembly_name_parse_full, so we can avoid creating
5407         S.R.AssemblyName.Version when no version info wasn't passed.
5408         
5409 2005-10-09  Miguel de Icaza  <miguel@novell.com>
5410
5411         * class.c (mono_type_get_full_name): Reimplement method that was
5412         removed. 
5413
5414         * image.c: Some docs
5415
5416 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
5417
5418         * profiler.c (output_newobj_profile): Fix printing of Total memory
5419         on x86.
5420
5421 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5422
5423         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
5424
5425 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
5426
5427         * threads.c: remove debug output.
5428
5429 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
5430
5431         * threads.c (mono_thread_manage): Fix crashes if more than 64
5432         threads need to be aborted. Hopefully fixes #75899.
5433
5434         * assembly.c (mono_stringify_assembly_name): New helper function.
5435
5436         * class.c: Use mono_stringify_assembly_name instead of the similar
5437         static function.
5438
5439         * assembly.h assembly.c: Add support for calling a postload search 
5440         hook if an assembly cannot be loaded.
5441
5442         * appdomain.c: Register new search hooks which call the AssemblyResolve
5443         events in AppDomain. Fixes #75231
5444
5445 2005-10-07  Martin Baulig  <martin@ximian.com>
5446
5447         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
5448         methods without debug info.
5449
5450 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
5451
5452         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
5453         wrappers.
5454
5455 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5456
5457         * file-io.c: now that we return symlinks, use lstat and, when the file
5458         is a symbolic link, stat, to get the file attributes. Also avoid the
5459         conversion to/from utf16/external.
5460
5461 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
5462
5463         * class.c (mono_class_layout_fields): Compute klass->has_references
5464         correctly if an embedded valuetype is not yet initialized. Fixes
5465         #76331.
5466
5467 2005-10-04  Martin Baulig  <martin@ximian.com>
5468
5469         * metadata.c
5470         (mono_metadata_load_generic_param_constraints): New public
5471         function; splitted the constraints loading out from
5472         mono_metadata_load_generic_params().
5473
5474         * class.c (mono_class_create_from_typedef): Call
5475         mono_metadata_load_generic_param_constraints() after setting up
5476         the type and creating our parent; fixes #75329.
5477
5478 2005-10-04  Martin Baulig  <martin@ximian.com>
5479
5480         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
5481         non-dynamic parent classes.
5482
5483 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
5484
5485         * file-io.c : win32 build fix (ETXTBSY seems not found).
5486
5487 2005-10-04  Martin Baulig  <martin@ximian.com>
5488
5489         * reflection.c
5490         (mono_image_get_methodspec_token): Make the cache actually work;
5491         fixes #75974.
5492
5493 2005-10-04  Martin Baulig  <martin@ximian.com>
5494
5495         * class.c (mono_class_name_from_token): Removed the unneccessary
5496         `MonoGenericContext *' argument.
5497
5498 2005-10-04  Martin Baulig  <martin@ximian.com>
5499
5500         * loader.c
5501         (method_from_methodspec): Make the caching work again; fixes the
5502         performance regression from #76262.
5503
5504 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5505
5506         * file-io.c:
5507         * file-io.h:
5508         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
5509         GetFileSystemEntries that performs the same work but without going
5510         into io-layer, locking, etc.
5511
5512 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
5513
5514         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
5515         ThreadState_Stopped as well. Fixes #76047.
5516
5517 2005-09-29  Martin Baulig  <martin@ximian.com>
5518
5519         * class.c
5520         (inflate_generic_context): If the new context has a `gmethod', set
5521         its `container' that that gmethod's `container'.
5522
5523         * metadata.c
5524         (mono_metadata_parse_generic_param): Simplify things;
5525         `generic_container = generic_context->container;' is just fine.
5526
5527         * loader.c (method_from_methodspec): Code cleanups.
5528
5529 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
5530
5531         * decimal.c: fix warning (and let gcc generate correct
5532         code on ARM with optimizations).
5533
5534 2005-09-28  Martin Baulig  <martin@ximian.com>
5535
5536         * loader.c
5537         (method_from_memberref): Added `MonoGenericContext *class_context'
5538         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
5539         (method_from_methodspec): If we're a memberref, use the enclosing
5540         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
5541
5542 2005-09-28  Martin Baulig  <martin@ximian.com>
5543
5544         * object.c (mono_runtime_invoke_array): Added support for
5545         MONO_TYPE_GENERICINST; fixes #75917.
5546
5547 2005-09-27  Martin Baulig  <martin@ximian.com>
5548
5549         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
5550         `k->byval_arg.type' to determine the actual type.
5551
5552         * loader.c (method_from_methodspec): Removed some hacks.
5553
5554 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
5555
5556         * class-internals.h (mono_field_is_deleted): Do the test for
5557         rtspecialname before we check the actual name of the field. This
5558         prevents us from dereferencing a pointer into the string table,
5559         saving us from accessing a few pages
5560
5561         * *.c: Replace the use of {Enter,Leave}CriticalSection with
5562         macros. This will allow a deadlock debugger to easily be plugged
5563         in.
5564
5565 2005-09-27  Martin Baulig  <martin@ximian.com>
5566
5567         * loader.c (method_from_methodspec): Create a "signature"
5568         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
5569
5570 2005-09-27  Martin Baulig  <martin@ximian.com>
5571
5572         * class.c
5573         (inflate_generic_class): Correctly set the new context's
5574         container.
5575
5576         * loader.c
5577         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
5578         instead of a `MonoGenericContext *'.
5579         (mono_method_signature_full): Take a `MonoGenericContainer *'
5580         instead of a `MonoGenericContext *'.
5581
5582         * metadata.c
5583         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
5584         instead of a `MonoGenericContext *'.
5585         (mono_metadata_parse_method_signature_full): Likewise.
5586
5587 2005-09-26  Martin Baulig  <martin@ximian.com>
5588
5589         * class.c
5590         (mono_class_from_generic_parameter): Set `klass->generic_container'
5591         (mono_class_from_generic_parameter): Likewise.
5592         (mono_bounded_array_class_get): We inherit the generic container
5593         from the element class.
5594
5595         * loader.c
5596         (find_method, find_method_in_class): Take a `MonoGenericContext *'
5597         argument rather than computing it here.
5598         (method_from_memberref): Correctly set the generic context before
5599         parsing the signature.  Fixes #75681.
5600
5601 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
5602
5603         * object.c (mono_class_has_special_static_fields): Fix warnings.
5604
5605 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5606
5607         * assembly.c: Add parse_public_key function, to
5608         par the public keys. Also added mono_assembly_name_parse_full,
5609         to define it the parsed key should be freed or not.
5610         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
5611         to parse a long format assembly name.
5612         * metadata-internals.h: Keep mono_assembly_name_parse_full as
5613         private, since calling it to preserve the key requires
5614         freeing it manually.
5615         
5616 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
5617
5618         * locales.c : removed HAVE_ICU part.
5619
5620 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
5621
5622         * object.c (mono_class_create_runtime_vtable): Avoid calling 
5623         field_is_special_static if the klass has no special static fields.
5624
5625         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
5626         (MonoCachedClassInfo): Likewise.
5627
5628         * object.c (mono_class_has_special_static_fields): New helper function.
5629
5630 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5631
5632         * class.c (mono_class_create_from_typedef): Don't call 
5633         interfaces_from_typedef_full for enums.
5634         (mono_class_create_from_typedef): Compute the base types of enums directly
5635         without calling mono_class_setup_fields ().
5636         (mono_class_find_enum_basetype): New helper function.
5637
5638         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
5639         one place inside the string heap.
5640         
5641 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
5642
5643         * class.c: locking fixes, code cleanups, some docs added.
5644         Allocate some data structures in the image mempool.
5645
5646 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5647
5648         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5649         the example code.
5650         
5651 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
5652
5653         * class-internals.h, class.c, reflection.c: reduce memory taken by
5654         MonoClass.
5655
5656 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
5657
5658         * metadata.c, metadata.h, loader.h: documentation updates, code and
5659         API cleanups.
5660
5661 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
5662
5663         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
5664         the example code.
5665
5666         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
5667         page faults caused by the runtime while reading metadata.
5668
5669 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5670
5671         * socket-io.c: the field names were changed 3 months ago and no one
5672         realized until bug #76077 got filed!
5673
5674 2005-09-20  Martin Baulig  <martin@ximian.com>
5675
5676         * icall.c (assembly_icalls): Removed some unused debugger icalls.
5677
5678 2005-09-20  Martin Baulig  <martin@ximian.com>
5679
5680         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
5681         write the rank into the class entry.
5682
5683 2005-09-20  Martin Baulig  <martin@ximian.com>
5684
5685         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
5686
5687 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
5688
5689         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5690
5691         * icall.c (custom_attrs_defined_internal): New icall.
5692
5693         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
5694         function.
5695         (mono_custom_attrs_construct_by_type): New helper function.
5696
5697 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
5698
5699         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
5700         terminate the resulting string. Fixes #76123.
5701
5702 2005-09-16  Martin Baulig  <martin@ximian.com>
5703
5704         * mono-debug.c
5705         (mono_debug_add_method): Ignore inflated methods for the moment.
5706
5707 2005-09-14  Martin Baulig  <martin@ximian.com>
5708
5709         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
5710
5711 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
5712
5713         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
5714         return a success/failure indication.
5715         (mono_metadata_interfaces_from_typedef_full): Ditto.
5716         (get_constraints): Ditto.
5717
5718 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
5719
5720         * marshal.c (emit_marshal_array): Fix handling of null arrays.
5721         
5722         * marshal.c (emit_marshal_array): Add support for returning string
5723         arrays from delegates. Fixes #76063.
5724
5725         * marshal.c: Use the emit_ldloc/stloc macros where possible.
5726
5727 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
5728
5729         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
5730         icall.
5731
5732 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
5733
5734         * reflection.c icall.c: Fix after mono_get_exception_type_load
5735         signature change.
5736
5737         * assembly.c (mono_assembly_get_assemblyref): New helper function.
5738         (mono_assembly_load_reference): Use the new helper.
5739
5740         * class-internals.h (MonoLoaderError): New structure containing 
5741         information about type loading errors.
5742
5743         * class-internals.h loader.c: Add APIs to store per-thread loader
5744         error information.
5745
5746         * loader.c class.c: Set the loader error if needed.
5747
5748         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
5749
5750 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
5751
5752         * decimal.c: fixed to handle the broken ARM fp format.
5753
5754 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
5755
5756         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
5757         broken.
5758
5759 2005-09-06  Martin Baulig  <martin@ximian.com>
5760
5761         * domain.c (supported_runtimes): Added v2.0.50727.
5762
5763 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
5764
5765         * culture-info.h: reduce the size of some structures.
5766
5767 2005-09-05  Martin Baulig  <martin@ximian.com>
5768
5769         Reflect latest API changes in the August CTP.
5770
5771         * icall.c
5772         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
5773         ("MonoType.HasGenericArguments"): Removed.
5774         ("MonoMethod.BindGenericParameters"): Renamed to
5775         "MakeGenericMethod".
5776         ("MethodBuilder.BindGenericParameters"): Renamed to
5777         "MakeGenericMethod".    
5778
5779 2005-09-05  Martin Baulig  <martin@ximian.com>
5780
5781         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
5782
5783 2005-09-05  Martin Baulig  <martin@ximian.com>
5784
5785         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5786
5787         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
5788         generic_container is non-NULL.
5789
5790 2005-09-05  Martin Baulig  <martin@ximian.com>
5791
5792         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5793
5794         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
5795
5796 2005-08-29  Michal Moskal  <malekith@nemerle.org>
5797
5798         * reflection.c (encode_locals,
5799         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
5800         for large generic types.
5801
5802 2005-09-05  Martin Baulig  <martin@ximian.com>
5803
5804         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5805
5806         * class.c (mono_dup_array_type): New public method.
5807         (mono_metadata_signature_deep_dup): New public method.
5808         (dup_type): Correctly duplicate array and function types.
5809
5810 2005-09-05  Martin Baulig  <martin@ximian.com>
5811
5812         Applying a patch from Michal Moskal <malekith@nemerle.org>.
5813
5814         * reflection.c (get_default_param_value_blobs): Handle generic types
5815         and generic methods.
5816
5817 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
5818
5819         * class.c: Fixed error reporting (method/class were inversed) for 
5820         inheritance demands.
5821         * security-manager.c|h: Added the AppDomain when calling the managed
5822         System.Security.SecurityManager.InheritanceDemand method.
5823
5824 2005-09-01  Raja R Harinath  <rharinath@novell.com>
5825
5826         * reflection.c (encode_marshal_blob): 'marshaltype' and
5827         'marshaltyperef' are alternate sources for the custom marshaler
5828         name.
5829
5830 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
5831
5832         * class.c: fix creation of array classes with rank == 1
5833         (patch by Ankit Jain <jankit@novell.com>).
5834
5835 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
5836
5837         * object.c: fix check for creating the bound data for arrays vs
5838         szarrays.
5839
5840 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5841
5842         * object.c: configuration file name is now based on the executable name,
5843         not the image name. Fixes bug #75931.
5844
5845 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
5846
5847         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
5848         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
5849
5850 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
5851
5852         * rand.c: Use wincrypt.h instead of WinCrypt.h.
5853
5854 2005-08-24  Ankit Jain  <jankit@novell.com>
5855             Raja R Harinath  <rharinath@novell.com>
5856
5857         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
5858           called by it recursively.
5859           (mono_class_init): Remove special case in pending_init handling, since it's
5860           superseded by the fix to mono_class_from_typeref.
5861
5862 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
5863
5864         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
5865         BROKEN_THREAD_START stuff.
5866
5867 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
5868
5869         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
5870         trampoline.
5871
5872         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
5873         
5874         * object.c (mono_delegate_ctor): Replace the original function address with
5875         a delegate trampoline.
5876
5877 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
5878
5879         * icall.c: add boolean argument to base64_to_byte_array and 
5880         InternalFromBase64String to control whether a whitespace-only string
5881         is allowed (or should casue a FormatException to be thrown). We need
5882         this as the behavior has changed between MS.NET 1.x and 2.0, and we
5883         to match the MS behaviour in both profiles.
5884         * appdomain.c: Bump corlib version.
5885
5886 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5887
5888         This patch implements a big portion of publisher policy
5889         support, used to bind assembly versions and redirect
5890         one assembly from version A to version B.
5891
5892         * assembly.c:
5893         New GSList loaded_assembly_bindings, for storing the cached
5894         assembly bindings.
5895         (assembly_binding_maps_name): New static function for checking if a 
5896         assembly binding information maps an assembly name.
5897         (mono_assembly_binding_info_free): New function for freeing
5898         assembly binding information resources.
5899         (get_publisher_policy_info): New static function for retrieving 
5900         assembly binding information from a MonoImage.
5901         (compare_versions): New static function for comparing an assembly
5902         binding information data and the version of an assembly name.
5903         (check_policy_versions): New static function for checking if an
5904         assembly binding info mapping an assembly name is valid for it.
5905         (mono_assembly_load_publisher_policy): New static function for
5906         loading the 'policy.major.minor.MyAssembly' image for an assembly
5907         with an assembly name 'aname'.
5908         (mono_assembly_bind_version): New static function for updating
5909         assembly redirection.
5910         (mono_assembly_apply_binding): New static function for applying
5911         assembly binding.
5912         (search_binding_loaded): New static function for searching 
5913         loaded assembly binding infos in the cache domain.
5914         (mono_assembly_load_full): Don't apply assembly binding for
5915         reflection only assemblies.
5916
5917         * metadata-internals.h: Add MonoAssemblyBindingInfo,
5918         which contains information about assembly binding. Also
5919         declare signature for mono_config_parse_publisher_policy ()
5920         function, used to retrieve pub policy info.
5921         
5922         * mono-config.c:
5923         (publisher_policy_start): New static function used to parse publisher 
5924         policy config files.
5925         (publisher_policy_parser): New static MonoParseHandler containing 
5926         the functions used when parsing config files.
5927         (mono_config_parse_publisher_policy): New function for parsing
5928         publisher policy files.
5929         
5930 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
5931
5932         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
5933
5934         * marshal.c (mono_delegate_free_ftnptr): Ditto.
5935
5936         * object.c (mono_get_addr_from_ftnptr): New helper function.
5937
5938         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
5939
5940         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5941
5942 2005-08-19  Dick Porter  <dick@ximian.com>
5943
5944         * threads.c, threads.h, appdomain.c, appdomain.h,
5945         profiler-private.h, monitor.c, object.c, object-internals.h,
5946         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
5947         store the thread ID, so it can hold a 64 bit value if needed.
5948
5949 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
5950
5951         * reflection.c (mono_reflection_create_dynamic_method): Store the
5952         handle class into the method references as well so ldtoken works in
5953         dynamic methods.
5954
5955         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
5956         types.
5957
5958 2005-08-19  Ankit Jain <jankit@novell.com>
5959
5960         Fix #75847.
5961         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
5962           here rather than using the method signature of a arbitrary function
5963           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
5964           two arguments.
5965           Hack done with Harinath.
5966
5967 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5968
5969         * threadpool.c: disable printing stack traces when we get a exception
5970         in a threadpool thread. I need to do more testing to figure out which
5971         cases actually print this. Fixes bug #75828.
5972
5973 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5974
5975         * icall.c: there might be ignored whitespace after the last '='. This
5976         fixes length computation and bug #75840.
5977
5978 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
5979
5980         * assembly.c (mono_assembly_load_full): Consider .exe extension as
5981         well. Fixes #75809.
5982
5983         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
5984         #75784.
5985         
5986         * reflection.c (create_custom_attr_data): Ditto.
5987
5988 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
5989
5990         * locales.c, culture-info.h : removed RegionLCIDMap.
5991         * culture-info-tables.h : regenerated.
5992
5993 2005-08-16  Martin Baulig  <martin@ximian.com>
5994
5995         * class.c (mono_type_get_name_recurse): Small fix.
5996
5997 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
5998
5999         * locales.c : indentation fixie.
6000
6001 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
6002
6003         * object-internals.h,
6004           locales.h,
6005           locales.c,
6006           culture-info.h,
6007           icall.c : added RegionInfo table support.
6008         * culture-info-table.h : regenerated for region support.
6009
6010 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
6011
6012         * reflection.c (resolve_object): handle all kinds of MonoMethod
6013         including generic ones
6014
6015 2005-08-12  Ankit Jain <jankit@novell.com>
6016
6017         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
6018           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
6019
6020 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
6021
6022         * process.c: Don't close a thread handle when it's NULL. This is a
6023         workaround for bug #75733.
6024
6025 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
6026
6027         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
6028
6029 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
6030
6031         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
6032
6033 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6034
6035         * threadpool.c: if a work item in the thread pool has a callback that
6036         catches a exception, don't propagate it after invoking the callback.
6037         Fixes bug #75336.
6038
6039 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
6040
6041         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
6042
6043         * class-internals.h (MonoCachedClassInfo): Add some new fields.
6044
6045         * class.c (mono_class_init): Load field info lazily in the AOT case.    
6046
6047         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
6048
6049 2005-08-03  Ankit Jain  <jankit@novell.com>
6050
6051         Fix #75683.
6052         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
6053           PInvoke calling convention is 0.
6054
6055 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
6056
6057         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
6058         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
6059
6060 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
6061
6062         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
6063         to handle threads not started by the GC (patch by Michael Meeks
6064         <michael.meeks@novell.com>).
6065
6066 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
6067
6068         * reflection.c: Make buffer used in emitting types larger for some
6069         big generic types (patch by Michal Moskal).
6070
6071 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
6072
6073         * mono-debug.c: Fix some (not all) alignment problems.
6074
6075 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6076
6077         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
6078         Invoke mono_image_load_from_data_full passing the refonly
6079         parameter.
6080
6081         * assembly.c
6082         (mono_assembly_open_from_bundle): Add the refonly argument, 
6083         in order to pass it to other methods it calls to.
6084         (do_mono_assembly_open): Add the refonly argument, in order 
6085         to pass it to other methods it calls to.
6086         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
6087         the refonly parameter to it.
6088
6089         * image.c: Add loaded_images_refonly_hash and
6090         loaded_images_refonly_guid_hash to cache the reflection
6091         only loaded images.
6092         (mono_images_init): Initialize the hash tables used for
6093         caching the reflection only images.
6094         (load_modules): Invoke mono_image_open_full passing the refonly
6095         parameter to load the modules the correct way.
6096         (build_guid_table): Add the refonly argument, to re-build the 
6097         correct hash table.
6098         (do_mono_image_open): Added the refonly argument, in order to
6099         define it for the loaded image.
6100         (mono_image_loaded_full): New function, which receives an
6101         additional parameter to look for the image in the refonly or
6102         non-refonly section.
6103         (mono_image_loaded): Updated, using mono_image_loaded_full.
6104         (mono_image_loaded_by_guid_full): The same case that happens
6105         with mono_image_loaded_full.
6106         (mono_image_loaded_by_guid): Likewise.
6107         (register_image): Use the ref_only variable inside MonoImage
6108         to decide in which hash table store the current image.
6109         (mono_image_open_from_data_full): Rename
6110         mono_image_open_from_data to mono_image_open_from_data_full,
6111         adding the refonly argument, to define the ref_only variable 
6112         inside MonoImage.
6113         (mono_image_open_from_data): Return 
6114         mono_image_open_from_data_full.
6115         (mono_image_open_full): Rename mono_image_open to
6116         mono_image_open_full, receiving the new refonly argument,
6117         to pass it to inner methods.
6118         (mono_pe_file_open): Update this function, to open
6119         a MonoImage as a non-refonly image.
6120         (mono_image_close): Use the refonly variable inside
6121         MonoImage to remove the image from the correct caches.
6122
6123         * image.h: Add the signatures of mono_image_open_full,
6124         mono_image_open_from_data_full, mono_image_loaded_full,
6125         mono_image_loaded_by_guid_full.
6126
6127         * metadata-internals.h: Add the ref_only field to 
6128         MonoImage.
6129         
6130 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6131
6132         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
6133         Fix the last behavior, which used to load the assemblies and
6134         extract MonoReflectionAssemblyName information, instead of
6135         extract it from the metadata tables. Needed for Reflection
6136         Only assemblies.
6137         
6138 2005-07-29  Martin Baulig  <martin@ximian.com>
6139
6140         * mono-debug-debugger.c
6141         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
6142         not initialized.
6143
6144         * mono-debug.c
6145         (mono_debug_address_from_il_offset): Check whether we have
6146         debugging support before attempting to take the lock.
6147         (mono_debug_source_location_from_address): Likewise.
6148         (mono_debug_source_location_from_il_offset): Likewise.
6149         (mono_debug_il_offset_from_address): Likewise.
6150         (mono_debug_address_from_il_offset): Likewise.
6151
6152 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
6153
6154         * class.c (mono_class_from_name_case): Add support for dynamic images.
6155         Fixes #75650.
6156
6157         * object.c (mono_class_compute_gc_descriptor): Add a workaround
6158         for #75479.
6159
6160 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6161         
6162         * reflection.c (mono_method_get_object): Fix warning.
6163
6164 2005-07-28  Martin Baulig  <martin@ximian.com>
6165
6166         * mono-debug.c
6167         (mono_debug_add_wrapper): Also write the wrapper type.
6168
6169 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
6170
6171         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
6172         
6173         * class.c (mono_class_init): Avoid reading nested classes if the AOT
6174         data indicates the class has none.
6175
6176 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
6177
6178         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
6179         loader lock with the debugger lock. Prevents deadlocks for beagle.
6180
6181         Beagle can now run on an smp box for a weekend without any
6182         issues. Woohoo!
6183
6184 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
6185
6186         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
6187         in a module. Fixes #75629.
6188
6189 2005-07-26  Martin Baulig  <martin@ximian.com>
6190
6191         * mono-debug.c (mono_debug_add_wrapper): New static method.
6192         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
6193         interncall or a wrapper.
6194
6195         * mono-debug.h (MonoDebugWrapperData): New public typedef.
6196         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
6197         (MONO_DEBUGGER_VERSION): Bump to 51.
6198
6199         * mono-debug-debugger.c
6200         (mono_debugger_add_type): Removed this empty function.
6201         (mono_debugger_add_method): Likewise.
6202
6203 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
6204
6205         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
6206         before accessing method->slot.
6207
6208 2005-07-21  Jb Evain  <jbevain@gmail.com>
6209
6210         * reflection.c (method_encode_clauses/class): Handle filters clauses.
6211         Fixes #75010.
6212
6213 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
6214
6215         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
6216         #75587.
6217
6218 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
6219
6220         * image.h image.c: Add mono_image_get_guid () API function.
6221
6222 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
6223
6224         There were issues when multiple threads tried to load
6225         assemblies. A deadlock was created between assemblies_mutex and
6226         mono_domain_assemblies_lock. This fixes the issue by making the
6227         assembly ref counting be lock free. See bug 75586.
6228         
6229         * image.c (mono_image_close): The add ref function here was using
6230         Interlocked operations while the unref was using a mutex and a
6231         --. I don't think this was ever a bug that would be exposed in a
6232         non-pendantic way (ie, by an embedder doing a ref on one thread
6233         and an unref on another), but for the sake of correctness, this is
6234         now Interlocked.
6235
6236         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
6237         (mono_assembly_load_reference): Call mono_assembly_addref rather
6238         than touching the refcount ourselves.
6239         (mono_assembly_close): Use InterlockedDecrement to unref the
6240         assembly. Don't acquire the lock unless it is actually needed.
6241
6242 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6243
6244         * class.c (mono_class_layout_fields): Fix calculation of has_references
6245         for generic types.
6246
6247 2005-07-12  Martin Baulig  <martin@ximian.com>
6248
6249         Applying a patch from Michal Moskal <malekith@nemerle.org>.
6250
6251         * metadata.c
6252         (mono_type_hash): Provide better hashing for generic instances.
6253         (mono_generic_inst_hash): Improve hashing.
6254         (mono_generic_class_hash): Likewise.
6255
6256         * reflection.c (mymono_metadata_type_hash): Improve hashing for
6257         generic instances.
6258
6259 2005-07-12  Martin Baulig  <martin@ximian.com>
6260
6261         * reflection.c (mono_reflection_create_runtime_class): Remove the
6262         hack for generic type definitions and non-`Run' assemblies.
6263         (mono_reflection_bind_generic_parameters): Also use
6264         `klass->wastypebuilder' to check for TypeBuilders.
6265
6266 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
6267
6268         * class.c (mono_class_layout_fields): Fix calculation of has_references
6269         for generic types.
6270
6271         * class.c (inflate_generic_class): Fix a leak.
6272         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
6273         for generic types.
6274
6275 2005-07-11  Martin Baulig  <martin@ximian.com>
6276
6277         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
6278         on error.
6279
6280 2005-07-11  Martin Baulig  <martin@ximian.com>
6281
6282         * loader.c (find_method): Also lookup in
6283         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
6284
6285 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6286
6287         * appdomain.c (mono_domain_unload): Don't free the error message
6288         before passing it to mono_get_exception_...
6289
6290         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
6291         
6292 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
6293
6294         * threads.c: try to better guess an available RT signal (bug #75387).
6295
6296 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6297
6298         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
6299         and CACHE_OBJECT.
6300
6301 2005-07-07  Martin Baulig  <martin@ximian.com>
6302
6303         * class.c (mono_type_get_name_full): Return NULL for
6304         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
6305         fixes #75408.
6306
6307 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
6308
6309         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
6310         exit the appdomain as well being aborted.
6311
6312         * threadpool.c: Create all threadpool threads inside the root appdomain, and
6313         change back to the root domain after calling managed code. This enables
6314         appdomains using threadpools to be unloaded.
6315
6316 2005-07-07  Martin Baulig  <martin@ximian.com>
6317
6318         * class-internals.h
6319         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
6320         into `MonoDynamicGenericClass' since we only need it for dynamic
6321         types.
6322
6323         * reflection.c (mono_class_bind_generic_parameters): We don't need
6324         to compute the `parent' here.
6325
6326 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
6327
6328         * culture-info-table.h : regenerated.
6329
6330 2005-07-06  Martin Baulig  <martin@ximian.com>
6331
6332         * icall.c
6333         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
6334
6335         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
6336
6337 2005-07-06  Martin Baulig  <martin@ximian.com>
6338
6339         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
6340         we're doing a signature-only comparision; fixes #74945.
6341
6342 2005-07-06  Martin Baulig  <martin@ximian.com>
6343
6344         * class-internals.h (MonoGenericClass): Moved some things out into
6345         a new `MonoInflatedGenericClass' type.  
6346         (MonoInflatedGenericClass): New type; the `klass' of a
6347         `MonoGenericClass' is now computed lazyly in
6348         mono_get_inflated_generic_class().      
6349
6350         * class.c (mono_get_inflated_generic_class): New public function.
6351         (mono_class_inflate_generic_method): Removed the unused
6352         `MonoClass *' argument.
6353         (setup_generic_vtable): Don't call mono_get_inflated_method() on
6354         all the methods.
6355         (mono_class_create_generic): Make this static and merge it with
6356         mono_class_create_generic_2(); we're now called automatically from
6357         mono_get_inflated_generic_class().
6358
6359         * loader.c (mono_method_signature): Call
6360         mono_get_inflated_method() here.
6361
6362 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
6363
6364         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
6365         type of fields with RVA.
6366
6367         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
6368         for this pseudo class.
6369         (my_mono_class_from_generic_parameter): Likewise.
6370         (mono_class_init): Allow interfaces to have cctors.
6371
6372 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6373
6374         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
6375         lazily for AOT methods.
6376
6377 2005-07-05  Martin Baulig  <martin@ximian.com>
6378
6379         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
6380         returns FALSE for a successful match, not TRUE.
6381
6382 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
6383
6384         * loader.c (mono_method_get_index): Optimize this a bit.
6385
6386 2005-07-04  Martin Baulig  <martin@ximian.com>
6387
6388         * class.c
6389         (class_compute_field_layout): Move the check for generic type
6390         definitions into mono_class_layout_fields().  Fixes #74684.
6391         (mono_class_from_generic_parameter): Correctly compute
6392         `klass->parent'; fixes #75457.
6393
6394         * reflection.c (register_assembly, register_module): Make sure
6395         `domain->rejobject_hash' is already created.
6396
6397 2005-07-02  Martin Baulig  <martin@ximian.com>
6398
6399         * class-internals.h
6400         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
6401         `MonoDynamicGenericClass'.      
6402
6403 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
6404
6405         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
6406         returned by a field getter is null, since null is a valid value.
6407
6408 2005-07-01  Martin Baulig  <martin@ximian.com>
6409
6410         * reflection.c (mono_reflection_generic_class_initialize): Update
6411         the `dgclass->fields [i].parent' to the correct class.
6412         (mono_image_get_fieldref_token): Use the declaring type, not the
6413         reflected type.
6414
6415 2005-07-01  Martin Baulig  <martin@ximian.com>
6416
6417         * loader.c (find_method): Also look in the interfaces; fixes #75429.
6418
6419 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
6420
6421         * threads.c (thread_cleanup): assert that thread != NULL
6422         (wait_for_tids_or_state_change): We were using the wrong variable
6423         when accessing wait->threads. `i' was always out of the bounds of
6424         the array.
6425
6426 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6427
6428         * loader.c: map user32 and kernel32 to libMonoSupportW
6429
6430 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
6431
6432         * appdomain.c (unload_thread_main): Mark this as WINAPI.
6433
6434 2005-06-28  Martin Baulig  <martin@ximian.com>
6435
6436         * loader.c (method_from_methodspec): Fix #75334.
6437
6438 2005-06-28  Martin Baulig  <martin@ximian.com>
6439
6440         Fix #74953 - Arrays now implement the generic IList<T> interface
6441         on the 2.0 platform.
6442
6443         * class-internals.h (MonoDefaults): Added `generic_array_class'.
6444
6445         * reflection.c (mono_class_bind_generic_parameters): New public
6446         function; similar to mono_reflection_bind_generic_parameters(),
6447         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
6448
6449         * domain.c (mono_init_internal): Try to initialize.
6450         `mono_defaults.generic_array_class' here; this'll only succeed if
6451         we're using the 2.0 corlib.
6452
6453         * icall.c
6454         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
6455         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
6456         (mono_lookup_internal_call): Added support for nested classes.
6457
6458         * loader.c
6459         (mono_get_method_from_token): Set `result->signature->pinvoke' if
6460         we're an interncall and have generic arguments.
6461
6462         * class.c
6463         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
6464         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
6465         instance of System.Array.InternalArray<T> for arrays, so they
6466         implement the generic IList<T> interface.
6467
6468 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
6469
6470         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
6471         (chastamar@yahoo.com). Fixes #75374.    
6472
6473 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
6474
6475         * culture-info-table.h: regenerated.
6476
6477 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6478
6479         * icall.c: handle spaces correctly for base64 strings.
6480
6481 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
6482
6483         * *.c: Kill some warnings.
6484
6485 2005-06-23  Duncan Mak  <duncan@novell.com>
6486
6487         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
6488         that this builds on Solaris 10 (x86).
6489
6490 2005-06-23  Martin Baulig  <martin@ximian.com>
6491
6492         * class.c
6493         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
6494         generic type definitions.
6495
6496 2005-06-23  Martin Baulig  <martin@ximian.com>
6497
6498         Fix #75331.
6499
6500         * metadata.c (mono_class_get_overrides): Renamed to
6501         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
6502         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
6503         pass it to mono_get_method_full().
6504
6505 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
6506
6507         * reflection.c (mono_reflection_create_runtime_class): take the
6508         mono_domain_lock in this method. Prevents deadlocks
6509
6510 2005-06-22  Martin Baulig  <martin@ximian.com>
6511
6512         * loader.c (method_from_methodspec): Fix #75330.
6513
6514 2005-06-22  Martin Baulig  <martin@ximian.com>
6515
6516         * reflection.c (type_get_qualified_name): Use
6517         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
6518         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
6519         argument; use it if we don't have an assembly name.
6520
6521 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
6522
6523         * object.c: In mono_message_init, set "copy out" flag for in
6524         parameters with the [Out] flag.
6525
6526 2005-06-21  Martin Baulig  <martin@ximian.com>
6527
6528         * class.c
6529         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
6530         and MONO_TYPE_PTR.
6531
6532 2005-06-21  Martin Baulig  <martin@ximian.com>
6533
6534         * class.c (mono_class_init): Don't initialize `class->fields' for
6535         generic instances since they're initialized again in
6536         compute_field_layout(). 
6537         (compute_field_layout): Set the field's `generic_info' here; fix
6538         #75320. 
6539
6540 2005-06-21  Martin Baulig  <martin@ximian.com>
6541
6542         * class-internals.h
6543         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
6544
6545         * metadata.c (mono_metadata_generic_method_equal): Also
6546         distinguish the `generic_class'; fixes #75334.
6547
6548 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6549
6550         * domain.c:
6551         * appdomain.c:
6552         * domain-internals.h:
6553         * reflection.c: 'domain_assemblies' field is now protected by its own
6554         lock. Don't call into managed code to run the AssemblyLoad event if we
6555         now there are no registered delegates for it.
6556
6557 2005-06-20  Martin Baulig  <martin@ximian.com>
6558
6559         * class.c (mono_class_is_assignable_from): Use a custom version of
6560         mono_class_has_parent() to make things work for generic instances;
6561         fix #75300.
6562
6563 2005-06-20  Martin Baulig  <martin@ximian.com>
6564
6565         * loader.c (method_from_methodspec): Apply a patch from
6566         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
6567
6568 2005-06-20  Martin Baulig  <martin@ximian.com>
6569
6570         * class.c (mono_class_init): Reverted Zoltan's last change; it
6571         breaks generics.
6572
6573 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
6574
6575         * threads.c (wait_for_tids_or_state_change): Add missing locking.
6576
6577 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6578
6579         * socket-io.c: fix the index in the socket array for writable/error
6580         sockets. Fixes bug #75306.
6581
6582 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
6583
6584         * class.c (mono_class_init): Allow interfaces to have static ctors.
6585
6586 2005-06-17  Martin Baulig  <martin@ximian.com>
6587
6588         * loader.c (method_from_methodspec): Use `context->container' when
6589         parsing the `gmethod->inst'.
6590
6591 2005-06-17  Martin Baulig  <martin@ximian.com>
6592
6593         * class.c (mono_type_get_name_recurse): Don't add the assembly
6594         name for type arguments.
6595
6596 2005-06-15  Martin Baulig  <martin@ximian.com>
6597
6598         * reflection.c (mono_image_get_inflated_method_token): Encode
6599         correct klass; fixes #75260.
6600
6601 2005-06-13 Michal Moskal <malekith@nemerle.org>
6602
6603         * icall.c: Make GetCorrespondingMethod/Constructor take
6604         MonoReflectionMethod method not MonoMethod. Removed
6605         MonoType.GetCorrespondingField, and make
6606         MonoGenericType.GetCorrespondingField take name not
6607         MonoClassField.
6608
6609 2005-06-13  Michal Moskal <malekith@nemerle.org>
6610
6611         * reflection.c (field_encode_signature, encode_locals):
6612          Make sizes of buffers for types larger (for big generic types).
6613          (create_generic_typespec,
6614          mono_reflection_sighelper_get_signature_local,
6615          mono_reflection_sighelper_get_signature_field):
6616          Add asserts for too small buffers.
6617
6618 2005-06-15  Martin Baulig  <martin@ximian.com>
6619
6620         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
6621         if our parent is not a dynamic type.
6622
6623 2005-06-15  Martin Baulig  <martin@ximian.com>
6624
6625         * class-internals.h (MonoTypeNameFormat): New enum.
6626
6627         * class.c
6628         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
6629         (mono_type_get_full_name): Removed.
6630         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
6631         argument instead of the boolean's.
6632
6633         * icall.c (ves_icall_System_MonoType_getFullName):
6634         Added `gboolean assembly_qualified'.    
6635
6636         * reflection.h
6637         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
6638
6639         * reflection.c (mono_reflection_parse_type): Parse the new type
6640         name format.
6641
6642 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6643
6644         * icall.c: no need to convert from utf16 to utf8 and then back again
6645         after the call to GetLogicalDrives.
6646
6647 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6648
6649         * icall.c: frombase64. Fix problems exposed by new tests.
6650
6651 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6652
6653         * icall.c: added internal calls for converting char [] and strings in
6654         base64 into byte [].
6655
6656 2005-06-10  Martin Baulig  <martin@ximian.com>
6657
6658         * class.c (mono_class_create_generic_2): Read the nested classes
6659         from the metadata rather than from `gklass->nested_classes' since
6660         `gklass' might not be initialized yet.
6661
6662 2005-06-09  Duncan Mak  <duncan@novell.com>
6663
6664         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
6665         all public headers. Fixes #74919.
6666
6667 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
6668
6669         * domain.c: The key for proxy_vtable_hash is now a pointer
6670         array. Added new GHashFunc and GCompareFunc functions for this.
6671
6672         * class.h: The list of interfaces in MonoRemoteClass is known in
6673         advance and can't grow (we create a new MonoRemoteClass if needed),
6674         so now the interface array can be allocated together with
6675         MonoRemoteClass.
6676         
6677         * object.c: Added a new method create_remote_class_key.
6678         Fixed mono_remote_class so it does not depend on
6679         mono_upgrade_remote_class.
6680         Removed extend_interface_array.
6681         Added new method clone_remote_class(), which makes a copy of a remote
6682         class and adds a new interface or class to it.
6683         mono_upgrade_remote_class() now creates a new remote class (or gets
6684         it from the cache) if an vtable upgrade is needed. In this way
6685         we make sure that other objects sharing the same remote class
6686         don't get the new vtable with unwanted interfaces.
6687         
6688         * object-internals.h:
6689         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
6690         
6691         * marshal.c: Track changes in mono_upgrade_remote_class().
6692
6693 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
6694         * icall.c: Add runtime methods for obtaining members of inflated
6695         class, which were created from supplied non-inflated members. It
6696         is used in internal Get{Method,Constructor,Field} methods in
6697         System.Type
6698
6699 2005-06-09  Martin Baulig  <martin@ximian.com>
6700
6701         * reflection.c
6702         (mono_reflection_bind_generic_method_parameters): Fix #75169.
6703
6704 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6705         * reflection.c (mono_image_basic_init): Define
6706         Version in MonoDynamicAssembly. 
6707         
6708 2005-06-08  Martin Baulig  <martin@ximian.com>
6709
6710         Fix #75136.
6711
6712         * loader.c
6713         (mono_method_signature_full): New public method; takes a
6714         `MonoGenericContext *'.
6715         (find_method): Use mono_method_signature_full() and pass the
6716         klass'es context to it.
6717
6718         * class.c (mono_class_is_inflated_method): Use
6719         mono_method_signature_full() and pass the context to it.
6720
6721 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
6722
6723         * object.c: add proper locking in mono_remote_class_vtable(),
6724         fixes possible memory corruption.
6725
6726 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
6727
6728         * marshal.c (mono_remoting_marshal_init): set
6729         initialized after initialization.
6730
6731 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
6732
6733         * locales.c : hush.
6734
6735 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
6736
6737         * object.c (extend_interface_array): fix really silly
6738         memory corrupting / comparison bug.
6739
6740 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6741
6742         * reflection.c: Functions added to support the creation
6743         of CustomAttributeData, which includes Attribute data
6744         used by ReflectionOnly methods.
6745
6746         * reflection.h:  mono_reflection_get_custom_attrs_data and
6747          mono_custom_attrs_data_construct added (functions exposed).
6748
6749          * icall.c: Added mono_reflection_get_custom_attrs_data
6750          as icall.
6751         
6752 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
6753
6754         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
6755         lupus's request.
6756
6757 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
6758
6759         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
6760
6761         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
6762         dynamic DllImportAttribute.
6763
6764         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
6765         dynamic DllImportAttribute.
6766
6767         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
6768         Fixes #75162.
6769
6770 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6771
6772         * threads.c: avoid segfault when an unstarted thread is aborted.
6773
6774 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
6775
6776         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
6777         Returns the name and version of the runtime for reporting.
6778
6779 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6780
6781         * appdomain.c: bump corlib version.
6782         * object-internals.h: new field in MonoReflectionAssembly.
6783
6784 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6785
6786         * object-internals.h: Carlos forgot to add this field.
6787
6788 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6789
6790         * icall.c: Added create_version to create instances
6791         of Version of MonoReflectionAssemblyName. This change helps
6792         the AssemblyName tests to keep running fine.
6793         
6794 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
6795   
6796         * object.c (mono_method_return_message_restore): A somehow less
6797         intrusive fix for #75138.
6798
6799 2005-06-03  Raja R Harinath  <rharinath@novell.com>
6800
6801         * object.c (mono_method_return_message_restore): Fix computation
6802         of expected number of out args.
6803
6804 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6805
6806         * reflection.c (mono_image_get_method_info): Fix the case when the
6807         charset is empty.
6808
6809 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
6810
6811         * object.c: Added missing null check in
6812           mono_method_return_message_restore.
6813
6814 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
6815
6816         * reflection.c (mono_image_get_method_info): Handle the case when
6817         dllentry is empty.
6818
6819 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
6820
6821         * object.c: When creating the vtable for a proxy, take into account
6822         all inherited interfaces, not only the ones registered in
6823         iclass->interfaces. This fixs bug #74996.
6824         Also, in mono_method_return_message_restore, verify that the array
6825         of out args has the expected lengh.
6826
6827 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6828
6829         * socket-io.c: update the timeout in Poll when the call is interrupte.
6830
6831 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6832
6833         * socket-io.c: support abort/suspend in Select_internal after last
6834         change.
6835
6836 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6837
6838         * threadpool.c: remove warning.
6839
6840 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6841
6842         * icall.c:
6843         * socket-io.[ch]: Select_internal uses poll() now when available, thus
6844         removing the 1024 limit from select(). Runtime part of the fix for
6845         bug #71203.
6846
6847 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6848
6849         * socket-io.c: when resolving the addresses for the same
6850         host returned by gethostname(), get the local IPs from the interface
6851         list. Loopback addresses are discarded if the are interfaces up with
6852         non-loopback ones. Fixes bug #63265.
6853
6854 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
6855
6856         * appdomain.c, verify.c, object-internals.h, reflection.c:
6857         bumped corlib number to 36, and added new extra_flags field
6858         to ReflectionMethodBuilder and friends.  Fixes #75060.
6859
6860 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
6861
6862         * gc.c: register a new weak link only if the object is non-null
6863         (fixes bug#75047).
6864
6865 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6866
6867         * culture-info.h : short time pattern too.
6868
6869 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
6870
6871         * culture-info.h : expand long time pattern string length.
6872
6873 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6874
6875         * culture-info-table.h : update (more French date format; #72788).
6876
6877 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
6878
6879         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
6880         the method is static. Fixes #75029.
6881
6882 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
6883
6884         * reflection.c: Update the table_idx field of method builders after
6885         saving the module, since it can change. This is a workaround for
6886         bug #74914. 
6887
6888 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
6889
6890         * culture-info-table.h : update (additional French date format).
6891
6892 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
6893
6894         * icall.c (ves_icall_type_Equals): Revert last change.
6895         
6896         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
6897
6898         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
6899
6900 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
6901
6902         * class-internals.h: Added executioncontext_class field to 
6903         MonoDefaults structure.
6904         * domain.c: Cache System.Threading.ExecutionContext class in 
6905         mono_defaults.
6906         * object.c: Capture the ExecutionContext for asynchroneous calls in
6907          mono_async_result_new.
6908         * object-internals.h: Added execution_context and original_context 
6909         fields to MonoAsyncResult. Added execution_context to MonoThread.
6910         * security-manager.c|.h: Added mono_get_context_capture_method to 
6911         return the capture method (if required by the security manager or by
6912         the framework version used).
6913         * threadpool.c: Apply capture (if present) ExecutionContext in 
6914         mono_async_invoke and revert to original context after it completes.
6915
6916 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
6917
6918         * culture-info-table.h : updated (real hacky solution for zh-CHT).
6919
6920 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
6921
6922         * culture-info-table.h : zh-CHT related workaround.
6923
6924 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6925
6926         * marshal.c (emit_marshal_custom): Add some error checking and call the
6927         methods in the ICustomMarshaler interface. Fixes #74875.
6928         
6929         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
6930         native->managed wrappers.
6931
6932 2005-05-12  Martin Baulig  <martin@ximian.com>
6933
6934         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
6935         here and use the loader lock.
6936
6937         * mono-debug.c: Properly lock when the debugger is not attached.
6938         (mono_debug_init): Release the initial lock if we're not running
6939         in the debugger.
6940
6941 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
6942
6943         * marshal.c (emit_marshal_custom): Pass through NULL values without
6944         calling the custom marshalling routines.
6945
6946         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
6947         conversion in structures. Fixes #74882.
6948
6949 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
6950
6951         * culture-info-table.h : zh-* cultures were missing.
6952
6953 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
6954
6955         * threads.c: Added a new event background_change_event which is signaled
6956         when a thread changes its background mode.
6957         Moved here several checks previously done in managed code. The checks
6958         require the thread lock, and using the thread lock in managed code
6959         can result in deadlocks.
6960         Merged Start_internal and Thread_internal into a single method. Now 
6961         Thread_internal does all work of creating and starting a thread.
6962         Added icalls for setting and getting the state of the object. Moved from
6963         managed code to avoid locking there.
6964         Added wait_for_tids_or_state_change() which is called instad of
6965         wait_for_tids when waiting for non-backround threads to end. This method
6966         will return if one of the threads ends or the background_change_event
6967         is signaled.
6968         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
6969         the background mode. This method signals the background_change_event
6970         event.
6971         * icall.c:
6972         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
6973         removed Start_internal.
6974         
6975 2005-05-11  Martin Baulig  <martin@ximian.com>
6976
6977         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
6978         to order of some fields to get proper alignment on 64-bit machines.
6979
6980 2005-05-11  Martin Baulig  <martin@ximian.com>
6981
6982         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
6983         changes as they're broken and completely fuck up the debugger.
6984
6985         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
6986
6987 2005-05-10  Martin Baulig  <martin@ximian.com>
6988
6989         * reflection.c (mono_reflection_generic_class_initialize): Don't
6990         call mono_class_setup_parent() here.
6991
6992 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6993
6994         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
6995         send/receive timeout use an integer in milliseconds. We were using a
6996         struct timeval.
6997
6998 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6999
7000         * locales.c:
7001         (internal_get_cultures): reserve the first slot of the array for the
7002         InvariantCulture, which will be filled in managed code.
7003
7004 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
7005
7006         * reflection.c (mono_image_fill_module_table): Initialize the
7007         GENERATION field as well.
7008
7009 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7010
7011         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
7012         Monitor.Enter on the object.
7013
7014 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
7015
7016         * threads.c: Enable the wait for running threads when exiting.
7017         * icall.c: Suspend all threads before exiting.
7018
7019 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
7020
7021         * assembly.c (mono_assembly_load_reference): Fix warning.
7022
7023 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7024
7025         * threadpool.c: changed the default number of threads per cpu. From now
7026         on, the default will be 20 + (5 * number of cpus) instead of 50.
7027
7028 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
7029
7030         * loader.c (mono_method_get_signature_full): Add locking here.
7031
7032 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
7033
7034         * appdomain.c: Moved methods for parsing and freeing assembly
7035         names to assembly.c.
7036         * assembly.c, domain-internals.h: Created public methods for parsing
7037         assembly names. Fixed mono_assembly_load_with_partial_name:
7038         it now finds the best match, taking into account the version,
7039         token and culture specified in the partial name. Also return
7040         the latest version if no version information is specified.
7041
7042 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
7043
7044         * threadpool.c: replace check for SocketAsyncCall class.
7045
7046 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7047
7048         * threadpool-internals.h:
7049         * Makefile.am: added threadpool-internals.h
7050
7051         * threadpool.c: call mono_unhandled_exception on exceptions not handled
7052         that happen in threadpool threads (tested on MS).
7053         (mono_thread_pool_remove_socket): new function that dispatch any pending
7054         AIO call on a socket that is closing. By now only epoll really needs it,
7055         as select/poll wake up when the socket closes.
7056
7057
7058         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
7059
7060 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
7061
7062         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
7063
7064 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
7065
7066         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
7067
7068 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
7069
7070         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
7071         has an abort request, convert it into a suspend request.
7072
7073 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
7074
7075         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
7076         warning for the usage of `UnmanagedFunctionPointerAttribute' which
7077         is not supported yet.
7078
7079 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7080
7081         * image.c: register assemblies loaded from data (bundles) in the loaded
7082         assemblies hash. Fixes bug #74772.
7083
7084 2005-04-29  Martin Baulig  <martin@ximian.com>
7085
7086         * class.c (mono_type_get_name_recurse): Update to the new naming
7087         schema from the latest .NET 2.x beta2.
7088         (mono_class_setup_vtable_general): If we're a generic instance,
7089         copy the vtable from our generic type definition and inflate all
7090         the methods in it.
7091
7092         * loader.c (find_method): Update to the new naming schema from the
7093         latest .NET 2.x beta2.
7094
7095 2005-04-29  Raja R Harinath  <harinath@gmail.com>
7096
7097         * class.c (mono_class_init): Add a mono_loader_unlock to the
7098         #74734 fix.
7099
7100 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
7101
7102         * icall.c (ves_icall_System_Environment_Exit): Remove the 
7103         suspend_all_other_threads () call for the time being, since it can hang.
7104
7105         * threads.c (mono_thread_manage): Similarly, disable the waiting for
7106         the background threads to exit, since it can also hang.
7107
7108         * class.c (mono_class_init): Applied patch from Ankit Jain 
7109         (radical@gmail.com). Avoid pending init errors when a field refers
7110         to a nested class using a typeref. Fixes #74734.
7111
7112         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
7113         this for dynamic modules.
7114
7115 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7116
7117         * threads.c: don't wait for threads that are in the process of aborting
7118         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
7119         and waiting for background threads to finish. This makes xsp and
7120         mod-mono-server exit without random length delays and/or hangs.
7121
7122 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7123
7124         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
7125
7126 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
7127
7128         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
7129         dynamic types to prevent infinite loops. Fixes #74727.
7130
7131         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
7132         ..._is_assignable_to.
7133
7134 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
7135
7136         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
7137
7138 2005-04-25  Martin Baulig  <martin@ximian.com>
7139
7140         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
7141
7142         * domain.c
7143         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
7144
7145         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
7146
7147         * reflection.c (build_compressed_metadata): Set metadata header
7148         version to 2.0.
7149
7150 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
7151
7152         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
7153         number into an integral and a decimal part. Fixes #70473.
7154
7155         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
7156
7157 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
7158
7159         * culture-info-table.h : reflected the latest locale-builder output.
7160
7161 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7162
7163         * threadpool.c: check for SuspendRequested too when deciding if
7164         mono_thread_interruption_checkpoint should be called.
7165
7166 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7167
7168         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
7169         * threads.c: remove interruption_mutex and use Interlocked instead. When
7170         suspending all the threads, wait for all the suspended events at once.
7171         If we're shutting down and get an APC that is going to be queued,
7172         call mono_thread_execute_interruption immediately, as the thread might
7173         be sleeping on a pthread condition or mutex.
7174
7175         * icall.c: call mono_runtime_set_shutting_down before suspending the
7176         threads.
7177
7178         Fixes bug #74693. And now xsp is happier when exiting.
7179
7180 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
7181
7182         * loader.c (mono_stack_walk): Fix #74690.
7183
7184 2005-04-22  Martin Baulig  <martin@ximian.com>
7185
7186         * mono-debug.h (MonoDebugMethodJitInfo): Added
7187         `MonoDebugMethodJitInfo *jit'.
7188
7189         * mono-debug.c (mono_debug_read_method): Cache the
7190         MonoDebugMethodJitInfo in `address->jit'.
7191         (mono_debug_free_method_jit_info): New public method.
7192
7193 2005-04-22  Martin Baulig  <martin@ximian.com>
7194
7195         * class.c (mono_class_is_assignable_from): Disallow
7196         type parameter -> interface.
7197
7198 2005-04-21  Dick Porter  <dick@ximian.com>
7199
7200         * threads.c (mono_thread_create): Turn an assertion into an error.
7201
7202 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
7203
7204         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
7205         
7206         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
7207         Fix some gcc 4.0 warnings.
7208
7209 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
7210
7211         * file-io.c: fix alt dir separator char on unix systems
7212         and cleanup (fixes bug #71214).
7213
7214 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
7215
7216         * marshal.c: Use CALLVIRT instead of CALL when dispatching
7217         a call to a remote domain, since the method may be an
7218         interface method in the client domain. This fixes bug #74192.
7219
7220 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7221
7222         * threadpool.c: recv/send are now performed before going back to managed
7223         code to save one transition.
7224
7225 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7226
7227         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
7228
7229         * metadata/threadpool.c: removed hack to workaround the bug above.
7230
7231         Fixes bug #74618.
7232
7233 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
7234
7235         * reflection.c reflection.h: Fix handling of parameter defaults in
7236         dynamic methods. Also fixes handling of parameter attributes.
7237         Fixes #74609.
7238
7239         * mono-debug.c (mono_debug_close_image): Fix warning.
7240
7241 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7242
7243         * socket-io.h: replaced old unused field with new 'blocking'.
7244         * threadpool.c: restore socket blocking state on windows(tm).
7245
7246 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
7247
7248         * icall.c: don't return the codebase in the AssemblyName[] returned by
7249         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
7250         * object-internals.h: Removed FIXME (fields were presents) and fixed
7251         versioncompat declaration.
7252
7253 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7254
7255         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
7256         not closed, so don't cleanup when it happens.
7257
7258 2005-04-13  Chris Toshok  <toshok@ximian.com>
7259
7260         * mono-debug-debugger.h: change prototype for
7261         mono_debugger_lookup_type.
7262
7263         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
7264         this function, although it should probably be named
7265         mono_debugger_init_type.
7266
7267 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7268
7269         * threadpool.c: fix non-AIO case.
7270
7271 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
7272
7273         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
7274         the built-in profiler to measure just JIT compilation times.
7275
7276 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7277
7278         * threadpool.c: the epollfd might be closed by another thread at
7279         any time, so ignore EBADF at treat it as a "we're closing" sign.
7280
7281 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7282
7283         * threadpool.c: release the semaphores with a count equals to the number
7284         of working threads in both IO and regular pools. Fixed typo that messed
7285         up the count of IO pool threads. Don't initialize the pipe handles if
7286         we're using epoll.
7287
7288 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7289
7290         * threadpool.c: some systems don't like a NULL when deleting the socket
7291         from epoll.
7292
7293 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7294
7295         * threadpool.c: fix semaphore allocation.
7296
7297 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7298
7299         * threadpool.c: added epoll() based implementation for asynchronous IO
7300         that is used instead of the default poll() when available.
7301         It can be disabled by setting MONO_DISABLE_AIO.
7302
7303 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7304
7305         * threadpool.c: windows needs 'closesocket' and instead of returning
7306         0 when the stream is closed while in select, it returns -1. Fixes bug
7307         #74573.
7308
7309 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
7310
7311         * class.c (class_compute_field_layout): Fix the regression caused by
7312         the previous try.
7313
7314 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7315
7316         * threadpool.c: separate pool for socket async. IO.
7317         * threadpool.h: mono_max_worker_threads is not a global any more.
7318
7319 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
7320
7321         * class.c (class_compute_field_layout): Fix #74549.
7322
7323 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7324
7325         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
7326         use 2 connected sockets instead.
7327
7328 2005-04-08  Miguel de Icaza  <miguel@novell.com>
7329
7330         * mono-config.c: Add new entry point for mkbundle
7331         mono_config_parse_memory. 
7332
7333 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7334
7335         * threadpool.c: removed another unused function.
7336
7337 2005-04-08  Ankit Jain  <radical@corewars.org>
7338
7339         * reflection.c (get_default_param_value_blobs): Add 'types'
7340         parameter to get the types encoded in the constant table.
7341         (mono_param_get_objects): Use the type from the constant table,
7342         not the type of the parameter, when creating default values.
7343         Handle null default values correctly.
7344
7345 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7346
7347         * file-io.c:
7348         * file-io.h:
7349         * threadpool.c:
7350         * threadpool.h:
7351         * icall.c:
7352         * socket-io.c: removed dead code for async IO.
7353
7354 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7355
7356         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
7357
7358         * threadpool.c: intercept socket async. calls and pass them to a thread
7359         that is polling and dispatching the job items to the threadpool as
7360         socket become ready. Fixes bugs #71217, #71933.
7361
7362         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
7363         between char and short/ushort arrays.
7364
7365         * socket-io.c: remove dead code.
7366
7367 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7368
7369         * locales.c,
7370           icall.c : removed InternalToUpper_Comp() and
7371           InternalToLower_Comp().
7372
7373 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
7374
7375         * char-conversions.h : The tables were incorrectly generated. Should
7376           be generated against invariant culture.
7377
7378 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
7379
7380         * object.c (mono_runtime_invoke_array): Fix return value when 
7381         passing pre-created valuetype objects to ctors.
7382
7383         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
7384         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
7385         Fixes #74338.
7386
7387 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
7388
7389         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
7390         only used with --security and hides the wrong corlib version error.
7391
7392 2005-03-30  Joshua Tauberer  <tauberer@for.net>
7393
7394         * class.c: Changed mono_class_name_from_token so that types
7395         outside of a namespace don't have an initial period.  Improved
7396         the g_warning message used in _mono_class_get when loading
7397         fails.
7398         * assembly.c: In mono_assembly_load_reference, when an assembly
7399         can't be found, "No such file or directory" is misleading and
7400         unhelpful because a few paths were checked for the presence of
7401         the assembly.  When that happens (ENOENT), display a nicer
7402         message indicating the directories that were searched.  In all
7403         cases, the warning is made easier to read for non-hackers.
7404
7405 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
7406
7407         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
7408         project/solution.
7409         * appdomain.h|domain.c: Removed inline from functions.
7410         * appdomain.c: Reduced warnings when compiling on windows.
7411         * icall.c: Fixed output_debug declaration to gunichar2*.
7412         * mono-config.c: Reduced warnings when compiling on windows.
7413         * rand.c: Added missing "windows.h". Added missing return value.
7414         * rawbuffer.c: Added missing winsock2.h for windows.
7415         * sysmath.h: Added mono-compiler.h header to allow/ease 
7416         compilation with non-GCC compilers.
7417         * threads.c: Fixed declarations to compile with VS.NET C compiler.
7418         Removed cast warnings.
7419
7420         Adapted from the work of J Lothian (for VC6).
7421
7422 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
7423
7424         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
7425         from default_path.
7426
7427 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
7428
7429         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
7430         the 2.0 profile.
7431
7432 2005-03-27  Raja R Harinath  <harinath@gmail.com>
7433
7434         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
7435         has to be in $(exec_prefix).  $(prefix) is for arch-independent
7436         stuff, and it would probably use $(prefix)/share rather than
7437         $(prefix)/lib.
7438
7439 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7440
7441         * console-io.c: added 2 includes that might be missing.
7442
7443 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
7444
7445         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
7446         profile.
7447
7448         * reflection.c (create_custom_attr): Allocate the params array using
7449         alloca so it gets GC tracking.
7450
7451 2005-03-23  Chris Toshok  <toshok@ximian.com>
7452
7453         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
7454         out some spew.
7455
7456 2005-03-24  Raja R Harinath  <rharinath@novell.com>
7457
7458         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
7459         changes to pick up any changes in prefix, etc.
7460
7461 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7462
7463         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
7464         
7465         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
7466         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
7467
7468 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
7469
7470         * class-internals.h object-internals.h class.c reflection.c: Extend the
7471         mono_lookup_dynamic_token () function to return the class of the
7472         token as well. 
7473
7474         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
7475         well. Fixes #73848.
7476
7477 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
7478
7479         * security-manager.c: Skip inheritance checks for intra-corlib
7480         class inheritance and method overrides. This skips a lot of checks
7481         and (anyway) permissions cannot work until corlib is loaded.
7482
7483 2005-03-23  Martin Baulig  <martin@ximian.com>
7484
7485         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
7486         MONO_TYPE_GENERICINST.  
7487
7488 2005-03-23  Martin Baulig  <martin@ximian.com>
7489
7490         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
7491
7492 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
7493
7494         * class.c: added locking comments to some functions.
7495         Cache the interface offsets arrays (saves about 20 KB
7496         of runtime memory in a typical app).
7497         Reduce the time overhead in mono_class_setup_supertypes ().
7498
7499 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
7500
7501         * icall.c: speedup and fix leaks in GetMethodsByName and
7502         GetPropertiesByName.
7503
7504 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
7505
7506         * reflection.c: some locking fixes.
7507
7508 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
7509
7510         * metadata.c: added missing break in case statement.
7511
7512 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
7513
7514         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7515         typedbyref return values. Fixes #73941.
7516
7517 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
7518
7519         * security-manager.c|h: Added demandunmanaged method and 
7520         suppressunmanagedcodesecurity class to MonoSecurityManager.
7521         Renamed aptc class to allowpartiallytrustedcallers.
7522
7523 2005-03-17  Martin Baulig  <martin@ximian.com>
7524
7525         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
7526
7527 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7528
7529         * file-io.c: disabled file async. IO using aio_*. It uses the
7530         threadpool now. Workaround for bug #73718.
7531
7532 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
7533
7534         * assembly.h, mono-config.c: added code to deal with bundled configs
7535         for bundled assemblies.
7536
7537 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
7538
7539         * *.c, private.h: cleanup, removing old private.h header file.
7540
7541 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
7542
7543         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
7544         and throw_on_unmappable_char attributes.
7545
7546 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
7547
7548         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
7549         _ProcessName_internal.
7550
7551 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
7552
7553         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
7554         #73631.
7555
7556         * icall.c threads.c threads-types.h: Remove slothash icalls as they
7557         are no longer used.
7558
7559 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
7560
7561         * object.c (compute_class_bitmap): Add support for generics. Fixes
7562         #73527.
7563
7564 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7565
7566         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
7567
7568 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7569
7570         * filewatcher.c: commented out the code for windows watcher, as we don't
7571         use it (we use the managed implementation instead).
7572
7573 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
7574
7575         * object-internals.h (MonoThread): Remove 'unused1' field.
7576
7577         * appdomain.c: Bump corlib version.
7578
7579         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
7580
7581         * reflection.c (mono_reflection_create_runtime_class): Remove the
7582         AssemblyBuilder.Save optimization since it causes too many problems.
7583
7584 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
7585
7586         * exception.c|h: Added mono_get_exception_reflection_type_load to
7587         create a ReflectionTypeLoadException object.
7588         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
7589         to return NULL is a InheritanceDemand fails during reflection. Updated
7590         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
7591         ReflectionTypeLoadException if an InheritanceDemand fails during 
7592         reflection. Added icall mapping for GetLinkDemandSecurity.
7593         * security-manager.c|h: Added ves_icall_System_Security_
7594         SecurityManager_GetLinkDemandSecurity internal call to return the
7595         class and methods permissions set for a LinkDemand. Removed unused
7596         fields in MonoSecurityManager.
7597
7598 2005-03-10  Martin Baulig  <martin@ximian.com>
7599
7600         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
7601         it's a generic instance.
7602
7603 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
7604
7605         * reflection.c (mono_get_object_from_blob): Applied patch from
7606         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
7607
7608         * class.c (mono_class_is_assignable_from): Another try at fixing 
7609         #73469 without breaking anything.
7610
7611 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
7612
7613         * class.c: (mono_class_is_assignable_from): Revert the last changes
7614         since they don't work with generics.
7615         
7616         * class.c (mono_class_is_assignable_from): Fix build bustage.
7617
7618         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
7619         the managed IsAssignableFrom method. Fixes #73469.
7620
7621         * reflection.c (mono_reflection_call_is_assignable_from): New helper
7622         function.
7623
7624 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
7625
7626         * object.c (mono_load_remote_field_new): Fix returning uninitialized
7627         memory when the remoting callback does not sets the out arguments.
7628         Fixes #73007.
7629
7630         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
7631         by mistake.
7632
7633         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
7634
7635         * object-internals.h (MonoStackFrame): Sync with managed object layout.
7636
7637         * appdomain.c: Bump corlib version.
7638
7639 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
7640
7641         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
7642         function.
7643
7644         * threads.c (mono_thread_attach): Detect threads which are not started
7645         by the GC pthread wrappers.
7646
7647 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
7648
7649         * icall.c: Added new icall for RNG.
7650         * rand.c|h: Added new icall to open the RNG. This allows to share a 
7651         single handle on Linux to access /dev/urandom and fix #73183.
7652
7653 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
7654
7655         * object.c: setting the new vtable in a transparent proxy object must
7656         not change the GC descriptor.
7657
7658 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7659
7660         * object.c: fixed compilation without GCJ support.
7661         * reflection.c: for runtime-created types ensure klass->has_references
7662         is correct (bug #73215).
7663
7664 2005-03-02  Martin Baulig  <martin@ximian.com>
7665
7666         * class.c (mono_class_is_assignable_from): Make this work if
7667         `oklass' is a generic instance; fixes #72831.
7668
7669 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7670
7671         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
7672         with hasthis set.
7673         
7674         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
7675
7676         * marshal.c: Reorganize native->managed marshalling code to also use
7677         the emit_marshal_... functions.
7678
7679 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7680
7681         * object.c: typed allocs have issues with bitmap sizes > 30,
7682         so check for max_set >= 30.
7683
7684 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
7685
7686         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
7687         managed code. Fixes #73012.
7688
7689         * metadata.h (MonoMarshalSpec): Add elem_mult field.
7690
7691         * metadata.c reflection.c: Load/Emit elem_mult as well.
7692         
7693         * metadata.h (MonoMarshalSpec): Add comment.
7694
7695         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
7696
7697         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
7698         num_elem to -1 if not given.
7699
7700         * object-internals.h (MonoReflectionMarshal): Add has_size field.
7701
7702         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
7703         given values.
7704
7705 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
7706
7707         * null-gc.c (mono_gc_free_fixed): Was not compilable.
7708
7709 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
7710
7711         * reflection.c (encode_marshal_blob): Encode param_num field as well.
7712
7713         * object-internals.h (MonoReflectionMarshal): Add param_num field.
7714
7715 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
7716
7717         * object.c: generalized the reference bitmap creation
7718         and added hooks for the new GC.
7719         * class-internals.c: removed the gc_bitmap field from MonoClass.
7720
7721 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7722
7723         * domain.c: help the compiler to produce better code
7724         in mono_jit_info_table_find ().
7725
7726 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7727
7728         * object.c: make all allocations look typed.
7729
7730 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
7731
7732         * socket-io.c: load Mono.Posix if it's not loaded already
7733         (fixes bug#73033).
7734
7735 2005-02-24  Martin Baulig  <martin@ximian.com>
7736
7737         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
7738         * reflection.c (dup_type): Likewise.
7739
7740 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
7741
7742         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
7743         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
7744
7745 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7746
7747         * domain.c, threads.c, object-internals.h: make the critical thread
7748         local vars use the fast access mode (even when we're compiled in
7749         a lib). Provide accessors to be used by the jit during codegen.
7750
7751 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7752
7753         * appdomain.c: Changed hook functios behavior to include
7754         support for the reflection only assemblies. Some icalls were changed
7755         to support the mentioned assemblies too. Signatures of static methods
7756         try_assembly_resolve and real_load now have an additional parameter:
7757         refonly.
7758
7759         * assembly.c: General changes to mono_assembly_ methods to support
7760         reflection only api. Functions mono_assembly_open, mono_assembly_load,
7761         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
7762         suffix, to support an additional gbool parameter to specify whether
7763         the assembli is reflection only or not. Created some new hook functions 
7764         to add support for reflection only assemblies. Signatures of static 
7765         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
7766         have now an additional parameter: refonly.
7767
7768         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
7769         indicating whether the assembly is reflection only or not.
7770
7771         * exception.c: Add mono_get_exception_invalid_operation.
7772
7773         * icall.c: Throw an InvalidOperationException when trying to invoke
7774         a property/method/event, or trying to set/get the value of a field.
7775         Also add an icall to retrieve the ref_only flag to the
7776         MonoReflectionAssembly.
7777
7778 2005-02-23  Chris Toshok  <toshok@ximian.com>
7779
7780         Part of fix for #72827.
7781         * mono-debug.c (mono_debug_add_method): add lexical block data to
7782         the info we write.  Kind of a hack at the moment - we copy the
7783         lexical block info from the MonoDebugMethodInfo to the
7784         MonoDebugMethodJitInfo here, before writing it.
7785         (mono_debug_read_method): read the lexical block info.
7786
7787         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
7788
7789         * debug-mono-symfile.h: add lexical block support.
7790
7791         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
7792         support.
7793
7794 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7795
7796         * loader.c (mono_lookup_pinvoke_call): Fix warning.
7797
7798         * object.c (mono_runtime_free_method): Call mono_free_method () and
7799         put the TODOs there.
7800
7801         * loader.c (mono_free_method): Free up most memory allocated for 
7802         dynamic methods.
7803
7804 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
7805
7806         * reflection.c: properly flag a Type argument to a
7807         named custom attr value (bug #72248).
7808
7809 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
7810
7811         * reflection.c: reduce code duplication in named custom
7812         attribute encoding.
7813
7814 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
7815
7816         * reflection.c: properly encode custom attrs of type object
7817         (bug #72649).
7818
7819 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
7820
7821         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
7822
7823 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
7824
7825         * socket-io.c: load System.dll if it's not loaded already
7826         (bug #72850 and #70477).
7827
7828 2005-02-21  Martin Baulig  <martin@ximian.com>
7829
7830         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
7831         generic instances.
7832
7833 2005-02-21  Martin Baulig  <martin@ximian.com>
7834
7835         * reflection.c (mono_image_build_metadata): We also need to
7836         "fixup" the MethodImpl table after we computed the final method
7837         indices.  Call fixup_methodimpl() to do that.
7838         (fixup_methodimpl): New private method.
7839
7840 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
7841
7842         * assembly.c: special case mscorlib.dll (bug#72536),
7843         patch from Carlos Alberto Cortez.
7844
7845 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
7846
7847         * threads-types.h threads.c: Fix build bustage.
7848
7849         * threads.c: Use a union for long<->double conversions.
7850
7851         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
7852         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
7853
7854         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
7855         containing the checkpoint call with NOT_TAKEN.
7856         
7857         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
7858         checkpoint before pushing the arguments, so they won't have to be
7859         spilled to stack.
7860
7861 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
7862
7863         * domain.c, assembly.c, domain-internals.h: make some data
7864         const and relocation-free.
7865
7866 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
7867
7868         * object.c, appdomain.c, class-internals.h: introduce the
7869         MonoClassRuntimeInfo structure to hold the info needed to
7870         use a class at runtime. Made mono_class_vtable() lock-free
7871         for all the appdomains.
7872
7873 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
7874
7875         * metadata-internals.h, image.c: introduce a per-image mempool to
7876         be used for memory that has the same lifetime as the image.
7877
7878 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
7879
7880         * domain.c: In mono_init_internal(), instead of selecting the first
7881         runtime version supported by an executable, get a list of all
7882         supported versions and select the one for which an mscorlib exists
7883         (since even if the runtime supports a given version, it doesn't mean
7884         that the framework for that version is installed).
7885         Modified get_runtimes_from_exe to support this behavior.
7886         In supported_runtimes, added information about additional system
7887         assembly versions.
7888         
7889         * assembly.c: Added support for more than one system assembly version
7890         per runtime version. Updated the assembly list.
7891         In mono_assembly_remap_version, removed the initial version check,
7892         since we don't know to which version we need to compare until we
7893         get the version set on which the assembly is based.
7894         Moved the code for loading corlib into the new method
7895         mono_assembly_load_corlib(), so it can be used by the initialization
7896         code.
7897         
7898         * domain-internals.h: Updated data structures and added declaration
7899         for mono_assembly_load_corlib.
7900
7901 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7902
7903         * reflection.c (resolve_object): Fix the creation of the signature in 
7904         the SignatureHelper case.
7905
7906         * assembly.c (mono_assembly_remap_version): Fix binary search.
7907         
7908 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
7909  
7910         * class.c: Added inheritance check when a method is overloaded (from a
7911         virtual method or when implementing an interface) and when a class is
7912         inherited. Added functions to set a failure for a class and to 
7913         retreive the exception from a failure.
7914         * class-internals.h: Added fields to MonoClass to keep the exception
7915         information status for inheritance (or other exceptions) to be thrown
7916         later (i.e. not at load time).
7917         * object.c: Throw the inheritance SecurityException when a type is to 
7918         be created with either class or method inheritance violations.
7919         * reflection.c|h: Fix when getting declsec from a class. Removed 
7920         unrequired code for class. Improved sanity in parameter naming.
7921         * security-manager.c|h: Added functions to check for class and method
7922         inheritance.
7923
7924 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
7925
7926         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
7927         and has_finalize in dynamic types as well.
7928
7929 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
7930
7931         * culture-info-table.h : fixed currency format for en-GB (and so on).
7932
7933 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
7934
7935         * gc.c: ensure the GC handles never have 0 as a value.
7936
7937 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7938
7939         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
7940         a pointer to a struct to unmanaged code. Fixes #72625.
7941
7942 2005-02-16  Martin Baulig  <martin@ximian.com>
7943
7944         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
7945
7946 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
7947
7948         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
7949
7950 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7951
7952         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
7953
7954         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
7955         UnmanagedFunctionPointerAttribute, use it for determining calling convention
7956         etc. Fixes #71471.
7957
7958         * reflection.c (mono_custom_attrs_get_attr): New helper function.
7959
7960         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
7961
7962 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
7963
7964         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
7965         changes to make the current context a field in MonoThread.
7966
7967 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
7968
7969         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
7970         the last change.
7971         
7972         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
7973         extracted from mono_marshal_get_native_wrapper.
7974
7975         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
7976         to create wrappers around native functions.
7977
7978         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
7979         delegates for arbitrary function pointers. Fixes #71472.
7980
7981 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
7982
7983         * threads.c: cleaned up the code a little.
7984
7985 2005-02-15  Martin Baulig  <martin@ximian.com>
7986
7987         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
7988         the data table.
7989
7990         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
7991         allocate larger chunks if needed.
7992
7993 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
7994
7995         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
7996         in by mistake.
7997
7998 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
7999
8000         * domain.c: keep the domains in an array and ensure the domain ids
8001         are kept small, so they can be used as indexes to domain-specific data
8002         with a small memory overhead.
8003
8004 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
8005
8006         * icall.c: Handle byref types in Type icalls. Fixes #72544.
8007
8008 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
8009
8010         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
8011
8012 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
8013
8014         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
8015
8016         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
8017         values.
8018
8019         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
8020         
8021 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
8022
8023         * domain-internals.h: add the hashtable here.
8024
8025         * class-internals.h: Remove `info' from MonoMethod
8026
8027         * domain.c: Add a new hashtable, jit_trampoline_hash
8028
8029 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8030
8031         * object.c: don't set the value of static fields
8032         (fixes bug#72494).
8033
8034 2005-02-11  Martin Baulig  <martin@ximian.com>
8035
8036         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
8037         (mono_debug_add_method): Silently ignore the method if it's too big.
8038         (mono_debug_add_type): Likewise.
8039
8040 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
8041
8042         * threads.c, appdomain.c: remove #ifdefs from the code.
8043
8044 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
8045
8046         * metadata-internals.h: Added flags to MonoAssembly to cache the most
8047         common security informations. This allows us to stay in unmanaged code
8048         when doing LinkDemand and it's special cases (except for the first 
8049         time for initialization). The flags a very much used with --security.
8050         * reflection.c|h: Added code to get declarative security attributes 
8051         for LinkDemand and InheritanceDemand. This required to refactor the
8052         existing code for Demand.
8053         * security-manager.c|h: Added new method fields for the special cases
8054         of LinkDemand.
8055
8056 2005-02-10  Martin Baulig  <martin@ximian.com>
8057
8058         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
8059         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
8060
8061 2005-02-10  Martin Baulig  <martin@ximian.com>
8062
8063         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
8064         debugging code; this is almost a complete rewrite.
8065
8066         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
8067
8068 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8069
8070         * domain.c, object.h: expose mono_string_equal () and 
8071         mono_string_hash ().
8072         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
8073         it's implemented in managed code.
8074
8075 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8076
8077         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
8078         lo leak objects between appdomains.
8079
8080 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8081
8082         * assembly.c: old compilers compilation fix from 
8083         robertj@gmx.net (Robert Jordan).
8084
8085 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
8086
8087         * class-internals.h: Little reminder for the future.
8088
8089         * debug-helpers.c: Fix up wrapper_type_names
8090
8091 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8092
8093         * image.c, metadata-internals.h: when loading an image from a file,
8094         mmap all of it and use the same codepaths as when using a
8095         in-memory image: the code is simpler and we use less memory
8096         (both writable and readonly).
8097
8098 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8099
8100         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
8101         API to alloc runtime data structures that need to be tracked by the
8102         GC and contain pointers.
8103         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
8104         make the code more readable and eventually use a different GC.
8105
8106 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
8107
8108         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
8109         for out arguments.
8110         
8111 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
8112
8113         * object.c: In release_type_locks(), don't release the cctor lock
8114         if it has already been released. This fixes a crash in the
8115         thread5 test.
8116
8117 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
8118
8119         * gc.c, marshal.c, icall.c: register a delegate for finalization
8120         only when the native function pointer has been allocated for it.
8121
8122 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8123
8124         * object.c: cleaned up some code, allocate objects that are
8125         pointer free with the atomic malloc variant. Allocate memory
8126         for static data from the mempool if it's pointer-free.
8127         Allocate the bounds array at the end of the array data, when needed.
8128         * object-internals.h, object.h: move a private function in a private
8129         header.
8130         * class.c: handle missing case in tracking references in fields.
8131
8132 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
8133
8134         * class.c, class-internals.h: keep track if a type has
8135         reference fields in either the instance or static fields.
8136
8137 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
8138
8139         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
8140         and renamed to MonoRuntimeInfo. Added fields to store the expected
8141         framework assembly version. Changed mono_get_framework_version and
8142         mono_get_runtime_version for a single mono_get_runtime_info method.
8143         
8144         * assembly.c: Added method to remap system assembly versions to the
8145         current executing runtime version. Removed old mapping code.
8146         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
8147         
8148         * icall.c, reflection.c: Track api changes.
8149
8150 2005-02-06  Miguel de Icaza  <miguel@novell.com>
8151
8152         * loader.c (method_from_memberref): Improve error reporting,
8153         produce the class name instead of the typeref/typedef index. 
8154
8155 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
8156
8157         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
8158
8159 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8160
8161         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
8162         stdcall and charset name mangling.  Reorganize the code and add
8163         some tracing stuff.
8164
8165 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8166
8167         * monodiet.c: More iters!
8168
8169         * marshal.c: Iter usage.
8170
8171         * icall.c: Iter usage.
8172
8173         * object.c: Use iters.
8174
8175         * debug-helpers.c: More iters
8176
8177 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8178
8179         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
8180         under win32.
8181
8182 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
8183
8184         * mono-debug-debugger.c: use iters
8185
8186         * class.c, class-internals.h: mono_class_setup_events is static
8187         now
8188
8189         * All callers: use iters
8190
8191 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
8192
8193         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
8194         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
8195
8196 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8197
8198         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
8199
8200         * marshal.h: Add prototypes for ldfld/stfld_remote.
8201
8202         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
8203         this is called during startup.
8204         
8205 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
8206
8207         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
8208         MonoThreadsSync struct private in monitor.c. Changed the way
8209         MonoThreadsSync is allocated so it's faster and there is no
8210         need to keep track of it with a finalizer and it uses less memory.
8211         This also finally allows us to allocate mono objects as ptrfree when
8212         there are no reference fields.
8213
8214 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
8215
8216         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
8217         disappearing link to the GC interface and use them to simplify
8218         the gchandles code.
8219
8220 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
8221
8222         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
8223         stfld_remote which call mono_load/store_field_new. This allows methods
8224         calling ldfld/stfld wrappers to be AOTed.
8225
8226         * console-io.c: Include sys/filio.h under solaris.
8227         
8228         * console-io.c: Include curses.h if needed correctly.
8229
8230 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8231         
8232         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
8233         method->klass as well.
8234
8235         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
8236
8237         * class.c (mono_class_init): Switch on lazy initialization of 
8238         methods.
8239
8240         * class.c (mono_class_get_finalizer): Handle the case when the 
8241         finalizer is inherited.
8242
8243 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8244
8245         * console-io.c: <curses.h> is needed by term.h on solaris.
8246
8247 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
8248
8249         * icall.c, class-internals.h, monodiet.c, class.c: Remove
8250         mono_class_setup_properties where possible. Remove this ftn from
8251         the header file, and make it static.
8252
8253 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
8254
8255         * loader.c: Add missing setup_... call.
8256
8257         * class.c: Add missing setup_... calls.
8258
8259         * class.c (mono_class_init): Switch on lazy initialization of 
8260         the generic vtable.
8261         
8262         * class.c (mono_class_init): Fix generics broken by the recent changes.
8263
8264         * monodiet.c (handle_type): Add missing setup_... calls.
8265
8266         * class.c: Back out garbage in previous patch.
8267         
8268         * class.c: Add missing setup_... calls.
8269
8270         * class.c (mono_class_get_method_from_name_flags): Avoid calling
8271         mono_class_setup_methods () if possible.
8272
8273         * class-internals.h (MonoClass): Add 'has_cctor' flag.
8274
8275         * class-internals.h (MonoCachedClassInfo): New structure.
8276
8277         * class.c: Initialize properties and events fields of MonoClass lazily.
8278
8279         * class.c: Add infrastructure for lazily initializing the methods and
8280         vtable fields of MonoClass. Not yet used.
8281
8282         * class.c (mono_class_get_finalizer): New helper function.
8283
8284         * class.c: Add infrastructure for loading some class related data from
8285         an AOT file.
8286
8287         * object.c: Add infrastructure for initializing the vtable from data
8288         in the AOT file.
8289
8290         * gc.c (run_finalize): Use mono_class_get_finalizer ().
8291
8292         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
8293         appropriate initialization function before accessing parts of the
8294         MonoClass structure.
8295
8296         * marshal.c: Fix warnings.
8297         
8298         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
8299
8300         * mono-debug-debugger.c (get_exception_message): Use 
8301         mono_class_get_method_from_name_flags ().
8302
8303 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
8304
8305         * reflection.c, appdomain.c: Replace a few manual searches that
8306         Zoltan missed. (Paolo approved this part of my initial patch).
8307
8308 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
8309
8310         * profiler.c: disable recording statistical events at report time.
8311
8312 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8313
8314         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
8315         to byteswap arrays of enum values, too (bug #72080).
8316
8317 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
8318
8319         * appdomain.c (set_domain_search_path): Allow this to be called if
8320         domain->setup is not yet set.
8321
8322         * loader.c (mono_method_get_index): New helper function.
8323
8324         * loader.c reflection.c: Use mono_method_get_index ().
8325
8326         * class.c (mono_class_get_method_from_name_flags): New helper method.
8327
8328         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
8329         this.
8330
8331         * class.c (mono_class_get_cctor): New helper method.
8332
8333         * string-icalls.c object.c class.c marshal.c reflection.c: Use
8334         mono_class_get_method () to look up methods.
8335
8336 2005-02-01  Miguel de Icaza  <miguel@novell.com>
8337
8338         * console-io.c: Fix the build, this should work on Windows.
8339
8340 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
8341
8342         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
8343         be set to null to keep things valid
8344
8345 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8346
8347         * icall.c: added Console 2.0 icalls.
8348         * Makefile.am: added console-io.[ch]
8349         * console-io.[ch]: internal calls for Console 2.0 API.
8350
8351 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8352
8353         * class.c: make sure we consider all the interfaces
8354         when calculating max_interface_id (bug found by
8355         Jeroen Frijters running ikvm).
8356
8357 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
8358
8359         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
8360         valuetype fields to null.
8361
8362         * object.c (set_value): Ditto. Fixes #71669.    
8363
8364 2005-01-31  Martin Baulig  <martin@ximian.com>
8365
8366         * metadata.c (mono_metadata_has_generic_params): New public
8367         function; checks whether something is a generic method.
8368
8369 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
8370
8371         * appdomain.c: fix infinite recursion when adding assemblies.
8372
8373 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
8374
8375         * object.c: Fix small typo to return all items for Environment.
8376         GetCommandLineArgs.
8377
8378 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
8379
8380         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
8381         reflection.c: more domain and assembly-unload related fixes
8382         and memory leaks plugs.
8383
8384 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
8385
8386         * 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.
8387
8388 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
8389
8390         * loader.c (mono_method_signature): Make this method lazy
8391         (mono_get_method_from_token): Don't computate the signature here.
8392
8393         Doing this saves quite a bit of memory. I got 90 kb on starting up
8394         monodoc. It should also save some disk reads on startup.
8395
8396         * *: MonoMethod->signature might be NULL now. You *MUST* use
8397         mono_method_signature.
8398
8399 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
8400
8401         * object.c (mono_runtime_get_main_args): Return an array from the
8402         current domain here. Fixes #71938.
8403
8404 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
8405
8406         * monitor.c: formatting changes to comply with the
8407         mono coding style and remove #ifdefs from the code.
8408
8409 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8410
8411         * metadata.c, private.h: remove some unneeded data
8412         and use a more compact representation for table schemas.
8413
8414 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
8415
8416         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
8417         to get a better distribution in hash tables.
8418         * *.c: use mono_aligned_addr_hash() where appropriate.
8419         * assembly.c: make var static.
8420
8421 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
8422
8423         * domain-internals.h: Put MonoJitInfo on a diet.
8424
8425         * domain.c: Fix a warning.
8426
8427 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8428
8429         * gc.c: rework the gc handles code to reuse handles
8430         when freed.
8431
8432 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
8433
8434         * domain.c: fixed long standing bug in mono_string_equal() which
8435         was brought to light with the ldstr changes.
8436
8437 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
8438
8439         * reflection.c: Remove warning by adding missing include for marshal.h
8440
8441 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
8442
8443         * domain.c, object.c: change the ldstr_table to hold
8444         MonoString* as keys: makes the runtime isinterned lookup
8445         faster and simplifies memory management.
8446
8447 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
8448  
8449         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
8450         possible to add imperative security checks before calling the icall.
8451         * reflection.c: Return security attributes on the original MonoMethod
8452         (and not the wrapped one). This fix permissions on icalls.
8453
8454 2005-01-25  Dick Porter  <dick@ximian.com>
8455
8456         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
8457         the check for mktime() support actually test the mktime() return
8458         value.  "Fixes" bug 71682, though the output is still different to
8459         MS.
8460
8461 2005-01-25  Martin Baulig  <martin@ximian.com>
8462
8463         * class.c (mono_class_is_assignable_from): Make this work for
8464         generic instances.
8465
8466 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
8467
8468         * marshal.c (mono_string_utf8_to_builder)
8469         (mono_string_builder_to_utf16): We might not have ownership of the
8470         string. In thise case, we need to create a new buffer.
8471
8472         * object-internals.h (mono_stringbuilder_capacity): sb->str might
8473         be null, in which case, use the default capacity.
8474
8475 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
8476
8477         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
8478         GC events to the profiler.
8479
8480 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
8481
8482         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
8483         if you don't want the GC to run.
8484
8485 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
8486
8487         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
8488         start providing a GC API and keeping different implementations in
8489         their own file.
8490         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
8491
8492 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
8493
8494         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
8495         mmap rather than allocating a huge buffer.
8496         (mono_debug_close_mono_symbol_file): Free the buffer allocated
8497         above.
8498
8499 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
8500
8501         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
8502         and CheckExecutionRights.
8503         * reflection.c|h: Keep the index of the declarative security to be 
8504         used, instead of the pointer, when AOT compiler is used. Also add 
8505         class initialization when requesting demands.
8506         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
8507         CheckExecutionRights. Both properties are now FALSE by default, and
8508         unmodifiable, unless the --security option is used.
8509
8510 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8511
8512         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
8513         reflection.c: properly refcount images and assemblies, many leaks fixed.
8514
8515 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8516
8517         * threadpool.c: increase the timeout for threads in the thread pool to
8518         10s.  Fixes bug #67159.
8519
8520 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
8521
8522         * class-internals.h: Sun's compiler insists on explicit
8523         signed on bit fields to handle then correctly.
8524
8525 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
8526
8527         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
8528         Make the size of the array fit only the number of invalid path
8529         chars that we have.
8530
8531         * class.c (_mono_class_get): Improve the error reporting when a
8532         class referenced is not found, to assist debugging. 
8533
8534 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
8535
8536         * threads.c: fix off-by-one error.
8537         * domain.c: free data allocated in the domain.
8538
8539 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8540
8541         * reflection.c (mono_method_body_get_object): Fill out exception info
8542         as well.
8543
8544         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
8545         structure.
8546         
8547 2005-01-19  Martin Baulig  <martin@ximian.com>
8548
8549         * loader.c (mono_get_method_constrained): Make this work again.
8550
8551 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
8552
8553         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
8554         guint16 to match the managed side.
8555
8556         * reflection.c (mono_reflection_body_get_object): Fill out local
8557         variables array.
8558
8559         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
8560         as well.
8561
8562         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
8563         'local_var_sig_token'.
8564
8565 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
8566
8567         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
8568         System.Drawing.
8569
8570         * reflection.c (mono_method_body_get_object): Handle abstract and
8571         runtime methods.
8572
8573 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
8574
8575         * marshal.c, loader.c, class-internals.h, reflection.c:
8576         store the emthod data for a wrapper in an array instead of a list.
8577
8578 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
8579
8580         * marshal.c: change the code to allocate memory more
8581         conservatively for method wrappers.
8582
8583 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
8584
8585         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
8586         fields from MonoClass to the marshal info structure where they belong.
8587
8588 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
8589
8590         * class.c, object.c, class-internals.h, marshal.c: rearrange
8591         some fields and tweak some types to lower memory usage.
8592
8593 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
8594
8595         * threads.c (signal_thread_state_change): Handle the case when the
8596         target thread is the current thread.
8597
8598         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
8599
8600         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
8601         emit_ptr_to_object_conv. 
8602
8603         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
8604         marshalling. Fixes #71352.
8605
8606 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
8607
8608         * metadata.h, blob.h: move table enum to blob.h so it can be included
8609         in any header.
8610         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
8611         cut the size of MonoImage/MonoDynamicImage.
8612
8613 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
8614
8615         * profiler.c (mono_profiler_install_simple): Fix default arguments.
8616
8617 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
8618
8619         * reflection.c, reflection.h, icall.c: add a function to check
8620         if an attribute type is defined for a metadata object.
8621
8622 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
8623
8624         * object-internals.h: Added some needed fields from StringBuilder class.
8625         * marshal.c: Set the maxCapacity when creating a StringBuilder.
8626
8627 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
8628
8629         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
8630         threads before shutting down the runtime.
8631
8632         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
8633
8634 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
8635
8636         * object-internal.h, threads.c: implement stacksize and 
8637         parameterized thread start functionality (requires
8638         matching corlib). Marked broken code for later removal.
8639
8640 2005-01-12  Martin Baulig  <martin@ximian.com>
8641
8642         * class-internals.h (MonoGenericClass): Moved the `initialized'
8643         flag to MonoDynamicGenericClass, removed `init_pending'.
8644         (MonoGenericInst): Added `is_reference' flag.
8645
8646 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
8647
8648         * reflection.c (mono_image_create_pefile): Only set the pe_offset
8649         inside the MSDOS header. Fixes #71201.
8650
8651         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
8652         gc thread.
8653         (mono_domain_finalize): Ditto.
8654
8655 2005-01-12  Martin Baulig  <martin@ximian.com>
8656
8657         * class.c (mono_get_shared_generic_class): Use the cache for
8658         non-dynamic generic classes.
8659
8660         * class-internals.h (mono_class_create_generic_2): Removed
8661         function prototype, this function is now static inside class.c.
8662
8663         * class.c (mono_class_create_generic_2): Made this static, only
8664         call it from mono_class_init() and mono_class_setup_parent().
8665         (collect_implemented_interfaces_aux): Call mono_class_init() on
8666         the interfaces we collect.
8667         (mono_class_setup_vtable): Call mono_class_init (class->parent).
8668
8669 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8670
8671         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
8672         it a real thread handle.
8673
8674         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
8675         MonoJitExceptionInfo, since each catch clause needs its own variable.
8676         
8677 2005-01-11  Dick Porter  <dick@ximian.com>
8678
8679         * image.c (mono_pe_file_open): New variant on mono_image_open()
8680         that does not set up the CLI metadata; used for FileVersionInfo so
8681         it can get the data for windows binaries too.
8682         
8683         * process.c (process_read_string_block): Don't read off the end of
8684         the StringTable block.
8685
8686         These both fix bug 70766.
8687
8688 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
8689
8690         * gc.c: set some fields to NULL at GC cleanup time.
8691         * threads.c: if we quit the main thread, call exit ().
8692
8693 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
8694
8695         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
8696
8697 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
8698
8699         * threads.h, threads.c, object.c: added accessor and settor for
8700         main_thread. Handle it specially when exiting from it: wait
8701         for other foreground threads to exit.
8702
8703 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
8704
8705         * process.c, verify.c: remove some bloat.
8706
8707 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
8708
8709         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
8710         the calling convention to cdecl under win32.
8711
8712 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
8713
8714         * object.c (mono_object_get_size): New function to get the size of
8715         an object instance.
8716
8717         * profiler.c (simple_allocation): Use above.
8718
8719 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
8720
8721         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
8722         ves_icall_System_AppDomain_getRootDomain (as it's not required to
8723         get an appdomain by it's id and we can't assume the root's id is 0).
8724         * domain-internals.h: Change the function prototype to match.
8725         * icall.c: Change the icall table for AppDomain.
8726
8727 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
8728
8729         * locales.c (string_invariant_compare_char): Only compute
8730         GUnicodeTypes in the case where we need them.  Test for ordinality
8731         first and return if so.
8732
8733         From the commit:
8734
8735                 /*
8736                  * FIXME: here we must use the information from c1type and c2type
8737                  * to find out the proper collation, even on the InvariantCulture, the
8738                  * sorting is not done by computing the unicode values, but their
8739                  * actual sort order.
8740                  */
8741
8742 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
8743
8744         * loader.c: for P/Invoke methods, allow the "Internal" shared
8745         library name to refer to the calling process symbol namespace.
8746
8747 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
8748
8749         * Makefile.am: Add the security manager to the build.
8750         * security-manager.c|h: New. Initialization of the security manager.
8751
8752 2005-01-07  Dick Porter  <dick@ximian.com>
8753
8754         * threads.c: 
8755         * monitor.c: Update thread state during Monitor and WaitHandle
8756         waits.  Fixes bug 71031.
8757
8758 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
8759
8760         * reflection.c (property_encode_signature): Correctly handle when the
8761         property has no methods.
8762
8763 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
8764
8765         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
8766         
8767         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
8768         fields from mb, not rmb. Fixes #71017.
8769
8770         * marshal.c (emit_ptr_to_str_conv): Add support for 
8771         ByValTStr -> string conversion. Fixes #71015.
8772
8773         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
8774
8775         * mempool.c (mono_mempool_contains_addr): New helper function.
8776
8777 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8778
8779         * metadata.c (mono_metadata_compute_size): Fix size calculation of
8780         HasSematics encoded fields.
8781         
8782         * metadata.c (mono_type_to_unmanaged): Improve error message for 
8783         invalid string marshalling.
8784
8785         * metadata.c: Fix warnings.
8786         
8787 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
8788
8789         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
8790         profiler support.
8791
8792 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
8793
8794         * domain.c object.c domain-internals.h: Revert part of r38077 since the
8795         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
8796         tests.
8797
8798 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
8799
8800         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
8801         so methods containing these can be AOTed.
8802
8803 2005-01-03  Martin Baulig  <martin@ximian.com>
8804
8805         * loader.c (find_method): Removed the hack for generic instances.
8806         (method_from_memberref): If our parent is a generic instance, pass
8807         its generic type definition to find_method() and then inflate the
8808         method.
8809         (mono_get_method_constrained): Pass the generic type definition to
8810         find_method() and inflate the method later.
8811
8812         * class-internals.h (MonoStats): Added `generic_class_count'.
8813
8814         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
8815         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
8816
8817         * reflection.c (mono_custom_attrs_from_params): Don't ignore
8818         generic type definitions.
8819
8820 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
8821
8822         * loader.c icall.c: Fix warnings.
8823
8824 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
8825
8826         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
8827         blittable types. Fixes #70864.
8828
8829 2004-12-29  Martin Baulig  <martin@ximian.com>
8830
8831         * icall.c
8832         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
8833
8834         * reflection.c (mono_method_get_object): Create a
8835         "System.Reflection.MonoGenericMethod" for inflated methods; don't
8836         call mono_get_inflated_method().
8837
8838         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
8839
8840 2004-12-27  Martin Baulig  <martin@ximian.com>
8841
8842         * class-internals.h (MonoMethod): Added `is_inflated' flag.
8843         (MonoMethodInflated): Added `inflated' field.
8844
8845         * class.c (mono_class_inflate_generic_method): Don't really
8846         inflate the method here; just set the `is_inflated' flag in the
8847         MonoMethod.
8848         (mono_class_get_inflated_method): Actually inflate the method here
8849         if it's not already inflated; we use the MonoMethodInflated's new
8850         `inflated' field as a cache.
8851
8852 2004-12-26  Martin Baulig  <martin@ximian.com>
8853
8854         * class.c
8855         (inflate_generic_class): Moved some code out of inflate_generic_type().
8856         (mono_class_inflate_generic_method): If we're already inflated,
8857         inflate the context and use the declaring method; ie. make sure
8858         the declaring method of an inflated method is always the generic
8859         method definition.
8860         (mono_class_create_from_typedef): Create
8861         `class->generic_container->context->gclass'.
8862
8863 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
8864
8865         * metadata-internals.h, marshal.c, reflection.c: More
8866         MonoGHashTable->GHashTable.
8867
8868         * domain-internals.h, class.c: Change MonoGHashTable's into
8869         GHashTables for some cases where no gc stuff is used
8870
8871         All users: update apis
8872
8873 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
8874
8875         * metadata.c (builtin_types): Make this `const'. Makes this get
8876         put into the shareable section.
8877         (mono_metadata_init): Casts to make gcc happy.
8878
8879 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
8880
8881         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
8882
8883 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
8884
8885         * icall.c: Added an internal call to retrieve the position and length
8886         of assembly-level declarative security attributes (RequestMinimum, 
8887         RequestOptional and RequestRefuse). This is used by the Assembly class
8888         to re-create the corresponding permission sets.
8889
8890 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
8891
8892         * marshal.c: fix the stelemref wrapper to be type correct
8893         (and faster).
8894
8895 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
8896
8897         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
8898         to do key & 0x7fffffff. Hashtable already does this. It just
8899         results in longer code.
8900
8901 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
8902
8903         * appdomain.c: Bump corlib version.
8904         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
8905         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
8906         * reflection.c|h: Add functions to get declarative security infos
8907         (blob position and length) for assemblies, classes and methods.
8908
8909 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
8910
8911         * reflection.c: sort the constant table (bug #70693).
8912
8913 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
8914
8915         * object-internals.h, threads.c, domain.c: add accessors for
8916         the MonoThread and MonoDomain tls keys.
8917
8918 2004-12-18  Martin Baulig  <martin@ximian.com>
8919
8920         * class.c (inflate_generic_type): If we're inflating a generic
8921         instance, set `ngclass->context->container = context->container';
8922         ie. the container we inflated into.
8923
8924         * metadata.c (mono_metadata_parse_generic_param): Reflect above
8925         inflate_generic_type() changes.
8926
8927 2004-12-17  Martin Baulig  <martin@ximian.com>
8928
8929         * class-internals.h
8930         (MonoGenericClass): Replaced `MonoType *generic_type' with
8931         `MonoClass *generic_class'.  Removed `dynamic_info'; if
8932         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
8933         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
8934
8935 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
8936
8937         * exception.c (mono_exception_from_token): New helper function.
8938
8939 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
8940
8941         * assembly.c (mono_assembly_load_with_partial_name): Call 
8942         mono_assembly_loaded before invoking the preload hooks. Fixes
8943         #70564.
8944
8945         * object-internals.h (MonoThread): Change culture_info and 
8946         ui_culture_info into an array.
8947
8948         * threads.c: Cache culture info objects from more than one appdomain.
8949
8950         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
8951         current UI culture.
8952
8953 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
8954
8955         * threads.h threads.c appdomain.c: Clear the culture_info field of
8956         all threads during unloading if they point to an object in the dying
8957         appdomain.
8958
8959 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
8960
8961         * culture-info.h (TextInfoEntry): New struct
8962         * object-internals.h: sync with managed
8963         * locales.c: fill the `text_info_data' field
8964         * culture-info-tables.h: update
8965
8966 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
8967
8968         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
8969         collector.
8970
8971 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
8972
8973         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
8974         (ves_icall_ModuleBuilder_getMethodToken): Ditto
8975
8976 2004-12-12  Martin Baulig  <martin@ximian.com>
8977
8978         * mono-debug-debugger.c (write_type): If we're an enum and the
8979         builtin types have already been initialized, call mono_class_init().
8980
8981 2004-12-11  Martin Baulig  <martin@ximian.com>
8982
8983         * metadata.c (mono_metadata_load_generic_params): Added
8984         `MonoGenericContainer *parent_container' argument; automatically
8985         compute `container->is_method'; pass the correct owner to
8986         get_constraints().      
8987
8988         * reflection.c (compare_genericparam): Sort the GenericParam table
8989         according to increasing owners. 
8990
8991 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
8992
8993         * profiler.c: allow disabling the default profiler.
8994
8995 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
8996
8997         * decimal.c, icall.c: allow disabling System.Decimal support.
8998
8999 2004-12-09  Marek Safar <marek.safar@seznam.cz>
9000
9001         * reflection.c: Add support for null attribute arguments.
9002
9003 2004-12-09  Martin Baulig  <martin@ximian.com>
9004
9005         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
9006         names to get rid of compiler warnings.
9007
9008 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9009
9010         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
9011         mono_marshal_load_type_info (). Fixes #69625.
9012         (mono_marshal_get_ptr_to_struct): Likewise.
9013
9014 2004-12-08  Martin Baulig  <martin@ximian.com>
9015
9016         * mono-debug.h: Bumped version number to 47.
9017
9018         * mono-debug-debugger.c
9019         (mono_debugger_event_handler, mono_debugger_event): Take two
9020         guint64 arguments insteed of a gpointer and a guint32.  
9021
9022 2004-12-08  Martin Baulig  <martin@ximian.com>
9023
9024         * debug-mono-symfile.h
9025         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
9026         `address' to `native_offset'.
9027
9028 2004-12-08  Martin Baulig  <martin@ximian.com>
9029
9030         * class.c (mono_class_create_from_typespec): Only inflate if we
9031         either have `context->gclass' or `context->gmethod'.
9032
9033 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
9034
9035         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
9036
9037         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
9038
9039         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
9040
9041         * reflection.c (mono_assembly_get_object): Remove the workaround put
9042         in for the release.
9043         
9044         * appdomain.c: Use the corlib_internal field from MonoAssembly.
9045
9046         * appdomain.c: Bump corlib version.
9047
9048         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
9049         be visible in other appdomains.
9050
9051 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
9052
9053         * threads.c: Interlocked inc and dec for longs were messed up,
9054         use a KISS based impl for this. Fixes 70234
9055
9056 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
9057
9058         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
9059
9060 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
9061
9062         * icall.c: fix to follow policy not to allow struct
9063         arguments in icalls.
9064
9065 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9066
9067         * process.c: make the patch that handles spaces in file paths work
9068         on mono/windows too.
9069
9070 2004-12-06  Martin Baulig  <martin@ximian.com>
9071
9072         * class.c (mono_class_create_generic): Call
9073         mono_class_setup_supertypes() if we're dynamic.
9074         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
9075
9076 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
9077
9078         * object-internals.h: Add new fields to MonoThread.
9079
9080         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9081
9082         * icall.c threads-types.h threads.c: Add new icalls.
9083
9084         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
9085
9086         * object-internals.h (MonoReflectionAssembly): Sync object layout with
9087         managed side.
9088
9089         * appdomain.c: Bump corlib version.
9090
9091         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
9092         internal assemblies. Fixes #69181.
9093
9094 2004-12-05  Martin Baulig  <martin@ximian.com>
9095
9096         * class.c (mono_class_inflate_generic_signature): Make this a
9097         no-op if `context' is NULL or we don't have any type parameters;
9098         also copy `sentinelpos'.        
9099
9100 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
9101
9102         * image.c: Add unbox_wrapper_cache.
9103
9104         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
9105
9106         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
9107         function generator.
9108         
9109         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
9110         Fixes #70173.
9111
9112         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
9113         
9114 2004-12-04  Martin Baulig  <martin@ximian.com>
9115
9116         * loader.c (mono_method_get_signature_full): New public function;
9117         like mono_method_get_signature(), but with an additional
9118         `MonoGenericContext *' argument.
9119
9120         * class.c (mono_class_inflate_generic_signature): Formerly known
9121         as inflate_generic_signature(); make this public.
9122
9123 2004-12-04  Martin Baulig  <martin@ximian.com>
9124
9125         * metadata.c
9126         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
9127         instead of a `MonoGenericContainer *'.  
9128         (mono_metadata_parse_array_full): Likewise.
9129         (mono_metadata_parse_signature_full): Likewise.
9130         (mono_metadata_parse_method_signature_full): Likewise.
9131         (mono_metadata_parse_generic_inst): Likewise.
9132         (mono_metadata_parse_generic_param): Likewise.
9133         (mono_metadata_parse_mh_full): Likewise.
9134         (mono_type_create_from_typespec_full): Likewise.
9135
9136 2004-12-03  Martin Baulig  <martin@ximian.com>
9137
9138         * class-internals.h (MonoGenericContainer): Replaced the
9139         `MonoGenericContext * pointer with a `MonoGenericContext'
9140         structure and made it the first element.
9141
9142 2004-12-03  Martin Baulig  <martin@ximian.com>
9143
9144         * class.c
9145         (inflate_generic_type): Set the `context->container' when creating
9146         a new MonoGenericContext.
9147         (mono_class_inflate_generic_method): Likewise.
9148         (mono_class_create_from_typespec): Just use `context->container'
9149         to get the container.
9150
9151         * loader.c (method_from_methodspec): Set `context->parent' from
9152         `context->container' - and if that's a method container, use its
9153         parent.  Also set the `context->container' when creating a new
9154         MonoGenericContext.
9155         (mono_get_method_from_token): Use just `context->container' to get
9156         the container.
9157
9158         * metadata.c (do_mono_metadata_parse_generic_class): Also set
9159         `gclass->context->container'.
9160
9161         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
9162         the `context->container' when creating a new MonoGenericContext.
9163
9164 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
9165
9166         * reflection.c (compare_genericparam): Sort params with identical
9167         owner by their number. Fixes gen-111 on sparc.
9168
9169 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9170
9171         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
9172         around the domain changes.
9173
9174         * appdomain.c (mono_domain_unload): Handle the case when the thread
9175         calling Unload is itself being aborted during unloading. Fixes #70022.
9176
9177         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
9178
9179         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
9180         checkpoint_func as an icall so it gets a wrapper.
9181         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
9182         in the cross-appdomain wrappers too.
9183
9184         * threads.c (mono_thread_has_appdomain_ref): Make this public.
9185
9186         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
9187
9188         * reflection.c: Fix some memory leaks.
9189         
9190 2004-12-02  Martin Baulig  <martin@ximian.com>
9191
9192         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
9193
9194         * metadata.c (generic_class_cache): New static hashtable.
9195         (mono_metadata_lookup_generic_class): New public method.
9196
9197 2004-12-02  Martin Baulig  <martin@ximian.com>
9198
9199         * class.c (mono_class_create_from_typedef): Call
9200         mono_class_setup_parent() and mono_class_create_mono_type() before
9201         parsing the interfaces.
9202
9203 2004-12-02  Martin Baulig  <martin@ximian.com>
9204
9205         * metadata.c (generic_inst_cache): New static hashtable.
9206         (mono_metadata_lookup_generic_inst): New public function.
9207         (mono_metadata_inflate_generic_inst): New public function.
9208         (mono_metadata_parse_generic_inst): New public function.
9209         (do_mono_metadata_parse_generic_class): Use the new
9210         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
9211         since this'll also use the cache.
9212
9213         * reflection.c (mono_reflection_bind_generic_method_parameters):
9214         Use mono_metadata_lookup_generic_inst() to use the new cache.
9215
9216         * class.c (inflate_mono_type): Use
9217         mono_metadata_inflate_generic_inst() to inflate a generic
9218         instance; this'll also use the new cache.
9219
9220         * loader.c (method_from_methodspec): Use
9221         mono_metadata_parse_generic_inst() and
9222         mono_metadata_inflate_generic_inst() rather than parsing it
9223         manually, so we can use the new cache.
9224
9225 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
9226
9227         * threads.c (wait_for_tids): Do not incorrectly free threads when 
9228         the wait times out.
9229
9230 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
9231
9232         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
9233         iter->args based on whether parameters are passed in registers (i.e.
9234         MONO_ARCH_REGPARMS is defined)
9235
9236 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
9237
9238         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
9239         the exception message. Fixes #70070.
9240         (method_from_methodspec): Fix warnings.
9241
9242 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9243
9244         * process.c: (complete_path) return the path quoted
9245
9246 2004-12-01  Martin Baulig  <martin@ximian.com>
9247
9248         * class-internals.h (MonoGenericInst): New structure.
9249         (MonoGenericClass): Replaced `type_argc', `type_argv' and
9250         `is_open' with `MonoGenericInst *inst'.
9251         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
9252         `is_open' with `MonoGenericInst *inst'.
9253
9254 2004-11-30  Martin Baulig  <martin@ximian.com>
9255
9256         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
9257
9258         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
9259         to `generic_class_cache'.
9260
9261         * metadata.c
9262         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
9263         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
9264         (mono_generic_inst_is_valuetype): Renamed to
9265         mono_generic_class_is_valuetype().
9266
9267         * class-internals.h
9268         (MonoGenericInst): Renamed to MonoGenericClass.
9269         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
9270         (MonoClass): Renamed `generic_inst' to `generic_class'.
9271         (MonoGenericContext): Renamed `ginst' to `gclass'.
9272
9273         * object-internals.h
9274         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
9275
9276         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
9277         mono_reflection_generic_class_initialize().
9278
9279         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
9280         now known as "System.Reflection.MonoGenericClass".
9281         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
9282
9283 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
9284
9285         * class-internals.h: Added a flag field to MonoClass to cache the
9286         declarative security attributes actions associated with the class.
9287         * domain-internals.h: Added booleans to MonoJitInfo to cache the
9288         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
9289         applicable to the JITted method.
9290         * reflection.c|h: Added functions to extract (as flags) which security
9291         actions are available (declaratively) for a method, class or assembly.
9292         * metadata.c|h: Added functions to search the declarative security
9293         table in the metadata.
9294         
9295 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
9296
9297         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
9298         EXPORTEDTYPES are already in the class name cache, so there is no
9299         need to add extra code here to look at them. Just removes a bit of
9300         cruft.
9301
9302         (ves_icall_System_Environment_get_TickCount): No need for #if
9303         WINDOWS. We already have the code in io-layer.
9304
9305 2004-11-28  Martin Baulig  <martin@ximian.com>
9306
9307         * loader.c
9308         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
9309         Fixes gen-112.cs.
9310
9311 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
9312
9313         * assembly.c (do_mono_assembly_open): Instead of having a
9314         conditional WITH_BUNDLE, incorporate support for bundles here, by
9315         having a global `bundles' variable holding a pointer to the actual
9316         bundles. 
9317
9318         (mono_register_bundled_assemblies): New API call used by the
9319         bundle code. 
9320
9321         See mkbundle.1 for details.
9322         
9323 2004-11-27  Martin Baulig  <martin@ximian.com>
9324
9325         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
9326         the vtable for generic methods.
9327
9328 2004-11-26  Martin Baulig  <martin@ximian.com>
9329
9330         * metadata.c
9331         (mono_metadata_generic_method_hash): New public function.
9332         (mono_metadata_generic_method_equal): Likewise.
9333
9334         * class-internals.h
9335         (MonoGenericContainer): Added `GHashTable *method_hash'.
9336
9337         * reflection.c (ReflectionMethodBuilder): Added
9338         `MonoGenericContainer *generic_container'.
9339         (reflection_methodbuilder_to_mono_method): Don't create a new
9340         MonoGenericContainer each time we're called.
9341         (mono_reflection_bind_generic_method_parameters): Use
9342         `container->method_hash' to cache the results so we don't create a
9343         different method if we're called several times with the same
9344         arguments.
9345
9346         * loader.c (method_from_methodspec): Use the new
9347         `container->method_hash' here, too.
9348
9349 2004-11-26  Martin Baulig  <martin@ximian.com>
9350
9351         * class.c (inflate_generic_signature): Correctly compute
9352         `res->has_type_parameters'.
9353         (mono_class_vtable): Use the `has_type_parameters' flag to
9354         determine whether we're a generic method.
9355
9356         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
9357
9358 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
9359
9360         * object.c (mono_runtime_run_main): Fix a small memory leak.
9361
9362 2004-11-25  Martin Baulig  <martin@ximian.com>
9363
9364         * class.c (set_generic_param_owner): Fixed the loop.
9365
9366 2004-11-25  Martin Baulig  <martin@ximian.com>
9367
9368         * object.c (mono_class_vtable): Don't create any JIT wrappers for
9369         generic methods.
9370
9371 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
9372
9373         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
9374         names. Fixes #69787.
9375
9376 2004-11-24  Martin Baulig  <martin@ximian.com>
9377
9378         * class.c (mono_class_create_generic_2): If we don't have a
9379         `ginst->parent', inflate `gklass->parent' to get our parent.
9380
9381 2004-11-24  Martin Baulig  <martin@ximian.com>
9382
9383         * reflection.c (compare_genericparam): Correctly sort the
9384         GenericParam table; fixes #69779.
9385
9386 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
9387
9388         * reflection.c: When writing a PE file, don't create a huge
9389         buffer in memory. Just write the arrays we have to the file.
9390         This reduces memory usage.
9391
9392         * metadata-internals.h: MonoDynamicStream pefile is no longer used
9393         globally.
9394
9395 2004-11-17  Martin Baulig  <martin@ximian.com>
9396
9397         * class.c (mono_class_init): Don't setup `class->parent' for
9398         dynamic instances; moved this to mono_class_generic_2().
9399         (mono_class_create_generic): Also set `klass->inited' for dynamic
9400         generic instances.
9401         (mono_class_create_generic_2): Don't do anything for dynamic
9402         generic instances.  Set `klass->parent' here and also call
9403         mono_class_setup_parent() here. 
9404
9405         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
9406         `MonoType *parent' argument; set `ginst->parent' before calling
9407         mono_class_create_generic_2(), so we set the correct parent.
9408
9409 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
9410
9411         * reflection.c: allow getting attributes from ModuleBuilder
9412         (used by ikvm).
9413
9414 2004-11-17  Martin Baulig  <martin@ximian.com>
9415
9416         * class.c (mono_class_create_from_typedef): If a type parameter is
9417         inherited from an outer class, set its owner to that class.
9418
9419 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
9420
9421         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
9422           for (int*) written size. This fixes bug #69592.
9423
9424 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
9425
9426         * icall.c: Added IsAuthenticodePresnet internal call.
9427         * image.c|h: New function that check a MonoImage for an Authenticode
9428         signature in the certificate PE data directory.
9429         * security.c|h: New internal call to ask the runtime if an 
9430         Authenticode signature seems referenced in the PE header.
9431
9432 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
9433
9434         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
9435
9436         * reflection.c (mono_image_create_pefile): Free the assembly streams
9437         after writing out the assembly file.
9438
9439         * object.c (mono_runtime_run_main): Fix small memory leak.
9440
9441         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
9442         property access modifiers. Fixes #69389.
9443
9444 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
9445
9446         * domain.c, object.c, object-internals.h, domain-internals.h,
9447         object.h, marshal.c: keep dynamic code info per domain.
9448
9449 2004-11-15  Martin Baulig  <martin@ximian.com>
9450
9451         * class.c (mono_type_get_name_recurse): Put type arguments in
9452         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
9453         see bug #68387.
9454
9455 2004-11-15  Martin Baulig  <martin@ximian.com>
9456
9457         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
9458         (mono_class_setup_vtable): When computing `the_cname' for a
9459         generic instance, don't include the namespace since we'd otherwise
9460         add it twice.
9461
9462 2004-11-15  Martin Baulig  <martin@ximian.com>
9463
9464         * class.c (mono_class_create_generic): Changed return type to void.
9465         (mono_class_create_generic_2): New public function; setup
9466         `class->method', `class->field' and `class->interfaces' here
9467         instead of in mono_class_init().
9468
9469         * class.h (mono_class_create_generic): Moved to class-internals.h.
9470
9471 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
9472
9473         * reflection.c (mono_image_create_pefile): take a file HANDLE.
9474         rather than writing to memory, write to this file. Right now,
9475         we are just writting into a buffer, and copying that. However
9476         we can avoid the buffer later.
9477
9478         (mono_dynamic_stream_reset): new function
9479
9480         * icall.c, object-internals.h: update for the above.
9481
9482 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
9483
9484         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
9485         have been using gc'd memory. First it is slower, unlikely
9486         the comment in the source code said, secondly, it increases
9487         our footprint to do it in the gc.
9488
9489         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
9490         the method so that it does not have to copy to managed code.
9491
9492 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
9493
9494         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
9495
9496 2004-11-12  Martin Baulig  <martin@localhost>
9497
9498         * reflection.c (mono_image_create_token): Allow generic method
9499         definitions here, since they may appear in an `.override'; see
9500         gen-98/gen-99 for an example.
9501
9502 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
9503
9504         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
9505         #69365.
9506
9507         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
9508         descriptive.
9509
9510 2004-11-11  Martin Baulig  <martin@ximian.com>
9511
9512         * class.c (mono_class_setup_vtable): In an explicit interface
9513         implementation, the method name now includes the arity.
9514
9515 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
9516
9517         * object.c (mono_array_full_copy): Fix warning.
9518
9519 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
9520
9521         * appdomain.c: Removed look_for_method_by_name(). Use the new method
9522         mono_class_get_method_from_name() instead.
9523         
9524         * class-internals.h: Added two new types of wrappers. 
9525         Added MonoRemotingTarget enum. Added new trampoline function type, which
9526         takes an additional MonoRemotingTarget value as parameter, so it is
9527         possible to request a trampoline for a specific target.
9528         
9529         * class.c: Added new mono_class_get_method_from_name() method.
9530         
9531         * class.h: In MonoRemoteClass, we can have now to vtables, one for
9532         general remoting sinks and one specific for cross domain calls.
9533         
9534         * debug-helpers.c: Added new wrapper names.
9535         
9536         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
9537         of a remote class.
9538         
9539         * image.c: Porperly delete value objects form the remoting invoke hashtable.
9540         
9541         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
9542         with several other methods (mono_marshal_get_xappdomain_dispatch,
9543         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
9544         and others) can generate a fast remoting wrapper for cross domain calls.
9545         More information can be found in docs/remoting.
9546         Other changes: Removed mono_find_method_by_name, and used
9547         mono_class_get_method_from_name instead.
9548         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
9549         is stored in the remoting invoke hashtable.
9550         
9551         * marshal.h: published the new method for getting the xdomain wrapper,
9552         and also added a method for getting the adequate wrapper for a given
9553         method and target.
9554         
9555         * object-internals.h, object.c: Added a couple of methods for capying and
9556         cloning arrays.
9557         Modified mono_install_remoting_trampoline, which takes the new remoting
9558         trampoline that has a remoting target as parameter.
9559         mono_class_proxy_vtable now also takes a remoting target as parameter, and
9560         will return the most suitable vtable for the target.
9561         Added mono_remote_class_vtable, which returns the vtable of a remote class
9562         (which can be the normal remoting vtable or the xdomain vtable).
9563         
9564         * threads.c: the xdomain invoke and dispatch wrappers must also be
9565         protected against interruptions.
9566
9567 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9568
9569         * icall.c: use memmove in BlockCopyInternal when the source and
9570         destination arrays are the same.
9571
9572 2004-11-09  Martin Baulig  <martin@ximian.com>
9573
9574         * class-internals.h (MonoGenericContainer): Removed `method' and
9575         `signature', replaced them with `is_method' and `is_signature'
9576         flags.  Added `context'.
9577
9578         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
9579         instead of a `MonoGenericContainer *'.
9580
9581         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
9582         for dynamic type parameters.
9583         (mono_metadata_load_generic_params): Setup `container->context'.
9584
9585         * reflection.c (mono_reflection_setup_generic_class): Setup
9586         `tb->generic_container->context'.
9587         (do_mono_reflection_bind_generic_parameters): Use
9588         mono_class_inflate_generic_type() to correctly inflate types,
9589         rather than using our own hack just for MONO_TYPE_VAR.
9590
9591 2004-11-09  Martin Baulig  <martin@ximian.com>
9592
9593         * class.c (mono_class_inflate_generic_method): Small fix; don't
9594         crash here.
9595
9596         * icall.c
9597         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
9598         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
9599         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
9600         (ves_icall_Type_BindGenericParameters): Likewise.
9601         (ves_icall_Type_get_IsGenericInstance): Likewise.
9602         (ves_icall_Type_GetGenericParameterPosition): Likewise.
9603         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
9604         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
9605         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
9606
9607 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
9608
9609         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
9610         assembly versions and public key tokens. Fixes #69113.
9611
9612 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
9613
9614         * metadata.c: fix bug introduced with the type cache changes
9615         on 2004-11-06.
9616
9617 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
9618
9619         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
9620         the MonoClass pointer instead of the token in exception clauses.
9621         * reflection.c: updates for the above and make the code not depend
9622         on the structure of MonoExceptionClause.
9623
9624 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
9625
9626         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9627         Add support for dynamic assemblies. Fixes #69114.
9628
9629         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
9630
9631 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
9632
9633         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
9634         since most only those methods use it. the code member of
9635         MonoMethodPInvoke was dead, so that can be removed too. Also,
9636         remove inline_count (again, not used), and move slot so that it
9637         can share bits with some other flags. This saves 8 bytes in the
9638         structure and gives us about 50 kb back for mcs helloworld.cs
9639
9640         * *.[ch]: Do naming changes for the above.
9641
9642         * loader.c (mono_method_get_header): Lazily init the header
9643         on first access.
9644         (mono_get_method_from_token): don't init the header here
9645         (mono_free_method): the header may never be allocated
9646
9647         Overall, this saves 150 kb of unmanaged allocations
9648         for mcs helloworld.cs. That accounts for 10% of the unmanaged
9649         memory at runtime.
9650         
9651         * loader.c, loader.h (mono_method_get_header): new accessor.
9652
9653         * *.[ch]: use the above method. Prepares us to lazily load
9654         the header.
9655
9656         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
9657         three warnings, which are actual bugs (see 69206).
9658
9659         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
9660         unused. Saves a cool 4 bytes / method.
9661
9662 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
9663
9664         * metadata.c (builtin_types): Add types for System.Object here.
9665         (mono_metadata_parse_type_full): Cache MonoType*'s that are
9666         for a class or valuetype from klass->this_arg or klass->byval_arg.
9667
9668         On mcs for a hello world, this gets us down from 21836 MonoType's
9669         to 14560.
9670
9671         (mono_metadata_free_type): Account for the above change.
9672
9673 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
9674
9675         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
9676         exception instead of asserting if name is null.
9677         (ves_icall_System_AppDomain_GetData): Ditto.
9678
9679 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
9680
9681         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
9682         EnumBuilder.
9683
9684         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
9685         Return NULL when the domain does not have entry_assembly set.
9686
9687         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
9688         Add a 'resource_modules' argument.
9689         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
9690
9691         * reflection.c (mono_reflection_create_runtime_class): Move setting
9692         of wastypebuilder here, so mono_get_type_object () returns a MonoType
9693         for enums too.
9694
9695         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
9696         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
9697         Throw an ArgumentNullException if 'ptr' is null.
9698
9699         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
9700         assemblies here. Fixes #69020.
9701
9702 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
9703
9704         * reflection.c (build_compressed_metadata): Fix the previous patch for
9705         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
9706         the stack.
9707
9708 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
9709
9710         * assembly.c (mono_assembly_names_equal): Allow a match if one of
9711         the cultures is false. Fixes #69090.
9712
9713         * reflection.c (build_compressed_metadata): Fix invalid memory read 
9714         detected by valgrind.
9715         
9716         * reflection.c (mono_reflection_get_type): Avoid triggering a 
9717         TypeResolve multiple times for the same type. Fixes #65577.
9718
9719 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
9720
9721         * marshal.c: Avoid using ldftn to call managed functions. It is
9722         much slower than just a call.
9723
9724         * reflection.c (mono_module_get_object): free the basename we
9725         allocate here from glib.
9726         
9727         * reflection.c (ensure_runtime_vtable): make sure to free
9728         overrides.  Also, we were allocating an array of MonoMethod not an
9729         array of MonoMethod*.
9730
9731         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
9732
9733         * image.c (mono_image_close): free image->guid here.
9734
9735 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
9736
9737         * reflection.c: Fix some spec conformance issues with the PE file
9738         structures so mcs compiled apps run on the Net 2.0 beta.
9739
9740 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
9741
9742         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
9743         Implement this. Fixes #67264.
9744
9745         * debug-helpers.h debug-helpers.c marshal.c: Move 
9746         mono_find_method_by_name to debug-helpers.c.
9747
9748 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
9749
9750         * object.c (mono_release_type_locks): type_initialization_hash is
9751         a GHashTable.
9752
9753         * reflection.c object.c object-internals.h: Fix warnings.
9754
9755         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
9756         without accessors. Fixes #61561.
9757
9758         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
9759         application base from the root domain if not set. Fixes #65641.
9760         (mono_runtime_init): Fix warning.
9761
9762 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9763
9764         * appdomain.c: call mono_thread_pool_init.
9765         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
9766         of worker threads based on the number of CPUs and the environment
9767         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
9768         for non-windows (windows) systems.
9769
9770 2004-10-27  Chris Toshok  <toshok@ximian.com>
9771
9772         * mono-debug-debugger.c (write_class): don't call mono_class_init
9773         here, as even with the check for (!klass->init_pending), we get
9774         into a situation where we're hitting cycles in class
9775         initialization.  Fixes #68816.
9776
9777 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
9778
9779         * image.c: Avoid overwriting values in the loaded_images_hash when an
9780         assembly is loaded multiple times. Fixes #61152.
9781
9782         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
9783         so multiple satellite assemblies for the same name can be loaded.
9784         Fixes #68259.
9785
9786         * mono_domain_assembly_preload: Actually return the loaded assembly, 
9787         not NULL.
9788
9789         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
9790         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
9791
9792         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
9793         pending finalizers are not invoked after the appdomain has been 
9794         unloaded. Fixes #67862.
9795
9796 2004-10-22  Martin Baulig  <martin@ximian.com>
9797
9798         * mono-debug-debugger.c
9799         (mono_debugger_runtime_invoke): Don't box valuetypes.
9800
9801 2004-10-22  Chris Toshok  <toshok@ximian.com>
9802
9803         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
9804         don't hide private methods.
9805
9806 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
9807
9808         * icall.c: Allows the runtime to "share" (when known) the public key
9809         token of an assembly. This avoid the need to recalculate the token 
9810         (from the public key) in managed code.
9811
9812 2004-10-21  Chris Toshok  <toshok@ximian.com>
9813
9814         * debug-helpers.c (append_class_name): argh, revert last patch.
9815         
9816 2004-10-21  Chris Toshok  <toshok@ximian.com>
9817
9818         * debug-helpers.c (append_class_name): use '+' as the delimiter,
9819         not '/', so that it matches what the debugger uses to look up
9820         methods.
9821
9822 2004-10-21  Martin Baulig  <martin@ximian.com>
9823
9824         * mono-debug-debugger.c (mono_debugger_throw_exception): New
9825         public method; this is called each time an exception is thrown and
9826         allows the debugger to use exception catch points.
9827
9828 2004-10-21  Martin Baulig  <martin@ximian.com>
9829
9830         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
9831         the stack pointer and the exception object in some struct and pass
9832         that to the debugger.
9833
9834 2004-10-21  Chris Toshok  <toshok@ximian.com>
9835
9836         * mono-debug-debugger.c (do_write_class): add instance/static
9837         event support.  We don't expose "raise" or "other" yet.
9838         (event_is_static): new method.
9839
9840 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
9841
9842         * mono-debug-debugger.c
9843         (mono_debugger_handle_exception): Remove
9844         bogus return value for fussy compilers.
9845
9846 2004-10-20  Martin Baulig  <martin@ximian.com>
9847
9848         * mono-debug-debugger.c
9849         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
9850         (mono_debugger_handled_exception): Likewise.
9851
9852 2004-10-20  Martin Baulig  <martin@ximian.com>
9853
9854         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9855         MONO_DEBUGGER_EVENT_EXCEPTION.
9856
9857         * mono-debug-debugger.c (mono_debugger_handle_exception): New
9858         public function to send the debugger a notification for an
9859         exception and inform it about a catch/finally clause.
9860
9861 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
9862
9863         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
9864         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
9865         fix 2.95 build. 
9866
9867         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
9868
9869 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
9870
9871         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
9872         marshalled as [In,Out]. Fixes #58325.
9873
9874 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
9875
9876         * reflection.c (mono_method_body_get_object): Implement some fields.
9877
9878 2004-10-12  Martin Baulig  <martin@ximian.com>
9879
9880         * reflection.c (mono_reflection_bind_generic_parameters): Small
9881         fix, correctly retrieve our parent from a generic instance.
9882
9883 2004-10-12  Martin Baulig  <martin@ximian.com>
9884
9885         * metadata.c (mono_metadata_generic_param_equal): We always have
9886         an owner.
9887
9888         * class.c
9889         (mono_class_from_generic_parameter): We need to have an owner.
9890         (my_mono_class_from_generic_parameter): Likewise.
9891
9892         * reflection.c (mono_reflection_setup_generic_class): Renamed to
9893         mono_reflection_create_generic_class() and added a new
9894         mono_reflection_setup_generic_class().  
9895         (mono_reflection_initialize_generic_param): If we're a nested
9896         generic type and inherited from the containing class, set our
9897         owner to the outer class.
9898
9899 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
9900
9901         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
9902
9903         * reflection.c (mono_method_body_get_object): New function to create
9904         a MethodBody object.
9905
9906         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
9907
9908 2004-10-11  Martin Baulig  <martin@ximian.com>
9909
9910         * metadata.c (_mono_metadata_type_equal): Renamed to
9911         do_mono_metadata_type_equal() and made static.
9912
9913 2004-10-11  Martin Baulig  <martin@ximian.com>
9914
9915         * appdomain.c: Bump corlib version number to 28.
9916
9917 2004-10-10  Martin Baulig  <martin@ximian.com>
9918
9919         * class-internals.h
9920         (MonoGenericInst): Added `MonoGenericContainer *container'.
9921         (MonoGenericMethod): Likewise.
9922         (MonoGenericContext): Likewise.
9923         (MonoGenericParam): Added `MonoGenericContainer *owner'.
9924
9925         * metadata.c
9926         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
9927         (do_mono_metadata_parse_generic_inst): Likewise.
9928         (mono_metadata_parse_type_full): New public method.  This is the actual
9929         mono_metadata_parse_type() implementation - with an additional
9930         `MonoGenericContainer *' argument.
9931         (mono_metadata_parse_array_full): Likewise.
9932         (mono_metadata_parse_signature_full): Likewise.
9933         (mono_metadata_parse_method_signature_full): Likewise.
9934         (mono_metadata_parse_mh_full): Likewise.
9935         (mono_type_create_from_typespec): Likewise.
9936         (mono_metadata_interfaces_from_typedef_full): New public method;
9937         this is similar to the other _full() methods, but we take a
9938         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
9939         (mono_metadata_parse_generic_param): Take an additional
9940         `MonoGenericContainer *' argument and lookup the MonoGenericParam
9941         from that container.
9942         (mono_metadata_generic_param_equal): New static method to compare
9943         two type parameters.
9944         (_mono_metadata_type_equal): New static method; takes an
9945         additional `gboolean signature_only' argument - if true, we don't
9946         compare the owners of generic parameters.
9947         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
9948         with a TRUE argument - do a signature-only comparision.
9949
9950         * loader.c: Use the new _full() methods and pass the
9951         MonoGenericContainer to them.
9952
9953         * object-internals.h (MonoReflectionTypeBuilder): Added
9954         `MonoGenericContainer *generic_container' field.
9955         (MonoReflectionMethodBuilder): Likewise.
9956
9957 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
9958
9959         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
9960         case initial images of dynamic assemblies.
9961
9962         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
9963
9964         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
9965
9966         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
9967         length of event->other array.
9968         (typebuilder_setup_events): Ditto.
9969
9970         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
9971         'assembly_by_name' and add an 'assemblies' list.
9972
9973         * assembly.h assembly.c: Add a new search hook for determining whenever
9974         an assembly is already loaded. Use this instead of searching in the
9975         loaded_assemblies list.
9976
9977         * domain.c appdomain.c: Implement the new search hook so loaded 
9978         assemblies are now scoped by appdomain. Fixes #67727.
9979
9980 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
9981
9982         * threads.c (mono_thread_attach): Initialize synch_lock field so
9983         mono_thread_detach works again.
9984
9985         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
9986         'lib' too. Fixes #63130.
9987
9988 2004-10-06  Jackson Harper  <jackson@ximian.com>
9989
9990         * culture-info-tables.h: regenerated.
9991
9992 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
9993
9994         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
9995         implemented by other interfaces in the result. Fixes #65764.
9996         
9997         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
9998         Handle unloadable modules without crashing.
9999
10000         * image.c (load_modules): Revert the previous patch since modules must
10001         have a fixed index inside the array.
10002         
10003         * image.c (load_modules): Don't include native modules in the modules
10004         array.
10005
10006 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
10007
10008         * reflection.h: Add param_defaults field.
10009
10010         * reflection.c: Add support for parameter defaults in dynamic methods.
10011         Fixes #64595.
10012
10013         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
10014         an empty string when a type has no namespace. Fixes #64230.
10015
10016 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
10017
10018         * tabledefs.h: Added "internal" security actions to support non-CAS
10019         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
10020         Note: they do not seems to be used anymore in 2.0 (new metadata format)
10021
10022 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
10023
10024         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
10025         constructor of abstract class. Fixes #61689.
10026
10027 2004-10-04  Martin Baulig  <martin@ximian.com>
10028
10029         * class-internals.h (MonoGenericContainer): New type.
10030         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
10031         `MonoGenericContainer *generic_container'.
10032         (MonoClass): Replaced `gen_params' and `num_gen_params' with
10033         `MonoGenericContainer *generic_container'.
10034
10035         * metadata.c (mono_metadata_load_generic_params): Return a
10036         `MonoGenericContainer *' instead of a `MonoGenericParam *';
10037         removed the `num' argument.
10038
10039 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
10040
10041         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
10042         for dynamic images.
10043
10044         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
10045         machine fields.
10046
10047         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
10048
10049         * reflection.c: Save pe_kind and machine values into the generated
10050         image file.
10051
10052         * appdomain.c: Bump corlib version number.
10053
10054         * object-internals.h: Reorganize layout of LocalBuilder.
10055
10056         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
10057         New helper function.
10058
10059         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
10060         created MonoType for dynamic types. Fixes #66180.
10061
10062 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
10063
10064         * threadpool.c: the ares hashtable needs a critical section around it.
10065         this prevents some nasty segfaults
10066
10067 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
10068
10069         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
10070         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
10071         bug 67324).
10072         
10073 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10074
10075         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
10076         
10077 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
10078
10079         * image.c: Always canonicalize image file names, to avoid loading
10080         the same assembly twice when referenced using a relative path.
10081
10082 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
10083
10084         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
10085
10086         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
10087
10088         * marshal.c: Fix warnings.
10089
10090 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
10091
10092         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
10093         attempting to marshal the delegate_trampoline as the method_addr.
10094         This patch has a static hashtable of marshalled delegates so that 
10095         we can map delegate_trampoline addresses back to delegates.  This
10096         allows a delegate passed to managed code to be passed back into native
10097         code.  Fixes #67039
10098
10099 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10100
10101         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
10102
10103         * reflection.c (method_encode_code): Align method headers properly.
10104         Fixes #66025.
10105
10106 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10107
10108         * marshal.c: In the runtime invoke wrapper, reset the abort
10109         exception if it is cached. This avoids the automatic rethrowal of 
10110         the exception after the catch of the wrapper. Also check for pending
10111         interruptions before calling the managed method. This is done using
10112         the new method emit_thread_force_interrupt_checkpoint, since the
10113         normal checkpoint method is ignored when running the invoke wrapper.
10114         * object.c: If the abort exception is rethrown, set the abort_exc
10115         field of the thread, so it will be rethrown aftere every catch.
10116         * threadpool.c: Only run an interruption checkpoint if what has been
10117         requested is a stop of the thread (aborts will be ignored).
10118         * threads.c: By default, a thread will now never be interrumped while
10119         running the runtime invoke wrapper (this ensures that runtime_invoke
10120         will always return to the caller if an exception pointer is provided).
10121         There is a new special method mono_thread_force_interruption_checkpoint()
10122         to force an interruption checkpoint even if running a protected
10123         wrapper, which is used by the same runtime invoke wrapper to do a check
10124         at a safe point.
10125
10126 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
10127
10128         * object.c, object-internals.h: Implemented mono_release_type_locks,
10129         which releases the cctor locks held by a thread.
10130         * threads.c, threads.h: In thread_cleanup, release cctor locks held
10131         by a thread. Added mono_thread_exit() method to be used to safely stop
10132         a thread.
10133
10134 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10135
10136         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
10137         Move null check before dereference.  Avoid indexing beyond the end
10138         of the 'modules' array.
10139
10140 2004-09-28  Raja R Harinath  <rharinath@novell.com>
10141
10142         * metadata-internals.h (MonoImage): Add module_count field.
10143         * image.c (load_modules): Set image->module_count.
10144         (mono_image_load_file_for_image): Use image->module_count.
10145         * reflection.c (mono_image_load_module): Append to image->modules array 
10146         of dynamic assembly.
10147         (mono_module_get_object): Fix loop to actually increment index.
10148         Use image->module_count.
10149         * assembly.c (mono_assembly_load_references): Use image->module_count.
10150         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
10151         Likewise.
10152
10153 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
10154
10155         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
10156         Avoid assert on generic types.
10157
10158 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
10159
10160         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
10161
10162         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
10163
10164         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
10165         function to convert a MarshalSpec structure to its managed counterpart.
10166
10167         * reflection.c: Fix warnings.
10168         
10169         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
10170         field.
10171
10172         * icall.c (mono_create_icall_signature): Fix build.
10173
10174 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
10175
10176         * icall.c: Add MakePointType icall.
10177
10178         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
10179         warnings.
10180
10181 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10182
10183         * threadpool.c: reuse allocated slots in the queue.
10184
10185 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
10186
10187         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
10188
10189         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
10190
10191         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
10192         previous change.
10193
10194         * tabledefs.h: Add constants for pinvoke attributes BestFit and
10195         ThrowOnUnmappableChar.
10196
10197         * icall.c (ves_icall_Type_GetPacking): New icall.
10198
10199 2004-09-24  Martin Baulig  <martin@ximian.com>
10200
10201         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
10202
10203 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10204
10205         * appdomain.c:
10206         (mono_domain_set): allow setting a domain that is being unloaded.
10207         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
10208         being unloaded.
10209
10210 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10211
10212         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
10213         the GetCustomAttributes icall.
10214
10215 2004-09-23  Martin Baulig  <martin@ximian.com>
10216
10217         * object-internals.h (MonoReflectionGenericParam): Replaced
10218         'has_ctor_constraint', `has_reference_type' and `has_value_type'
10219         with `guint32 attrs'.
10220
10221 2004-09-23  Martin Baulig  <martin@ximian.com>
10222
10223         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
10224
10225 2004-09-23  Martin Baulig  <martin@ximian.com>
10226
10227         * object-internals.h (GenericParameterAttributes): New enum.
10228
10229 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
10230
10231         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
10232         
10233         * class.c (init_events): Fill out event->other field.
10234
10235         * class.c: Fix warnings.
10236
10237         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
10238
10239 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
10240
10241         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
10242         walk which doesn't supply the IL offset.
10243
10244 2004-09-22  Martin Baulig  <martin@ximian.com>
10245
10246         * reflection.c (mono_reflection_setup_internal_class): If we're
10247         System.ValueType, System.Object or System.Enum, set
10248         `klass->instance_size' and create the vtable.
10249         (mono_reflection_create_internal_class): If we're an enum type,
10250         get the base class from our current corlib.
10251
10252 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
10253
10254         * reflection.h (MonoResolveTokenError): New type.
10255
10256         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
10257         icall.
10258
10259         * icall.c: Add an 'error' argument to the ResolveToken icalls.
10260
10261 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
10262
10263         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
10264         Support also calling constructors, but only for already allocated objects.
10265
10266 2004-09-17  Geoff Norton <gnorton@customerdna.com>
10267
10268         * reflection.c (type_get_qualified_name): If the klass is null
10269         return the typename to avoid a NullRefEx.
10270         (encode_cattr_value): Get the qualified name of the boxed type,
10271         not the underlying enumtype.  Fixes #62984.
10272
10273 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
10274
10275         * marshal.c: Fix problems with previous checkin.
10276
10277 2004-09-21    <vargaz@freemail.hu>
10278
10279         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
10280         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
10281
10282         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
10283
10284 2004-09-21  Geoff Norton <gnorton@customerdna.com>
10285
10286         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
10287         should only return a type for pointers, arrays, and passbyref types.
10288         Fixes bug #63841.
10289
10290 2004-09-21  Martin Baulig  <martin@ximian.com>
10291
10292         * domain.c (mono_debugger_check_runtime_version): New public
10293         function.
10294
10295         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
10296
10297 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
10298
10299         * reflection.c: Added missing sort to the declarative security 
10300         attributes table. MS implementation stops seeing the attributes if the
10301         token number regress in the table (as shown by ildasm and permview).
10302
10303 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
10304
10305         * object-internals.h (MonoReflectionModule): Add 'token' field.
10306         
10307         * reflection.c (mono_reflection_get_token): Add support for Module
10308         and Assembly.
10309         (mono_module_get_object): Set 'token' field.
10310         (mono_module_file_get_object): Set 'token' field.
10311
10312         * icall.c: Add new Assembly and Module icalls.
10313
10314         * appdomain.c: Bump corlib version.
10315
10316 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
10317
10318         * loader.h loader.c class.h class.c: Add helper functions for obtaining
10319         tokens of metadata objects.
10320
10321         * reflection.h reflection.c (mono_reflection_get_token): New function
10322         to obtain the token of a metadata object.
10323
10324         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
10325
10326 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
10327
10328         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
10329         
10330         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
10331
10332 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
10333
10334         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
10335         * object-internals.h: Added 3 MonoArray* members to MonoReflection
10336         AssemblyBuilder to access the permissions set in the class lib.
10337         * reflection.c: Added security attributes encoding step in 
10338         mono_image_build_metadata.
10339         * tabledefs.h: Added new security actions defined in 2.0:
10340         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
10341
10342 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10343
10344         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
10345         macro parameter.
10346
10347 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
10348  
10349         * locales.c: nullify the ICU_collator member of CompareInfo when it is
10350           finalized. There where random SIGSEVs at program termination, when
10351           an object being finalized was trying to do a string comparison and
10352           the current culture was already finalized.
10353  
10354 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10355
10356         * threads.c: call thread_cleanup before finishing the thread if we get
10357         there.
10358
10359 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
10360
10361         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
10362         assemblies from the parent. Fixes #65665.
10363
10364 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
10365
10366         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
10367         modifiers.
10368
10369 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
10370
10371         * reflection.h: add prototype for mono_get_dbnull_object
10372         * reflection.c: add prototypes for get_default_param_value_blobs 
10373         and mono_get_object_from_blob for fussier compilers
10374
10375 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
10376  
10377         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
10378         false deadlock checks in class initialization.
10379  
10380 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
10381
10382         * image.c (mono_image_addref): Fix comment.
10383
10384         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
10385         possible.
10386
10387 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
10388
10389         * reflection.c (mono_param_get_objects): Modified to return
10390         ParameterInfo.DefaultValue object.
10391
10392         (get_default_param_value_blobs):
10393         (mono_get_object_from_blob):
10394         (mono_get_dbnull_object): New helper routines. 
10395
10396         * object.c (mono_get_constant_value_from_blob): New helper routine
10397         carved out from get_default_field_value ()
10398
10399         * object-internals.h (mono_get_constant_value_from_blob): Added
10400         function declaration.
10401
10402 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
10403
10404         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
10405         referenced assemblies. Fixes #62135.
10406
10407         * exception.h exception.c (mono_get_exception_file_not_found2): New
10408         helper function.
10409
10410 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
10411
10412         * class.h class.c: Add mono_type_get_underlying_type ().
10413
10414 2004-09-09  Geoff Norton <gnorton@customerndna.com>
10415
10416         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
10417         Fix GetTypes() to support dynamically created assemblies.
10418
10419 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
10420
10421         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
10422         
10423         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
10424         previous patch.
10425
10426         * reflection.h reflection.c loader.c: Allow dynamic construction of
10427         pinvoke methods. Fixes #65571.
10428         
10429         * reflection.c (mono_reflection_get_type): Revert previous change since
10430         it causes regressions.
10431
10432 2004-09-08  Martin Baulig  <martin@ximian.com>
10433
10434         * class.c (class_compute_field_layout): Don't call
10435         mono_class_layout_fields() for open generic instances.
10436
10437 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
10438         * threads.c appdomain.c: fix typo in GC macro
10439
10440 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10441
10442         * threads.c: don't call mono_thread_detach() in start_wrapper(),
10443         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
10444
10445 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
10446
10447         * image.c (mono_image_close): Applied patch from 
10448         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
10449         assembly is loaded multiple times from data.
10450         
10451         * image.c (mono_image_open): Fix warning.
10452
10453 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10454
10455         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
10456         once. Fixes #58334.
10457         
10458         * reflection.c (mono_reflection_create_runtime_class): Initialize
10459         klass->nested_classes. Fixes #61224.
10460
10461 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
10462
10463         * threads.c: sched_yield() on exit, to allow threads to quit.
10464
10465 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10466
10467         * object.c (mono_unhandled_exception): Remove leftover debug code.
10468
10469 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
10470
10471         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
10472
10473 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
10474
10475         * marshal.c (emit_marshal_array): Really null terminate string arrays.
10476         
10477         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
10478
10479 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10480
10481         * marshal.c (emit_marshal_array): Null terminate string arrays.
10482         
10483         * marshal.c (raise_auto_layout_exception): Fix warning.
10484
10485         * reflection.c (mono_param_get_objects): Initialize the default value
10486         with DBNull.Value, not null. Fixes #62123.
10487
10488 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
10489
10490         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
10491         throw an exception with a cute explanation.
10492
10493 2004-09-06  Dick Porter  <dick@ximian.com>
10494
10495         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
10496         Close the new process's thread handle, as we don't use it.  The
10497         handle stays around forever otherwise.
10498
10499 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10500
10501         * object.c (arith_overflow): Fix warning.
10502
10503         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
10504         calling conventions in method refs. Fixes #65352.
10505
10506         * reflection.c: Fix warnings.
10507
10508 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10509
10510         * icall.c: Add a new icall for Array.Clear
10511
10512 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
10513
10514         * object.c: When allocating an array, we have to throw
10515         an overflow exception if any of the lengths are < 0.
10516
10517 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
10518
10519         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
10520         properly. Also move implementation of string array marshalling to 
10521         managed code. Fixes #42316.
10522
10523 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10524
10525         * assembly.c: provide more information when loading an assembly fails.
10526
10527 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10528
10529         * filewatcher.c: don't expect the development fam package to be
10530         installed.
10531
10532 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
10533
10534         * marshal.c: Make a copy of the signature cookie since it will be
10535         freed by the caller.
10536         
10537         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
10538
10539         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
10540
10541         * metadata.c (mono_metadata_free_marshal_spec): New function to free
10542         marshal specs.
10543
10544         * marshal.c: More refactoring.
10545         
10546         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
10547         smaller functions.
10548
10549 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
10550
10551         * object.c: In mono_message_invoke, fill the output parameter array after
10552           calling the managed method (it was done before the call). This fixes
10553           bug #59299.
10554
10555 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10556
10557         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
10558         as well.
10559
10560 2004-09-02  Martin Baulig  <martin@ximian.com>
10561
10562         * class.c (mono_class_instance_size): Don't allow generic type
10563         definitions or open generic instances.
10564         (mono_class_array_element_size): If we're a value type, call
10565         mono_class_instance_size() on the original class.
10566
10567         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
10568         handle generic instances.
10569
10570         * mono-debug-debugger.c (write_type): Handle generic instances
10571         like classes.
10572
10573 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
10574
10575         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
10576         the allocation request fails. Fixes #65089.
10577
10578         * object.c (mono_runtime_free_method): Do not call mono_free_method.
10579         
10580         * object.c (mono_runtime_free_method): New function to free a dynamic
10581         method.
10582
10583         * marshal.c (mono_delegate_free_ftnptr): New function to free the
10584         delegate trampoline.
10585
10586         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
10587         with hasthis as dynamic,
10588
10589         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
10590
10591         * domain.c (mono_jit_info_table_remove): New function to remove an
10592         entry from the jit info table.
10593
10594         * class-internals.h (MonoMethod): Add 'dynamic' field.
10595
10596         * loader.c: Fix warnings.
10597
10598 2004-09-01  Martin Baulig  <martin@ximian.com>
10599
10600         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
10601         instead of mono_debugger_lock() because the latter one is a no-op
10602         unless running in the debugger.
10603
10604 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10605
10606         * class.c (class_compute_field_layout): Classes with auto-layout or
10607         reference fields are not blittable.
10608         
10609 2004-09-01  Dick Porter  <dick@ximian.com>
10610
10611         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
10612         mono_image_get_filename() to get the assembly location.
10613
10614         * icall.c:
10615         * metadata.h: Fix compile warnings
10616
10617 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
10618
10619         * class.c (class_compute_field_layout): System.Object is blittable.
10620
10621         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
10622         as in/out. Fixes #59909.
10623
10624 2004-09-01  Martin Baulig  <martin@ximian.com>
10625
10626         * metadata.h (MONO_TYPE_ISREFERENCE): Call
10627         mono_metadata_generic_inst_is_valuetype() if we're a generic
10628         instance to check whether our underlying type is a reference type.
10629
10630 2004-09-01  Martin Baulig  <martin@ximian.com>
10631
10632         * metadata.c (mono_type_size): If we're a generic instance, call
10633         mono_class_value_size() for value types.
10634
10635 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
10636
10637         * marshal.c: Implement more custom marshalling functionality. Fixes
10638         #64915.
10639
10640 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
10641
10642         * mono-debug.c, debug-mono-symfile.c: add some locking love.
10643
10644 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
10645
10646         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
10647
10648         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
10649
10650         * icall.c: Fix some warnings.
10651
10652         * threads.c (abort_appdomain_thread): Fix unref errors.
10653         (mono_thread_current): Fix THREAD_DEBUG define.
10654
10655 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
10656
10657         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
10658
10659         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
10660
10661 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
10662
10663         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
10664         string arrays.
10665
10666 2004-08-28  Martin Baulig  <martin@ximian.com>
10667
10668         * metadata.c
10669         (mono_metadata_generic_inst_is_valuetype): New public function.
10670
10671         * metadata.h (MONO_TYPE_ISSTRUCT): Call
10672         mono_metadata_generic_inst_is_valuetype() if we're a generic
10673         instance to check whether our underlying type is a valuetype.
10674
10675 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
10676
10677         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
10678         #63768.
10679
10680 2004-08-25  Martin Baulig  <martin@ximian.com>
10681
10682         * loader.c (mono_get_method_from_token): Abstract methods can also
10683         be generic and thus have type parameters.
10684
10685         * metadata-internals.h
10686         (MonoDynamicImage): Added `GPtrArray *gen_params'.
10687
10688         * reflection.c (mono_image_get_generic_param_info): Don't create a
10689         metadata row, just add an entry to the `gen_params' array.
10690         (build_compressed_metadata): Sort the `gen_params' array and then
10691         actually create the metadata.
10692
10693 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10694
10695         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
10696
10697 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
10698
10699         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
10700
10701 2004-08-24  Martin Baulig  <martin@ximian.com>
10702
10703         * class.cs (mono_class_is_subclass_of): Like an interface, a
10704         generic instance also derives from System.Object.
10705
10706 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
10707
10708         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
10709         custom modifiers to be in any order. Fixes #61990.
10710
10711 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
10712
10713         * object.c: Register mono_object_new_fast icall.
10714         
10715         * object.c (mono_class_get_allocation_ftn): Return to calling
10716         mono_object_new_fast, since it seems faster to compute the object 
10717         size in unmanaged code than passing it as a parameter.
10718
10719         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
10720
10721         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
10722         this function with Boehm as the oom handler, so we don't have to check
10723         the result of GC_malloc.
10724
10725         * object.c: Remove checks for oom.
10726
10727         * object.h object.c (mono_class_get_allocation_ftn): New function to
10728         return the icall which can be used to allocate an instance of a given
10729         class. 
10730
10731         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
10732
10733         * class-internals.h: Add 'enabled' field.
10734
10735 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
10736
10737         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
10738
10739 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
10740         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
10741         value 0x0010.
10742
10743 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
10744
10745         * appdomain.c: use the Tls function for appdomain too,
10746         at Zoltan's request. Actually return in mono_context_get
10747
10748         * appdomain.c, profiler.c, threads.c: use __thread
10749
10750 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
10751
10752         * appdomain.c threads.c: Call GC_CreateThread on windows.
10753
10754         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
10755         multiple libraries since this don't work on windows.
10756
10757 2004-08-18  Martin Baulig  <martin@ximian.com>
10758
10759         * class-internals.h
10760         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
10761         MonoMethodHeader.
10762
10763         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
10764         MonoMethodNormal since we also need it for abstract and interface
10765         methods.
10766
10767         * reflection.c
10768         (build_compressed_metadata): Sort the GenericParam table.
10769         (mono_image_create_token): Added `gboolean create_methodspec'
10770         argument; this is false when generating a MethodImpl token.
10771         (reflection_methodbuilder_to_mono_method): Abstract and interface
10772         methods may also have generic parameters.
10773
10774 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
10775
10776         * appdomain.c: thread local alloc
10777
10778 2004-08-17  Martin Baulig  <martin@ximian.com>
10779
10780         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
10781
10782         * icall.c
10783         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
10784         argument.
10785
10786         * class.c (mono_type_get_full_name): New public function.
10787         (mono_type_get_name): Don't include the type arguments.
10788
10789 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
10790
10791         * Makefile.am: Build static versions of libmetadata and libmonoruntime
10792         for inclusion into the mono executable.
10793
10794 2004-08-16  Martin Baulig  <martin@ximian.com>
10795
10796         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
10797         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
10798
10799 2004-08-14  Martin Baulig  <martin@ximian.com>
10800
10801         * class.c (dup_type): Also copy the `byref' field.
10802
10803 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
10804
10805         * reflection.c (create_dynamic_mono_image): Revert the last change 
10806         since it breaks bootstrap.
10807
10808 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
10809
10810         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
10811
10812         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
10813         not free them with g_free.
10814
10815 2004-08-11  Martin Baulig  <martin@ximian.com>
10816
10817         * reflection.c (mono_reflection_setup_internal_class): Also call
10818         mono_class_setup_mono_type() if we already have a `tb->type.type'.
10819
10820 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
10821
10822         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
10823         called during default (first) AppDomain creation. Keep track of
10824         Evidence when loading assemblies.
10825
10826 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
10827
10828         * opcodes.c, opcodes.h: reduce runtime relocations.
10829
10830 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
10831
10832         * culture-info.h, locales.c: fixes and chages to sue the new
10833         optimized format of the locale data.
10834         * culture-info-tables.h: regenerated.
10835
10836 2004-08-06  Geoff Norton <gnorton@customerdna.com>
10837         
10838         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
10839
10840 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
10841
10842         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
10843         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
10844         * domain-internals.h: icall declaration.
10845         * icall.c: icall registration.
10846         * object-internals.h: New fields in MonoAssembly for CAS.
10847
10848 2004-08-05  Duncan Mak  <duncan@ximian.com>
10849
10850         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
10851         CEE_LDELEM_ANY.
10852
10853 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
10854
10855         * reflection.c: fix to deal with object[] arrays in custom ctors
10856         (bug #62550).
10857
10858 2004-08-05  Martin Baulig  <martin@ximian.com>
10859
10860         * class.c (mono_class_array_element_size): Added support for
10861         generic instances and correctly handle "recursive" types.
10862
10863 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
10864
10865         * assembly.c: Fix warnings.
10866
10867 2004-08-04  Martin Baulig  <martin@ximian.com>
10868
10869         * class.c
10870         (mono_type_get_name_recurse): Added `gboolean include_arity'
10871         argument specifying whether or not we should include the generic
10872         arity in the type name.
10873         (_mono_type_get_name): New static function.
10874         (mono_class_setup_vtable): If we're a generic instance, don't
10875         include the generic arity in the names of explicit method
10876         implementations.        
10877
10878 2004-08-03  Martin Baulig  <martin@ximian.com>
10879
10880         * class.c (mono_type_get_name_recurse): Enclose the generic type
10881         arguments in `<', '>'.
10882
10883 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10884
10885         * gc.c: make GC warning messages use the trace API, they are just
10886         noise to most of the users.
10887
10888 2004-08-03  Martin Baulig  <martin@ximian.com>
10889
10890         * debug-mono-symfile.c (read_string): Correctly read the string.
10891
10892 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
10893
10894         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
10895         
10896         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
10897         icalls.
10898         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
10899
10900 2004-07-30  Martin Baulig  <martin@ximian.com>
10901
10902         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
10903         Reflect latest symbol writer changes.   
10904
10905 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
10906
10907         * object.c: always create an object if null is passed
10908         to Invoke() where a valuetype is expected.
10909
10910 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
10911
10912         * marshal.c (mono_marshal_init): make managed
10913         signatures match native ones better for 64bits.
10914
10915 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10916
10917         * appdomain.c: hack to build correctly the private bin path on windows.
10918         Fixes bug #61991.
10919
10920 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
10921
10922         * assembly.c: Load mscorlib from the correct framework directory
10923           (mono/<version>/mscorlib.dll).
10924         * appdomain.h: Added prototypes for new functions.
10925         * internals.h: Added some prototypes.
10926         * domain.c: When initializing the runtime, get from the executable and
10927           the configuration files the runtime version that the app supports.
10928           Added support methods for reading app.exe.config. Added list of versions
10929           supported by the JIT. Added two new methods: mono_init_from_assembly,
10930           which initializes the runtime and determines the required version from
10931           the provided exe file, and mono_init_version, which initializes
10932           the runtime using the provided version.
10933         * icall.c: Get machine.config from version-specific directory.
10934         * reflection.c: When generating an image, embed the version number
10935           of the current runtime.
10936
10937 2004-07-28  Dick Porter  <dick@ximian.com>
10938
10939         * socket-io.c
10940         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
10941         returned sockaddr size before creating the remote address object.
10942         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
10943         61608.
10944
10945 2004-07-28  Dick Porter  <dick@ximian.com>
10946
10947         * locales.c (string_invariant_compare_char): Fix invariant char
10948         compares between upper and lower cases.  Fixes bug 61458.
10949
10950 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
10951         
10952         * marshal.c: actually cache stelem.ref wrappers.
10953         
10954 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
10955
10956         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
10957         sections and remove the mono_cli_rva_map () function.
10958
10959 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
10960
10961         * debug-mono-symfile.c: fix one more endianess issue, from a patch
10962         by Geoff Norton (<gnorton@customerdna.com>).
10963
10964 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
10965
10966         * class.c: fix class loads for pointer types (typeof(int) !=
10967         typeof(int*)).
10968
10969 2004-07-27  Martin Baulig  <martin@ximian.com>
10970
10971         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
10972         reading the debugging information from an external ".mdb" file.
10973
10974 2004-07-24  Martin Baulig  <martin@ximian.com>
10975
10976         * reflection.c (mono_image_get_type_info): Only write a class
10977         layout entry if we actually have a size or a packing size.
10978
10979 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10980
10981         * reflection.c (type_get_fully_qualified_name): 
10982         insert cast to get type checking of ?: with non-gcc compilers
10983
10984 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
10985
10986         * rand.c: use g_getenv for both lookups of
10987         MONO_EGD_SOCKET
10988
10989 2004-07-17  Martin Baulig  <martin@ximian.com>
10990
10991         * reflection.c (mono_reflection_bind_generic_method_parameters):
10992         Set `gmethod->reflection_info'.
10993
10994 2004-07-17  Martin Baulig  <martin@ximian.com>
10995
10996         * class.c (mono_class_create_from_typedef): Insert the newly
10997         created class into the hash table before computing the interfaces
10998         since we could be called recursively.
10999
11000 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
11001
11002         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
11003         function to implement stelem.ref in managed code
11004         * class-internals.h, debug-helpers.c: a new wrapper type
11005         for the above.
11006
11007 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
11008
11009         * gc.c: allow GC handles to work even when no GC is compiled in.
11010         Fix part of bug #61134 (GetAddrOfPinnedObject).
11011
11012 2004-07-13  Peter Williams  <peter@newton.cx>
11013  
11014         * process.c (complete_path): Make sure we don't attempt to execute
11015         directories.
11016  
11017 2004-07-12  Geoff Norton <gnorton@customerdna.com>
11018
11019         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
11020           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
11021           and will add/subtract the hour if needed
11022
11023 2004-07-12  Martin Baulig  <martin@ximian.com>
11024
11025         * reflection.c (mono_field_get_object): If we have
11026         `field->generic_info', take the attributes from
11027         `field->generic_info->generic_type'.    
11028
11029 2004-07-12  Martin Baulig  <martin@ximian.com>
11030
11031         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
11032         This function must be called before initializing the runtime.
11033         (mono_debug_init_1): New function; call this after initializing
11034         the runtime, but before loading the assembly.  It tells the
11035         debugger to load corlib and the builtin types.
11036
11037         * mono-debug-debugger.c: Did some larger changes in the debugging
11038         code; support recursive class declarations, make sure we actually
11039         add all classes.
11040
11041 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11042
11043         * debug-helpers.c: undo my previous patch and fixed the real issue in
11044         ../mini/exceptions-x86.c
11045
11046 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11047
11048         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
11049         when no HOME env. variable was set and a NullRef was thrown in a .cctor
11050         called from other .cctors.
11051
11052 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
11053
11054         * loader.c: Removed the mono_loader_wine_init hack now that we are
11055         doing a managed version of Windows.Forms.
11056
11057 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
11058
11059         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
11060         threadpool.c, threads.c: remove static data from rootset.
11061
11062 2004-07-09  Dick Porter  <dick@ximian.com>
11063
11064         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
11065         Don't do any more processing if the matched length was 0.  It was
11066         increasing the size of the string before.  Fixes bug 61167.
11067
11068 2004-07-09  Dick Porter  <dick@ximian.com>
11069
11070         * socket-io.h:
11071         * socket-io.c
11072         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
11073         Add support for SO_PEERCRED if its available.
11074
11075 2004-07-09  Peter Bartok <pbartok@novell.com>
11076         * loader.c: winelib.exe.so error message is now only displayed if
11077         MONO_DEBUG is set. To help us avoid questions when people are trying
11078         out the new Managed.Windows.Forms.
11079
11080 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
11081
11082         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
11083         for isinst and castclass wrappers.
11084
11085         * class-internals.h icall.c: Move registration and lookup of JIT icalls
11086         to libmetadata from the JIT, so they could be used by the marshalling
11087         code and the interpreter.
11088
11089         * marshal.c: Register marshalling related JIT icalls here instead of
11090         in mini.c. Use CEE_MONO_ICALL instead of the family of 
11091         CEE_MONO_PROC<x> opcodes to call marshalling functions.
11092
11093         * metadata.h: Remove unneeded marshalling conversions.
11094
11095         * opcodes.c: Update for new opcodes.
11096         
11097 2004-07-08  Martin Baulig  <martin@ximian.com>
11098
11099         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
11100         (mono_debug_get_domain_data): Make this function static.
11101
11102 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11103
11104         * gc.c, object.h: add nice GC handle API for embedders.
11105
11106 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
11107
11108         * reflection.c: more changes for the new api
11109
11110         * object.c: When we reflect on a field w/ a constant value, it
11111         will not have a memory location, so we must access metadata. Also,
11112         allow easier reading of strings so that we can read them from
11113         the constant data.
11114
11115         * class.c (mono_class_layout_fields): no need for literal fields here.
11116
11117         * class-internals.h: api changes for const fields
11118
11119         * icall.c (ves_icall_get_enum_info): use new apis for const fields
11120
11121 2004-07-06  Martin Baulig  <martin@ximian.com>
11122
11123         * mono-debug.h: Increment version number to 44.
11124
11125         * mono-debug.c (mono_debug_add_wrapper): The second argument is
11126         now a gpointer, rewrote this whole method.
11127
11128         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
11129         function.  Add information about the wrapper in a new "misc table".
11130
11131         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
11132         for the new misc table.
11133
11134 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
11135
11136         * metadata-internals.h image.c: Add a cache for helper signatures.
11137
11138         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
11139
11140 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
11141
11142         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
11143         delegates from a delegate. Fixes #61033.
11144         
11145         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
11146         marshalling of stringbuilder arrays. Fixes #59900.
11147
11148 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
11149
11150         * icall.c: Add EnumBuilder:setup_enum_type icall.
11151
11152 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
11153
11154         * icall.c: Added a new icall for the property version of
11155         OffsetOfStringData.
11156
11157 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
11158
11159         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
11160         it has a constant size across platforms.
11161
11162         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
11163         stack trace.
11164
11165 2004-06-29  Martin Baulig  <martin@ximian.com>
11166
11167         * mono-debug.c (mono_debug_add_method): Protect the whole function
11168         in mono_debugger_lock(), not just parts of it.
11169
11170 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
11171
11172         * reflection.c: make sure padding bytes in heaps are zeroed.
11173
11174 2004-06-24  David Waite  <mass@akuma.org>
11175
11176         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
11177         image.c, loader.c, locales.c, marshal.c, metadata.c,
11178         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
11179         string-icalls.c, threads.c: change to C90-style comments from C99 /
11180         C++ -style
11181
11182 2004-06-24  Dick Porter  <dick@ximian.com>
11183
11184         * threads.c
11185         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
11186         return createdNew.  Fixes bug 60412.
11187
11188         * threads-types.h: 
11189         * icall.c: Add createdNew parameter to CreateMutex icall
11190
11191 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11192
11193         * reflection.c, object-internals.h: save default value in params.
11194
11195 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11196
11197         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
11198         no need to build a new path combining that with the application base.
11199         Fixes bug #60442.
11200
11201 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
11202
11203         * reflection.c: fixed minor standard compliance issues.
11204
11205 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
11206
11207         * reflection.c: fixed issue with encoding some custom attributes
11208         (arrays in properties and fields, bug #60411).
11209
11210 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11211
11212         * reflection.c: fix start address when copying the public key token.
11213
11214 2004-06-23  Martin Baulig  <martin@ximian.com>
11215
11216         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
11217         the `exc' object in a static object to put it into the GC's root set.
11218
11219 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
11220
11221         * reflection.c: make mono_reflection_setup_internal_class ()
11222         callable a second time to setup a new parent class.
11223
11224 2004-06-23  Dick Porter  <dick@ximian.com>
11225
11226         * threads.c: Check for WAIT_IO_COMPLETION return values.
11227
11228 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
11229
11230         * appdomain.c: Removed the g_free on the public key token. Now copy 
11231         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
11232         * assembly.c: Added public key token string value when loading 
11233         assemblies. Fix bug #60439.
11234         * icall.c: Added missing informations (like public key) in 
11235         GetReferencedAssemblies. Fix #60519.
11236         * image.h: Changed definition for public key token from const char*
11237         public_tok_value to guchar public_key_token [17];
11238         * reflection.c: Updated for changes to public key token.
11239
11240 2004-06-22  Lluis Sanchez Gual
11241
11242         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
11243         for the field in base classes.
11244
11245 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11246
11247         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
11248         mark headers as not supported, they are installed only for use by the
11249         debugger.
11250
11251 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
11252
11253         * *.c, *.h: avoid namespace pollution in public headers.
11254
11255 2004-06-21  Martin Baulig  <martin@ximian.com>
11256
11257         * exception.c (mono_get_exception_security): It's in
11258         "System.Security", not in "System".
11259
11260         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
11261         the exception classes.
11262
11263 2004-06-21  Martin Baulig  <martin@ximian.com>
11264
11265         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
11266         Protect the exception object from being finalized.
11267
11268 2004-06-21  Martin Baulig  <martin@ximian.com>
11269
11270         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
11271         public function.
11272
11273 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
11274
11275         * reflection.c: Load the assembly in mono_reflection_type_from_name,
11276         if it was not loaded before. Fix parts of #60439.
11277
11278 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
11279
11280         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
11281         code that was broken since Ben's change: wrappers are now
11282         dependent on the method signature only again.
11283
11284 2004-06-21  Martin Baulig  <martin@ximian.com>
11285
11286         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
11287         added interface support.
11288
11289 2004-06-21  Martin Baulig  <martin@ximian.com>
11290
11291         * class.c (mono_vtable_get_static_field_data): New public method.
11292
11293 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
11294
11295         * filewatcher.c : Windows build fix to be compliant with API changes.
11296
11297 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11298
11299         * class.h, class.c: more accessors.
11300         * metadata.h, metadata.c: prepare for hiding MonoType and
11301         MonoMethodSignature: people should use the accessors from now on
11302         outside of the tree.
11303
11304 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
11305
11306         * *.c, *.h: more API cleanups.
11307
11308 2004-06-18  Jackson Harper  <jackson@ximian.com>
11309
11310         * assembly.c: Trace loading assemblies.
11311         * loader.c: Trace loading native libraries.
11312         * mono-config.c: Trace loading config files.
11313         
11314 2004-06-18  Dick Porter  <dick@ximian.com>
11315
11316         * locales.c: Tell ICU the lengths of strings, it can cope with
11317         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
11318
11319 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
11320
11321         * image.c: swapped name/filename;
11322
11323 2004-06-18  Martin Baulig  <martin@ximian.com>
11324
11325         * mono-debug-debugger.c (write_class): Write the parent class at
11326         the end of the header.
11327
11328 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
11329
11330         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
11331
11332 2004-06-17  Raja R Harinath  <rharinath@novell.com>
11333
11334         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
11335         (bundle_obj): New conditional define.
11336         (BUILT_SOURCES): Remove.
11337         ($(bundle_srcs)): Make parallel-make safe.
11338         (libmonoruntime_la_LIBADD): Make unconditional.
11339         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
11340         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
11341
11342 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
11343
11344         * culture-info-tables.h: It was inconsistent with the latest
11345           supp info files.
11346
11347 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
11348
11349         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
11350         be loaded.
11351
11352         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
11353         with gcc 2.95.
11354
11355 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
11356
11357         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
11358         cleaned up public header threads.h.
11359
11360 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
11361
11362         * Makefile.am, *.c, *.h: more API cleanups.
11363
11364 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
11365
11366         * Makefile.am: removed monosn from compilation.
11367         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
11368         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
11369         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
11370         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
11371         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
11372         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
11373
11374 2004-06-15  Jackson Harper  <jackson@ximian.com>
11375
11376         * assembly.c: Make locales lower case when searching the GAC for
11377         assemblies. gacutil will always make locales lowercase when
11378         installing so this effectively makes them case insensitive.
11379         
11380 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
11381
11382         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
11383         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
11384           parameter which allows to choose whether the wait can be interrupted or 
11385           not. Also added the method mono_monitor_enter(), which locks the monitor
11386           using an infinite wait and without allowing interruption.
11387           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
11388           interrupted.
11389         * object.h: Added new fields in MonoThread. suspend_event holds the event
11390           used to susped/resume the thread. synch_lock is the lock object to use for
11391           modifying the thread state.
11392         * threads.c: Use the new synch_lock object for locking, instead of "this",
11393           which can generate deadlocks.
11394           Moved thread state change in Thread.Sleep and Thread.Join from managed
11395           to unmanaged code. This avoids a deadlock when the thread was suspended
11396           just after acquiring the thread lock.
11397           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
11398           Implemented Thread.Suspend using an event instead of ThreadSuspend,
11399           which is not fully implemented in the io-layer.
11400         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
11401
11402 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
11403
11404         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
11405         threads-types.h: more API cleanups.
11406
11407 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
11408
11409         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
11410         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
11411         threadpool.c, threads.c: first pass at the exported API cleanup.
11412
11413 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
11414
11415         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
11416
11417 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11418
11419         * icall.c: added internalGetHome.
11420
11421 2004-06-14  Dick Porter  <dick@ximian.com>
11422
11423         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
11424         possible to return successfully when '.' or '..' were the only
11425         entries in a directory, but were skipped.  The MonoIOStat was not
11426         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
11427         Fixes bug 59574.
11428
11429 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
11430
11431         * reflection.c: make binaries run on .Net 1.1 by default.
11432
11433 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
11434
11435         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
11436
11437 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
11438
11439         * marshal.c: keep track of struct size with explicit layout
11440         (bug #59979).
11441
11442 2004-06-12  Martin Baulig  <martin@ximian.com>
11443
11444         * mono-debug-debugger.c: Comment out a debugging g_message().
11445
11446 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
11447
11448         * reflection.c, reflection.h: do not free custom attrs that are cached.
11449         * icall.c: use braces to make code clearer.
11450
11451 2004-06-11  Martin Baulig  <martin@ximian.com>
11452
11453         * class.h (MonoInflatedField): New type.
11454         (MonoClassField): Replaced `MonoType *generic_type' with
11455         `MonoInflatedField *generic_info'.
11456
11457         * icall.c
11458         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
11459
11460 2004-06-11  Martin Baulig  <martin@ximian.com>
11461
11462         * reflection.c (mono_image_create_method_token): Correctly encode
11463         varargs methods.
11464
11465 2004-06-11  Martin Baulig  <martin@ximian.com>
11466
11467         * metadata.c (mono_metadata_parse_method_signature): When parsing
11468         a MethodDef which has VarArgs, also set sentinelpos if we don't
11469         have any parameters.
11470
11471 2004-06-11  Martin Baulig  <martin@ximian.com>
11472
11473         * verify.c (mono_method_verify): In CEE_CALL, use
11474         mono_method_get_signature() to get the method's signature, unless
11475         we're a PInvoke method.
11476
11477 2004-06-10  Jackson Harper  <jackson@ximian.com>
11478
11479         * assembly.c: Use <path>/lib/mono/gac for the extra paths
11480         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
11481         logical name as the supplied path is just a prefix to the gac not
11482         the direct path to it.
11483         
11484 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
11485
11486         * reflection.c: make the token for a created method match
11487         the token of the MethodBuilder it was created from
11488         (IKVM requires this behaviour now).
11489
11490 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
11491
11492         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
11493         reflection.c, socket-io.c: leak fixes.
11494
11495 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
11496
11497         * icall.c: handle sentinel pos in vararg methods in position different
11498         from 0.
11499
11500 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11501
11502         * culture-info-tables.h: freshly generated.
11503
11504 2004-06-09  Martin Baulig  <martin@ximian.com>
11505
11506         * loader.c (mono_get_method_constrained): Call `mono_class_init
11507         (constrained_class)'.   
11508
11509 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
11510
11511         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
11512         any methods. Fixes #59629.
11513
11514 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11515
11516         * culture-info-tables.h: reflecting locale-builder updates.
11517
11518 2004-06-08  Dick Porter  <dick@ximian.com>
11519
11520         * object.h:
11521         * locales.c: Fixed compile warnings, including a real bug in
11522         CompareInfo_internal_compare.
11523         
11524 2004-06-08  Dick Porter  <dick@ximian.com>
11525
11526         * locales.c
11527         (ves_icall_System_Globalization_CompareInfo_internal_index):
11528         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11529         Double-check the resuls of usearches, because ICU currently
11530         ignores most of the collator settings here.  Fixes bug 59720.
11531         
11532 2004-06-08  Dick Porter  <dick@ximian.com>
11533
11534         * locales.c
11535         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
11536         Fix memory leak and segfault-causing typo.  No idea how this one
11537         lasted so long without being noticed.
11538
11539 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
11540
11541         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
11542         any methods. Fixes #59629.
11543
11544 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11545
11546         * assembly.c:
11547         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
11548         own the critical section before). Removed dead code (that's done
11549         in the preload hook).
11550
11551         (mono_assembly_load_with_partial_name): call the preload hook.
11552
11553 2004-06-08  Martin Baulig  <martin@ximian.com>
11554
11555         * metadata.c (mono_metadata_signature_alloc): Default
11556         `sentinelpos' to -1.
11557
11558         * reflection.c (mono_image_get_array_token): Likewise.
11559
11560 2004-06-08  Martin Baulig  <martin@ximian.com>
11561
11562         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
11563
11564         * metadata.c (mono_metadata_parse_method_signature): When parsing
11565         a MethodDef which has VarArgs, set sentinelpos.
11566
11567         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
11568         `gint16' since we're using -1 for non-varargs methods.
11569
11570         * reflection.c
11571         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
11572         (method_encode_signature): Added varargs support.
11573         (method_builder_encode_signature): Likewise.
11574         (mono_image_get_varargs_method_token): New static method.
11575         (mono_image_create_method_token): New public method; this is
11576         called via an icall instead of mono_image_create_token() when
11577         calling a varargs method.       
11578
11579 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
11580
11581         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
11582
11583 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11584
11585         * culture-info-tables.h : Reflecting the latest locale-builder that
11586           fixed empty array representation ({} to {0}).
11587
11588 2004-06-07  Jackson Harper  <jackson@ximian.com>
11589
11590         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
11591         looking up extra gac paths. This allows MONO_GAC_PATH to act
11592         exactly like a prefix.
11593         
11594 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11595
11596         * reflection.c (mono_reflection_type_from_name): Make a copy of the
11597         type name before modifying it. Fixes #59405.
11598
11599 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
11600
11601         * culture-info.h: added fields for "all datetime patterns".
11602         * locales.c: (  ves_icall_System_Globalization_CultureInfo
11603           _construct_datetime_format ()): fill xxx_patterns fields.
11604         * object.h: added fields for "all datetime patterns" to
11605           MonoDateTimeFormatInfo.
11606         * culture-info-tables.h: reflecting locale-builder updates.
11607
11608 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
11609
11610         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
11611         the event has no add and remove methods. Fixes #59629.
11612
11613 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
11614
11615         * object.c: Fixed possible integer overflow when allocating large
11616         strings.
11617
11618 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11619
11620         * culture-info-tables.h: reflecting locale-builder updates.
11621
11622 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
11623
11624         * culture-info-tables.h: reflecting locale-builder updates.
11625
11626 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
11627
11628         * culture-info-tables.h: reflecting locale-builder updates.
11629
11630 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
11631
11632         * threads.c: Made Thread.Sleep abortable.
11633
11634 2004-06-02  Martin Baulig  <martin@ximian.com>
11635
11636         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
11637
11638         * debug-mono-symfile.h: Bumped symbol file version number to 37.
11639
11640 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
11641
11642         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
11643
11644 2004-05-30  Jackson Harper  <jackson@ximian.com>
11645
11646         * reflection.c: Do not hardcode assembly versions or public key
11647         tokens anymore. All of this except the corlib section was dead
11648         code anyways.
11649         
11650 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
11651
11652         * object.c (mono_runtime_invoke_array): Automatically create boxed
11653         objects for byref valuetypes if needed. Fixes #59300.
11654         
11655         * object.c (mono_method_return_message_restore): Handle 
11656         MONO_TYPE_OBJECT as well.
11657
11658 2004-05-28  Jackson Harper  <jackson@ximian.com>
11659
11660         * reflection.c: The modified type encoding was causing build
11661         problems. Reverted for now.
11662         
11663 2004-05-28  Jackson Harper  <jackson@ximian.com>
11664
11665         * reflection.c/h: Take an assembly ref so that we dont create
11666         fully qualified names when encoding types in the same assembly as
11667         the custom attribute being emitted.
11668         * appdomain.c: Increment version number.
11669         
11670 2004-05-26  Duncan Mak  <duncan@ximian.com>
11671
11672         * icall.c
11673         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
11674         Set the full version number (major, minor, build, revision).
11675
11676 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
11677
11678         * marshal.c (emit_struct_conv): increment src/dst after blit
11679         (mono_marshal_get_managed_wrapper,
11680         mono_marshal_get_native_wrapper): make sure we have marshalling
11681         info before marshalling params (info computation affects
11682         blittable)
11683
11684         * class.c (class_compute_field_layout): correctly deal with
11685         blittable
11686         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
11687         value types (as per what windows dows by default)
11688         (mono_class_setup_mono_type): System.ValueType is blittable
11689         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
11690         blittable
11691
11692         * marshal.c (mono_marshal_load_type_info): flag types  as
11693         non-blittable if the native layout doesn't match the managed
11694         layout
11695
11696 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11697
11698         * appdomain.c: don't add stuff in the private search path that is
11699         above the application base. If application base is not set, there's
11700         no private search path.
11701
11702 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
11703
11704         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
11705         byref struct arguments in native->managed marshalling.
11706
11707 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
11708
11709         * marshal.c (mono_marshal_get_runtime_invoke): correctly
11710         cache methods using signature (special case for methods
11711         that are value type or string class)
11712         
11713         * image.c (mono_image_close): clean up allocated GSList's
11714         in runtime_invoke_cache.
11715
11716 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11717
11718         * mono-config.c: set the correct path for mono_cfg_dir on windows when
11719         there's no MONO_CFG_DIR environment variable defined.
11720
11721 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11722
11723         * threads.c: windows version must be >= 0x0500 to include OpenThread.
11724
11725 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
11726
11727         * threadpool.c: Really wait for 500ms after the async call, even if the wait
11728           is interrumped.
11729         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
11730           before waiting for it, and call CloseHandle after the wait to unref it.
11731           This will make sure that handles are not disposed too early.
11732
11733 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11734
11735         * appdomain.c:
11736         * appdomain.h:
11737         * icall.c: removed
11738         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
11739         needed now.
11740
11741         * object.c: se the application_base only for the domain that runs
11742         Main. Fixes bug #59216,
11743
11744 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11745
11746         * appdomain.c:
11747         * object.c: only the domain in which Main is run have
11748         SetupInformation.ConfigurationFile set, so moved a few lines from
11749         appdomain.c to object.c.
11750
11751 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11752
11753         * appdomain.c: we tried to load [name].(dll|exe), but according
11754         to bug #57710, we must also try [culture]/[name].(dll|exe) and
11755         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
11756         There's a test case attached to bug #58922.
11757
11758 2004-05-27  Dick Porter  <dick@ximian.com>
11759
11760         * icall.c:
11761         * file-io.c: Implemented icalls for locking and unlocking regions
11762         in a file.
11763         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
11764         FALSE on error (fixes both compiler warning and real bug.)
11765
11766 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
11767
11768         * culture-info-tables.h: reflecting locale-builder updates.
11769
11770           (Added missing ChangeLog entry for 05/26)
11771
11772 2004-05-27  Jackson Harper  <jackson@ximian.com>
11773
11774         * locales.c: Fix some cut and paste errors.
11775         
11776 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11777
11778         * mono-config.c: set the correct path for config. directory on windows.
11779
11780 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11781
11782         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
11783           on win32.
11784
11785 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11786
11787         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
11788         from pinvoke functions.
11789         
11790         * marshal.c (mono_ftnptr_to_delegate): Implement this.
11791
11792 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
11793
11794         * culture-info-tables.h: reflecting locale-builder updates.
11795
11796 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
11797
11798         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
11799         #59086.
11800
11801 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
11802
11803         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
11804         * icall.c: Modified icalls for RNG.
11805         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
11806         Windows (CryptoAPI).
11807
11808 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11809
11810         * locales.c: Fix build.
11811
11812 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
11813
11814         * culture-info-tables.h: reflecting locale-builder updates.
11815
11816 2004-05-25  Jackson Harper  <jackson@ximian.com>
11817
11818         * locales.c: When creating the current culture use the $LANGs
11819         specific culture. So DateTimeFormat and NumberFormat entries are created.
11820         
11821 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
11822
11823         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
11824         a char array as parameter.
11825
11826 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
11827
11828         * image.c: In mono_image_open(), always use an absolute path name to
11829           look for already loaded images.
11830
11831 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
11832
11833         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
11834         missing in the windows build (like older cygwin include files).
11835
11836 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
11837
11838         * icall.c: Fixed check for possible integer overflow in Buffer_
11839         BlockCopy icall. Replaced comments style // by /* */.
11840
11841 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
11842
11843         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
11844         
11845         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
11846         check after MONO_VTADDR. Fixes pinvoke2.exe.
11847
11848         * marshal.h marshal.c metadata.h: Add beginnings of support for
11849         ftnptr -> delegate marshalling.
11850
11851 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
11852
11853         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
11854         * threads.c: Fix warnings.
11855
11856 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
11857
11858         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
11859         * icall.c: Registered icalls for Suspend and Resume.
11860         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
11861           Thread.Abort.
11862         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
11863         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
11864         * process.c: Use WaitForSingleObjectEx.
11865         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
11866           checkpoints.
11867         * threads.c, threads.h: Make use of new Ex wait methods. Improved
11868           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
11869           for Suspend and Resume. Added new mono_thread_stop, used for stoping
11870           background threads. Added basic support for Abort in Windows.
11871           Start new threads using a managed delegate invoke wrapper. This wrapper
11872           has an interruption checkpoint that is needed since an interruption
11873           can be requested before the thread leaves the unmanaged code that starts 
11874           the thread.
11875         * marshal.c: Added interruption checkpoint after every native call, and
11876           also before managed calls for wrappers called from unmanaged code to
11877           go into managed code.
11878         * object.h: Added new field in MonoThread to keep track of interruption
11879           requests.
11880
11881 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
11882
11883         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
11884         calls.
11885
11886 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11887
11888         * appdomain.c:
11889         * assembly.c:
11890         * gc.c:
11891         * locales.c:
11892         * mono-config.c:
11893         * rand.c: getenv -> g_getenv (windows!)
11894
11895         * process.c: complete_path is also used on non-windows platforms.
11896
11897 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11898
11899         * icall.c: new signature for Process_Start.
11900
11901         * process.[ch]: new signature for Process_Start. If we're on windows
11902         and UseShellExecute is false, we have to search for the program by
11903         ourselves if we don't get a full path.
11904
11905 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
11906
11907         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
11908         marshalling and call CleanUpNativeData if needed. Fixes #58646.
11909
11910 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11911
11912         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
11913         Fixes bug #58373.
11914
11915 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11916
11917         * process.c: use double quotes to quote program name and arguments on
11918         windows. Fixes bug #58575.
11919
11920 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11921
11922         * file-io.c: don't return "." and ".." when using windows Find*File.
11923
11924 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
11925
11926         * marshal.c: Don't pass wrappers to message init because method 
11927         addressed used to lookup metadata. part of remoting[2|3] fix.
11928
11929 2004-05-15  Jackson Harper  <jackson@ximian.com>
11930
11931         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
11932         path is essentially the same as MONO_PATH except that it points to
11933         GACs instead of lib directories.
11934         * loader.h: The user gac is gone so we dont need function to
11935         enable/disable it.
11936         * mono-config.c: user gac option is now gone.
11937         
11938 2004-05-15  Jackson Harper  <jackson@ximian.com>
11939
11940         * culture-info.h: Make defines more consistent, add calendar data
11941         to the culture info table.
11942         * culture-info-tables.h: Add basic calendar data. Basically
11943         everyone gets default gregorian until all the data is
11944         updated.
11945         * locales.c: Use the new consistent defines. Set calendar data for
11946         culture info objects.
11947         * object.h: add a field for calendar data to CultureInfo
11948         
11949 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
11950
11951         * image.c: image->runtime_invoke_cache is keyed on signatures now.
11952         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
11953         a signature.
11954         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
11955         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
11956         an extra param that is the pointer of the method to invoke. The IL for
11957         the invoke method is no longer specific to the method, but to the
11958         signature of the method. Thus, we can share the same code for multiple
11959         methods. This reduces the number of methods that have to be compiled.
11960
11961 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
11962
11963         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
11964
11965         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11966
11967         * icall.c: Optimize Buffer.BlockCopy.
11968
11969 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11970
11971         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
11972         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
11973         quote). Changed them to "MMMM yyyy".
11974
11975 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
11976
11977         * rand.c
11978         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
11979
11980 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
11981
11982         * reflection.h: Updated after changes to managed structures.
11983
11984         * appdomain.c: Bump corlib version.
11985
11986 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11987
11988         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
11989         windows.
11990
11991 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11992
11993         * Makefile.am: link to ../os/libmonoos.la on windows.
11994
11995         * assembly.c:
11996                 -If MONO_DEBUG, warn about non-existing directories in
11997                 MONO_PATH.
11998                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
11999                 compile time variable.
12000                 -Removed init_default_path and call mono_set_rootdir from
12001                 libmonoos.a instead (windows only).
12002
12003         * assembly.h: declare mono_assembly_getrootdir().
12004
12005         * domain.c:
12006         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
12007
12008         * loader.c: s/getenv/g_getenv/
12009
12010 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
12011
12012         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
12013
12014         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
12015
12016         * metadata.h: Add new marshalling conversions.
12017
12018         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
12019         function.
12020
12021         * reflection.c (mono_reflection_get_type): Lookup the type in all
12022         modules of a multi-module assembly. Fixes #58291.
12023
12024 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
12025
12026         * threads.c: Before aborting a background, set the StopRequested
12027         state.  This avoids throwing the Abort exception.
12028         In mono_thread_manage, don't continue with the shutdown until all
12029         aborted threads have actually stopped.
12030
12031 2004-05-10  Jackson Harper  <jackson@ximian.com>
12032
12033         * locales.c: Remove the modifier from culture names.
12034         
12035 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12036
12037         * Makefile.am: monosn is not installed any more. It has been deprecated
12038         in favor of sn.
12039
12040 2004-05-07  Jackson Harper  <jackson@ximian.com>
12041
12042         * locales.c
12043         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
12044         Fix array construction, add bailout if the length is 0.
12045
12046 2004-05-07  Dick Porter  <dick@ximian.com>
12047
12048         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
12049         machine doesn't have a DNS entry.  Patch by Urs Muff
12050         (umuff@quark.com), fixes bug 57928.
12051
12052 2004-05-06  Jackson Harper  <jackson@ximian.com>
12053
12054         * reflection.c: Handle null PublicTokens properly. alloc mem for
12055         assembly names culture so we dont crash when freeing it.
12056         
12057 2004-05-06  Jackson Harper  <jackson@ximian.com>
12058
12059         * assembly.c: Check the usergac when loading with partial names.
12060         
12061 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12062
12063         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
12064         does nothing for now (not required for Linux/Windows) but the class
12065         library can call it (and a newer or modified runtime could need it).
12066         * icall.c: Registred icall.
12067
12068 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12069
12070         * loader.c: prints a message on module loading error we set MONO_DEBUG
12071         environment variable.
12072
12073 2004-05-05  Jackson Harper  <jackson@ximian.com>
12074
12075         * appdomain.c: Handle PublicKeyToken=null properly.
12076         
12077 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
12078
12079         * environment.c|h: Added icall ves_icall_System_Environment_
12080         GetOSVersionString to get the current OS version as a string.
12081         * icall.c: Registred icall.
12082
12083 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
12084
12085         * object.c: in mono_object_get_virtual_method(), take into account that
12086         non-virtual methods don't have a slot in the vtable. Check needed when
12087         the object is a proxy.
12088
12089 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
12090
12091         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
12092         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
12093
12094         * object.c (mono_class_compute_gc_descriptor): Fix warning.
12095
12096         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
12097         passed when a valuetype is expected.
12098
12099         * object.c (mono_unhandled_exception): Only set the exit code if the
12100         exception happens in the main thread. Fixes thread5.exe.
12101
12102         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
12103         invalid names. Fixes #58047.
12104
12105 2004-05-03  Jackson Harper  <jackson@ximian.com>
12106
12107         * assembly.c: This line was committed accidently and is unneeded.
12108         
12109 2004-05-03  Jackson Harper  <jackson@ximian.com>
12110
12111         * icall.c: Add new icall for Assembly::LoadWithPartialName
12112         * assembly.c/.h: new function that probes the GAC to load partial
12113         assembly names by Paolo Molaro.
12114         
12115 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12116
12117         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
12118         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
12119         (type_get_fully_qualified_name): Added PublicKeyToken when building a
12120         full type name.
12121
12122 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12123
12124         * appdomain.c: fixed check for 'neutral' culture and removed warning.
12125         * reflection.c: fix bug when parsing a full type name and Version is not
12126         the last thing in the string.
12127
12128 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
12129
12130         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
12131         crashes when it is freed.
12132
12133 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12134
12135         * assembly.c: print the compat warning to stderr.
12136
12137 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
12138
12139         * assembly.c (mono_assembly_load_references): Add a compatibility
12140         hack to run old applications that might be still referencing the
12141         3300-based assemblies, only do this for System.xxx.
12142
12143 2004-05-01  Jackson Harper  <jackson@ximian.com>
12144
12145         * appdomain.c: If the culture is neutral we set it to "".
12146         
12147 2004-04-29  Jackson Harper  <jackson@ximian.com>
12148
12149         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
12150
12151 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
12152  
12153         * string-icalls.c: added low overhead function for copying chars
12154         * icall.c: added needed icall for the above function
12155  
12156 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12157
12158         * icall.c: fix return value of get_global_assembly_cache.  Implemented
12159         Environment.GetLogicalDrives.
12160
12161 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
12162
12163         * rand.c: try and talk to egd or prngd
12164         for random bytes if opening devices fail.
12165
12166 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
12167
12168         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
12169         alignment for the type using the native alignment of its members 
12170         instead of using klass->min_align.
12171
12172         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
12173
12174 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12175
12176         * file-io.c:
12177         * socket-io.c: added check for sys/aio.h.
12178
12179 2004-04-28  Dick Porter  <dick@ximian.com>
12180
12181         * threads.c: Don't abort a thread thats already aborting, when
12182         terminating everything.
12183
12184 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12185
12186         * icall.c: added 2 new async calls for Socket.
12187
12188         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
12189         IO on *nix systems.
12190
12191         * threadpool.c: removed unused variable.
12192
12193 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
12194
12195         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
12196
12197 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
12198
12199         * locales.c: put back string_invariant_tolower () and
12200         string_invariant_toupper ().
12201
12202 2004-04-26 David Waite <mass@akuma.org>
12203
12204         * file-io.h:
12205         * socket-io.h:
12206         * threads.h:
12207         * unicode.h: remove comma from end of enumeration declarations
12208
12209 2004-04-26 David Waite <mass@akuma.org>
12210
12211         * debug-mono-symfile.h:
12212         * decimal.c:
12213         * mono_debug.h:
12214         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
12215
12216
12217 2004-04-26  Jackson Harper  <jackson@ximian.com>
12218
12219         * appdomain.c: Increment version number.
12220         
12221 2004-04-26  Jackson Harper  <jackson@ximian.com>
12222
12223         * appdomain.c: Set assembly references public token value when
12224         PublicKeyToken is specified, not the hash_value. Free public token
12225         values when free assembly name data. Previously the public key
12226         token was hex decoded, however we are using hex encoded public key
12227         tokens, so this is not neccasary.
12228         * assembly.c: Lookup assemblies in the gac if their public token
12229         value is set. Add function to allow enabling user gac
12230         lookups. Specify whether or not the assembly was loaded from the
12231         GAC. Compare full assembly names when checking the cache for
12232         assemblies (Temporarily disabled see comment in code). Remove
12233         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
12234         specifies trace-loader they get extra info to stdout on the
12235         loading of assemblies.
12236         * image.h: Add a field for an assembly references public token
12237         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
12238         whether an assembly has been loaded from the GAC.
12239         * image.c: Remove a corlib -> mscorlib name mapping.
12240         * loader.h: Add function to enable/disable the user gac.
12241         * mono-config.c: Check if the usergac is enabled in the config
12242         file.
12243         * icall.c: New icall to determine whether or not an assembly has
12244         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
12245         * tabldefs.h: Add constant for assemblyref flag that specifies a
12246         full public key is used instead of a public token.
12247         * reflection.c: Remove mscorlib -> corlib mappings. Set
12248         PublicTokenValue instead of hash value. This value is a hex
12249         string so it does not need to be expanded.
12250
12251 2004-04-26  Martin Baulig  <martin@ximian.com>
12252
12253         * mono-debug-debugger.c (mono_debugger_initialize): Set
12254         `mono_debugger_initialized' before calling mono_debug_lock().
12255
12256 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
12257
12258         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
12259           InternalToUpper/InternalToLower.
12260         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
12261           removed invariant culture shortcut.  This is now done in managed code.
12262         * locales.c: (string_invariant_toupper/tolower) removed.
12263
12264 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12265
12266         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
12267         Added Poll internal call.
12268
12269         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
12270         call for Poll. Select was too heavy for polling a single socket.
12271
12272         * threadpool.[ch]: added mono_threadpool_cleanup.
12273         * threads.c: use it. Don't use Thread_Abort on windows.
12274
12275 2004-04-23  Martin Baulig  <martin@ximian.com>
12276
12277         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
12278
12279 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
12280
12281         * icall.c: Registred new icalls for key pair protection and added an
12282         icall for Environment.GetFolderPath on Windows.
12283         * security.c|h: Added new icalls for key pair protection.
12284
12285 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12286
12287         * socket-io.c: don't display the non-supported family warning for known
12288         families. Now this is not displayed on windows when checking support
12289         for IPv4/IPv6.
12290
12291 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12292
12293         * class.c: don't display the layout warning for static fields.
12294
12295 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
12296
12297         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
12298         * locales.c, locales.h: Added new icalls for culture-specific
12299         Char.ToLower and Char.ToUpper.
12300
12301 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12302
12303         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
12304         by David Waite.
12305
12306 2004-04-20  Martin Baulig  <martin@ximian.com>
12307
12308         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
12309         of the type name before passing it to mono_reflection_type_from_name().
12310
12311 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
12312
12313         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
12314         encodings here. Fixes #56965.
12315
12316 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
12317
12318         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12319         fix test on strstr result not that I can see anything that
12320         relies on the result.
12321
12322 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
12323
12324         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
12325         Fixes #57081.
12326
12327         * marshal.c (mono_marshal_get_string_encoding): New helper function.
12328
12329         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
12330         function to determine which marshalling to use for strings. Fixes
12331         #56965.
12332
12333         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
12334
12335         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
12336
12337 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
12338
12339         * icall.c: #include mono-config.h
12340
12341 2004-04-15  Jackson Harper  <jackson@ximian.com>
12342
12343         * culture-info-tables.h: Fix date formats for en-US culture.
12344         
12345 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
12346
12347         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
12348         ThreadPool.SetMinThreads.
12349         * threadpool.c: Implemented ThreadPool.GetMinThreads and
12350         ThreadPool.SetMinThreads.
12351
12352 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
12353
12354         * mono-config.c: also load the .config file in the directory
12355         where the assembly was found.
12356
12357 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
12358
12359         * assembly.c: load per-assembly config files.
12360         * icall.c: decrapified code to get the config dir and moved to
12361         mono-config.c.
12362         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
12363         per-assembly config files. When doing a dll map lookup give precedence
12364         to the per-assembly data.
12365
12366 2004-04-14  Martin Baulig  <martin@ximian.com>
12367
12368         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
12369         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
12370         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
12371
12372         * mono-debugger-debugger.c: While the debugger is locked, remember
12373         whether the symbol tables have changes and send one single
12374         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
12375
12376 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
12377
12378         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
12379
12380         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
12381         function.
12382
12383         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
12384         account when marshalling string arrays. Fixes #56965.
12385
12386 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
12387
12388         * icall.c: Add new icalls mapping for security.
12389         * security.c|h: Add internal calls for WindowsIdentity,
12390         WindowsImpersonationContext and WindowsPrincipal.
12391
12392 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
12393
12394         * class.c: Added comment to ensure the System.MonoDummy class
12395         is removed when no longer necessary
12396
12397 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
12398
12399         * appdomain.c: Pass arguments to the bootstraping exceptions to
12400         minimize JITed methods at boot
12401
12402         * metadata.c (mono_exception_from_name_two_strings): Allow for the
12403         second string to be null.
12404
12405         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
12406         Change the protocol to minimize the JIT methods at startup.  Now
12407         it Returns the internal codepage, if the value of "int_code_page"
12408         is 1 at entry, and we can not compute a suitable code page
12409         number, returns the code page as a string.
12410
12411 2004-04-13  Jackson Harper  <jackson@ximian.com>
12412
12413         * culture-info-tables.h: Fix number of decimal digits for all
12414         english locales.
12415
12416 2004-04-13  Jackson Harper  <jackson@ximian.com>
12417
12418         * icall.c: Clairfy out of sync error message. It is not always
12419         your corlib that is out of sync.
12420
12421 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
12422
12423         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
12424         properties when only the set accessor is overriden. Fixes #55874.
12425
12426 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
12427
12428         * assembly.c (mono_assembly_load_references): Make this thread safe.
12429         Fixes #56327.
12430
12431 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
12432
12433         * monosn.c: Add missing initialization calls.
12434
12435 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
12436
12437         * locales.c:
12438         ves_icall_System_Globalization_CultureInfo_construct_number_format
12439         Fix g_assert so it compiles on fussier compilers re int/ptr
12440         mismatch
12441
12442 2004-04-08  Dick Porter  <dick@ximian.com>
12443
12444         * socket-io.h:
12445         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
12446         53992.  Also rearrange the code so that the internal calls return
12447         an error value and exceptions are thrown from managed code.
12448
12449         * icall.c: Add type info to the socket icalls.
12450
12451 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12452
12453         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
12454         owes me a beer.
12455
12456 2004-04-07  Martin Baulig  <martin@ximian.com>
12457
12458         * class.c (mono_class_from_generic_parameter): Don't default
12459         `klass->parent' to `mono_defaults.object_type'.
12460
12461 2004-04-07  Martin Baulig  <martin@ximian.com>
12462
12463         * reflection.c (mono_reflection_initialize_generic_parameter): Set
12464         `param->pklass->reflection_info'.       
12465
12466 2004-04-07  Jackson Harper  <jackson@ximian.com>
12467
12468         * culture-info-tables.h: Fix date separator symbol.
12469         
12470 2004-04-07  Martin Baulig  <martin@ximian.com>
12471
12472         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
12473         from System.Type to System.MonoType.
12474
12475 2004-04-07  Martin Baulig  <martin@ximian.com>
12476
12477         * reflection.h
12478         (MonoReflectionGenericParam): Added `has_reference_type' and
12479         `has_value_type' fields.
12480
12481         * reflection.c (mono_image_get_generic_param_info): Encode the
12482         correct flags if we have the `class' or `struct' constraint.
12483
12484 2004-04-07  Martin Baulig  <martin@ximian.com>
12485
12486         * reflection.h
12487         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
12488
12489 2004-04-07  Jackson Harper  <jackson@ximian.com>
12490
12491         * appdomain.c: Revert extra patches, just wanted to bump the
12492         version number.
12493         
12494 2004-04-07  Jackson Harper  <jackson@ximian.com>
12495
12496         * Makefile.am: Add culture-info private headers.
12497         * icall.c: Add new icalls for contructing locales.
12498         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
12499         * locales.h: Declare new culture info construction methods.
12500         * object.h: Add new fields used to avoid the CultureMap to
12501         MonoCultureInfo.
12502         * culture-info.h: Definition of structs used in the culture info
12503         tables.
12504         * culture-info-tables.h: Autogenerated tables that contain culture
12505         info data. This file was generated with the locale-builder tool.
12506         * appdomain.c: Incement corlib version number.
12507         
12508 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
12509
12510         * appdomain.c: (mono_runtime_init) move mono_thread_init
12511         to before mono_object_new calls so critical sections
12512         are initialized before use.
12513
12514 2004-04-07  Martin Baulig  <martin@ximian.com>
12515
12516         * icall.c
12517         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
12518         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
12519         (ves_icall_MonoGenericParam_initialize): Removed.
12520         (monogenericparam_icalls): Removed.
12521         (generictypeparambuilder_icalls): Added new table for
12522         System.Reflection.Emit.GenericTypeParameterBuilder.
12523
12524         * reflection.c
12525         (mono_reflection_define_generic_parameter): Removed.
12526         (mono_reflection_initialize_generic_parameter): This is now called
12527         from GenericTypeParameterBuilder's .ctor.
12528
12529 2004-04-06  Martin Baulig  <martin@ximian.com>
12530
12531         * class.c (mono_class_init): Don't inflate nested classes in a
12532         generic instance.
12533         (mono_type_get_name_recurse): Include the generic arguments for
12534         generic instances and generic type declarations.
12535         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
12536         (_mono_class_get_instantiation_name): Removed.
12537         (mono_class_create_generic): Always use `gklass->name' as our name.
12538
12539         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
12540
12541         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
12542         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
12543         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
12544         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
12545         closed generic methods here.
12546
12547         * reflection.c
12548         (mono_reflection_generic_inst_get_nested_types): Removed.
12549         (inflate_mono_method): Copy the generic parameters from the
12550         MonoMethodHeader into out MonoGenericMethod.
12551
12552 2004-04-06  Martin Baulig  <martin@ximian.com>
12553
12554         * row-indexes.h
12555         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
12556
12557         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
12558
12559         * reflection.c (build_compressed_metadata): If we have any entries
12560         in the GenericParam, MethodSpec or GenericParamConstraint tables,
12561         set the header version to 1.1.
12562
12563 2004-04-06  Martin Baulig  <martin@ximian.com>
12564
12565         * class.c (mono_class_init): If we're a generic instance,
12566         initialize our nested classes, too.
12567         (_mono_class_get_instantiation_name): Deal with the new `!%d'
12568         suffix. 
12569
12570 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12571
12572         * process.c: quote the argument passed to the shell on windows.
12573
12574 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
12575
12576         * threads.c (mono_alloc_special_static_data): Allow this to be
12577         called during startup.
12578
12579 2004-04-02  Martin Baulig  <martin@ximian.com>
12580
12581         * icall.c
12582         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
12583
12584 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
12585
12586         * icall.c: Fix build.
12587
12588 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
12589
12590         * Makefile.am: Added security.c|h.
12591         * icall.c: Added icall for get_UserName;
12592         * security.c: New file for security related icalls. Added function
12593         get_UserName for System.Environment (fix #56144).
12594         * security.h: New. Header file for security.c
12595
12596 2004-04-02  Dick Porter  <dick@ximian.com>
12597
12598         * icall.c: Deleted the icalls that were obsoleted some time ago
12599         by the ICU string code, and which were mixed into the icall
12600         rearranging.  Fixes bug 55969.
12601
12602         * string-icalls.h: 
12603         * string-icalls.c: Deleted the code that those icalls reference.
12604
12605 2004-04-01  Martin Baulig  <martin@ximian.com>
12606
12607         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
12608
12609         * class.c (mono_class_from_generic_parameter): Don't set 
12610         TYPE_ATTRIBUTE_INTERFACE.
12611         (my_mono_class_from_generic_parameter): Likewise.
12612
12613 2004-04-01  Martin Baulig  <martin@ximian.com>
12614
12615         * loader.c (find_method): Added an optional `MonoClass *ic'
12616         argument to search in a specific interface.
12617         (mono_get_method_constrained): New public function.
12618
12619 2004-04-01  Martin Baulig  <martin@ximian.com>
12620
12621         * reflection.c (mono_image_get_generic_field_token): Use the
12622         `handleref' cache here.
12623
12624 2004-04-01  Martin Baulig  <martin@ximian.com>
12625
12626         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
12627
12628         * reflection.c (create_generic_typespec): Use the `typespec' hash
12629         here, not the `typeref' one.    
12630
12631 2004-04-01  Martin Baulig  <martin@ximian.com>
12632
12633         * class.c (mono_class_inflate_generic_type): Moved the
12634         functionality into a new static inflate_generic_type() which
12635         returns NULL if it didn't do anything.  Only increment the
12636         `mono_stats.inflated_type_count' if we actually inflated
12637         something.
12638         (mono_class_get_full): Check the classes type to see whether we
12639         need to inflate it; also inflate MONO_TYPE_(M)VAR.
12640
12641 2004-04-01  Jackson Harper  <jackson@ximian.com>
12642
12643         * reflection.c: Set culture for assembly references.
12644         
12645 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
12646
12647         * reflection.[ch], icall.[ch], Fix support for pinning variables.
12648
12649 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12650
12651         * assembly.c:
12652         (do_mono_assembly_open): the critical section also covers
12653         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
12654
12655 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12656
12657         * threads.c:
12658         (mono_manage_threads): abort the background threads when finishing.
12659         Fixes bug #47232.
12660
12661 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12662
12663         * gc.c: only close the done_event handle if there was no timeout.
12664         C-ified comments.
12665
12666 2004-03-30  Martin Baulig  <martin@ximian.com>
12667
12668         * icall.c (icall_entries): It's called "System.Activator", not
12669         "System.Activation".    
12670
12671 2004-03-30  Martin Baulig  <martin@ximian.com>
12672
12673         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
12674         (mono_class_create_from_typespec): Likewise.
12675
12676 2004-03-30  Martin Baulig  <martin@ximian.com>
12677
12678         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
12679         `has_ctor_constraint' and `initialized'.
12680
12681 2004-03-30  Martin Baulig  <martin@ximian.com>
12682
12683         * reflection.c (encode_new_constraint): New static function to add
12684         the constructor constraint attribute to a type parameter.
12685         (encode_constraints): Call encode_new_constraint() if necessary.
12686
12687         * reflection.h
12688         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
12689
12690         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
12691         
12692 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
12693
12694         * reflection.c, icall.c: add support for pinning variables. 
12695
12696 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
12697
12698         * marshal.c (mono_marshal_get_managed_wrapper):
12699         init bool local with zero rather than null.
12700
12701 2004-03-29  Martin Baulig  <martin@ximian.com>
12702
12703         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
12704         the "official" behavior here.
12705         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
12706
12707 2004-03-29  Martin Baulig  <martin@ximian.com>
12708
12709         * icall.c: Reflect latest API changes.
12710
12711 2004-03-29  Martin Baulig  <martin@ximian.com>
12712
12713         * loader.c (mono_get_method_from_token): Also call
12714         mono_metadata_load_generic_params () for abstract and interface
12715         methods; replace the type arguments in the method signature with
12716         the ones which are loaded from the metadata.
12717
12718 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
12719
12720         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
12721         of the lock is not the current thread. MS.NET don't do it, in spite of
12722         what the documentation says. See bug #56157.
12723
12724 2004-03-28  Martin Baulig  <martin@ximian.com>
12725
12726         * class.c (mono_class_init): Don't call init_properties() and
12727         init_events() for generic instances; set `prop->parent' when
12728         inflating properties.
12729
12730         * reflection.c (mono_generic_inst_get_object): Call
12731         `mono_class_init (ginst->klass)'.
12732         (mono_type_get_object): Only create a MonoGenericInst if your
12733         generic type is a TypeBuilder.
12734         (do_mono_reflection_bind_generic_parameters): Only set
12735         `ginst->is_dynamic' if our generic type is a TypeBuilder.
12736
12737 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
12738
12739         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
12740         Fixes #56091.
12741
12742 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12743
12744         * icall.c: added Kill_internal icall.
12745         * process.[ch]: added Kill_internal icall.
12746
12747 2004-03-25  Martin Baulig  <martin@ximian.com>
12748
12749         * class.h (MonoStats): Added `generic_instance_count',
12750         `inflated_method_count', `inflated_type_count' and
12751         `generics_metadata_size'.       
12752
12753 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12754
12755         * reflection.c: no warnings now.
12756
12757 2004-03-25  Martin Baulig  <martin@ximian.com>
12758
12759         * class.c (mono_class_get_full): New public function; does a
12760         mono_class_get(), but also takes a `MonoGenericContext *'.
12761
12762         * loader.c (mono_field_from_memberref): Renamed to
12763         `field_from_memberref', made static and added `MonoGenericContext *'
12764         argument.
12765         (mono_field_from_token): Added `MonoGenericInst *' argument.
12766         (method_from_memberef): Likewise.
12767         (mono_get_method_from_token): Likewise.
12768         (mono_get_method_full): New public function; does a
12769         mono_get_method(), but also takes a `MonoGenericContext *'.
12770
12771         * verify.c (mono_method_verify): Get the method's generic context
12772         and pass it to mono_field_from_token(), mono_get_method_full() and
12773         mono_class_get_full().
12774
12775 2004-03-25  Martin Baulig  <martin@ximian.com>
12776
12777         * class.c (mono_class_inflate_generic_type): Take a
12778         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
12779         `MonoGenericMethod *'.
12780
12781 2004-03-25  Martin Baulig  <martin@ximian.com>
12782
12783         * loader.h (MonoMethodInflated): Store the MonoGenericContext
12784         instead of the MonoGenericMethod here.
12785
12786 2004-03-25  Martin Baulig  <martin@ximian.com>
12787
12788         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
12789         each time we create a new MonoGenericInst, we also create a new
12790         context which points back to us.
12791
12792         * class.c (inflate_method): Use `ginst->context' instead of
12793         creating a new context.
12794
12795         * loader.c (method_from_memberref): Use
12796         `klass->generic_inst->context' instead of creating a new context.
12797
12798 2004-03-25  Martin Baulig  <martin@ximian.com>
12799
12800         * class.h (MonoGenericContext): New struct.
12801         (MonoGenericMethod): Removed `generic_inst'.
12802
12803         * class.c (mono_class_inflate_generic_method): Take a
12804         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
12805
12806 2004-03-25  Martin Baulig  <martin@ximian.com>
12807
12808         * loader.h (MonoMethodInflated): New typedef.
12809
12810         * metadata.h (MonoMethodSignature): Removed `gen_method', make
12811         `generic_param_count' consume just 30 bits, added `is_inflated'
12812         and `has_type_parameters' flags (one bit each).
12813
12814         * class.c (mono_class_inflate_generic_method): Create a
12815         MonoMethodInflated instead of a MonoMethodNormal and set
12816         `is_inflated' in the method signature.
12817
12818         * class.h (MonoGenericMethod): Removed `generic_method'.
12819
12820 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
12821
12822         * image.c: Make sure the name of a MonoImage is always an absolute path.
12823           This fixes bug #54415.
12824
12825 2004-03-24  Martin Baulig  <martin@ximian.com>
12826
12827         * class.c (mono_class_setup_vtable): If we're a generic instance,
12828         use our generic type's vtable size.
12829
12830 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
12831
12832         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
12833         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
12834         problems.
12835
12836 2004-03-23  Martin Baulig  <martin@ximian.com>
12837
12838         * class.h (MonoDynamicGenericInst): Added `int count_events' and
12839         `MonoEvent *events'.
12840
12841         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
12842         (typebuilder_icalls): Added "get_event_info"; calls
12843         mono_reflection_event_builder_get_event_info(). 
12844
12845         * reflection.c (mono_reflection_generic_inst_initialize): Added
12846         `MonoArray *events'.
12847         (mono_reflection_event_builder_get_event_info): New function.
12848
12849 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
12850
12851         * object.h: add mono_type_initialization_init
12852
12853         * object.c (mono_runtime_class_init): 
12854         implement class constructor synchronization rules
12855         to cope with threading issues.  
12856         add mono_type_initialization_init
12857
12858         * appdomain.c (mono_runtime_init): call 
12859         mono_type_initialization_init
12860
12861         * class.h: removing initializing field from MonoVTable
12862
12863 2004-03-23  Martin Baulig  <martin@ximian.com>
12864
12865         * class.c (my_mono_class_from_generic_parameter): Use
12866         `param->name' if it's not NULL. 
12867
12868 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
12869
12870         * class.c: do not insert non-virtual methods in the vtable.
12871         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
12872         that means the method is non-virtual. This never would have
12873         happened before.
12874
12875 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
12876
12877         * profiler.c: Added lock for accessing coverage_hash.
12878
12879 2004-03-22  Martin Baulig  <martin@ximian.com>
12880
12881         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
12882         `method->method->signature->generic_param_count != 0' to make it
12883         work for interface methods.
12884
12885 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12886
12887         * process.c: quote the string passed to the shell using g_shell_quote.
12888
12889 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12890
12891         * threads.c:
12892         (mono_threads_manage): don't remove the finalizer thread and self
12893         from the threads hash table so that mono_thread_manage can be called
12894         more than once.
12895
12896 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12897
12898         * process.c: quote the arguments when UseShellExecute is true. Fixes
12899         bug #55790.
12900
12901 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12902
12903         * threads.c: set mono_thread_detach as a cleanup routine for every
12904         thread. This way it's always executed upon thread termination, either
12905         aborted or finished normally. No more xsp hangs!
12906
12907 2004-03-17  Martin Baulig  <martin@ximian.com>
12908
12909         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
12910         `int count_nested' and a `MonoType **nested'.
12911
12912         * reflection.c (mono_reflection_bind_generic_parameters): Moved
12913         most of the functionality into a new static
12914         do_mono_reflection_bind_generic_parameters() and don't take a
12915         `MonoType *nested_in' argument any more.  Don't compute nested
12916         types here.
12917         (mono_reflection_generic_inst_get_nested_types): New public method
12918         to get nested types.
12919
12920         * class.c (mono_class_create_generic): Set `klass->nested_in' if
12921         we're a nested class.
12922
12923         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
12924         mono_reflection_generic_inst_get_nested_types() to compute the
12925         nested types.
12926
12927 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12928
12929         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
12930         descriptive error message under windows.
12931         
12932 2004-03-17  Martin Baulig  <martin@ximian.com>
12933
12934         * class.c (dup_type): Added `const MonoType *original' argument;
12935         copy the attrs from the original type.
12936
12937 2004-03-17  Martin Baulig  <martin@ximian.com>
12938
12939         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
12940         `m->generic_inst_cache' here.
12941
12942 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
12943
12944         * exception.h exception.c: Add stack_overflow_exception.
12945
12946 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12947
12948         * threadpool.c:
12949         (overlapped_callback): call SetEvent *after* invoking the callback.
12950         No need to call CloseHandle.
12951
12952 2004-03-16  Martin Baulig  <martin@ximian.com>
12953
12954         * reflection.c (mono_image_get_fieldref_token): Take a
12955         `MonoReflectionField *' instead of a `MonoClassField *' and a
12956         `MonoClass *'; store the `MonoReflectionField *' in the hash.
12957
12958 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12959
12960         * appdomain.c: don't add the culture to the filename we're looking for
12961         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
12962
12963 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12964
12965         * locales.c: don't ignore symbols when doing case insensitive compares.
12966         Thanks Dick! Fixes bug #54046.
12967
12968         * threads.c: surround 'threads' usage with enter/leave in
12969         mono_thread_manage.
12970
12971 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
12972
12973         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
12974         implicitly marshalled as [Out]. Fixes #55450.
12975
12976         (mono_marshal_get_runtime_invoke): Zero out the result if there is
12977         an exception.
12978
12979 2004-03-16  Martin Baulig  <martin@ximian.com>
12980
12981         * class.c (mono_class_from_generic_parameter): Use the actual
12982         parameter name. 
12983
12984 2004-03-16  Martin Baulig  <martin@ximian.com>
12985
12986         * reflection.c (type_get_signature_size): New static function.
12987         Compues the size of the type in a method signature.
12988         (method_get_signature_size): New static function; calls
12989         type_get_signature_size() to compute the actual size of the
12990         method's signature.
12991         (method_encode_signature): Use method_get_signature_size() to get
12992         the signature's size rather than using `nparams * 10'.
12993
12994 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12995
12996         * file-io.h: define here WapiOverlapped on windows. I don't want the
12997         regular OVERLAPPED one.
12998
12999         * file-io.c:
13000         * threadpool.c: somehow, BindIoCompletionCallback is not found.
13001         Disabling AIO on windows.
13002
13003 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13004
13005         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
13006         bug #55385.
13007
13008 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13009
13010         * appdomain.c: upgraded corlib version.
13011
13012         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
13013         and BeginWrite. Allow opening files for asynchrnous operations.
13014
13015         * file-io.h: new struct that maps FileStreamAsyncResult.
13016         * icall.c: added new icalls.
13017         * process.[ch]: support setting child process environment variables
13018         and use the SHELL or COMSPEC when UseShellExecute is true.
13019
13020         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
13021         callback for async. IO is here and also BindHandle.
13022
13023         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
13024         from here.
13025
13026 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
13027
13028         * reflection.c (create_custom_attr): Allow len == 0.
13029
13030         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
13031         computation on big-endian machines.
13032
13033 2004-03-13  Martin Baulig  <martin@ximian.com>
13034
13035         * class.h (MonoGenericInst): Added `int count_ifaces'.
13036
13037         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
13038         `ginst->count_ifaces' instead `klass->interface_count' since we
13039         may get called before the vtable is created.
13040
13041         * loader.c (mono_method_get_param_names): If we're a generic
13042         instance, return and don't initialize the class.
13043
13044         * reflection.c (mono_reflection_setup_generic_class): Don't call
13045         ensure_runtime_vtable().
13046         (mono_reflection_bind_generic_parameters): Set
13047         `ginst->count_ifaces'.
13048
13049 2004-03-11  Jackson Harper <jackson@ximian.com>
13050
13051         * icall.c:
13052         * unicode.c:
13053         * unicode.h: Remove unused System.Char icalls.
13054         
13055 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
13056
13057         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
13058         code when we P/Invoke the first library in Windows.Forms, instead
13059         of when we first open the assembly.
13060
13061         * assembly.c: Drop the lookup from here.
13062
13063 2004-03-10  Martin Baulig  <martin@ximian.com>
13064
13065         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
13066         class for properties, fields and events.  Finally fixes #54945.
13067
13068 2004-03-10  Martin Baulig  <martin@ximian.com>
13069
13070         * metadata.c (mono_metadata_class_equal): New static function;
13071         checks whether two generic instances or two generic parameters are
13072         equal.
13073         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
13074         compare classes.        
13075
13076 2004-03-10  Martin Baulig  <martin@ximian.com>
13077
13078         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
13079
13080         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
13081         argument and write it into the `reflection_info' field.
13082
13083         * icall.c
13084         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
13085         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
13086
13087 2004-03-09  Jackson Harper  <jackson@ximian.com>
13088
13089         * char-conversions.h: use 8 bits for numeric data its all we need
13090         * icall.c: numeric data is only 8 bits now.
13091
13092 2004-03-09  Martin Baulig  <martin@ximian.com>
13093
13094         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
13095
13096         * class.c (init_properties, init_events): Initialize the new
13097         `parent' field.
13098
13099         * reflection.c (typebuilder_setup_properties): Likewise.
13100         (typebuilder_setup_events): Likewise.
13101
13102         * reflection.h (MonoEventInfo): Replaced `parent with
13103         `declaring_type' and `reflected_type'.
13104
13105         * icall.c (ves_icall_get_property_info): Distinguish between
13106         declaring and reflected type.
13107         (ves_icall_get_event_info): Likewise.
13108
13109 2004-03-09  Martin Baulig  <martin@ximian.com>
13110
13111         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
13112         (ves_icall_Type_GetField): Correctly set field->klass.
13113
13114 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
13115
13116         * loader.h: Fix warning.
13117
13118 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
13119
13120         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
13121         library routine if present.  Notice that it will still continue
13122         executing even if its missing, for those working on the Gtk#
13123         edition of Windows.Forms.
13124
13125         * assembly.c (do_mono_assembly_open): If loading the
13126         System.Windows.Forms call mono_loader_wini_init.
13127
13128 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
13129
13130         * class.h: Added MonoRemoteClass struct.
13131         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
13132         function for MonoStrings.
13133         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
13134         Added internal call for getting the proxy type.
13135         * marshal.c: Get the type of transparent proxies from its remote_class.
13136         Added methods that generate the IL for type checks and casts:
13137         mono_marshal_get_isinst, mono_marshal_get_castclass, 
13138         mono_marshal_get_proxy_cancast.
13139         * marshal.h: Declaration of the previous new methods.
13140         * object.c: Added new moethods for creating and updating MonoRemoteClass
13141         instances: mono_remote_class, mono_upgrade_remote_class, 
13142         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
13143         * verify.c: FIx transparent_proxy_fields layout.
13144         * appdomain.c: Bump corlib version.
13145
13146 2004-03-04  Jackson Harper  <jackson@ximian.com>
13147
13148         * icall.c: Add icall to access char conversion tables.
13149         * char-conversions.h: Character conversion tables.
13150         * Makefile.am: Add char-conversions.h private header file.
13151         
13152 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
13153
13154         * appdomain.c (unload_thread_main): Increase unloading timeout to
13155         10 sec as a temporary workaround for Nant problems.
13156
13157 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
13158
13159         * gc.c: Add checks for GC_enable and GC_disable.
13160
13161         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
13162         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
13163         (bug #54988).
13164         
13165 2004-02-27  Martin Baulig  <martin@ximian.com>
13166
13167         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13168         `MonoReflectionType *' instead of a `MonoType *'.
13169
13170 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
13171
13172         * gc.c (run_finalize): Avoid finalizing the object representing the
13173         finalizer thread.
13174         (finalizer_thread): Fix warning.
13175
13176 2004-02-25  Martin Baulig  <martin@ximian.com>
13177
13178         * class.c (_mono_class_get_instantiation_name): Added `int offset'
13179         argument for nested types.
13180         (mono_class_create_generic): Added support for nested generictypes.
13181
13182         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
13183         `GList *nested'.
13184
13185         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
13186
13187         * reflection.c (method_encode_signature): Increase the minimum
13188         value of `size' from 10 to 11.
13189         (mono_reflection_bind_generic_parameters): Take `int type_argc'
13190         and `MonoType **types' arguments instead of the `MonoArray
13191         *types'; added `MonoType *nested_in'.  Recursively instantiate
13192         nested classes. 
13193
13194 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
13195
13196         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
13197         stack_overflow_ex members which are used by exception handling.
13198
13199         * appdomain.c (mono_runtime_init): Initialize the new members.
13200
13201         * gc.c (mono_gc_enable): New helper function.
13202         * gc.c (mono_gc_disable): New helper function.
13203
13204 2004-02-23  Martin Baulig  <martin@ximian.com>
13205
13206         * icall.c: I must have been really stupid - make it actually work
13207         this time ;-)
13208
13209 2004-02-23  Martin Baulig  <martin@ximian.com>
13210
13211         * loader.c (method_from_memberref): Only inflate the method if
13212         it's in another klass.
13213
13214 2004-02-23  Martin Baulig  <martin@ximian.com>
13215
13216         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
13217         (mono_class_init): If we're a generic instance and an interface,
13218         compute `class->interface_id'; also create `class->interfaces'
13219         here and inflate them.
13220
13221         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
13222         `ginst->is_open'.
13223         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
13224
13225         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
13226
13227 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
13228
13229         * reflection.c (method_encode_code): Improved the error message
13230         generated by the exception.
13231
13232 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13233
13234         * icall.c: Martin did not do what he said in the ChangeLog for
13235         2004-02-18, but put back the changes for properties and events.
13236         Commenting those changes out again and adding comment to bug #54518.
13237         
13238         * process.c: removed warning.
13239
13240 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
13241
13242         * marshal.c (emit_struct_conv): Print an error message instead of
13243         asserting when a type does not have the StructLayout attribute.
13244
13245 2004-02-20  Martin Baulig  <martin@ximian.com>
13246
13247         * reflection.c (mono_type_get_object): Also use the cache for
13248         generic instances.
13249         (mono_reflection_bind_generic_parameters): Always compute
13250         `ginst->ifaces'.        
13251
13252 2004-02-20  Martin Baulig  <martin@ximian.com>
13253
13254         * class.h (MonoGenericMethod): Removed `klass'.
13255
13256         * class.c (mono_class_inflate_generic_method): Added `MonoClass
13257         *klass' argument.
13258
13259 2004-02-20  Martin Baulig  <martin@ximian.com>
13260
13261         * reflection.c (method_encode_methodspec): Actually use the
13262         uninflated signature for the memberref.
13263
13264 2004-02-20  Martin Baulig  <martin@ximian.com>
13265
13266         * class.h (MonoGenericMethod): Removed `declaring'.
13267
13268         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
13269         is NULL, compute it here.
13270
13271 2004-02-20  Martin Baulig  <martin@ximian.com>
13272
13273         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
13274
13275         * metadata.c (mono_metadata_generic_inst_hash): New method.
13276         (mono_metadata_generic_inst_equal): New method.
13277
13278         * reflection.c (mono_reflection_bind_generic_parameters): Use the
13279         `klass->image->generic_inst_cache' cache to avoid creating
13280         duplicate MonoGenericInst's.
13281
13282         * class.c (mono_class_inflate_generic_type): Use the cache.
13283
13284 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
13285
13286         * object.c: fixed gc descriptor calculation for embedded valuetypes.
13287
13288 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13289
13290         * icall.c: added Socket.WSAIoctl icall.
13291
13292         * socket-io.[ch]: implemented
13293         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
13294
13295 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
13296
13297         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
13298
13299 2004-02-18  Urs C Muff  <umuff@quark.com>
13300
13301         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
13302         this work on PPC and other big-endian architectures.
13303
13304         * debug-mono-symfile.h: Prepended the names of all the `guint32'
13305         fields with an underscore to make sure they're only accessed by
13306         the read32() macro.
13307
13308 2004-02-18  Martin Baulig  <martin@ximian.com>
13309
13310         * icall.c: Put the klass->refclass changes back for methods and
13311         fields, but not for properties and events.  We're currently not
13312         distinguishing between DeclaringType and ReflectedType for
13313         properties and events, that's what caused the regressions.
13314
13315 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13316
13317         * object.c:
13318         (mono_async_result_new): the handle can be NULL.
13319
13320         * threadpool.c: Use an event instead of a semaphore, don't initialize
13321         it until needed. This saves quite a few semaphores from being created
13322         when using the threadpool.
13323
13324 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
13325
13326         * object.c (mono_string_is_interned_lookup): Fix interning of long
13327         strings. Fixes #54473.
13328
13329         * domain.c (ldstr_equal): Optimize if the two strings are equal.
13330
13331         * icall.c: Revert the klass->refclass changes since they introduce
13332         regressions (bug #54518).
13333
13334 2004-02-18  Martin Baulig  <martin@ximian.com>
13335
13336         * class.c (mono_class_init): If we're a generic instance and don't
13337         come from a TypeBuilder, inflate our members here.
13338         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
13339         (mono_class_create_generic): New public method.
13340         (mono_class_initialize_generic): Removed.
13341         (get_instantiation_name): Renamed to
13342         _mono_class_get_instantiation_name() and made it public.
13343
13344 2004-02-18  Martin Baulig  <martin@ximian.com>
13345
13346         * class.c (mono_class_inflate_generic_type): Clear the new
13347         instance's `nginst->klass' when inflating a generic instance.
13348         (mono_class_is_subclass_of): Added (basic) support for generic
13349         instances.
13350
13351 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
13352
13353         * appdomain.h, domain.c: use a MonoCodeManager instead of a
13354         MonoMempool to hold compiled native code.
13355
13356 2004-02-17  Martin Baulig  <martin@ximian.com>
13357
13358         * class.h (MonoDynamicGenericInst): Added `count_properties' and
13359         `properties'.
13360
13361         * reflection.c (mono_reflection_generic_inst_initialize): Added
13362         `MonoArray *properties' argument.
13363
13364         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
13365
13366 2004-02-17  Martin Baulig  <martin@ximian.com>
13367
13368         * icall.c (ves_icall_Type_GetFields): Renamed to
13369         ves_icall_Type_GetFields_internal() and added a
13370         `MonoReflectionType *rtype' argument; pass it to
13371         mono_field_get_object() to set the field's "reflected" type.
13372         (ves_icall_Type_GetConstructors): Likewise.
13373         (ves_icall_Type_GetEvents): Likewise.
13374         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
13375         argument; pass it to mono_method_get_object() to set the method's
13376         "reflected" type.       
13377
13378 2004-02-17  Martin Baulig  <martin@ximian.com>
13379
13380         * class.h (MonoDynamicGenericInst): New type.
13381         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
13382
13383         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
13384         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
13385         (ves_icall_MonoGenericInst_GetFields): New interncall.
13386
13387         * class.c (mono_class_from_generic): Don't call
13388         mono_class_initialize_generic() if this is a dynamic instance;
13389         ie. it's being created from a TypeBuilder.
13390         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
13391         `class->byval_arg.type'.
13392
13393         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
13394         to `inflate_method' and made static.
13395         (mono_reflection_inflate_field): Removed.
13396         (mono_reflection_generic_inst_initialize): New public method.
13397
13398         * reflection.h (MonoReflectionGenericInst): Removed `methods',
13399         `ctors' and `fields'; added `initialized'.
13400
13401 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
13402
13403         * debug-helpers.c (mono_method_full_name): Fix output for empty
13404         namespaces.
13405
13406 2004-02-12  Martin Baulig  <martin@ximian.com>
13407
13408         * class.h (MonoClassField): Added `MonoType *generic_type'.
13409
13410         * reflection.c (mono_image_get_fieldref_token): Added support for
13411         instantiated generic types.
13412         (field_encode_inflated_field): Removed.
13413         (mono_image_get_inflated_field_token): Removed.
13414         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
13415
13416         * reflection.h (MonoReflectionInflatedField): Removed.
13417
13418 2004-02-12  Martin Baulig  <martin@ximian.com>
13419
13420         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
13421         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
13422
13423         * reflection.c (mono_image_get_methodspec_token): Take a
13424         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
13425         (mono_image_create_token): Check whether we have a
13426         `method->signature->gen_method' and call
13427         mono_image_get_methodspec_token() if appropriate.
13428         (inflated_method_get_object): Removed.
13429         (mono_reflection_bind_generic_method_parameters): Return a
13430         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
13431         (mono_reflection_inflate_method_or_ctor): Likewise.
13432
13433         * reflection.h (MonoReflectionInflatedMethod): Removed.
13434
13435 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
13436
13437         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
13438         for custom valuetype marshalling.
13439
13440         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
13441
13442 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13443
13444         * icall.c: fixed WSAGetLastError_internal name.
13445
13446 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
13447
13448         * threads.c (mono_thread_attach): Allow this to be called multiple
13449         times for a thread.
13450         
13451         * threads.c (build_wait_tids): Do not wait for ourselves.
13452
13453         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
13454         appdomain list is empty.
13455
13456         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
13457         memory returned by mono_string_builder_to_utf16, since it points into
13458         managed memory. Thanks to Bernie Solomon for noticing this.
13459
13460         * icall.c: Add AppDomainSetup icalls.
13461
13462         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
13463
13464         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
13465         types.
13466
13467         * reflection.c (reflection_methodbuilder_to_mono_method): Save
13468         custom attributes to the method_aux struct. Also fix array indexes etc.
13469
13470         * loader.c (mono_method_get_param_names): Make dynamic case work again.
13471         
13472 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
13473
13474         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
13475         (both static and runtime) and reduce startup time.
13476
13477 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
13478
13479         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
13480         AsAny marshalling conversion instead of crashing.
13481
13482         * marshal.c: Fix warnings.
13483
13484 2004-02-09  Martin Baulig  <martin@ximian.com>
13485
13486         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
13487
13488         * reflection.h (MonoReflectionInflatedMethod): Removed the
13489         `declaring' field, it's now in the unmanaged MonoGenericMethod.
13490
13491         * reflection.c (method_encode_methodspec): Removed the `method'
13492         argument; we get it from `gmethod->declaring'.
13493         (inflated_method_get_object): Removed the `declaring' argument.
13494
13495 2004-02-09  Martin Baulig  <martin@ximian.com>
13496
13497         * class.h (MonoGenericMethod): New type.
13498         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
13499         `generic_method'.
13500
13501         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
13502         a `MonoGenericMethod *gen_method' one.
13503
13504         * class.c (mono_class_inflate_generic_type): Take an additional
13505         `MonoGenericMethod * argument.  This is only non-NULL if we're
13506         inflating types for a generic method.   
13507         (mono_class_inflate_generic_signature): Renamed to
13508         inflate_generic_signature() and made static; take a
13509         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13510         (inflate_generic_header): Take a `MonoGenericMethod *' argument
13511         instead of a `MonoGenericInst *' one.
13512         (mono_class_inflate_generic_method): Likewise.
13513
13514         * reflection.c (encode_generic_method_sig): Take a
13515         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
13516         (method_encode_methodspec): Likewise.
13517         (inflated_method_get_object): Likewise. 
13518
13519         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
13520         field with a `MonoGenericMethod *gmethod' one.  
13521
13522 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
13523
13524         * class.h (mono_class_has_parent): add parens to expansion
13525         so you can ! this.
13526
13527 2004-02-08  Martin Baulig  <martin@ximian.com>
13528
13529         * image.h (MonoImage): Removed `generics_cache'.
13530
13531         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
13532         instead of a `MonoType *' argument; removed the `inflate_methods'
13533         argument.  Don't inflate methods here.
13534
13535         * loader.c (find_method): If it's a generic instance, call
13536         mono_class_init() on the `sclass->generic_inst->generic_type'.
13537
13538         * metadata.c (mono_type_size): Make this work on uninitialized
13539         generic instances; call it on the `ginst->generic_type's class.
13540
13541         * reflection.c (mono_reflection_bind_generic_parameters): Call
13542         mono_class_from_generic() to create the `ginst->klass'.
13543
13544 2004-02-08  Martin Baulig  <martin@ximian.com>
13545
13546         * class.h (MonoClass): Changed type of `generic_inst' from
13547         `MonoType *' to `MonoGenericInst *'.
13548
13549 2004-02-08  Martin Baulig  <martin@ximian.com>
13550
13551         * icall.c (ves_icall_Type_BindGenericParameters): Just call
13552         mono_type_get_object(), this is now creating a `MonoGenericInst'
13553         for MONO_TYPE_GENERICINST.
13554         (ves_icall_MonoGenericInst_GetParentType): Likewise.
13555         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
13556
13557         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
13558         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
13559         (inflated_method_get_object): Added `MonoClass *refclass' argument.
13560         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
13561         and reflected type.
13562
13563         * reflection.h (MonoReflectionInflatedMethod): Removed
13564         `declaring_type' and `reflected_type'.
13565
13566 2004-02-08  Martin Baulig  <martin@ximian.com>
13567
13568         * class.h (MonoGenericInst): Added `MonoType *parent' and
13569         `MonoType **ifaces'.
13570
13571         * reflection.h (MonoReflectionGenericInst): Removed `klass',
13572         `parent' and `interfaces'.
13573
13574         * reflection.c (mono_reflection_bind_generic_parameters): Take a
13575         `MonoType *' argument and return a `MonoType *'.
13576
13577         * icall.c
13578         (ves_icall_MonoGenericInst_GetParentType): New interncall.
13579         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
13580
13581 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13582
13583         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
13584         valuetype marshalling.
13585
13586 2004-02-06  Martin Baulig  <martin@ximian.com>
13587
13588         * class.c
13589         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
13590         (my_mono_class_from_generic_parameter): Likewise.
13591
13592 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
13593
13594         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
13595         contents of the symbol files lazily.
13596
13597         * object.h (MonoThread): Add 'name' and 'name_len' fields.
13598
13599         * threads.h threads.c icall.c: New icalls for getting and setting the
13600         threads name.
13601
13602 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
13603
13604         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
13605         Raise an exception when the domain is not found.
13606
13607 2004-02-03  Martin Baulig  <martin@ximian.com>
13608
13609         * reflection.c (mono_image_get_methodspec_token): Use the
13610         uninflated signature; fixes gen-33.
13611
13612 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
13613
13614         * gc.c threads.c: Make the finalizer thread a normal managed thread so
13615         the finalizer code can use thread functionality.
13616
13617         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
13618         the finalizer thread.
13619
13620         * threads.c: Make some functions more robust.
13621
13622         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
13623
13624         * metadata.h: Add new marshalling conventions.
13625
13626         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
13627         stringbuilder marshalling. Fixes #53700.
13628
13629         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
13630
13631         * reflection.c (mono_image_get_type_info): Save declarative security
13632         info.
13633
13634         * reflection.c (mono_image_get_field_info): Handle uninitialized 
13635         unmanaged fields as well.
13636
13637         * appdomain.c: Bump corlib version.
13638
13639 2004-02-01  Martin Baulig  <martin@ximian.com>
13640
13641         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
13642         method type arguments.  
13643
13644 2004-01-30  Duncan Mak  <duncan@ximian.com>
13645
13646         * marshal.h: Add prototype for
13647         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
13648         and
13649         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
13650         fix the build.
13651
13652 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
13653
13654         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
13655         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
13656
13657 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13658
13659         * marshal.c (mono_marshal_get_native_wrapper): Add support for
13660         custom marshalling of valuetypes.
13661
13662         * marshal.c: Fix some warnings.
13663
13664 2004-01-29  Martin Baulig  <martin@ximian.com>
13665
13666         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
13667         for generic method parameters.
13668
13669         * reflection.c (method_encode_methodspec): Write the uninflated
13670         signature into the methodspec table.
13671         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
13672         is always the uninflated method.
13673         (reflection_methodbuilder_to_mono_method): Copy the generic
13674         parameters from the MethodBuilder into `header->gen_params'.
13675
13676 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
13677
13678         * class.c (mono_class_from_generic_parameter): Fix warning.
13679
13680 2004-01-27  Martin Baulig  <martin@ximian.com>
13681
13682         * class.c (mono_class_from_generic_parameter): Don't create
13683         `klass->methods' here.  
13684
13685 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
13686
13687         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
13688         extension since it does not work with libraries named lib<FOO>.dll.so.
13689
13690 2004-01-25  Martin Baulig  <martin@ximian.com>
13691
13692         * class.c (mono_class_inflate_generic_type): Added support for
13693         MONO_TYPE_GENERICINST.
13694
13695         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
13696         inflate methods on open constructed types.      
13697
13698 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13699
13700         * object.c: fire ProcessExit event in the root AppDomain after running
13701         Main. Fixes bug #53299.
13702
13703 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
13704
13705         * socket-io.c: include the new socket-wrappers.h header.
13706         Use the wrappers instead of the unix socket functions to make the code
13707         more clear.
13708
13709 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
13710
13711         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
13712
13713         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13714         Fixes #22532.
13715
13716 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
13717
13718         * reflection.c (mono_image_create_pefile): Handle the case when the
13719         entry point is not a MethodBuilder.
13720
13721         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13722         field to ReflectionMethod since it is not allways a builder.
13723
13724         * reflection.c (type_get_fully_qualified_name): New helper function to
13725         return the fully qualified name of a type.
13726
13727         * reflection.c (encode_marshal_blob): Always emit the fully qualified
13728         type name for custom marshallers.
13729
13730         * reflection.c (mono_marshal_spec_from_builder): Ditto.
13731
13732         * class.c (mono_class_setup_vtable): If a parent class already 
13733         implements an interface, use the implementing methods from that class.
13734         Fixes #53148.
13735
13736 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13737
13738         * threadpool.c: just return instead of ExitThread to allow for thread
13739         clean up earlier.
13740
13741 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
13742
13743         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
13744         when closing resource modules.
13745
13746         * reflection.c (mono_image_create_pefile): Handle the case when the
13747         entry point is not a MethodBuilder.
13748
13749         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
13750         field to ReflectionMethod since it is not allways a builder.
13751
13752 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
13753
13754         * marshal.c (mono_marshal_get_managed_wrapper): 
13755         mono_marshal_alloc takes native int so CONV_I
13756         the arg for 64bits.
13757
13758 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
13759
13760         * reflection.c (fixup_cattrs): New function to fixup the methoddef
13761         tokens in the cattr table. Fixes #53108.
13762
13763 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13764
13765         * loader.c: don't trim ".dll" before looking up in the config file.
13766         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
13767
13768 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
13769
13770         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
13771         Return the module which contains the resource as well.
13772         (ves_icall_System_Reflection_Module_Close): New icall.
13773
13774         * appdomain.c: Bump corlib version number.
13775
13776         * image.c (mono_image_addref): New public function.
13777
13778         * assembly.c: Call mono_image_addref.
13779
13780         * reflection.c (mono_module_get_object): Increase reference count of 
13781         the image.
13782
13783         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
13784         Fixes #22532.
13785
13786         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
13787         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
13788         proper exceptions on DllImport problems.
13789
13790 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
13791
13792         * class.c, metadata.c: eliminate CSIZE macro.
13793
13794 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
13795
13796         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
13797         * object.h: Added async_callback field in MonoAsyncResult.
13798         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
13799         * verify.c: Added async_callback in MonoAsyncResult layout.
13800
13801 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
13802
13803         * reflection.c (mono_reflection_get_custom_attrs): Add support
13804         for Modules.
13805
13806 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13807
13808         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
13809         marshalling.
13810         (mono_marshal_method_from_wrapper): Add null pointer check.
13811
13812 2004-01-16  Martin Baulig  <martin@ximian.com>
13813
13814         * debug-mono-symfile.h: Set version number to 36 and reflect
13815         latest symbol writer changes.
13816
13817 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
13818
13819         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
13820         multi-dimensional arrays.
13821         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
13822         (mono_class_from_mono_type): Use bounded_array_class_get.
13823         
13824         * class.c (mono_bounded_array_class_get): New function which takes
13825         a 'bounded' bool argument to distinguish vectors from one dimensional
13826         arrays.
13827
13828         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
13829         bounded_array_class_get if the array has bounds.
13830
13831         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
13832         Search modules loaded using AssemblyBuilder:AddModule as well.
13833
13834 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13835
13836         * appdomain.c: increased corlib version.
13837         * filewatcher.c: removed g_print.
13838         * icall.c:
13839         (get_property_info): only allocate what is actually requested.
13840         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
13841
13842 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13843
13844         * Makefile.am: added filewatcher.[ch]
13845         * filewatcher.[ch]: FileSystemWatcher runtime support.
13846         * icall.c: added new FSW icalls.
13847
13848 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
13849
13850         * string-icalls.c: fix stringbuilder regression as suggested by
13851         Iain McCoy <iain@mccoy.id.au>.
13852
13853 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
13854
13855         * process.c (process_read_stringtable_block): Recognize '007f' as
13856         a language neutral stringtable block.
13857
13858 2004-01-12  Patrik Torstensson
13859
13860         * object.h (MonoStringBuilder) : Changed layout to support our
13861         new stringbuilder class.
13862         * marshal.c: Change marshalling to support the new layout of 
13863         string builder.
13864         * appdomain.c: increased version number because new layout of
13865         string builder.
13866
13867 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
13868
13869         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
13870         assembly name as an string instead of an AssemblyName, since it is
13871         easier to extract info from it.
13872
13873         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
13874         the culture subdirectories too. Fixes #52231.
13875
13876 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13877
13878         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
13879         It takes 2 new parameters with an optional name for the method to look
13880         for and case ignoring info.
13881
13882         * threadpool.c: removed unused variable.
13883
13884 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13885
13886         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
13887         It takes 2 new parameters with an optional name for the property to look
13888         for and case ignoring info.
13889         Fixes bug #52753.
13890
13891 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
13892
13893         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
13894         Fix #52451.
13895
13896 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13897
13898         * appdomain.c:
13899         * assembly.c: escape the uri before passing it to g_filename_from_uri.
13900         Fixes bug #52630.
13901
13902 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
13903
13904         * reflection.c: Add support for more than one unmanaged resource.
13905
13906         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
13907         in field->def_value, as done in all other cases.
13908
13909         * reflection.c (mono_reflection_get_custom_attrs): Add support for
13910         TypeBuilders.
13911
13912         * reflection.c (mono_reflection_create_runtime_class): Remove 
13913         errorneous assignment to klass->element_class, since it is already
13914         done in mono_reflection_setup_internal_class.
13915
13916 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13917
13918         * gc.c: added missing LeaveCriticalSection.
13919         * icall.c: indented a couple of lines.
13920         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
13921         if we call EndInvoke inside a callback. Fixes bug #52601.
13922
13923 2004-01-07  Martin Baulig  <martin@ximian.com>
13924
13925         * mono-debug-debugger.h
13926         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
13927
13928 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
13929
13930         * appdomain.c: Use messages in NotImplementedException.
13931
13932         * exception.c (mono_get_exception_not_implemented): Now this takes
13933         a message argument.
13934
13935         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
13936         exception instead of g_asserting an aborting when something is not
13937         implemented.
13938
13939         Add some inline docs.
13940
13941 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
13942
13943         * reflection.h: Update after changes to object layout.
13944
13945         * reflection.c: Implement saving of unmanaged aka win32 resources.
13946
13947         * appdomain.c: Bump version number.
13948
13949         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
13950         Handle missing domains gracefully.
13951
13952 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
13953
13954         * file-io.c : On Windows, there are much more invalid_path_chars.
13955
13956 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
13957
13958         * class.h, object.c: prepare for GetType () speedup.
13959
13960 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
13961
13962         * profiler.c: workaround for --profile null reference exception on
13963           cygwin. Patch by Patrik Torstensson.
13964
13965 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
13966
13967         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
13968         make work for unaligned access.
13969
13970 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
13971
13972         * class.c: small cleanup (class->fields [i] -> field).
13973         * image.c: check address of metadata is valid.
13974
13975 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
13976
13977         * assembly.h assembly.c (mono_assembly_loaded): New public function to
13978         search the list of loaded assemblies.
13979
13980         * reflection.c (mono_reflection_type_from_name): Use 
13981         mono_assembly_loaded instead of mono_image_loaded.
13982
13983         * reflection.c: Fix warnings.
13984
13985 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
13986
13987         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
13988         is dynamic. This is needed since an assembly can contain both dynamic and
13989         non-dynamic images.
13990
13991         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
13992         assembly->dynamic.
13993
13994         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
13995
13996         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
13997         to store modules loaded using AddModule.
13998
13999         * reflection.c (mono_image_fill_file_table): Generalize this so it works
14000         on Modules.
14001
14002         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
14003
14004         * reflection.c (mono_image_fill_export_table_from_module): New function to
14005         fill out the EXPORTEDTYPES table from a module.
14006
14007         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
14008         into a separate function. Also handle loaded non-dynamic modules.
14009
14010         * reflection.c (mono_image_basic_init): Fix memory allocation.
14011
14012         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14013
14014         * assembly.c (mono_assembly_load_references): Make this public.
14015
14016 2003-12-19  Martin Baulig  <martin@ximian.com>
14017
14018         * class.c (mono_class_initialize_generic): Made this static, take
14019         a `MonoGenericInst *' instead of a `MonoClass *'.
14020         (mono_class_from_generic): Call mono_class_initialize_generic()
14021         unless we're already initialized or being called from
14022         do_mono_metadata_parse_generic_inst().
14023
14024         * class.h (MonoGenericInst): Added `initialized' and
14025         `init_pending' flags.
14026
14027         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
14028         `mono_class_init (gklass)' or mono_class_initialize_generic()
14029         here; set `generic_inst->init_pending' while parsing the
14030         `type_argv'.
14031
14032 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
14033
14034         * locales.c: include string.h for memxxx prototypes
14035
14036 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
14037
14038         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
14039         constructor when accessing literal fields.
14040
14041 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
14042
14043         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
14044
14045         * reflection.c (assembly_add_resource_manifest): New function to fill
14046         the MANIFESTRESOURCE table.
14047
14048         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
14049
14050         * reflection.h: Update to changes in class layout.
14051
14052         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
14053         Reenable call to mono_runtime_is_shutting_down ().
14054
14055         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
14056         determine if the runtime is shutting down.
14057
14058 2003-12-16  Jackson Harper <jackson@ximian.com>
14059
14060         * icall.c: comment out call to mono_runtime_is_shutting_down to
14061         fix build.
14062         
14063 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
14064
14065         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
14066         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
14067
14068 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
14069
14070         * reflection.c: move definition of swap_with_size
14071         to before its first call
14072
14073 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
14074
14075         * appdomain.c (mono_runtime_is_shutting_down): New public function.
14076
14077         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
14078         icall.
14079
14080         * object.c: Fix warnings.
14081
14082         * icall.c (ves_icall_Type_Get...): Only consider inherited static
14083         members if FlattenHierarchy is set.
14084
14085         * reflection.c (mono_image_add_decl_security): New function to emit
14086         declarative security.
14087
14088         * reflection.h reflection.c: Add support for declarative security.
14089
14090         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14091         
14092 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
14093
14094         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
14095         
14096         * appdomain.c verify.c: Moved corlib version checking into its own
14097         function in appdomain.c since it needs to create vtables etc.
14098
14099 2003-12-13  Patrik Torstensson <p@rxc.se>
14100
14101         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
14102         instead of unwrapped server.
14103
14104 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
14105
14106         * verify.c (check_corlib): Fix field index.
14107
14108 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
14109
14110         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
14111         GetGacPath icall.
14112
14113 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
14114
14115         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
14116         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
14117         cope with sizeof(size_t) != sizeof(guint32).
14118
14119 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14120
14121         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
14122         in case of failure.
14123
14124 2003-12-10  Mark Crichton <crichton@gimp.org>
14125
14126         * icall.c: removed the GetNonZeroBytes.  We now handle this case
14127         in managed code.
14128
14129         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
14130
14131 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
14132
14133         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
14134         marked as deleted.
14135
14136 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
14137
14138         * verify.c (check_corlib): Handle the case when the version field is 
14139         initialized by a static constructor.
14140
14141 2003-12-08  Patrik Torstensson  <p@rxc.se>
14142
14143     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
14144
14145 2003-12-08  Martin Baulig  <martin@ximian.com>
14146
14147         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
14148         a MonoReflectionGenericParameter, also take the parameter index
14149         and name as arguments.
14150         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
14151         (ves_icall_MonoGenericParam_initialize): New interncall.
14152         (ves_icall_Type_make_byref_type): New interncall.
14153
14154         * reflection.h (MonoReflectionGenericParam): Derive from
14155         MonoReflectionType, not just from MonoObject.  Added `refobj' and
14156         `index' fields.
14157
14158         * reflection.c (mono_reflection_define_generic_parameter): Create
14159         and return a new MonoReflectionGenericParam; don't initialize the
14160         constraints here.
14161         (mono_reflection_initialize_generic_parameter): New public method;
14162         initializes the constraints and creates the `param->pklass'.
14163
14164 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
14165
14166         * reflection.h reflection.c: Use the new fields 'num_types', 
14167         'num_fields' and 'num_methods' to track the number of types etc.
14168
14169         * verify.c (check_corlib): Check corlib version number.
14170
14171 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
14172
14173         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
14174         function works on all methods.
14175
14176 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
14177
14178         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
14179         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
14180         the custom_type_info flag of the transparent proxy.
14181         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
14182         objects that supports IRemotingTypeInfo.
14183         * object.h: Added custom_type_info field in transparent proxy.
14184
14185 2003-12-06  Martin Baulig  <martin@ximian.com>
14186
14187         * class.c (mono_class_create_from_generic): Removed.
14188         (mono_class_from_generic): Check `ginst->klass' before doing
14189         anything else.  This is important to fully support "recursive"
14190         generic types.
14191
14192         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
14193         empty `generic_inst->klass' before doing anything else.
14194
14195 2003-12-06  Dick Porter  <dick@ximian.com>
14196
14197         * verify.c: 
14198         * object.h:
14199         * icall.c:
14200         * locales.c: Use C structs to access class fields.  Don't do a
14201         conversion between MonoString and UChar because both are
14202         platform-endian UTF-16.  Compare now takes startindex and count
14203         parameters.  Add a char overload for IndexOf.  Speed up the
14204         invariant string IndexOf.
14205
14206 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
14207
14208         * Makefile.am (monosn_LDADD): Fix parallel build.
14209
14210 2003-12-04  Martin Baulig  <martin@ximian.com>
14211
14212         * icall.c
14213         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14214         (ves_icall_Type_make_array_type): New interncall.       
14215
14216 2003-12-04  Martin Baulig  <martin@ximian.com>
14217
14218         * locales.c: also change it in the !HAVE_ICU case.
14219
14220 2003-12-04  Dick Porter  <dick@ximian.com>
14221
14222         * icall.c:
14223         * locales.c: construct_compareinfo is now in CompareInfo, not
14224         CultureInfo.
14225
14226 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
14227
14228         * image.c (mono_image_load_file_for_image): Cache loaded images in the
14229         image->files array.
14230
14231         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
14232         table as well.
14233
14234         * assembly.c (mono_assembly_load_references): Only load references
14235         once.
14236
14237         * class.c (mono_class_from_name): Avoid linear search of the 
14238         EXPORTEDTYPE table.
14239
14240         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
14241
14242 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
14243
14244         * image.h (MonoImage): Add 'field_cache' field.
14245
14246         * loader.c (mono_field_from_token): Cache field lookups.
14247         
14248         * reflection.c (mono_module_get_object): Fix name property.
14249
14250         * icall.c (ves_icall_get_enum_info): Update after changes to 
14251         mono_metadata_get_constant_index ().
14252
14253         * icall.c: Get rid of get_type_info icall, use a separate icall for
14254         each type property to avoid needless memory allocations. Fixes #51514.
14255
14256         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
14257         to avoid needless binary searches.
14258
14259         * class.c (class_compute_field_layout): Move the initialization of
14260         field->def_value to mono_class_vtable ().
14261
14262         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
14263         non-corlib types.
14264
14265         * object.c (mono_object_allocate): Make it inline.
14266
14267         * object.c (mono_object_allocate_spec): Make it inline.
14268         
14269 2003-12-02  Dick Porter  <dick@ximian.com>
14270
14271         * locales.c (create_NumberFormat): NumberFormatInfo construction.
14272         Patch by Mohammad DAMT (mdamt@cdl2000.com).
14273
14274 2003-12-01  Dick Porter  <dick@ximian.com>
14275
14276         * threads.c: Fix signature and call in CreateMutex and
14277         CreateEvent.
14278
14279 2003-12-01  Dick Porter  <dick@ximian.com>
14280
14281         * icall.c: 
14282         * locales.c: Implement string compares and searching
14283
14284         * object.h: Add extra Thread field
14285
14286 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
14287
14288         * reflection.c (fixup_method): Add support for MonoCMethod.
14289
14290 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
14291
14292         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
14293
14294         * reflection.c (assembly_name_to_aname): Allow extra characters in
14295         assembly names. Fixes #51468.
14296
14297 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
14298
14299         * exception.c (mono_exception_from_name_domain): New helper function.
14300
14301         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
14302         exception object in the correct domain.
14303
14304         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
14305         formatting + make a copy a the input data.
14306
14307         * loader.c (mono_get_method_from_token): Methods which contain
14308         native code do not have entries in the ImplMap.
14309
14310         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
14311         Thanks to Gonzalo for spotting this.
14312         
14313         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
14314         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
14315
14316         * assembly.h (mono_assembly_load_from): Split the second part of 
14317         assembly loading into a new public function.
14318
14319         * exception.h (mono_get_exception_bad_image_format): New function.
14320
14321 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
14322
14323         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14324         Enumerate all modules inside a dynamic assembly. Fixes #51293.
14325         
14326         * icall.c: Add new icall for creating dynamic methods.
14327
14328         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
14329
14330         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
14331
14332         * reflection.c (mono_reflection_create_dynamic_method): New icall to
14333         create a dynamic method.
14334
14335         * reflection.c (resolve_object): New helper function.
14336
14337         * reflection.c: Generalize ReflectionMethodBuilder and the functions
14338         which manipulate it so they can also work on dynamic methods.
14339
14340         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
14341         creating the MonoReflectionMethodAux structure if it is not needed.
14342         
14343         * reflection.h verify.c: Update after changes to object layout.
14344
14345         * reflection.c (method_builder_encode_signature): Fix compilation on
14346         gcc 2.95.x.
14347
14348 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
14349
14350         * appdomain.h: Added support for context static fields. Added static_data
14351           field to MonoAppContext and renamed thread_static_fields to a more
14352           generic special_static_fields in MonoAppDomain, since it can now contain
14353           context static fields.
14354         * domain.c: Updated hashtable name.
14355         * object.c: Replaced field_is_thread_static() for a more generic
14356           field_is_special_static() which also checks for context static attribute.
14357           In mono_class_vtable(), added support for static context fields.
14358         * threads.c: Changed methods that manage thread static fields to more
14359           generic methods so they can be reused both for thread and context static
14360           data.
14361         * threads.h: Declared some new methods.
14362
14363 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
14364
14365         * reflection.h: Update after changes to the managed types.
14366
14367         * reflection.c (encode_custom_modifiers): New helper function.
14368
14369         * reflection.c (method_encode_signature): Emit custom modifiers.
14370
14371         * reflection.c (field_encode_signature): Emit custom modifiers.
14372
14373 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
14374
14375         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
14376
14377         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
14378         implementation.
14379
14380         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
14381         icall.
14382
14383         * object.c (mono_field_get_value_object): New function.
14384
14385         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
14386         specific.
14387
14388 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
14389
14390         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
14391         return a preallocated out-of-memory exception instance.
14392
14393         * object.c (out_of_memory): Use the new function.
14394
14395         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
14396         flag is before the custom modifiers. Fixes #49802.
14397
14398 2003-11-16  Martin Baulig  <martin@ximian.com>
14399
14400         * class.c (mono_class_is_open_constructed_type): Implemented the
14401         MONO_TYPE_GENERICINST case.
14402
14403 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
14404
14405         * assembly.c (mono_assembly_fill_assembly_name): New function to
14406         fill out the MonoAssemblyName structure.
14407         (mono_assembly_open): Use the new function.
14408
14409         * icall.c (fill_reflection_assembly_name): New helper function.
14410
14411         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
14412         new function.
14413
14414         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
14415
14416 2003-11-15  Martin Baulig  <martin@ximian.com>
14417
14418         * class.c (mono_class_is_open_constructed_type): New public
14419         function; checks whether a type is an open constructed type,
14420         ie. whether it still contains type parameters.
14421         (mono_class_inflate_generic_type): If we're a type parameter and
14422         the inflated type is also a MONO_TYPE_(M)VAR, return the original
14423         type.
14424
14425         * class.h (MonoGenericInst): Added `guint32 is_open'.
14426
14427         * loader.c (method_from_methodspec): Check whether we're an open
14428         or closed constructed type and set `ginst->is_open'.
14429
14430         * reflection.c (mono_reflection_bind_generic_parameters): Check
14431         whether we're an open or closed constructed type and set
14432         `ginst->is_open'.
14433         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
14434         from open constructed types.
14435
14436 2003-11-15  Martin Baulig  <martin@ximian.com>
14437
14438         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14439         a generic instance (instead of a generic type declaration) with
14440         unbound generic parameters, bind them to our actual types.
14441
14442 2003-11-14  Martin Baulig  <martin@ximian.com>
14443
14444         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
14445
14446         * reflection.c (mono_reflection_bind_generic_parameters): If we're
14447         an interface type, populate `res->interfaces' with instantiated
14448         versions of all the interfaces we inherit.
14449
14450 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
14451
14452         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
14453         when MONO_PATH is set but doesn't contain the install dir.
14454
14455 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14456
14457         * icall.c:
14458         (ves_icall_Type_GetInterfaces): don't return an interface twice when
14459         it's also implemented in base classes. Fixes bug #50927.
14460
14461 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
14462
14463         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
14464         if this method is called from a finalizer. Fixes #50913.
14465
14466 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
14467
14468         * threads.c: Implement VolatileRead/VolatileWrite
14469
14470         * icall.c: Add new icalls for VolatileRead/VolatileWrite
14471
14472 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14473
14474         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
14475         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
14476         2.95.3.
14477
14478         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
14479         from Peter Ross (pro@missioncriticalit.com).
14480         
14481 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
14482
14483         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
14484
14485 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14486
14487         * assembly.c (mono_assembly_load_references): Disable check because it
14488         triggers on older corlibs which lots of people have.
14489
14490 2003-11-12  Jackson Harper  <jackson@ximian.com>
14491
14492         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
14493         load corlib.dll if mscorlib.dll is not found.
14494         * assembly.h: Remove corlib name define.
14495         * class.c:
14496         * domain.c:
14497         * image.c: Change corlib name to mscorlib.
14498         
14499 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
14500
14501         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
14502
14503 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
14504
14505         * appdomain.h: Added loader_optimization here to sync with the C#
14506         code, and add disallow_binding_redirects field.
14507
14508 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14509
14510         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
14511
14512         * reflection.c (mono_image_build_metadata): Fix crash on modules
14513         with no types.
14514
14515         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
14516
14517         * icall.c (ves_icall_get_method_info): Return callingConvention as
14518         well.
14519
14520         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
14521         namespaces from the EXPORTEDTYPE table as well.
14522
14523         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
14524         from all modules inside the assembly.
14525         
14526 2003-11-11  Martin Baulig  <martin@ximian.com>
14527
14528         * reflection.c (mono_reflection_bind_generic_parameters): Make
14529         this work for interfaces.
14530
14531 2003-11-11  Martin Baulig  <martin@ximian.com>
14532
14533         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
14534
14535 2003-11-11  Martin Baulig  <martin@ximian.com>
14536
14537         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
14538         "MonoInflatedMethod" and "MonoInflatedCtor".
14539
14540 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
14541
14542         * reflection.c (resolution_scope_from_image): Use the assembly table
14543         from the manifest module, since other modules don't have it.
14544
14545         * debug-helpers.c (mono_type_full_name): New helper function.
14546
14547         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
14548
14549         * image.c (mono_image_load_file_for_image): New public function which
14550         is a replacement for the load_file_for_image in class.c.
14551
14552         * assembly.c (mono_assembly_load_module): A wrapper for the function
14553         above which does assembly association and reference loading too.
14554
14555         * class.c (mono_class_from_name): Call mono_assembly_load_module.
14556
14557 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14558
14559         * appdomain.c: not all of the attributes for the full assembly name
14560         are required and the order doesn't matter. Fixes bug #50787.
14561
14562 2003-11-10  Dick Porter  <dick@ximian.com>
14563
14564         * locales.c: Use platform-endian UTF16
14565
14566 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14567
14568         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14569         
14570 2003-11-10  Martin Baulig  <martin@ximian.com>
14571
14572         * metadata.c
14573         (mono_metadata_load_generic_params): Make this actually work.
14574
14575         * reflection.c (mono_reflection_bind_generic_parameters): If our
14576         parent is a generic instance, pass all the `types' to it, no
14577         matter whether it has the same number of type parameters or not.
14578
14579 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
14580
14581         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
14582
14583         * assembly.c (mono_assembly_load_references): Move the image<->assembly
14584         assignment code to this function so it gets called recursively for all
14585         modules.
14586
14587         * image.c (load_modules): Remove the assembly assignment since it is
14588         now done by mono_assembly_load_references.
14589         
14590         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
14591         Add 'module' argument.
14592         (mono_module_get_types): New helper function.
14593         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
14594
14595 2003-11-08  Martin Baulig  <martin@ximian.com>
14596
14597         * class.c (mono_class_inflate_generic_method): Interface method
14598         don't have a header.
14599
14600         * reflection.c (mono_image_get_methodspec_token): Take an
14601         additional `MonoGenericInst *' argument instead of reading it from
14602         the header; this is necessary to support interfaces.
14603         (mono_image_create_token): Pass the `MonoGenericInst *' from the
14604         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
14605         (inflated_method_get_object): Take an additional `MonoGenericInst *'
14606         argument.
14607
14608         * reflection.h (MonoReflectionInflatedMethod): Added
14609         `MonoGenericInst *ginst'.
14610
14611 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
14612
14613         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
14614
14615 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
14616
14617         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
14618
14619 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
14620
14621         * reflection.c 
14622         (reflection_methodbuilder_from_method_builder):
14623         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
14624         initialize a ReflectionMethodBuilder structure.
14625         (mono_image_get_methodbuilder_token):
14626         (mono_image_get_ctorbuilder_token): New functions to emit memberref
14627         tokens which point to types in another module inside the same assembly.
14628
14629         * reflection.c: Use the new helper functions.
14630         
14631         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
14632
14633         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
14634         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
14635
14636         * reflection.c (resolution_scope_from_image): Emit a moduleref if
14637         neccesary.
14638
14639         * reflection.c (mono_image_build_metadata): Emit metadata only for the
14640         current module. Emit the manifest only for the main module.
14641
14642         * reflection.c (mono_image_create_token): Add assertion when a 
14643         memberref needs to be created.
14644
14645         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
14646
14647         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
14648         larger buffer for the custom attribute blob. Fixes #50637.
14649         
14650 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14651
14652         * threadpool.c: notify listener on async processing handles after
14653         invoking the async callback. Thanks to Zoltan.
14654
14655 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14656
14657         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
14658         avoid code duplication.
14659
14660         * reflection.h (MonoDynamicImage): New type which is currently unused,
14661         but will be used through the ref.emit code in place of 
14662         MonoDynamicAssembly.
14663
14664         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14665         object layout.
14666
14667         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
14668         a MonoDynamicImage instead of just a MonoImage.
14669         
14670         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
14671         icalls to ModuleBuilder but keep their semantics, so they will work
14672         with moduleb->assemblyb. This will change later.
14673         
14674 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14675
14676         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
14677         object layout.
14678
14679         * reflection.c (mono_image_build_metadata): Avoid creation of a default
14680         main module, since it is now done by the managed code.
14681
14682 2003-11-03  Martin Baulig  <martin@ximian.com>
14683
14684         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
14685         `ginst->klass' here.
14686         (method_encode_methodspec): Don't use the `ginst->generic_method's
14687         klass if it's a generic instance, use `ginst->klass' in this case.
14688
14689 2003-11-03  Martin Baulig  <martin@ximian.com>
14690
14691         * reflection.c (mono_image_get_generic_method_param_info):
14692         Removed, use mono_image_get_generic_param_info() instead.
14693         (mono_image_get_type_info): Write the GenericParam table before
14694         the Method table.  This is neccessary because in the GenericParam
14695         table, type parameters of the class (ie. '!0' etc.) must come
14696         before the ones from its generic methods (ie. '!!0' etc).
14697
14698 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
14699
14700         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
14701
14702 2003-11-02  Martin Baulig  <martin@ximian.com>
14703
14704         * reflection.c (create_generic_typespec): Take a
14705         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
14706         the generic parameters from it.
14707
14708 2003-11-02  Martin Baulig  <martin@ximian.com>
14709
14710         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
14711         instead of a `MonoClassField *' since we just need the type.
14712         (create_generic_typespec): New static function.  Creates a
14713         TypeSpec token for a generic type declaration.
14714         (mono_image_get_generic_field_token): New static function.
14715         (mono_image_create_token): If we're a FieldBuilder in a generic
14716         type declaration, call mono_image_get_generic_field_token() to get
14717         the token.
14718
14719 2003-11-02  Martin Baulig  <martin@ximian.com>
14720
14721         * reflection.h
14722         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
14723         `MonoReflectionGenericInst *declaring_type' and
14724         `MonoReflectionGenericInst *reflected_type' fields.
14725
14726         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
14727         `MonoReflectionGenericInst *declaring_type' and a
14728         `MonoReflectionGenericInst *reflected_type' argument instead of a
14729         single `MonoReflectionGenericInst *type' one.  Set
14730         `res->declaring_type' and `res->reflected_type' from them.
14731         (mono_reflection_inflate_field): Likewise.      
14732
14733 2003-11-02  Martin Baulig  <martin@ximian.com>
14734
14735         * class.c (mono_class_setup_vtable): Don't store generic methods
14736         in the vtable.  
14737
14738 2003-11-02  Martin Baulig  <martin@ximian.com>
14739
14740         * reflection.h (MonoReflectionGenericInst): Added
14741         `MonoReflectionType *declaring_type'.
14742
14743         * reflection.c (mono_reflection_bind_generic_parameters): Use
14744         `if (tb->parent)' instead of `klass->parent'.
14745
14746 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
14747
14748         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
14749         with an empty ASSEMBLY table.
14750
14751         * reflection.c (mono_image_build_metadata): Avoid using the same loop
14752         variable in the inner and outer loops.
14753
14754 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
14755
14756         * metadata.h (mono_metadata_make_token): Put parentheses around macro
14757         argument.
14758
14759         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
14760         
14761         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
14762         icalls. Instead, do everything in managed code. This is needed since
14763         it is hard to restore the original domain etc. in unmanaged code in the
14764         presence of undeniable exceptions.
14765
14766         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
14767         New icalls to push and pop appdomain refs.
14768
14769 2003-10-31  Martin Baulig  <martin@ximian.com>
14770
14771         * class.c (inflate_generic_type): Renamed to
14772         mono_class_inflate_generic_type() and made it public.
14773
14774         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
14775         New interncall.
14776
14777         * loader.c (mono_field_from_memberref): Also set the retklass for
14778         typespecs.
14779
14780         * fielder.c (mono_image_get_inflated_field_token): New static
14781         method; creates a metadata token for an inflated field.
14782         (mono_image_create_token, fixup_method): Added support for
14783         "MonoInflatedField".
14784         (fieldbuilder_to_mono_class_field): New static function.
14785         (mono_reflection_inflate_field): New public function.
14786
14787         * reflection.h
14788         (MonoReflectionGenericInst): Added `MonoArray *fields'.
14789         (MonoReflectionInflatedField): New typedef.     
14790
14791 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
14792
14793         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
14794         for Solaris and other platforms without s6_addr16
14795
14796 2003-10-30  Martin Baulig  <martin@ximian.com>
14797
14798         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
14799         argument instead of two.
14800         (mono_class_inflate_generic_signature): Likewise.
14801         (inflate_generic_header): Likewise.
14802         (mono_class_inflate_generic_method): Likewise.  In addition, if
14803         `ginst->klass' is set, it becomes the new `method->klass'.
14804
14805         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
14806         field.
14807
14808         * reflection.c (encode_generic_method_sig): Write a 0xa as the
14809         first byte. [FIXME]
14810         (method_encode_methodspec): If we have generic parameters, create
14811         a MethodSpec instead of a MethodRef.
14812         (fixup_method): Added support for "MonoInflatedMethod" and
14813         "MonoInflatedCtor".
14814         (mono_image_create_token): Added support for "MonoInflatedMethod"
14815         and "MonoInflatedCtor".
14816         (inflated_method_get_object): New static function; returns a
14817         managed "System.Reflection.MonoInflatedMethod" object.
14818         (mono_reflection_bind_generic_method_parameters): Return a
14819         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
14820         (mono_reflection_inflate_method_or_ctor): Likewise.
14821         (mono_image_get_generic_method_param_info): Initialize unused
14822         fields to zero.
14823         (mono_image_get_generic_param_info): Likewise.
14824
14825         * reflection.h (MonoReflectionInflatedMethod): New public
14826         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
14827         "S.R.MonoInflatedCtor" classes.
14828
14829         * loader.c (method_from_memberref): If we're a TypeSpec and it
14830         resolves to a generic instance, inflate the method.
14831
14832 2003-10-28  Dick Porter  <dick@ximian.com>
14833
14834         * object.c (mono_runtime_run_main): Convert command-line arguments
14835         into utf8, falling back to the user's locale encoding to do so.
14836
14837 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
14838
14839         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
14840         at this time.
14841
14842         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
14843
14844         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
14845         up icalls at method definition time. Partially fixes #33569.
14846
14847 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
14848
14849         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
14850         marshalling of arrays. Fixes #50116.
14851
14852         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
14853
14854         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
14855         points to a vtable in the dying appdomain.
14856
14857         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
14858         listeners into unmanaged code inside the lock.
14859
14860         * object.c (mono_class_vtable): Turn off typed allocation in non-root
14861         domains and add some comments.
14862
14863 2003-10-25  Martin Baulig  <martin@ximian.com>
14864
14865         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
14866
14867         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
14868
14869         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
14870         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
14871         currently parsing.  Create the generic class and store it in
14872         `generic_inst->klass' before parsing the type arguments.  This is
14873         required to support "recursive" definitions; see mcs/tests/gen-23.cs
14874         for an example.
14875         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
14876         to support recursive typespec entries.
14877
14878         * class.c (mono_class_setup_parent): If our parent is a generic
14879         instance, we may get called before it has its name set.
14880         (mono_class_from_generic): Splitted into
14881         mono_class_create_from_generic() and mono_class_initialize_generic().
14882
14883 2003-10-25  Martin Baulig  <martin@ximian.com>
14884
14885         * icall.c (ves_icall_Type_BindGenericParameters): Return a
14886         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
14887         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
14888         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
14889
14890         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
14891         (create_typespec): Likewise.
14892         (mono_reflection_bind_generic_parameters): Return a
14893         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
14894         (mono_reflection_inflate_method_or_ctor): New public function.
14895
14896         * reflection.h (MonoReflectionGenericInst): New typedef.        
14897
14898 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
14899
14900         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
14901         inside the domain lock. Fixes #49993.
14902         
14903         * object.c (mono_class_vtable): When typed allocation is used, 
14904         allocate vtables in the GC heap instead of in the mempool, since the
14905         vtables contain GC descriptors which are used by the collector even
14906         after the domain owning the mempool is unloaded.
14907
14908         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
14909
14910         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
14911         reflect what it does. Also invalidate mempools instead of freeing
14912         them if a define is set.
14913
14914         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
14915         of the appdomain.
14916         
14917         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
14918         hold the finalizable objects in this domain.
14919
14920         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
14921         appdomain.
14922
14923         * appdomain.c (mono_domain_set): New function to set the current
14924         appdomain, but only if it is not being unloaded.
14925
14926         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
14927         appdomain which is being unloaded.
14928         
14929         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
14930         unloading of the root appdomain.
14931
14932         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
14933         icall to execute a method in another appdomain. Intended as a 
14934         replacement for InternalSetDomain, which can confuse the code 
14935         generation in the JIT.
14936
14937         * appdomain.c (mono_domain_is_unloading): New function to determine
14938         whenever an appdomain is unloading.
14939
14940         * appdomain.c (mono_domain_unload): New function to correctly unload
14941         an appdomain.
14942
14943         * assembly.c (mono_assembly_load_references): Check that an assembly
14944         does not references itself.
14945
14946         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
14947         domain manually, it asks the finalizer thread to do it, then waits for
14948         the result. Also added a timeout.
14949
14950         * icall.c: Register the new icalls.
14951
14952         * threads.h threads.c: Export the mono_gc_stop_world and 
14953         mono_gc_start_world functions.
14954         
14955         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
14956         function to fill out the mempool with 0x2a.
14957
14958 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
14959
14960         * reflection.h (MonoReflectionMethodAux): New structure to store
14961         information which is rarely used, thus is not in the MonoMethod
14962         structure.
14963
14964         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
14965         store the aux info.
14966
14967         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
14968         and marshalling info into the aux structure.
14969
14970         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
14971         from the aux structure.
14972
14973         * loader.c (mono_method_get_param_names): Retrieve the param names from
14974         the aux structure.
14975         
14976 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
14977
14978         * exception.h exception.c: Add AppDomainUnloadedException && fix 
14979         warning.
14980
14981 2003-10-21  Dick Porter  <dick@ximian.com>
14982
14983         * socket-io.c
14984         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
14985         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
14986
14987 2003-10-21  Martin Baulig  <martin@ximian.com>
14988
14989         * reflection.c (mono_reflection_bind_generic_parameters):
14990         `klass->parent' is NULL for interfaces.
14991
14992 2003-10-21  Martin Baulig  <martin@ximian.com>
14993
14994         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
14995
14996 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
14997
14998         * exception.c (mono_exception_from_name_msg): New helper function for
14999         creating exceptions and initializing their message field.
15000
15001         * exception.c: Simplify functions using the new helper.
15002
15003         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
15004         New function.
15005
15006         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
15007         mono_raise_exception, since otherwise gcc doesn't generate the function
15008         epilog for raise_exception, confusing the stack unwinding in the JIT.
15009         Fixes #45043.
15010
15011         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
15012         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
15013         Fixes #49499.
15014
15015 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15016
15017         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
15018         utf8.
15019
15020 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
15021
15022         * icall.c: Removed GetUninitializedObject method because
15023           AllocateUninitializedClassInstance does the same.
15024
15025 2003-10-18  Martin Baulig  <martin@ximian.com>
15026
15027         * class.c (inflate_generic_signature): Renamed to
15028         mono_class_inflate_generic_signature() and made it public.
15029         (my_mono_class_from_generic_parameter): New static function; if we
15030         don't already have the generic parameter's MonoClass, create a
15031         very simple one which is just used internally in the runtime and
15032         not passed back to managed code.
15033
15034         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
15035
15036         * metadata.h (MonoMethodSignature): Moved the
15037         `MonoGenericParam *gen_params' to the MonoMethodHeader.
15038         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
15039
15040         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
15041         ves_icall_MonoMethod_GetGenericArguments(); this is now an
15042         interncall on the MonoMethod class, not on MethodInfo.
15043         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
15044         calling mono_reflection_bind_generic_method_parameters() directly.
15045
15046         * loader.c (mono_method_get_signature): If this is a MethodSpec;
15047         return the already computed `method->signature'.
15048         (method_from_methodspec): New static function to load a method
15049         from a MethodSpec entry.
15050         (mono_get_method_from_token): Call the new method_from_methodspec()
15051         for MethodSpec tokens.  
15052         (mono_get_method_from_token): If we're a generic method, load the
15053         type parameters.
15054
15055         * reflection.c (mono_image_get_memberref_token): Allow
15056         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
15057         table.
15058         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
15059         (mono_image_create_token): First check whether it's a generic
15060         method (so we'd need to create a MethodSpec), then do the other
15061         two alternatives.
15062         (mono_reflection_bind_generic_method_parameters): Return a
15063         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
15064         called directly from the interncall.
15065
15066 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
15067
15068         * reflection.c (load_public_key): Move loading of the public key
15069         into managed code.
15070
15071         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
15072
15073         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
15074         fields.
15075
15076         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
15077         culture, hash_alg and public_key. Fixes #49555.
15078
15079 2003-10-17  Martin Baulig  <martin@ximian.com>
15080
15081         * class.h (MonoGenericInst): Moved this declaration here and added
15082         `MonoMethod *generic_method'.
15083
15084         * icall.c
15085         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
15086         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
15087
15088         * metadata.c (mono_metadata_type_equal): Two types of
15089         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
15090         index; ie. don't compare the address of the `MonoGenericParam'
15091         structure.
15092         (mono_metadata_load_generic_params): Removed the `MonoMethod
15093         *method' argument.
15094
15095         * metadata.h (MonoGenericInst): Moved declaration to class.h.
15096         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
15097
15098         * reflection.c (method_encode_signature): Encode the number of
15099         generic parameters.
15100         (encode_generic_method_sig): New static function.
15101         (method_encode_methodspec): New static function; creates an entry
15102         in the MethodSpec table for a generic method.
15103         (mono_image_get_methodspec_token): New static function.
15104         (mono_image_create_token): Call mono_image_get_methodspec_token()
15105         for generic methods.
15106         (mono_reflection_bind_generic_method_parameters): New public
15107         function.  Instantiates a generic method.
15108
15109 2003-10-16  Martin Baulig  <martin@ximian.com>
15110
15111         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
15112         *gen_params' here from MonoMethodHeader.
15113
15114         * metadata.c (mono_metadata_parse_method_signature): If we have
15115         generic parameters, initialize `method->gen_params' and then set
15116         the correct `type->data.generic_param' in all the parameters.
15117
15118 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
15119
15120         * threads.c (mono_threads_get_default_stacksize): New function to 
15121         return the default stacksize.
15122
15123         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
15124         termination of the finalizer thread, since the previous method had
15125         race conditions. Fixes #49628.
15126
15127         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
15128         as for the other managed threads.
15129
15130 2003-10-16  Martin Baulig  <martin@ximian.com>
15131
15132         * class.c (inflate_generic_signature): Copy `generic_param_count'
15133         and `gen_params'.
15134
15135         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
15136         New interncall.
15137
15138         * metadata.c (mono_metadata_parse_method_signature): Actually set
15139         the `method->generic_param_count' here.
15140         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
15141
15142 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
15143
15144         * object.h: Add a new field to TypedRef to simplify the implementation
15145         of the REFANY opcodes in the JIT.
15146
15147         * icall.c: Make use of the new field.
15148
15149         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
15150         dynamically.
15151
15152 2003-10-15  Martin Baulig  <martin@ximian.com>
15153
15154         * class.c (mono_class_from_gen_param): Renamed to
15155         mono_class_from_generic_parameter() and moved most of the
15156         functionality from mono_reflection_define_generic_parameter()
15157         here; ie. we create a "real" class here.
15158         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
15159         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
15160         previously been called.
15161
15162         * class.h (MonoGenericParam): Moved the declaration of this struct
15163         here from metadata.h and added `MonoMethod *method'.
15164
15165         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
15166         interncall.
15167
15168         * loader.c (mono_get_method_from_token): If we have any generic
15169         parameters, call mono_metadata_load_generic_params() to read them
15170         from the MONO_TABLE_GENERICPAR.
15171
15172         * metadata.c (mono_metadata_load_generic_params): Added
15173         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
15174
15175         * metadata.h (MonoMethodSignature): Replaced
15176         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
15177         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
15178
15179         * reflection.c (mono_reflection_define_generic_parameter): Moved
15180         most of the functionality into the new
15181         mono_class_from_generic_parameter(); set the `method' field if
15182         we're a method parameter.       
15183
15184 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
15185
15186         * marshal.c (emit_struct_conv): if native size is 0
15187         emit no code.
15188
15189 2003-10-14  Martin Baulig  <martin@ximian.com>
15190
15191         * icall.c: The generics API has changed in the spec since it was
15192         added to System.Type; these modifications make it match the spec
15193         again.
15194         (ves_icall_Type_GetGenericParameters): Renamed to
15195         `ves_icall_Type_GetGenericArguments'.
15196         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
15197         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
15198         `ves_icall_MonoType_get_HasGenericArguments'.
15199         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
15200         `ves_icall_MonoType_get_IsGenericParameter'.
15201         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
15202         this is no interncall anymore.
15203         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
15204         `ves_icall_TypeBuilder_get_IsGenericParameter'.
15205
15206 2003-10-14  Martin Baulig  <martin@ximian.com>
15207
15208         * reflection.c (mono_reflection_bind_generic_parameters): Also
15209         inflate generic methods if we're reading the class from IL.
15210
15211 2003-10-13  Martin Baulig  <martin@ximian.com>
15212
15213         * reflection.c (mono_reflection_define_generic_parameter): This
15214         method isn't called directly from the icall anymore; take a
15215         `MonoReflectionAssemblyBuilder *' so we can use this for type and
15216         method generic parameters.
15217         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
15218         (method_builder_encode_signature): Encode generic parameters.
15219         (mono_image_get_method_info): Write generic params to the
15220         MONO_TABLE_GENERICPARAM table.
15221
15222         * reflection.h (MonoReflectionMethodBuilder): Added
15223         `MonoArray *generic_params'.
15224
15225         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
15226
15227         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
15228         wrapper for mono_reflection_define_generic_parameter().
15229         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
15230
15231 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
15232
15233         * marshal.h: Add missing function to fix build.
15234
15235         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
15236         the SetLastError pinvoke attribute.
15237
15238         * marshal.c (mono_marshal_set_last_error): New helper function called
15239         by the generated code.
15240         
15241         * marshal.c (mono_mb_emit_branch): New helper function.
15242
15243         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
15244
15245         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
15246         classes as parameters and return values of delegates. Fixes #29256. 
15247
15248 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
15249
15250         * locales.c: use gint32 in non HAVE_ICU case
15251
15252 2003-10-11  Martin Baulig  <martin@ximian.com>
15253
15254         * mono-debug.c (mono_debug_add_method): Added a workaround for
15255         bug #48591.
15256
15257 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
15258
15259         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
15260         delegates passed to native code must use the STDCALL calling 
15261         convention. Fixes #35987.
15262
15263 2003-10-10  Martin Baulig  <martin@ximian.com>
15264
15265         * class.c (inflate_generic_type): If we're inflating for a generic
15266         type instance (and not for a generic method), return
15267         MONO_TYPE_MVAR unchanged.
15268
15269 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15270
15271         * string-icalls.c: Join ignores null strings in the source array.
15272         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
15273         * threads.c: GetAvailableTheads is slightly more accurate.
15274
15275 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
15276
15277         * threads.h threads.c : add mono_threads_set_default_stacksize
15278         and pass default to CreateThread calls.
15279
15280 2003-10-09  Dick Porter  <dick@ximian.com>
15281
15282         * icall.c:
15283         * locales.h:
15284         * locales.c: Internal calls for constructing CultureInfo and
15285         related objects from libicu (if its available.)
15286
15287 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
15288
15289         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
15290
15291 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15292
15293         * threadpool.c: added an argument to async_invoke_thread that is the
15294         item to process, pass the MonoAsyncResult to the thread start function
15295         when creating a new thread. This way we don't need to acquire any lock
15296         when we're creating a new thread. Readded a semaphore for faster
15297         response times (instead of that Sleep i added).
15298
15299 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
15300
15301         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
15302         get daylight change dates better on Windows, fix handling
15303         of platforms without tm_gmtoff.
15304
15305 2003-10-06  Martin Baulig  <martin@ximian.com>
15306
15307         * class.c (inflate_generic_method): Renamed to
15308         mono_class_inflate_generic_method() and made public.
15309         (mono_class_init): Don't inflate the generic methods here.
15310         (mono_class_from_generic): Added `gboolean inflate_methods'
15311         argument.  Inflate the methods here.
15312
15313         * loader.c (mono_method_get_param_names): Ignore instances of
15314         generic types for the moment.
15315
15316         * reflection.c (fixup_method): Added support for inflated methods.
15317         (mono_image_create_token): Use mono_image_get_methodref_token()
15318         for inflated methods.
15319         (mono_custom_attrs_from_param): Ignore instances of generic types
15320         for the moment.
15321         (mono_reflection_bind_generic_parameters): New public function.
15322         Moved all the functionality from
15323         ves_icall_Type_BindGenericParameters() here and added support for
15324         dynamic types.
15325         (mono_reflection_define_generic_parameter): Initialize
15326         `klass->methods' here.
15327
15328         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
15329         functionality into mono_reflection_define_generic_parameter().
15330         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
15331         TypeBuilder, return that TypeBuilder.
15332
15333 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15334
15335         * appdomain.c: removed mono_delegate_semaphore.
15336
15337         * threadpool.c:
15338         (mono_thread_pool_add): moved hash table creation inside and the thread 
15339         creation outside of the critical region.
15340         (mono_thread_pool_finish): removed obsolete code.
15341         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
15342         continue or exit the thread depending on the queue.
15343
15344 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
15345
15346         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
15347         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
15348         handle more bool marshalling options
15349
15350 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
15351
15352         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
15353         arrays of structs. Also add a more descriptive error message when
15354         a structure member is marshalled as LPArray.
15355
15356 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
15357
15358         * marshal.c (mono_marshal_get_native_wrapper): Add support for
15359         marshalling arrays of complex types. Fixes #29098. Also remove an
15360         usused and incomplete function.
15361
15362 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
15363
15364         * gc.c: report heap_size - free_bytes as total memory allocated
15365         (bug#49362).
15366
15367 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
15368
15369         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
15370         fix timezone handling problems on Windows.
15371         
15372         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
15373         asserts when the year is outside the range handled by ms the functions.
15374
15375         * class.c (setup_interface_offsets): If the class is an interface,
15376         fill out its interface_offsets slot.
15377
15378 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15379
15380         * threadpool.c: mark threadpool threads as background.
15381
15382 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
15383
15384         * decimal.c - define DECINLINE to nothing if not using GCC
15385
15386 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
15387
15388         * assembly.c: More refcount fixes.
15389
15390 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15391
15392         * string-icalls.c: if we're not trimming, return the same string.
15393         When not splitting, don't create a new string.
15394
15395 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15396
15397         * image.c:
15398         (mono_image_open): increment the ref_count inside the critical section.
15399
15400 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
15401
15402         * image.c (mono_image_open): Fix reference counting bug.
15403
15404 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
15405
15406         * marshal.c (mono_marshal_type_size) struct alignment changed for 
15407         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
15408         64bits. Avoid leak in mono_marshal_get_native_wrapper when
15409         mono_lookup_pinvoke_call throws.        
15410
15411 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
15412
15413         * reflection.c (mono_reflection_parse_type): Fix #49114.
15414
15415         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
15416         temporary workaround for cygwin header problem.
15417
15418         * object.c (mono_object_isinst): Synchronize this with the code
15419         generated by the JIT for casts.
15420
15421 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
15422
15423         * reflection.c (encode_type): Fix #38332.
15424
15425 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
15426
15427         * marshal.c (mono_marshal_method_from_wrapper): New function to return
15428         the original method from the wrapper method.
15429
15430 2003-09-25  Martin Baulig  <martin@ximian.com>
15431
15432         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
15433         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
15434         (ves_icall_Type_get_IsGenericInstance): New interncall.
15435
15436 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
15437
15438         * object.c: fix cast warning in big endian code.
15439
15440 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
15441
15442         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
15443         
15444 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15445
15446         * assembly.c: don't call check_env from mono_assembly_load. It's
15447         already done once in mono_assemblies_init and may cause headaches when
15448         multiple threads are loading assemblies.
15449
15450 2003-09-19  Martin Baulig  <martin@ximian.com>
15451
15452         * reflection.c (mono_reflection_define_generic_parameter): Don't
15453         allocate `klass->methods', set `klass->flags' to
15454         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
15455
15456 2003-09-18  Martin Baulig  <martin@ximian.com>
15457
15458         * class.c (mono_class_init): Don't create `class->methods' if it's
15459         already initialized.
15460
15461         * metadata.c (mono_metadata_load_generic_params): Make this
15462         actually work.
15463
15464         * reflection.c (mono_reflection_define_generic_parameter): Set
15465         parent class and interfaces from the constraints.
15466
15467         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
15468         to keep this struct in sync with the declaration in TypeBuilder.cs.
15469
15470 2003-09-17  Martin Baulig  <martin@ximian.com>
15471
15472         * metadata.h (MonoType): Replaced the data's `int type_param'
15473         field with `MonoGenericParam *generic_param'.
15474         (MonoGenericParam): Added `MonoClass *klass'.
15475
15476         * class.c (mono_class_from_gen_param): Removed the
15477         `MonoImage *image' and `int type_num' arguments.
15478
15479         * metadata.c (mono_metadata_parse_generic_param): New static
15480         method; creates a MonoGenericParam which just contains the index.
15481         (do_mono_metadata_parse_type): Call
15482         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
15483         MONO_TYPE_MVAR.
15484
15485         * reflection.c (mono_image_typedef_or_ref): Generic type
15486         parameters may be in the same assembly, but never use a typedef
15487         for them.
15488         (mono_reflection_define_generic_parameter): We're now creating a
15489         "real" class for the type parameter; it's now safe to call
15490         mono_class_from_mono_type() on the class'es type, it'll do the
15491         right thing.
15492
15493 2003-09-16  Martin Baulig  <martin@ximian.com>
15494
15495         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
15496         `symfile->range_entry_size' and `symfile->class_entry_size' here;
15497         the `symfile' data structure must be fully initialized before it
15498         gets added to the table.
15499
15500 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
15501
15502         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
15503
15504         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
15505         class init trampolines.
15506
15507 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
15508
15509         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
15510         to the built-in profiler to turn off time and allocation profiling
15511         respectively.
15512
15513 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
15514
15515         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
15516         g_direct_equal.
15517
15518         * debug-helpers.c (mono_method_full_name): Print the wrapper type
15519         in human readable form.
15520
15521 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
15522
15523         * reflection.c icall.c: Fixed warnings.
15524
15525         * image.c (load_class_names): Use a temporary hash table to hold the
15526         namespaces in order to avoid doing many string comparisons.
15527
15528         * image.h: Fix typo.
15529
15530         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
15531         Pass NULL instead of g_direct_equal to the GHashTable constructor 
15532         since the NULL case is short-circuited inside g_hash_table_lookup, 
15533         leading to better performance.  
15534
15535         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
15536         obtain the first custom attribute for a given index. Depends on the
15537         CustomAttribute table being sorted by the parent field.
15538
15539         * reflection.c (mono_custom_attrs_from_index): Use the new function 
15540         for better performance.
15541
15542 2003-09-07  Martin Baulig  <martin@ximian.com>
15543
15544         * class.c (mono_class_init): If we're a generic instance, inflate
15545         all our methods instead of loading them from the image.
15546         (mono_class_from_generic): Set `class->methods = gklass->methods'.
15547
15548 2003-09-07  Martin Baulig  <martin@ximian.com>
15549
15550         * mono-debug-debugger.c: Added support for constructors.
15551
15552 2003-09-06  Martin Baulig  <martin@ximian.com>
15553
15554         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
15555         New interncall.
15556
15557         * reflection.c (mono_reflection_setup_generic_class): Call
15558         ensure_runtime_vtable() to create the vtable.
15559
15560 2003-09-05  Martin Baulig  <martin@ximian.com>
15561
15562         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
15563         MONO_TYPE_MVAR.
15564
15565 2003-09-04  Martin Baulig  <martin@ximian.com>
15566
15567         * reflection.c (mono_reflection_define_generic_parameter): Generic
15568         parameters start with zero.
15569
15570 2003-09-04  Martin Baulig  <martin@ximian.com>
15571
15572         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
15573
15574         * reflection.h (MonoReflectionGenericParam): New typedef.
15575         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
15576         the generic parameters from the managed TypeBuilder.
15577
15578         * reflection.c (mono_reflection_define_generic_parameter): New function.
15579         (mono_reflection_create_runtime_class): Encode generic parameters.
15580         (mono_reflection_setup_generic_class): New function; this is
15581         called after adding adding all generic params to the TypeBuilder.
15582         (encode_type): Added MONO_TYPE_VAR.
15583
15584 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
15585
15586         * class.h class.c (mono_class_needs_cctor_run): Moved this method
15587         here from the JIT.
15588
15589         * assembly.h assembly.c: Moved the AOT loading code into an assembly
15590         load hook.
15591
15592 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
15593
15594         * reflection.h reflection.c class.h class.c: Delete duplicate 
15595         definition of mono_type_get_name () from reflection.c and export the
15596         one in class.c.
15597
15598         * class.c: Class loading fixes from Bernie Solomon 
15599         (bernard@ugsolutions.com).
15600
15601         * reflection.c: Endianness fixes from Bernie Solomon 
15602         (bernard@ugsolutions.com).
15603         
15604 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
15605
15606         * assembly.h assembly.c: Define a file format version for AOT
15607         libraries.
15608         
15609         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
15610
15611         * appdomain.h (MonoJitInfo): New field to determine whenever the
15612         code is domain neutral.
15613         
15614 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
15615
15616         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
15617
15618 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
15619
15620         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
15621         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
15622         Avoid caching the result since strings must be domain specific. Fixes
15623         #48050.
15624
15625 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
15626
15627         * marshal.c (mono_marshal_init): Make this callable multiple times
15628         since it is hard to find a correct place to call it.
15629
15630         * object.c (mono_runtime_class_init): Execute static constructors in
15631         the correct appdomain.
15632
15633         * image.c (build_guid_table): Handle the case when multiple images have
15634         the same GUID.
15635
15636 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15637
15638         * icall.c: added a couple of icalls for System.Web.
15639
15640 2003-08-28  Martin Baulig  <martin@ximian.com>
15641
15642         * icall.c (ves_icall_Type_BindGenericParameters): Use
15643         `klass->generic_inst' instead of `&klass->byval_arg' in the
15644         mono_type_get_object() call.  The returned type must be
15645         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
15646
15647 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
15648
15649         * NOTES: New file.
15650
15651         * object.c (mono_class_proxy_vtable): Make it thread safe.
15652
15653         * pedump.c: Fix warning.
15654
15655         * object.c appdomain.h: Get rid of metadata_section. 
15656         It is no longer needed and it was causing deadlocks with domain->lock.
15657
15658         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
15659
15660 2003-08-26  Martin Baulig  <martin@ximian.com>
15661
15662         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
15663
15664 2003-08-26  Martin Baulig  <martin@ximian.com>
15665
15666         * pedump.c (main): Call mono_metadata_init(),
15667         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
15668         and mono_loader_init().
15669
15670 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
15671
15672         * loader.h: Add missing include to fix build.
15673
15674         * image.h: mono_image_load_references is no more.
15675
15676         * assembly.c: Reworked assembly loading to make it really thread safe.
15677         After these changes, the assembly returned by mono_assembly_open is
15678         fully initialized, i.e. all its references assemblies are loaded.
15679
15680         * assembly.c (mono_image_load_references): Renamed to 
15681         mono_assembly_load_references, and made private, since clients no
15682         longer need to call it.
15683
15684         * class.c: Removed calls to mono_assembly_load_references, since it was
15685         a source of deadlocks.
15686
15687         * loader.h loader.c class.h class.c: Protect data structures using a 
15688         new lock, the loader lock.
15689
15690         * class.c (mono_class_setup_vtable): Create temporary hash tables and
15691         GPtrArrays only when needed.
15692
15693         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
15694         into empty structures by mcs. Fixes pinvoke7.cs.
15695         
15696         * domain.c (mono_init): Call a new initialization function.
15697
15698         * appdomain.c (mono_runtime_init): Call the new initializer function
15699         of the marshal module.
15700
15701         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
15702         inserted into empty structures by mcs. Fixes pinvoke7.cs.
15703
15704         * marshal.h marshal.c: Added locks around the wrapper caches to make
15705         this module thread safe.
15706
15707         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
15708         this argument. Fixes pinvoke1.exe.
15709
15710 2003-08-25  Lluis Sanchez <lluis@ximian.com>
15711
15712         * object.h: Added call_type field to MonoMethodMessage and the corresponding
15713         enumeration of values. Removed fields to store remote call output values in
15714         MonoAsyncResult. Not needed any more.
15715         * object.c: Initialize call_type and async_result fields in mono_message_init.
15716         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
15717         dispatching the message.
15718         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
15719         async call to finish. To do it use a message with EndInvoke call type.
15720
15721 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
15722
15723         * loader.h loader.c (mono_method_hash_marhal_info): New function which
15724         determines whenever a method has marshalling info.
15725
15726 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15727
15728         * assembly.c: fix the build on windows.
15729
15730 2003-08-22 Lluis Sanchez <lluis@ximian.com>
15731
15732         * object.cs: Fixed bug #47785.
15733
15734 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
15735
15736         * string-icalls.c (StringReplace): If their are no occurances of
15737         the old string found return a reference to the supplied
15738         string. This saves some memory and matches MS behavoir.
15739         
15740 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15741
15742         * socket-io.c: fixed compilation for systems that define AF_INET6
15743         and don't define SOL_IP/SOL_IPV6.
15744
15745 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
15746
15747         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
15748         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
15749
15750         * rawbuffer.c rawbuffer.h: Make this module thread safe.
15751
15752         * domain.c: Make this module thread safe.
15753
15754         * domain.c (mono_init): Call new initialization function.
15755
15756         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
15757         reference types too. Fixes #38812.
15758
15759         * image.c (mono_image_init): Fixed warnings.
15760
15761         * class.c (mono_class_from_typeref): Handle assembly load failure
15762         correctly.
15763
15764         * appdomain.c (add_assemblies_to_domain): Handle the case when
15765         the references of an assembly are not yet loaded.
15766
15767         * metadata.c image.c assembly.c: Moved initialization of global
15768         variables to a separate function called at startup since lazy 
15769         initialization of these variables is not thread safe.
15770         
15771         * image.c assembly.c: Made this module thread safe by adding locks in 
15772         the appropriate places.
15773
15774         * domain.c (mono_init): Call the new initialization functions of the
15775         three modules.
15776
15777 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
15778
15779         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
15780           make a direct call. It is proxy's work to make the call asynchronous.
15781           mono_delegate_end_invoke(): If the targe is a proxy, just collect
15782           the return values.
15783         * object.cs: mono_method_call_message_new(): read AsyncResult and
15784           state object from parameters list, if this info is requested.
15785         * object.h: Added fields to store remote call output values in
15786           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
15787
15788 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
15789
15790         * object.h: add needed fields to MonoThread.
15791         * threads.c, threads.h: allow registering a function to cleanup data
15792         allocated per thread by the JIT.
15793
15794 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15795
15796         * loader.h: portability fix by Bernie Solomon
15797         * <bernard@ugsolutions.com>.
15798
15799 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
15800
15801         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
15802         return a MonoArray. This simplifies the code and also ensures that
15803         the cache allways contains an object reference as a value.
15804
15805         * icall.c (ves_icall_get_parameter_info): Simplified using the new
15806         function.
15807
15808 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15809
15810         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
15811         fixes a problem with byte ordering when getting the address family for
15812         a socket.
15813
15814 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
15815
15816         * .cvsignore: Added monosn.
15817
15818         * reflection.h reflection.c loader.c: Added support for parameter
15819         marshalling to dynamically created types. Fixes #47295.
15820
15821 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
15822
15823         * rand.c: remove useless warnings.
15824
15825 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
15826
15827         * class.c: implemented ldtoken for methods and fieldrefs.
15828
15829 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15830
15831         * threadpool.c: when mono_async_invoke was called, no one took care of
15832         monitoring the queue. So if the method invoked took some time and we
15833         got new async invoke requests after 500 ms (the thread created waited
15834         that long in WaitForSingleObject), the new async invoke was not called
15835         until the previous one finished.
15836
15837         This is fixed now. Thanks to Totte for helping with it.
15838
15839 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15840
15841         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
15842
15843 2003-08-11  Martin Baulig  <martin@ximian.com>
15844
15845         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
15846
15847 2003-08-06  Martin Baulig  <martin@ximian.com>
15848
15849         * mono-debug-debugger.c: Added support for static fields,
15850         properties and methods.
15851
15852 2003-08-06  Martin Baulig  <martin@ximian.com>
15853
15854         * mono-debug-debugger.c: Don't store the MonoString's vtable to
15855         make this work for applications with multiple application domains.
15856
15857 2003-08-04  Martin Baulig  <martin@ximian.com>
15858
15859         * mono-debug-debugger.c: Completely reworked the type support; the
15860         most important thing is that we're now just using one single
15861         `MonoType' instance per type.
15862
15863 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
15864
15865         * mono-endian.h, mono-endian.c, icall.c: Added icall
15866         ves_icall_System_Double_AssertEndianity to assert double word endianity
15867         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
15868
15869 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15870
15871         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
15872         support, icalls and fixes.
15873
15874 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
15875
15876         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
15877         classes that are a punctuation character in .NET is not the same a
15878         g_unichar_ispunct.
15879
15880 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
15881
15882         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
15883
15884 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
15885
15886         * icall.c: Add new MemCopy internalcall.
15887         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
15888         Simplified code; It is not necessary to handle all the cases here,
15889         as the C# code takes care of it.  Only handle the case of the name
15890         resource embedded into the assembly.
15891
15892         Changed signature to return the data pointer and the size of the
15893         data. 
15894
15895 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
15896
15897         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
15898         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
15899
15900 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15901
15902         * socket-io.c: ignore EINTR error in select.
15903
15904 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
15905
15906         * class.h, class.c: removed unused subclasses field in MonoClass.
15907
15908 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
15909
15910         * icall.c: improve fix of get_base_definition(). If the parent class
15911           doesn't have the mehod, look at the parent of the parent.
15912         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
15913           to check if a parameter is an in or out parameter
15914           (PARAM_ATTRIBUTE_IN is not set by default).
15915           mono_method_return_message_restore(): Use mono_class_value_size to
15916           get the size of a value type. mono_type_stack_size (parameterType)
15917           does not return the correct value if parameterType is byRef.
15918           mono_load_remote_field(), mono_load_remote_field_new(),
15919           mono_store_remote_field(), mono_store_remote_field_new():
15920           raise exception if the remote call returns an exception.
15921
15922 2003-07-28  Martin Baulig  <martin@ximian.com>
15923
15924         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
15925         method.  This is a wrapper around mono_runtime_invoke() which
15926         boxes the instance object if neccessary.
15927
15928 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
15929
15930         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
15931         metadata.h, row-indexes.h, verify.c: first cut of generics support.
15932
15933 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
15934
15935         * icall.c: disable mcs bug workaround.
15936
15937 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
15938
15939         * object.c (mono_runtime_class_init): Take the metadata_section
15940         mutex before obtaining the domain mutex.
15941
15942         * appdomain.h: Added definition of metadata_section mutex here. 
15943
15944         * object.c: define metadata_mutex here.
15945
15946 2003-07-24  Ravi Pratap  <ravi@ximian.com>
15947
15948         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
15949         fixed.
15950
15951 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
15952
15953         * reflection.c: Fix bug #46669
15954
15955 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15956
15957         * exception.c:
15958         * exception.h:
15959         * icall.c:
15960         * object.h: fill in the type name for TypeLoadException.
15961
15962 2003-07-23  Ravi Pratap  <ravi@ximian.com>
15963
15964         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
15965         relationship between TypeBuilders while compiling corlib) and bug
15966         45993 (Array types returned from the runtime while compiling
15967         corlib were from the loaded corlib).
15968
15969 2003-07-22  Martin Baulig  <martin@ximian.com>
15970
15971         * mono-debug-debugger.c: Reworked the type support a bit more;
15972         distinguish between types and classes.
15973
15974 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
15975
15976         * icall.c: add IsArrayImpl icall.
15977
15978 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
15979
15980         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
15981         initializing real_size only once. Also fix bug #46602.
15982
15983 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
15984
15985         * object.c: Renamed mono_metadata_section to metadata_section.
15986
15987 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
15988
15989         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
15990           empty array if the type is an array. Fixed.
15991           ves_icall_MonoMethod_get_base_definition: if the base method
15992           is abstract, get the MethodInfo from the list of methods of
15993           the class.
15994         * reflection.c: ParameterInfo.PositionImpl should be zero-based
15995           and it was 1-based. Fixed in mono_param_get_objects.
15996
15997 2003-07-20  Martin Baulig  <martin@ximian.com>
15998
15999         * mono-debug.h: Set version number to 31.
16000         (mono_debug_init): Added `MonoDomain *' argument.
16001
16002         * mono-debug-debugger.c: Reworked the type support; explicitly
16003         tell the debugger about builtin types; pass the `klass' address to
16004         the debugger.
16005
16006 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
16007
16008         * image.c: Allow new metadata tables to be loaded without a
16009         warning. Also update the warning message to give the new constant value.
16010                 
16011 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
16012
16013         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
16014         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
16015         array type representation changes.
16016
16017 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16018
16019         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
16020         on Environment.Exit () call.
16021
16022 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
16023
16024         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
16025         requires a matching corlib.
16026
16027 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16028
16029         * Changelog: My editor decided to add a CR to each line. Sorry about that.
16030           Committed again without the CRs.
16031         
16032 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
16033
16034         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
16035           getting it from the "this" socket instance. Did not work
16036           if the socket is a subclass of Socket.
16037           Also fixed bug #35371.
16038
16039 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16040
16041         * metadata.c: fixed size for TypedByRef.
16042         * loader.c: when searching for a method, consider the vararg amrker.
16043         * unicode.c, decimal.c: constify some arrays.
16044
16045 2003-07-15  Dick Porter  <dick@ximian.com>
16046
16047         * socket-io.c: Fixed compilation for gcc < 3.2.
16048
16049         Fixed compilation for machines that don't have AF_INET6 (thanks to
16050         Bernie Solomon <bernard@ugsolutions.com> for that part.)
16051
16052         Fixed compile warnings.
16053         
16054         Fixed formatting and line endings.
16055
16056 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
16057
16058         * socket-io.h:
16059         * socket-io.c: Added IPv6 support.
16060
16061 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
16062
16063         * class.c (mono_class_is_assignable_from): New function to implement
16064         the is_assignable_from logic. Used by mono_object_isinst, 
16065         Type::IsAssignableFrom () and the interpreter.
16066
16067         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
16068         Object, even interfaces.
16069         
16070         * object.c (mono_object_isinst): Implement in terms of 
16071         is_assignable_from.
16072
16073         * icall.c (ves_icall_type_is_assignable_from): New icall.
16074
16075 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
16076
16077         * domain.c (foreach_domain): fix compiler warning.
16078
16079 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
16080
16081         * image.c (load_metadata_ptrs): use g_strndup because strndup is
16082         not available on all plattforms
16083
16084 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
16085
16086         * image.h image.c: Store the metadata version string in MonoImage.
16087         * icall.c: New icall to retrieve the image version.
16088         * reflection.c (create_dynamic_image): Fill in the image version field
16089         * reflection.c (build_compressed_metadata): Use the image version
16090         from the image structure.
16091
16092 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16093
16094         * appdomain.c: modified comment.
16095         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
16096         That will be its last iteration when mono_gc_cleanup is called from
16097         mono_runtime_cleanup and before the domain is unloaded.
16098
16099         Fixes bug #45962.
16100
16101 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
16102
16103         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
16104         attributes.
16105
16106 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16107
16108         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
16109         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
16110         Bernie Solomon <bernard@ugsolutions.com>.
16111
16112 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16113
16114         * object.c, object.h: provide mono_object_new_fast() for faster
16115         allocation in some special cases.
16116
16117 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
16118
16119         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
16120         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
16121
16122 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
16123
16124         * threadpool.c: fix leaks.
16125
16126 2003-07-01  Dick Porter  <dick@ximian.com>
16127
16128         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
16129         using MonoGHashTables.  Fixes threadpool bug posted to list.
16130
16131 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
16132
16133         * image.h, image.c: added support to load an assembly from a byte array.
16134         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
16135         assembly bundle support.
16136
16137 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
16138
16139         * threadpool.c (mono_thread_pool_add): keep a reference to the
16140         AsyncResult to prevent GC
16141
16142 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16143
16144         * class.c: leak fix.
16145
16146 2003-06-25  Dick Porter  <dick@ximian.com>
16147
16148         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
16149         for the async object, the WaitHandle object will close the handle.
16150         Fixes bug 45321.
16151
16152 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16153
16154         * class.c: in mono_array_class_get (), lookup from the hash with the
16155         same type we insert: this works around a bug in
16156         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
16157         lluis. The real fix will have to wait for after the release.
16158
16159 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16160
16161         * icall.c: fix memory leak when getting type members.
16162
16163 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16164
16165         * reflection.c: added more pubtoken special cases.
16166
16167 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
16168
16169         * class.c: handle field offset correctly when class size
16170         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
16171
16172 2003-06-20  Martin Baulig  <martin@ximian.com>
16173
16174         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
16175         *image' field.
16176
16177 2003-06-20  Martin Baulig  <martin@ximian.com>
16178
16179         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
16180
16181 2003-06-20  Martin Baulig  <martin@ximian.com>
16182
16183         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
16184         just distinguish between variables in registers and variables at
16185         an offset relative to a register.
16186
16187 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16188
16189         * icall.c: #ifdef out latest changes until mcs is fixed.
16190
16191 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16192
16193         * icall.c: return members in metadata order.
16194
16195 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
16196
16197         * icall.c: avoid infinite loop in GetTimeZoneData.
16198
16199 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
16200
16201         * icall.c: added Marshal.Prelink/All icalls.
16202
16203 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
16204
16205         * object.c, object.h: fix warnings and do some overflow checking
16206         when creating arrays.
16207
16208 2003-06-17  Dick Porter  <dick@ximian.com>
16209
16210         * file-io.h:
16211         * file-io.c: File attributes need to be tweaked slightly when
16212         passed from the managed to the w32 world.
16213
16214 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16215         * profiler.h profiler-private.h profiler.c: Rework last patch
16216         based on suggestion by Paolo.
16217         
16218 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
16219
16220         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
16221         instruction level coverage data collection.
16222         * profiler.h profiler.c (: Added new callback function which can be
16223         used by the profiler to limit which functions should have coverage
16224         instrumentation.
16225         * profiler.c (mono_profiler_load): Call g_module_build_path to
16226         generate the file name of the profiler library.
16227
16228 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
16229
16230         * profiler.c, profiler.h, profiler-private.h: added basic block 
16231         coverage profiling API.
16232
16233 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
16234
16235         * reflection.c (mono_reflection_create_runtime_class): Add support
16236         for events in dynamically generated code.
16237
16238         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
16239         not allocated.
16240
16241 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
16242
16243         * icall.c: when getting timezone info, return reasonable values if we
16244         can't get the actual data.
16245
16246 2003-06-14  Dick Porter  <dick@ximian.com>
16247
16248         * threads.c (start_wrapper): Remove the reference to the thread
16249         object in the TLS data, so the thread object can be finalized.
16250         This won't be reached if the thread threw an uncaught exception,
16251         so those thread handles will stay referenced :-( (This is due to
16252         missing support for scanning thread-specific data in the Boehm GC
16253         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
16254
16255 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
16256
16257         * reflection.c: ensure streams and tables are first allocated with
16258         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
16259
16260 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
16261
16262         * icall.c: fixed GetElementType for byrefs (bug# 44792).
16263
16264 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
16265
16266         * reflection.c (mono_reflection_create_runtime_class): Add support for
16267         properties to dynamically created classes.
16268         * reflection.c: Fix a few places where non-MonoObjects were inserted
16269         into the tokens hashtable.
16270
16271 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16272
16273         * object.c: some support to handle out of memory exceptions.
16274
16275 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
16276
16277         * marshal.c (mono_marshal_get_native_wrapper): support reference
16278         return types
16279
16280 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16281
16282         * object.h, object.c: more portability stuff from Bernie Solomon.
16283         Unexport mono_object_allocate(). Added mono_object_unbox ().
16284         Set exitcode when an unhandled exception is thrown.
16285
16286 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
16287
16288         * marshal.c (mono_marshal_get_native_wrapper): use custom
16289         marshaler for return types.
16290
16291 2003-06-10  Dick Porter  <dick@ximian.com>
16292
16293         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
16294         ip_mreq is available
16295
16296 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
16297
16298         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
16299         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
16300         by Bernie Solomon <bernard@ugsolutions.com>.
16301
16302 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
16303
16304         * gc.c (mono_gc_init): Avoid error message on shutdown when
16305         GC_DONT_GC=1 is used.
16306
16307         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
16308         New icall to return the GUID of a module.
16309
16310 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
16311
16312         * class.c: ensure instance size always includes the parent's size
16313         even whem class size is set explicitly (fixes bug#44294).
16314
16315 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16316
16317         * profiler.h, profiler.c: made the simple profiler thread-safe,
16318         get more accurate timing info. Allow the loading of an
16319         externally-developed profiler module.
16320
16321 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
16322
16323         * marshal.c (mono_marshal_get_native_wrapper): improved
16324         class/byref arguments.
16325         (mono_marshal_get_native_wrapper): better string marshaling support.
16326
16327 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
16328
16329         * class.c: ensure .pack and .size are handled correctly and
16330         simplified layout of static fields.
16331
16332 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
16333
16334         * appdomain.c
16335         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
16336
16337         * loader.c (mono_lookup_pinvoke_call): look for modules in the
16338         current directory (fix bug 44008)
16339
16340 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
16341
16342         * marshal.c (mono_marshal_get_native_wrapper): started support for
16343         custom marshalers.
16344         (mono_delegate_to_ftnptr): consider marshalling specifications
16345
16346 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
16347
16348         * reflection.c, reflection.h: emit custom marshal info.
16349
16350 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16351
16352         * object.c: free the GError.
16353         * icall.c: added CloseEvent_internal.
16354         * threads.[ch]:
16355         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
16356         call.
16357
16358 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
16359
16360         * loader.c (mono_method_get_signature): Add support for dynamic
16361         assemblies.
16362
16363 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
16364
16365         * reflection.c: fixed bug #43905.
16366
16367 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
16368
16369         * class.c, domain.c, icall.c, metadata.h, object.h: support for
16370         handling TypedReference and ArgIterator.
16371         * loader.c, loader.h: added function to get signature at call site.
16372
16373 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16374
16375         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
16376         data readonly. Buglets and warning fixes. Some MethodSpec support.
16377
16378 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
16379
16380         * class.h, class.c, object.c: remove relative numbering support.
16381
16382 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
16383
16384         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
16385         free the string, until we get a chance to fix Gtk#
16386
16387 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16388
16389         * marshal.c: revert last patch.
16390
16391 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
16392
16393         * icall.c: updates for new mono_class_vtable() not calling
16394         the type constructor anymore.
16395
16396 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16397
16398         * object.h, object.c: separate vtable creation from type
16399         initialization. Make running the .cctor thread safe.
16400
16401 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
16402
16403         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
16404
16405 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
16406
16407         * loader.c (mono_get_method): consider calling convention
16408
16409 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
16410
16411         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
16412         to return the invisible global type for a module.
16413
16414         * reflection.c (mono_image_build_metadata): Emit global fields too.
16415
16416 2003-05-20  Peter Williams  <peterw@ximian.com>
16417
16418         * loader.c (mono_lookup_internal_call): Add a few newlines.
16419
16420 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
16421
16422         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
16423         literal strings.
16424
16425         * appdomain.c (set_domain_search_path): Recalculate search path when
16426         AppDomainSetup.PrivateBinPath changes.
16427
16428         * object.c (mono_class_compute_gc_descriptor): It turns out some
16429         parts of the class libs (like System.Thread) holds pointers to
16430         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
16431         to treat native int a pointer type here.
16432         
16433 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
16434
16435         * appdomain.h, domain.c: add hashtable for jump target resolution.
16436
16437 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
16438
16439         * reflection.h reflection.c icall.c: Added new icalls 
16440         GetManifestResourceInfoInternal, GetModulesInternal and support
16441         infrastructure.
16442
16443 2003-05-16  Dick Porter  <dick@ximian.com>
16444
16445         * icall.c:
16446         * file-io.h:
16447         * file-io.c: Implement System.IO.MonoIO::GetTempPath
16448
16449 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
16450
16451         * object.c: mono_store_remote_field: little fix to previous patch.
16452
16453 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
16454
16455         * class.c: add constructors to array classes.
16456         * icall.c: special case array construction for InternalInvoke (),
16457
16458 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
16459
16460         * class.h class.c reflection.c object.c: Added support for field
16461         defaults in dynamically generated classes.
16462
16463 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
16464
16465         * reflection.c: properly encode charset for ddlimport.
16466
16467 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
16468
16469         * threads.c: allow compiling without GC.
16470
16471 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
16472
16473         * appdomain.h, object.c, object.h, threads.c, threads.h: added
16474         handling of thread static data.
16475
16476 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
16477
16478         * reflection.h, reflection.c: added mono_custom_attrs_free ().
16479
16480 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
16481
16482         * class.c (mono_array_class_get): always set the serializable flags
16483         (mono_array_class_get): always set the SEALED attribute for array types
16484
16485 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
16486
16487         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
16488         attributes (fix for bug 42021).
16489
16490 2003-05-12  Dick Porter  <dick@ximian.com>
16491
16492         * gc.c: Don't run finalizers when the finalizer thread is
16493         finishing up, because the default domain has already been
16494         destroyed.
16495
16496 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
16497
16498         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
16499         value is null, we should throw an exception.   This is slightly
16500         different than the other conventions used for the constructor.
16501
16502 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16503
16504         * socket-io.c: fixed windows build.
16505
16506 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16507
16508         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
16509
16510 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
16511
16512         * object.c (mono_string_new_wrapper): Compatibility fix for MS
16513         compilers.
16514
16515 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
16516
16517         * class.c (mono_class_layout_fields): Add experimental GC aware
16518         auto layout facility. Requires class library changes to work correctly.
16519
16520         (mono_class_setup_vtable): Avoid overriding explicit interface
16521         method implementations. Fixes iface3.exe test.
16522
16523         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
16524         object reference.
16525         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
16526         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
16527
16528         * metadata.h: Add new type classification macro which determines
16529         whenever the type holds an object reference.
16530
16531 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
16532
16533         * marshal.c (mono_marshal_get_native_wrapper): cleanups
16534
16535 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
16536
16537         * gc.c (finalizer_thread): Work around a GC bug.
16538
16539 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
16540
16541         * marshal.c (emit_struct_conv): allow unions
16542
16543         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
16544
16545 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
16546
16547         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
16548
16549 2003-05-06  Martin Baulig  <martin@ximian.com>
16550
16551         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
16552
16553 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16554
16555         * socket-io.c:
16556         (Select_internal): allow NULLs, don't create arrays if not needed.
16557         Coupled with Socket.cs changes.
16558
16559         * threadpool.c:
16560         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
16561         register a finalizer for it that will close the semaphore handle. This
16562         fixes the leak and make Lupus' test run with > 4080 loops.
16563
16564 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
16565
16566         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
16567         Jerome Laban (bug #42287)
16568
16569 2003-05-02  Martin Baulig  <martin@ximian.com>
16570
16571         * debug-mono-symfile.h
16572         (MonoSymbolFile): Moved declaration into mono-debug.h.
16573         (MonoDebugMethodJitInfo): Likewise.
16574         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
16575         argument.
16576         (_mono_debug_address_from_il_offset): Take a
16577         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
16578
16579         * mono-debug.h
16580         (MonoDebugDomainData): New struct.
16581         (mono_debug_get_domain_data): New function.
16582         (mono_debug_add_method): Take an additional `MonoDomain *'
16583         argument.
16584         (mono_debug_source_location_from_address): Likewise.
16585         (mono_debug_il_offset_from_address): Likewise.
16586         (mono_debug_address_from_il_offset): Likewise.
16587
16588 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
16589
16590         * reflection.c: one more check for null type in custom attrs.
16591
16592 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16593
16594         * reflection.c: avoid warning (comparison is always false due to limited
16595         range of data type).
16596
16597 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16598
16599         * icall.c: throw an exception in Type.GetField if the argument 'name'
16600         is NULL.
16601
16602 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
16603
16604         * reflection.c: fixed handling of enums in named arguments to custom
16605         attributes (bug #42123).
16606
16607 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
16608
16609         * reflection.c: use the right array element type and handle
16610         a null for a Type argument, too.
16611
16612 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
16613
16614         * reflection.c: handle arrays as arguments to custom attributes.
16615
16616 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
16617
16618         * reflection.c: handle a string value in a custom attr
16619         ctor that takes an object.
16620
16621 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
16622
16623         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
16624         (fix bug #42063)
16625
16626 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
16627
16628         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
16629
16630 2003-04-27  Martin Baulig  <martin@ximian.com>
16631
16632         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
16633         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
16634         MONO_DEBUGGER_EVENT_BREAKPOINT.
16635         (mono_breakpoint_trampoline_code): Removed.
16636         (mono_debugger_event_handler): The last argument is now a
16637         `guint32'.
16638         (mono_debugger_insert_breakpoint_full): Removed the
16639         `use_trampoline' argument.
16640         (mono_debugger_method_has_breakpoint): Likewise.
16641         (mono_debugger_trampoline_breakpoint_callback): Renamed to
16642         mono_debugger_breakpoint_callback(); take the method and
16643         breakpoint number as arguments.
16644
16645 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
16646
16647         * metadata.c: fix off by one when loading parameters attributes.
16648
16649 2003-04-24  Martin Baulig  <martin@ximian.com>
16650
16651         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
16652
16653 2003-04-24  Martin Baulig  <martin@ximian.com>
16654
16655         * mono-debug-debugger.c: Moved all code which interacts with the
16656         Mono Debugger here.
16657
16658         * debug-mono-symfile.c: This code now just deals with the symbol
16659         file itself, the debugger code is now in mono-debug-debugger.c.
16660
16661 2003-04-23  Martin Baulig  <martin@ximian.com>
16662
16663         * mono-debug.c (mono_debug_source_location_from_il_offset):
16664         New method; like mono_debug_source_location_from_address(), but
16665         takes an IL offset instead of a machine address.
16666
16667 2003-04-23  Martin Baulig  <martin@ximian.com>
16668
16669         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
16670         `line' field; this is now computed by the debugger.
16671
16672 2003-04-23  Martin Baulig  <martin@ximian.com>
16673
16674         * mono-debug.[ch]: New files.  This is the new debugging interface.
16675
16676         * mono-debug-debugger.[ch]: New files.  Moved all code which
16677         interacts with the Mono Debugger here.
16678
16679 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
16680
16681         * domain.c (mono_init): initialize mono_defaults.monitor_class
16682
16683 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
16684
16685         * reflection.c (method_encode_code): Add a spicy exception to help
16686         future compiler authors.
16687
16688 2003-04-21  Martin Baulig  <martin@ximian.com>
16689
16690         * icall.c
16691         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
16692         Make this work with relative pathnames; g_filename_to_uri() needs
16693         an absolute filename.
16694
16695 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
16696
16697         * icall.c: Track name changes in Object and ValueType.
16698
16699 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
16700
16701         * metadata.c (mono_type_stack_size): size should be a multiple of
16702         sizeof (gpointer)
16703
16704 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16705
16706         * gc.c:
16707         (internal_domain_finalize): moved into mono_domain_finalize. No need
16708         to create another thread because the finalizers will be run in the
16709         finalizer thread.
16710         
16711         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
16712         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
16713         to be run (MS does this too).
16714
16715 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
16716
16717         * object.c (mono_class_compute_gc_descriptor): Update comment.
16718
16719         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
16720
16721         * image.h: Add synchronized wrapper cache.
16722
16723         * image.c (do_mono_image_open): Initialize cache.
16724
16725         * reflection.c (create_dynamic_mono_image): Initialize cache.
16726
16727 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16728
16729         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
16730         ves_icall_System_Buffer_ByteLengthInternal.
16731
16732 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
16733
16734         * reflection.c: setup klass->nested_in earlier. Allow
16735         a dash in the assembly name.
16736
16737 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
16738
16739         * metadata.c (mono_type_to_unmanaged): dont access
16740         type->data.klass for MONO_TYPE_OBJECT
16741         (mono_type_to_unmanaged): consider System.Delegate class
16742
16743 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
16744
16745         * class.c: just setup supertypes in the proper place instead of
16746         initializing the full element class for arrays.
16747
16748 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
16749
16750         * class.c: ensure the element class of arrays is initialized.
16751         Setup the supertype info for array classes, too.
16752
16753 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
16754
16755         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
16756
16757 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16758
16759         * Makefile.am: re-added -m option when running cygpath. This way,
16760         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
16761         separator.
16762         * mono-config.c: same codepath for locating mono config file for WIN32
16763         and the rest.
16764         * assembly.c: if mono_assembly_setrootdir is called, don't override
16765         the value set.
16766
16767 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16768
16769         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
16770         MONO_ASSEMBLIES variable.
16771
16772 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
16773
16774         * icall.c: added Assembly::GetNamespaces() icall.
16775
16776 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16777
16778         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
16779
16780 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
16781
16782         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
16783         * object.c: fixed bug in the construction of vtable for proxies
16784
16785 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
16786
16787         * object.c (mono_array_new): Mark mono_array_new as an icall.
16788
16789 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16790
16791         * class.c: fixed test for public method when overriding interfaces.
16792         Closes bug #40970.
16793
16794 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
16795
16796         * appdomain.h, domain.c: added mono_domain_foreach() to
16797         be able to access the currently loaded appdomains.
16798         * object.c: make string interning work across sppdomains.
16799         Mark some functions for use as icalls.
16800
16801 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
16802
16803         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
16804
16805         * reflection.h reflection.c: Allocate long living data using 
16806         GC_MALLOC_ATOMIC so the collector does not need to scan it.
16807
16808         * reflection.c: Double the allocation size in streams instead of
16809         increasing it, to prevent unneccesary copying on large assemblies.
16810         
16811         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
16812         creation if the assembly does not have the Run flag set.
16813
16814 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
16815
16816         * class.h: avoid the C++ keywords in header files (Jerome Laban
16817         spotted and fixed this).
16818
16819 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16820
16821         * object.c:
16822         (mono_unhandled_exception): fill in the arguments for the
16823         UnhandledException event. Only trigger that event for the default
16824         domain (as MS does).
16825
16826 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
16827
16828         * object.c: Improve typed allocation stuff based on suggestions from
16829         Paolo. Also turn it on if the GC library supports it.
16830
16831 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16832
16833         * object.c object.h class.h: Added experimental typed allocation
16834         facility using the interfaces in gc_gcj.h.
16835
16836         * os/gc_wrapper.h: Added new include files.
16837         
16838 2003-04-03  Martin Baulig  <martin@ximian.com>
16839
16840         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
16841         which is not yet enabled by default.
16842
16843         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
16844         functions.
16845         (mono_gc_lock, mono_gc_unlock): New static functions.
16846
16847         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
16848         functions; stop/start the world for the garbage collector.  This
16849         is using the windows API; we need to complete the SuspendThread()/
16850         ResumeThread() implementation in the io-layer to make this work on Unix.
16851         (mono_gc_push_all_stacks): New public function; tells the garbage
16852         collector about the stack pointers from all managed threads.
16853
16854 2003-04-03  Martin Baulig  <martin@ximian.com>
16855
16856         * object.h (MonoThread): Added `gpointer stack_ptr'.
16857
16858         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
16859
16860 2003-04-03  Martin Baulig  <martin@ximian.com>
16861
16862         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
16863
16864 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
16865
16866         * reflection.c (typebuilder_setup_fields): Initialize field.first and
16867         field.last.
16868
16869 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
16870
16871         * loader.c (mono_lookup_internal_call): Report the corlib that is
16872         out of sync.
16873
16874 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
16875
16876         * icall.c (ves_icall_type_GetTypeCode): fixed check for
16877         System.DBNull (it's class not valuetype).
16878
16879 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
16880
16881         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
16882         if the array method was already assigned a token (fixes bug#40646).
16883
16884 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
16885
16886         * reflection.c (mono_reflection_get_type): Attempt type resolve even
16887         if no assembly is given.
16888
16889 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
16890
16891         * metadata.h: Added the new tables.
16892
16893         * row-indexes.h: Added definitions for new tables.
16894
16895         * metadata.c: Add schemas for new tables, and add support for
16896         computing the sizes of them.
16897
16898         * class.c: Update for handling the new type cases.
16899
16900 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
16901
16902         * metadata.h (MONO_TYPE_IS_VOID): new macro
16903
16904 2003-03-31  Martin Baulig  <martin@ximian.com>
16905
16906         * threads.h (MonoThreadCallbacks): Added `thread_created'.
16907
16908         * threads.c (mono_thread_new_init): Call `thread_created' in the
16909         mono_thread_callbacks.
16910
16911 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
16912
16913         * loader.h: added marshalbyrefobject_class to mono_defaults
16914         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
16915         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
16916           generation of output parameters.
16917           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
16918         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
16919           contextbound and the target object belongs to the context of the caller.
16920         * object.h: added context and unwrapped_server variables in MonoRealProxy.
16921         * object.c: Implemented support for interfaces and abstract classes
16922           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
16923           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
16924
16925 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
16926
16927         * class.h class.c (mono_class_is_subclass_of): New function.
16928         
16929         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
16930         routines for most common case (calls from ArrayList::ToArray).
16931
16932         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
16933         routine so programs which call Environment::Exit() can be profiled.
16934
16935         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
16936         Added MONO_ARCH_SAVE_REGS.
16937
16938         * icall.c (ves_icall_type_is_subtype_of): Use new function.
16939
16940 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
16941
16942         * blob.h: Add a couple of new MonoType types definitions.
16943
16944         * tabledefs.h: Add a couple of new call convs.
16945
16946 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
16947
16948         * reflection.h (MonoReflectionDynamicAssembly): track changes in
16949         the layout of the class.
16950
16951         * reflection.c (alloc_table): double the size on overflow to avoid
16952         unnecessary copying.
16953
16954         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
16955         avoid filling out metadata tables and blobs. Also set mb->ilgen to
16956         null so it can be garbage collected.
16957         
16958 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
16959
16960         * reflection.c (mono_reflection_get_type): Return the resolved type
16961         only if it is in the assembly we searched.
16962
16963         * reflection.c (ensure_runtime_vtable): Initialize method slots.
16964
16965         * class.c (mono_class_setup_vtable): Set the slot of the overriding
16966         method.
16967
16968 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16969
16970         * appdomain.c:
16971         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
16972         the right one is 'file:///blah', but MS allows it.
16973         * assembly.c:
16974         (mono_assembly_open): allow 'file://blah'
16975
16976         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
16977
16978 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
16979
16980         * socket-io.c: fixes bug #40310.
16981
16982 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
16983
16984         * reflection.c (mono_reflection_parse_type): handle deeply nested
16985         types correctly.
16986
16987         * reflection.c (mono_image_create_token): Use unique token values
16988         since they will be put into a hash table.
16989
16990         * class.c (mono_class_setup_vtable): If a method occurs in more than
16991         one place in the vtable, and it gets overriden, then change the
16992         other occurances too.
16993
16994         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
16995         object as return type.
16996
16997 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
16998
16999         * icall.c: Deleted "ToString" implementation for double and float
17000         because they are full implemented in managed code.
17001
17002 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17003
17004         * reflection.c, reflection.h: implemented and exported functions
17005         to retrieve info about custom attributes.
17006
17007 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17008
17009         * appdomain.c: moved Uri handling to assembly.c
17010         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
17011         work when using a file Uri in *nix and windows.
17012
17013         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
17014         GetReferencedAssemblies.
17015
17016 2003-03-18  Dick Porter  <dick@ximian.com>
17017
17018         * icall.c: Rename a couple of internal calls
17019
17020         * threads.c: Set the thread state to Stopped when a thread exits.
17021         Fixes bug 39377.
17022
17023 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
17024
17025         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
17026         New icall.
17027
17028         * object.c (mono_class_vtable): fix warning.
17029
17030 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
17031
17032         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
17033
17034         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
17035         memory.
17036         (method_encode_clauses): Create exception info structures in the right
17037         order.
17038         (mono_reflection_setup_internal_class): Initialize supertypes field.
17039
17040         * class.c object.c: Handle interfaces which implement other interfaces 
17041         correctly.
17042
17043         * class.h class.c: Move the supertypes array initialization code into 
17044         a separate function so it can be used for dynamic types too. Also call
17045         it earlier, in mono_class_init(), since it can be used before the
17046         type is initialized.
17047
17048 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17049
17050         * Makefile.am:
17051         * assembly.c:
17052         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
17053
17054         * appdomain.c:
17055         * appdomain.h:
17056         * marshal.c:
17057         * object.c: remove warnings.
17058
17059 2003-03-13  Martin Baulig  <martin@ximian.com>
17060
17061         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
17062         (MonoDebugLexicalBlockEntry): New types.
17063
17064         * debug-mono-symfile.c
17065         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
17066
17067 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17068
17069         * process.c: ret can be any non-zero value accroding to MS doc.
17070
17071 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
17072
17073         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
17074         fixing a warning for a miss-used prototype, would have cause
17075         random memory corruption.
17076
17077 2003-03-07  Martin Baulig  <martin@ximian.com>
17078
17079         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
17080         getting really annoying ....
17081
17082 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
17083
17084         * reflection.c (fixup_method): added support for array methods.
17085
17086 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
17087
17088         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
17089         (pointed out by Michael Adams).
17090
17091 2003-03-04  Dick Porter  <dick@ximian.com>
17092
17093         * icall.c: Temporarily reverted the Double and Single ToString()
17094         change, because it broke nunit.
17095
17096 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
17097
17098         * object.h, threads.h: make include files compatible with C++
17099         (patch by Jerome Laban <jlaban@wanadoo.fr>).
17100
17101 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17102
17103         * icall.c: Erased ToString helper functions for Double and Single.
17104         Now, that implementations ar all in managed code (Double and Single
17105         Formatters).
17106
17107 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
17108
17109         * appdomain.c: Added method for initializing the default context of
17110         a domain. Added internal call for getting the default context.
17111         * appdomain.h: Added context variable in MonoDomain struct.
17112         * domain.c: mono_domain_set also sets the default context of the domain
17113         * icall.c: Mapped internal method InternalGetDefaultContext.
17114         * object.c: mono_object_get_virtual_method returns always a remoting
17115         wrapper if the object is a transparent proxy.
17116         mono_runtime_invoke_array: when creating an object by calling the
17117         constructor, if the created object is a proxy, then the constructor should
17118         be called using the a remoting wrapper.
17119
17120 2003-03-03  Dick Porter  <dick@ximian.com>
17121
17122         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
17123         variable so it compiles on solaris.  Problem spotted by
17124         Christopher Taylor <ct@cs.clemson.edu>
17125
17126 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17127
17128         * appdomain.c:
17129         (get_info_from_assembly_name): don't leak value.
17130
17131         * icall.c:
17132         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
17133         result.
17134
17135 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
17136
17137         * assembly.c: export mono_image_load_references ().
17138         * class.c: handle function pointers. mono_class_from_name() now
17139         supports nested type names directly.
17140
17141 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
17142
17143         * reflection.h reflection.c: Encode already created dynamic methods 
17144         and fields correctly as a DEF instead of a REF.
17145
17146         * reflection.c: Get rid of the force_ref argument to 
17147         mono_image_typedef_or_ref since it was wrong in the first place.
17148
17149         * string-icalls.c: add error checking to string constructors according
17150         to the MSDN docs.
17151
17152         * reflection.c: Emit types in the order their TypeBuilders were 
17153         created. Previously, a new table index was assigned to each type before
17154         the tables were emitted. This was wrong because the signature blob
17155         might already refer to a type by its original table index.
17156
17157 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
17158
17159         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
17160         change.
17161         
17162 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17163
17164         * Makefile.am: make assemblies dir have \ instead of / on windows.
17165
17166 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
17167
17168         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
17169         iterate over the NESTEDCLASS table using a linear search since the
17170         table is not guaranteed to be sorted by the secondary key.
17171
17172         * class.c (mono_class_create_from_typedef): fixed up call to
17173         mono_metadata_nesting_typedef.
17174         
17175 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
17176
17177         * marshal.c (mono_string_to_byvalstr): clear the memory as
17178         suggested by Jerome Laban <jlaban@wanadoo.fr>
17179
17180 2003-02-26  Dick Porter  <dick@ximian.com>
17181
17182         * process.c: Cope with padding in .rsrc blocks
17183
17184 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17185
17186         * metadata.h: reverted the filter_len change, it breaks reflection
17187         
17188 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
17189
17190         * metadata.h: added a new field to store the filter_len
17191         
17192
17193 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
17194
17195         * reflection.c: handle custom attributes for types and members
17196         created with Reflection.Emit (bug#38422).
17197
17198 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
17199
17200         * reflection.c: define RTSpecialName automatically for constructors for
17201         compatibility with MS.NET.
17202
17203         * reflection.c (mono_reflection_create_runtime_class): initialize
17204         nested_in field of dynamically created classes.
17205
17206 2003-02-22  Martin Baulig  <martin@ximian.com>
17207
17208         * debug-mono-symfile.h: Incremented version number.
17209
17210 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17211
17212         * object.h icall.c process.c: fix warnings.
17213
17214 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
17215
17216         * appdomain.h appdomain.c:
17217         (mono_domain_try_type_resolve): split the 
17218         name_or_tb argument into a name and a tb argument.
17219         (mono_domain_has_type_resolve): new function to check whenever the
17220         application has registered a TypeResolve event handler.
17221         
17222         * icall.c reflection.h reflection.c: move the type resolve logic into
17223         mono_reflection_get_type () so it will be invoked when 
17224         Assembly::GetType () is called.
17225
17226         * reflection.c:
17227         (mono_reflection_get_type): renamed to get_type_internal.
17228         (mono_reflection_get_type): fixed type name generation so it works 
17229         for nested types too.
17230         (mono_reflection_get_type): call has_type_resolve () to avoid the 
17231         costly type name generation if there is no resolve event handler.
17232
17233 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17234
17235         * class.c, image.c: load exported types from file references.
17236
17237 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
17238
17239         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
17240           used to cache the managed methods used to create proxies and make 
17241           remote invocation of methods.
17242         * class.h: Added in MonoVTable a flag to indicate that a class needs 
17243           to be remotely created.
17244         * object.c: Modified the method mono_class_vtable(). It now initializes 
17245           the remote flag of the vtable. Modified mono_object_new_specific(), 
17246           so now it checks the remote flag.
17247         * icall.c: Added a couple of internal methods, one for enabling instance 
17248           creation interception for a type, and one for creating objects bypassing
17249           the remote check.
17250
17251 2003-02-18  Martin Baulig  <martin@ximian.com>
17252
17253         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
17254         New interncall to get a method's metadata token.
17255
17256         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
17257         New interncall for the debugger.
17258
17259 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
17260
17261         * class.c (mono_class_setup_vtable): allocate supertype array
17262
17263 2003-02-18  Martin Baulig  <martin@ximian.com>
17264
17265         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
17266
17267 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17268
17269         * reflection.c:
17270         (assembly_name_to_aname): jump over unknown properties (i've found
17271         something like: 'type, assembly, version=xxx, custom=null, public...',
17272         so now will ignore custom=null and still get the rest of the values).
17273
17274 2003-02-17  Dick Porter  <dick@ximian.com>
17275
17276         * threads.c: Have Thread.Start() wait for a semaphore to signal
17277         that the thread has set up all its local data.  This fixes bug
17278         34323, where Abort() raced the new thread's TLS data.
17279
17280         Also removes the handle_store() call from start_wrapper, because
17281         threads are now always created suspended and there is no longer a
17282         race between the parent and child threads to store the info.
17283
17284 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
17285
17286         * image.c: explain the #- heap issue in a message, hopefully
17287         avoiding FAQs on mono-list.
17288
17289 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17290
17291         * icall.c:
17292         (GetEntryAssembly): if the domain has not invoked
17293         AppDomain.ExecuteAssembly yet, return the assembly of the default
17294         AppDomain.
17295
17296 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
17297
17298         * class.c (mono_ldtoken): make it work in dynamic assemblies.
17299
17300 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
17301
17302         * metadata.c, reflection.c: simple speedup to type hash
17303         and equals code.
17304
17305 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
17306
17307         * image.c, image.h, class.c, assembly.c: move module loading
17308         to MonoImage. When loading metadata, consider alignemnet from
17309         the start of metadata, not from the metadata address in memory.
17310
17311 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
17312
17313         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
17314         AssemblyBuilder objects. Factored out custom attribute creation into
17315         a separate function.
17316         (create_custom_attr): new function to create custom attributes.
17317
17318 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
17319
17320         * Makefile.am: Got tired of typing the full pathname to pedump.
17321         Until there is another option, am installing this.
17322
17323 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
17324
17325         * class.c (class_compute_field_layout): always set field->parent 
17326         (mono_ldtoken): use mono_defaults.fieldhandle_class;
17327
17328 2003-02-11  Dick Porter  <dick@ximian.com>
17329
17330         * threads-types.h:
17331         * monitor.c: Rewrote Monitor, making lock much faster and
17332         Pulse/Wait work as specified.  Also uses much fewer handles, and only
17333         creates them as needed.
17334
17335         * exception.c: Added SynchronizationLockException
17336
17337         * threads.c: Deleted old Monitor implementation.  The new one is
17338         in a new file.
17339
17340 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
17341
17342         * class.c: handled TypedReference type code. Set the correct size for
17343         class data. Setup interface_offsets for interface classes, too.
17344
17345 2003-02-09  Martin Baulig  <martin@ximian.com>
17346
17347         * debug-mono-symfile.h: Reflect latest symbol writer changes.
17348
17349 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
17350
17351         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
17352         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
17353         * object.c: fixed mono_object_get_virtual_method () for interfaces.
17354         * verify.c: check for code that runs after the end of the method.
17355
17356 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
17357
17358         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
17359         "System.Math::Round2".
17360         * sysmath.h: Added Floor, Round and Round2 definitions.
17361         * sysmath.c: Modified certain functions that were not 100% compliant
17362         with MS.NET (math precision) and added the implementation of Floor,
17363         Round and Round2.
17364
17365 2003-02-07  Martin Baulig  <martin@ximian.com>
17366
17367         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
17368
17369 2003-02-07  Martin Baulig  <martin@ximian.com>
17370
17371         * debug-mono-symfile.c: Reflected latest symwriter changes.
17372         (mono_debug_create_mono_symbol_file): Removed.
17373         (mono_debug_open_mono_symbol_file): Take an argument which
17374         specifies whether to create a dynamic symbol file.
17375
17376 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
17377
17378         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
17379
17380 2003-02-05  Martin Baulig  <martin@ximian.com>
17381
17382         * reflection.c (mono_image_build_metadata): Make this public,
17383         protect it against being called multiple times, don't create
17384         resources and don't build the compressed metadata here.
17385         (mono_image_create_pefile): Do this here.
17386
17387         * icall.c
17388         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
17389
17390 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17391
17392         * socket-io.c: fixed bug #36322.
17393
17394 2003-02-06  Piers Haken <piersh@friskit.com>
17395
17396         * appdomain.[ch]:
17397         * class.h:
17398         * debug-mono-symfile.c:
17399         * icall.c:
17400         * loader.c:
17401         * mono-config.c:
17402         * monosn.c:
17403         * reflection.c:
17404         * socket-io.c: warning cleanups
17405
17406 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
17407
17408         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
17409         function. works like remoting invoke, but does a check for the Proxy first.
17410
17411 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
17412
17413         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
17414
17415 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
17416
17417         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
17418         array of pointers.
17419         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
17420         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
17421
17422         * object.c (mono_store_remote_field_new): used by the new jit
17423         instead of mono_store_remote_field
17424         (mono_load_remote_field_new): used by the new jit
17425         instead of mono_load_remote_field
17426
17427 2003-02-05  Patrik Torstensson
17428
17429         * appdomain.c: changed unload to take the domain id instead
17430         of domain
17431         
17432         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
17433
17434
17435 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17436
17437         * appdomain.c: don't look for assemblies in ApplicationBase if
17438         PrivateBinPathProbe is set.
17439
17440 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17441
17442         * object.c: make the first argument in main_args contain the absolute
17443         path to the assembly. Fixes bug #37511.
17444
17445 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17446
17447         * icall.c: get correct UTC offset for countries not using daylight
17448         time saving. Fixes bug #30030.
17449
17450 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17451
17452         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
17453         and 1 are the family).
17454
17455 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
17456
17457         * icall.c (ves_icall_InternalExecute): removed wrong assertion
17458
17459         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
17460
17461 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
17462
17463         * reflection.c: added support for SignatureHelper tokens, which is
17464         needed by the Calli opcode.
17465
17466         * reflection.h: track changes to SignatureHelper class.
17467
17468         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
17469
17470 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17471
17472         * appdomain.c: fixed loading assemblies from PrivateBinPath.
17473
17474 2003-02-03  Patrik Torstensson
17475         * appdomain.[c|h], domain.c : 
17476          - Added support for getting a domain via domain id
17477          - Support for setting and getting domain from System.AppDomain 
17478            (used in cross appdomain channel)
17479          - Added support for get/set for a MonoAppContext on a thread 
17480            (Context class in System.Runtime.Remoting.Contexts),
17481          - Removed hack in Get/SetData and ExecuteAssembly.
17482         
17483         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
17484         the managed world to get control when a proxy is created.
17485
17486         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
17487         
17488 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
17489
17490         * icall.c
17491         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17492         Populate the codebase field as well.
17493
17494 2003-02-02  Martin Baulig  <martin@ximian.com>
17495
17496         * debug-mono-symfile.c
17497         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
17498         (mono_debug_symfile_add_method): Allow interncalls.
17499
17500 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17501
17502         * icall.c: throw parse exception if strtod fails or the string is empty.
17503
17504 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
17505
17506         * marshal.c: handle object type separately from defined
17507         class types.
17508
17509 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
17510
17511         * marshal.c: handle NATIVE_LPSTR for strings when it's
17512         explicitly specified.
17513
17514 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
17515
17516         * reflection.c, reflection.h, icall.c: setup the reflection
17517         handle cache for ModuleBuilders and AssemblyBuilders.
17518
17519 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
17520
17521         * reflection.c (reflection_methodbuilder_to_mono_method): set
17522         pinvoke flag
17523
17524 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17525
17526         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
17527
17528 2003-01-29  Dick Porter  <dick@ximian.com>
17529
17530         * threads.c: No need for the fake_thread kludge now that Thread
17531         doesn't run a class constructor
17532         
17533 2003-01-29  Dick Porter  <dick@ximian.com>
17534
17535         * threads.c: Use g_direct_hash instead of the rather bogus
17536         g_int_hash
17537
17538 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
17539
17540         * marshal.c (mono_marshal_get_native_wrapper): add check for null
17541         (fix pinvoke12.exe)
17542         (mono_marshal_get_struct_to_ptr): generate valid IL code
17543         (mono_marshal_get_ptr_to_struct): generate valid IL code
17544         (*): correctly set sig->pinvoke, we need to memdup the signature
17545         to do that
17546
17547 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
17548
17549         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
17550         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
17551
17552 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17553
17554         * profiler.c: provide more callers information.
17555
17556 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
17557
17558         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
17559
17560         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
17561
17562         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
17563
17564 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17565
17566         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
17567         exception instead of going into an infinite loop on dates which it 
17568         can't yet handle.
17569
17570         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
17571         out-of-range exception if needed.
17572
17573         * class.c (mono_class_setup_vtable): allow a virtual method to provide
17574         an implementation for an interface method and to override an inherited
17575         method at the same time. 
17576         Imagine a scenario when a virtual method is used to override a
17577         virtual abstract method in a parent class, and this same method 
17578         provides an implementation for an method inherited from an interface. 
17579         In this case, the interface resolution code will set im->slot, which 
17580         means that the virtual method override pass will skip this method 
17581         which means a pointer to the abstract method inherited from the parent
17582         will remain in the vtable of this non-abstract class.
17583
17584         * class.c: (mono_class_setup_vtable): continue search for a real 
17585         method if only an abstract method is found.     
17586
17587 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
17588
17589         * reflection.c: add size to encoding for ByValStr and ByValArray
17590         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
17591
17592 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17593
17594         * class.c (mono_class_setup_vtable): pass the override info as an
17595         argument.
17596
17597         * class.c (mono_class_setup_vtable): set the slot of overriding methods
17598         correctly.
17599         
17600         * reflection.c (ensure_runtime_vtable); add support for method 
17601         overrides.
17602         
17603 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17604
17605         * reflection.c (resolution_scope_from_image): Hack to work to work with
17606         dynamic assemblies.
17607
17608         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
17609         added a 'force_ref' argument to force this function to allways return 
17610         a TypeRef. This is needed by mono_image_get_memberref_token ().
17611         
17612 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17613
17614         * reflection.c (mono_image_get_type_info): interfaces really don't have
17615         a parent.
17616
17617         * reflection.c (mono_image_basic_init): fill out missing fields of
17618         image structure.
17619
17620         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
17621         dynamic assemblies. This is required so dynamic assemblies show up in
17622         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
17623         Type::GetType() etc. This is consistent with MS behaviour.
17624
17625         * image.c image.h reflection.c: add newly created classes to the name 
17626         cache so mono_class_get () will find them.      
17627
17628 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
17629
17630         First part of changes to get IKVM.NET running under mono.
17631         
17632         * appdomain.h, appdomain.c: added new function 
17633         mono_domain_try_type_resolve() which will emit TypeResolve events. 
17634         This function will call AppDomain::DoTypeResolve to do the actual work.
17635
17636         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
17637         moved existing code dealing with dynamic tokens to a new function 
17638         called mono_reflection_lookup_dynamic_token (). This function will 
17639         raise TypeResolve events when appropriate. Since reflection.c is not 
17640         part of libmetadata, a new hook function called 
17641         mono_lookup_dynamic_token() is added to class.c which will call this.
17642
17643         * assembly.h assembly.c: make the invoke_load_hook function public,
17644         so it can be called for dynamic assemblies.
17645
17646         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
17647
17648         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
17649         type isn't found.
17650
17651         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
17652         MonoGHashTable, since it contains pointers to objects which the GC 
17653         needs to track.
17654
17655         * assembly.c (search_loaded): remove unused variable.
17656         
17657 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
17658
17659         * object.c: fixed issue exposed by gcc-generated IL programs
17660         that use RVA data for pointers.
17661
17662 2003-01-25  Martin Baulig  <martin@ximian.com>
17663
17664         * threads.c (start_wrapper): Moved the initialization of
17665         `start_func' above the mono_new_thread_init() call to which we
17666         pass it as argument.
17667
17668 2003-01-24  Martin Baulig  <martin@ximian.com>
17669
17670         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
17671         the MonoThread pointer.
17672
17673 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
17674
17675         * icall.c: Rename `PowImpl' to Pow.
17676
17677 2003-01-23  Dick Porter  <dick@ximian.com>
17678
17679         * threads.c (start_wrapper): Create a Thread object if needed, so
17680         the Main() thread can do the class initialisation in a subthread
17681         that has been set up to allow managed code execution.
17682
17683         Pass the thread ID instead of the MonoThread pointer to the thread
17684         start and attach callbacks.  This change is required, because the
17685         jit thread start callback must be called _before_ the Thread
17686         object can be created.
17687         
17688         (mono_thread_init): Removed much object creation code that is no
17689         longer needed.  No managed code is called from here now.
17690
17691         * object.c (mono_runtime_exec_managed_code): Create a subthread
17692         for Main, and call back to the runtime to use it.
17693         Set the exit code when Main exits.
17694
17695         * gc.c: Make sure domain finalisation happens in a subthread.
17696         Re-enable threaded GC, fixing bug 31333 (again).
17697
17698         * environment.c: System.Environment internall calls (so far just
17699         ExitCode is here, the others are still in icall.c)
17700
17701         * appdomain.c (mono_runtime_cleanup): All threads running managed
17702         code should have finished before mono_runtime_cleanup() is
17703         reached, so no need to clean up threads.
17704
17705 2003-01-22  Martin Baulig  <martin@ximian.com>
17706
17707         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
17708         `gpointer func' arguments.      
17709         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
17710         but added `MonoThread *thread' argument.
17711         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
17712
17713         * threads.c (mono_new_thread_init): Added `gpointer func' argument
17714         and pass it to the mono_thread_start_cb callback.
17715         (mono_install_thread_callbacks): New public function to install a
17716         set of callbacks which are set by the debugger.
17717         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
17718
17719 2003-01-22  Martin Baulig  <martin@ximian.com>
17720
17721         * Makefile.am: Install debug-mono-symfile.h.
17722
17723 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
17724
17725         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
17726
17727 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
17728
17729         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
17730         * class.c (mono_ptr_class_get): correctly set access levels of pointers
17731         (mono_array_class_get): correctly set access levels of arrays
17732
17733 2003-01-20      Patrik Torstensson
17734         * image.h (MonoAssemblyName): changed major, minor, build, revision
17735         from signed to unsigned.
17736
17737 2003-01-20  sean kasun <skasun@azstarnet.com>
17738
17739         * reflection.c (load_cattr_value): Now this handles
17740         MONO_TYPE_SZARRAY.  Fixes bug #35629
17741
17742 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
17743
17744         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
17745         integer value
17746
17747 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17748
17749         * decimal.c: fixed bug #26056.
17750
17751 2003-01-17  Martin Baulig  <martin@ximian.com>
17752
17753         * gc.c: Raise an ExecutionEngineException instead of using g_error().
17754
17755 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17756
17757         * exception.[ch]:
17758         (mono_get_exception_type_initialization): new function.
17759
17760         * object.c: throw a TypeInitializationException when an exception is
17761         thrown invoking the class constructor.
17762
17763 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17764
17765         * reflection.c: fixed attribute reading.
17766
17767 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17768
17769         * icall.c:
17770         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
17771         provided, look for the type in the calling assembly and then in
17772         mscorlib; if the assembly name is provided, only try that one.
17773
17774 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
17775
17776         * object.c: register the vtable before there is a chance it's
17777         queried again recursively.
17778
17779 2003-01-13  Duncan Mak  <duncan@ximian.com>
17780
17781         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
17782         gc-internal.h. 
17783         
17784 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
17785
17786         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
17787
17788 2003-01-11  Martin Baulig  <martin@ximian.com>
17789
17790         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
17791         this to 20 for the release.
17792
17793 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
17794
17795         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
17796
17797         * loader.c (mono_method_get_marshal_info): bug fix
17798
17799         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
17800         structures with explicit layout
17801
17802 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17803
17804         * profiler.c: made the output more readable (and sorted). 
17805         Added caller information for the allocation profiler.
17806
17807 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
17808
17809         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
17810
17811 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17812
17813         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
17814         to get value types.
17815         
17816 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
17817
17818         * object.c, profiler.h, profiler.c, profiler-private.h:
17819         Added object allocation profiler.
17820
17821 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
17822
17823         * reflection.h, reflection.c: handle global methods.
17824         Compress blob entries.
17825
17826 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
17827
17828         * marshal.c: fix compilation.
17829
17830 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
17831
17832         * loader.c (mono_method_get_marshal_info): impl.
17833
17834         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
17835
17836 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17837
17838         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
17839         for reference types.
17840
17841 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
17842
17843         * loader.c: fixed off by one error in loaded parameter names.
17844
17845 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
17846
17847         * marshal.c (mono_marshal_get_icall_wrapper): like
17848         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
17849         instead of a MonoMethod.
17850
17851 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17852
17853         * decimal.c: fixed bug #36537.
17854
17855 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
17856
17857         * marshal.c: throw a missing method exception if a
17858         P/Invoke method is not found.
17859
17860 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
17861
17862         * icall.c: allow a null this for constructors.
17863
17864 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
17865
17866         * icall.c: raise the proper exceptions if the arguments to the
17867         internal Invoke are incorrect.
17868
17869 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
17870
17871         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
17872
17873 2003-01-03  Martin Baulig  <martin@ximian.com>
17874
17875         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17876
17877 2002-12-31  Martin Baulig  <martin@ximian.com>
17878
17879         * debug-mono-symfile.c: Completely rewrote the type section.
17880         Instead of using individual malloc()ed fields, we use one big
17881         continuous memory area and offsets into this area.
17882         See the comments in the source code for details.
17883
17884 2002-12-30  Martin Baulig  <martin@ximian.com>
17885
17886         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
17887
17888 2002-12-30  Martin Baulig  <martin@ximian.com>
17889
17890         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
17891         line number table in this data blob instead of using an external
17892         pointer.
17893
17894 2002-12-28  Martin Baulig  <martin@ximian.com>
17895
17896         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
17897
17898 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
17899
17900         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
17901         as a boxed return type.
17902
17903 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
17904
17905         * appdomain.c
17906         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
17907         g_build_filename to properly get separators on the filename created.
17908
17909         * object.h: Small change, introduce MonoMarshalByRefObject to
17910         track the layout of that structure in the C# universe as we make
17911         changes there.
17912
17913 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
17914
17915         * object.c: removed assert to allow static fields on interfaces.
17916         * loader.c: a TypeSpec may be used for any type, not just arrays.
17917
17918 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17919
17920         * class.c, class.h: added mono_class_array_element_size ().
17921         Ignore static methods in interfaces.
17922
17923 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17924
17925         * threads.c: fixed the build under cygwin.
17926
17927 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
17928
17929         * reflection.c: handle nullref constants. Allocate keys for
17930         reflection handles with the GC.
17931
17932 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17933
17934         * threads.c, threads.h: added mono_thread_get_abort_signal()
17935         to get a suitable signal for thread abort.
17936
17937 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17938
17939         * metadata.c: fix handling of ExportedType table.
17940
17941 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17942
17943         * icall.c: added WriteWindowsDebugString internal call.
17944
17945 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17946
17947         * reflection.h: added fields to match C# implementation.
17948
17949 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17950
17951         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
17952
17953 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
17954
17955         * gc.h, gc-internal.h: Rename header for GC internal calls to
17956         gc-internal.h from gc.h as to not clash with Boehm GC having its
17957         header installed as <gc.h> in outside include paths.
17958         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
17959         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
17960
17961 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17962
17963         * icall.c: assign minor, build and revision in FillName.
17964
17965 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
17966
17967         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
17968         Added support for running code generated by Reflection.Emit.
17969
17970 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17971
17972         * appdomain.c: check for NULL argument in LoadFrom.
17973
17974 2002-12-10  Dick Porter  <dick@ximian.com>
17975
17976         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
17977
17978 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17979
17980         * appdomain.c: fix buglet when building exe file name.  Handle full
17981         assembly name (needed after latest changes to AssemblyName).
17982         * image.c:
17983         (mono_image_close): free some hashtables.
17984
17985 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
17986
17987         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
17988         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
17989         on some systems (redhat 7.3) 
17990
17991 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
17992
17993         * threads.c: delete the critical section of a sync block,
17994         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
17995
17996 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
17997
17998         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
17999
18000 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18001
18002         * appdomain.[ch]: handle the assembly preload event to try loading the
18003         assemblies using the paths we have in the current domain.
18004
18005         * assembly.[ch]: created an assembly preload hook that is called to try
18006         loading the assembly by other means that the ones provided here.
18007
18008         * domain.c: initialize the domain search path.
18009
18010         From now on, assemblies (TODO: except corlib and System) are loaded
18011         according to these rules when using mono_assembly_load ():
18012
18013                 1. It tries to load the assembly from the ApplicationBase
18014                 of the current domain appending .dll and .exe (TODO: have to
18015                 try loading from name/name.dll and name/name.exe).
18016
18017                 2. It tries the search path specified in PrivateBinPath for the
18018                 current domain (if any).
18019
18020                 3. Previous behavior.
18021
18022 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
18023
18024         * icall.c: implemented GetInterfaceMap() related icall.
18025         * domain.c, loader.h: load MethodInfo in mono_defaults.
18026
18027 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18028
18029         * gc.c: disable the finalizer thread for now, untill all the issues
18030         with it are resolved.
18031
18032 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18033
18034         * string-icalls.c: handle embedded nulls in string ctor when the
18035         length is specified.
18036
18037 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18038
18039         * class.c: look for explicit interface implementation in parent
18040         classes, too.
18041
18042 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
18043
18044         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
18045
18046 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18047
18048         * gc.c: protect handles with a critical section.
18049
18050 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18051
18052         * icall.c:
18053         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
18054         parameters. If no assembly specified, try getting the type from all
18055         the assemblies in the current domain, else, load the assembly and get
18056         the type from it.
18057
18058 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18059
18060         * marshal.c: applied patch from Aleksey Demakov that fixes
18061         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
18062
18063 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18064
18065         * icall.c: fixed get_location.
18066
18067 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
18068
18069         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
18070         declarations to make it work with older gcc. 
18071
18072         * loader.c (mono_get_method): set signature->pinvoke for native calls
18073
18074 2002-11-20  Dick Porter  <dick@ximian.com>
18075
18076         * threads.c (mono_thread_init): Set the main thread's handle
18077
18078 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18079
18080         * gc.c: allow compilation without GC support. Changed to match the
18081         mono coding style.
18082
18083 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18084
18085         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
18086
18087 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
18088
18089         * reflection.c: set a public key token on the core assemblies.
18090
18091 2002-11-18  Dick Porter  <dick@ximian.com>
18092
18093         * threads.c: Split out some thread initialisation so that other
18094         files can set the start callback function.
18095
18096         * gc.c: Run finalisers in a separate thread, to avoid stack
18097         overflow.  Fixes bug 31333.
18098
18099         * appdomain.c: Set up GC finalisation thread.
18100
18101         * reflection.c: 
18102         * object.c: 
18103         * domain.c: Use gc.h macros for GC_malloc
18104         
18105 2002-11-15  Dick Porter  <dick@ximian.com>
18106
18107         * threadpool.c: 
18108         * threads.c:
18109         * appdomain.c: Removed mono_runtime_init_with_attach(),
18110         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
18111         merging the extra parameter with the existing function.  Removed
18112         unneeded code in mono_thread_attach().
18113
18114 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
18115
18116         * image.c (mono_image_loaded_by_guid): a method to get loaded
18117         images by guid. 
18118         (load_metadata_ptrs): we store the guid as string.
18119
18120 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
18121
18122         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
18123
18124         * metadata.c (mono_guid_to_string): imported method form Zoltan
18125         Varga (slightly modified)
18126
18127         * assembly.c (mono_assembly_open): load precompiled code
18128
18129         * loader.h (MonoMethod): we store the method token for use in the
18130         aot compiler. 
18131
18132 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18133
18134         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
18135         the hook function called when an assembly is loaded.
18136         
18137         * domain.c: Modified file.
18138         (mono_domain_assembly_load): removed hash table insertion of assemblies.
18139
18140         Fixes bug #33196.
18141
18142 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
18143
18144         * reflection.c: Map PEFileKind to the value expected by the WinNT
18145         image loader. 
18146
18147 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18148
18149         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
18150         Read until the buffer is filled completely.
18151
18152 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18153
18154         * icall.c: implemented MonoType.InternalGetEvent ().
18155
18156 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18157
18158         * appdomain.c: implemented InitAppDomainSetup. Delayed
18159         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
18160         the entry_assembly.
18161
18162         * assembly.c: base_dir is now an absolute path ending with
18163         G_DIR_SEPARATOR.
18164
18165         * icall.c: modified get_location according to the above changes.
18166
18167         * object.c: init AppDomain.SetupInformation for the default domain after
18168         we have the entry assembly.
18169
18170         * domain.c: when unloading a domain, setup = NULL.
18171
18172 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
18173
18174         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
18175
18176 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
18177
18178         * object.h, object.c: introduced mono_object_get_virtual_method ()
18179         to lookup the method invoked on an object when a callvirt is done on
18180         a method.
18181         * icall.c: make MethodInfo::Invoke() always do a virtual call.
18182
18183 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18184
18185         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
18186         current domain when loaded an assembly and failed to load it.
18187
18188         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
18189
18190 2002-10-31  Dick Porter  <dick@ximian.com>
18191
18192         * icall.c: 
18193         * file-io.h: 
18194         * file-io.c: Return the error status in a parameter, as the
18195         GetLastError() value has long since been blown away if we try and
18196         look it up in a subsequent internal call invocation.  Delete the
18197         GetLastError() internal call, because it's useless.
18198
18199 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
18200
18201         * class.[ch]: added cast_class to fix bug 29517
18202
18203 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
18204
18205         * marshal.c: create valid IL code in the filter clause:
18206         the new JIT is less forgiving:-)
18207
18208 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18209
18210         * icall.c: removed get_property internal call.
18211
18212 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
18213
18214         * appdomain.h domain.c: Added an ID to appdomains.
18215         
18216         * threads.c threads.h icall.c: Implement icall
18217         Thread:GetDomainID(), and remove unused icall 
18218         CurrentThreadDomain_internal.
18219
18220 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18221
18222         * icall.c: Don't recurse through the base types in GetConstructor.
18223         Fixes bug #32063. 
18224
18225 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
18226
18227         * mempool.h, mempool.c: added mono_mempool_empty() and
18228         mono_mempool_stats().
18229
18230 2002-10-23  Dick Porter  <dick@ximian.com>
18231
18232         * file-io.c: 
18233         * file-io.h: 
18234         * icall.c: Added MonoIO.GetFileType internal call
18235
18236 2002-10-17  Dick Porter  <dick@ximian.com>
18237
18238         * appdomain.c (mono_runtime_cleanup): Don't signal the async
18239         delegate semaphore before waiting for all threads to finish,
18240         because new threads can also call async delegates.  Fixes bug
18241         32004.
18242
18243         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
18244         of 3 seconds, in case another async job is queued.  (This part is
18245         needed because the bug fix reintroduced the 3s exit lag.)  This
18246         makes the mono_runtime_shutdown flag superfluous.
18247
18248 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
18249
18250         * reflection.c: include ehader size in method section headers.
18251         Really check for suplicated modules entries.
18252
18253 2002-10-17  Martin Baulig  <martin@gnome.org>
18254
18255         * debug-mono-symfile.c: Added back support for locals.
18256
18257 2002-10-14  Martin Baulig  <martin@gnome.org>
18258
18259         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
18260         MONO_TYPE_VOID.
18261
18262 2002-10-14  Martin Baulig  <martin@gnome.org>
18263
18264         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
18265         mono_class_get() instead of looking in the class cache. 
18266
18267 2002-10-13  Martin Baulig  <martin@gnome.org>
18268
18269         * debug-mono-symfile.c: Set version number to 28, include the
18270         signature in method names.
18271
18272 2002-10-13  Martin Baulig  <martin@gnome.org>
18273
18274         * debug-mono-symfile.h: Set version number to 27.
18275
18276 2002-10-11  Martin Baulig  <martin@gnome.org>
18277
18278         * gc.c: Don't register/unregister NULL pointers as disappearing links.
18279
18280 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18281
18282         * metadata.c, metadata.h: added helper function to allocate signatures.
18283
18284 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18285
18286         * icall.c: added internal call to get the location of machine.config.
18287
18288 2002-10-08  Martin Baulig  <martin@gnome.org>
18289
18290         * debug-mono-symfile.c: Ignore classes with a pending init for the
18291         moment.
18292
18293 2002-10-03  Dick Porter  <dick@ximian.com>
18294
18295         * threads.c: Freebsd pthread_t is a pointer
18296
18297 2002-10-03  Dick Porter  <dick@ximian.com>
18298
18299         * socket-io.c: Implemented GetHostName_internal
18300
18301 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18302
18303         * mono-config.c:
18304         (mono_config_parse_file): don't leak the text.
18305
18306 2002-10-02  Martin Baulig  <martin@gnome.org>
18307
18308         * debug-mono-symfile.c: Added support for methods.
18309
18310 2002-10-01  Martin Baulig  <martin@gnome.org>
18311
18312         * debug-mono-symfile.c: Don't emit methods and line numbers for
18313         the dynamic symbol file, just write the type table.  We can easily
18314         have an external helper program which creates a symbol file for an
18315         IL file.        
18316
18317 2002-10-01  Dick Porter  <dick@ximian.com>
18318
18319         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
18320         Only add the handle to the cleanup array when we're about to
18321         launch the thread.  Bug 31425 deadlocked when the test was run on
18322         mono under w32.
18323
18324 2002-10-01  Martin Baulig  <martin@gnome.org>
18325
18326         * debug-mono-symfile.c: Added support for properties.
18327
18328 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18329
18330         * reflection.c: unaligned store fix from Mark Crichton
18331         <crichton@gimp.org>.
18332
18333 2002-09-27  Martin Baulig  <martin@gnome.org>
18334
18335         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
18336         New interncall.
18337
18338 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
18339
18340         * assembly.h, assembly.c: use a sane API to hook into the assembly
18341         loading process instead of a useless special-purpouse hack
18342         (ngen needs a hook, too, for example).
18343
18344 2002-09-27  Dick Porter  <dick@ximian.com>
18345
18346         * threads.c (mono_thread_init): Call GetCurrentProcess() so
18347         io-layer can set up some process handle info.  Not needed on w32,
18348         but doesn't hurt either.
18349
18350         * process.c: Pass the program name in the second parameter to
18351         CreateProcess, so the path is searched.  Include the working
18352         directory. Implemented process name, process enumeration, and some
18353         process detail internal calls.
18354         
18355         * icall.c: Added internal calls for process lookup, and some
18356         process details
18357
18358 2002-09-26  Martin Baulig  <martin@gnome.org>
18359
18360         * assembly.c (mono_install_open_assembly_hook): New global
18361         function to install a function to be invoked each time a new
18362         assembly is loaded.
18363         (mono_assembly_open): Run this callback function if set.
18364
18365         * debug-mono-symfile.c: Put back line numbers for the dynamic
18366         symbol file and also record the .il file as source file.  This
18367         allows us to install the temporary symbol file as `file.dbg' just
18368         like a compiler-generated one.
18369
18370 2002-09-26  Nick Zigarovich <nick@chemlab.org>
18371
18372         * Corrected typo in gc.c (BOHEM vs BOEHM).
18373
18374 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18375
18376         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
18377         GetProperties. Also avoid calling g_slist_length in GetProperties and
18378         GetMethods.
18379
18380 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18381
18382         * reflection.c: avoid unaligned stores (bug spotted by
18383         Mark Crichton  <crichton@gimp.org>).
18384
18385 2002-09-25  Martin Baulig  <martin@gnome.org>
18386
18387         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
18388         instead of guint64 for addresses and added prologue/epilogue info.
18389
18390 2002-09-25  Martin Baulig  <martin@gnome.org>
18391
18392         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
18393         store line number info.  For the dynamic symbol file, we only need
18394         to provide the JIT generated dynamic line number info for the dynamic
18395         symbol file.
18396
18397 2002-09-25  Martin Baulig  <martin@gnome.org>
18398
18399         * debug-mono-symfile.h: Incremented version number.
18400
18401 2002-09-24  Martin Baulig  <martin@gnome.org>
18402
18403         * class.c (mono_debugger_class_init_func): New global function
18404         pointer variable.
18405         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
18406         call it.
18407
18408         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
18409         function.  This is called via the mono_debugger_class_init_func
18410         hook to add all types to the dynamic type table.
18411         (ves_icall_MonoDebugger_GetType): New interncall to get a class
18412         from its metadata token.
18413
18414         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
18415         New interncall for the debugger.
18416
18417 2002-09-24  Nick Drochak <ndrochak@gol.com>
18418
18419         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
18420         before using it in case it is null.
18421         
18422 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
18423
18424         * metadata.c: allow custom modifiers in local var signatures
18425         (bug spotted by Zoltan Varga).
18426
18427 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
18428
18429         * class.c: deal with the <Module> class that may have a NULL vtable.
18430         Eliminate warnings.
18431
18432 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18433
18434         * image.c, image.h: more strong name helpers.
18435         * monosn.c: more work: convert pem keys to cryptoapi format.
18436
18437 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
18438
18439         * string-icalls.c: speedup IndexOf.
18440
18441 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18442
18443         * icall.c: updates from Zoltan.2.Varga@nokia.com.
18444
18445 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18446
18447         * icall.c: cleanup: use mono_object_domain ().
18448
18449 2002-09-23  Martin Baulig  <martin@gnome.org>
18450
18451         * debug-mono-symfile.c: Improved type support.
18452
18453 2002-09-22  Martin Baulig  <martin@gnome.org>
18454
18455         * debug-mono-symfile.c: Added support for reference types and strings.
18456
18457 2002-09-22  Martin Baulig  <martin@gnome.org>
18458
18459         * debug-mono-symfile.c: Started to work on the type table.
18460
18461 2002-09-21  Martin Baulig  <martin@gnome.org>
18462
18463         * debug-mono-symfile.c: Largely reworked the symbol table format.
18464         The symbol table is now incrementally updated each time a new
18465         method is added.  We're now also using our own magic and version
18466         so that you don't need to recompile all your classes if the
18467         dynamic table changes.
18468         (mono_debug_update_mono_symbol_file): Removed.
18469         (mono_debug_symfile_add_method): New function to add a method.
18470
18471 2002-09-21  Martin Baulig  <martin@gnome.org>
18472
18473         * icall.c
18474         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
18475         New interncall.
18476
18477         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
18478         New interncall to get a method from its metadata token.
18479
18480 2002-09-21  Martin Baulig  <martin@gnome.org>
18481
18482         * debug-mono-symfile.c: Create type table.
18483
18484 2002-09-20  Martin Baulig  <martin@gnome.org>
18485
18486         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
18487
18488 2002-09-20  Martin Baulig  <martin@gnome.org>
18489
18490         * debug-mono-symfile.c: Provide information about params and locals.
18491
18492 2002-09-20  Martin Baulig  <martin@gnome.org>
18493
18494         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
18495         New interncall.
18496
18497         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
18498         interncall to get a method from its metadata token.
18499
18500 2002-09-20  Martin Baulig  <martin@gnome.org>
18501
18502         * debug-mono-symfile.c: Added a few checks for method->header
18503         being non-NULL.  This should never happen, but for the moment
18504         let's use a g_warning() rather than a g_assert().
18505
18506 2002-09-19  Mark Crichton  <crichton@gimp.org>
18507
18508         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
18509         even if support for it isn't present.  Added an #ifdef to fix this.
18510
18511         * socket-io.c: Added checks back for Solaris support.
18512
18513 2002-09-19  Martin Baulig  <martin@gnome.org>
18514
18515         * debug-mono-symfile.c (read_string, write_string): Reflect latest
18516         changes in the symbol file format.
18517
18518 2002-09-18  Martin Baulig  <martin@gnome.org>
18519
18520         * debug-mono-symfile.c: Set version number to 21.
18521
18522 2002-09-18  Dick Porter  <dick@ximian.com>
18523
18524         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
18525         on netbsd.  Fixes bug 30051.
18526
18527 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18528
18529         * reflection.c:
18530         (set_version_from_string): little fix.
18531
18532 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18533
18534         * monosn.c, Makefile.am: added strong name utility.
18535         * reflection.h, reflection.c: implemented delayed signing,
18536         locale, version and hash id assembly attributes.
18537
18538 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
18539
18540         * loader.c, metadata.c: load param attributes in signatures.
18541
18542 2002-09-16  Martin Baulig  <martin@gnome.org>
18543
18544         * debug-mono-symfile.c: Added string table with all method names.
18545
18546 2002-09-14  Martin Baulig  <martin@gnome.org>
18547
18548         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
18549         fast method lookup.
18550
18551 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18552
18553         * reflection.c: record the public key token of referenced assemblies.
18554
18555 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
18556
18557         * image.c, image.h: added functions to get the strong name and the
18558         public key of an assembly.
18559         * pedump.c: use them.
18560
18561 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
18562
18563         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
18564
18565 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
18566
18567         * marshal.c (mono_marshal_get_managed_wrapper): Added
18568         MONO_TYPE_BOOLEAN 
18569
18570 2002-09-11  Martin Baulig  <martin@gnome.org>
18571
18572         * gc.c: Call GC_unregister_disappearing_link() on all links when
18573         finalizing them, this is necessary to aviod a crash in boehm's
18574         finalize handler.
18575
18576 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18577
18578         * gc.c: handle GetTarget for finalized objects spotted and fixed by
18579         nick@chemlab.org.
18580
18581 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
18582
18583         * icall.c: implemented MonoType::Module.
18584         * reflection.c, reflection.h: mono_module_get_object () from
18585         Tomi Pakarinen <tomi.pakarinen@welho.com>.
18586
18587 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
18588
18589         * icall.c: ignore overridden methods in GetMethods ().
18590         Fix for FieldInfo::SetValue().
18591         * object.c: handle float/double in runtime invoke.
18592
18593 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
18594
18595         * object.c: allow a constructor to be called again on an object.
18596
18597 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18598
18599         * class.h, class.c: move field layout code to it's own function and
18600         export it. Get an interface id earlier. Move fields in MonoClass
18601         so they are more cache friendly and align the bitfields.
18602         * loader.c: temporary handle get_param_names() for a runtime method.
18603         * reflection.c, reflection.h: more code to handle runtime creation of
18604         types.
18605
18606 2002-09-09  Martin Baulig  <martin@gnome.org>
18607
18608         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
18609         signature with the pinvoke field being set for the actual call.
18610
18611 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
18612
18613         * icall.c: removed some unused icalls. Start of map of glib charsets
18614         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
18615
18616 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18617
18618         * debug-helpers.c: break infinite loop (found and fixed by
18619         Holger Arnold <harnold@gmx.de>).
18620
18621 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
18622
18623         * icall.c: target may be null in create_delegate.
18624
18625 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
18626
18627         * marshal.c: handle a boolean return type.
18628
18629 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
18630
18631         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
18632
18633 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18634
18635         * gc.c: fix weakreferences.
18636
18637 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
18638
18639         * icall.c: added icall to get default codepage.
18640
18641 2002-09-03  Dick Porter  <dick@ximian.com>
18642
18643         * threads.h: 
18644         * threads.c: Use MonoThread instead of MonoObject where
18645         apropriate.
18646
18647         Store running thread objects in a hash table, so that we have all
18648         the info to hand when waiting for them to finish
18649         (means we don't need OpenThread() any more, so mingw builds should
18650         be fully functional again.)
18651
18652         * verify.c:
18653         * object.h: Added thread ID to MonoThread
18654
18655 2002-09-03  Martin Baulig  <martin@gnome.org>
18656
18657         * icall.c (System.Reflection.Assembly::get_location): New interncall.
18658
18659 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18660
18661         * icall.c: fixed leak in get_temp_path. Thanks lupus.
18662
18663 2002-09-03  Martin Baulig  <martin@gnome.org>
18664
18665         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
18666         argument to store the end address of the disassembled instruction.
18667
18668         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
18669         here from debug-symfile.h.
18670         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
18671         JIT into this struct.
18672         (MonoSymbolFile): Added `char *image_file' field.
18673         (MonoDebugGetMethodFunc): Removed.
18674         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
18675         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
18676         (mono_debug_find_method): New method.
18677
18678         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
18679         create a full symbol file.
18680         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
18681         and static symbol files.
18682         (mono_debug_find_method): The symbol file keeps an internal method hash,
18683         call this to get a MonoDebugMethodInfo from a MonoMethod.
18684
18685         * debug-symfile.[ch]: Removed.
18686
18687 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
18688
18689         * image.c (do_mono_image_open): Remove linker version check.
18690
18691 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
18692
18693         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
18694         wrappers for instance methods.
18695         
18696 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18697
18698         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
18699
18700 2002-08-28  Dick Porter  <dick@ximian.com>
18701
18702         * Makefile.am: Export HOST_CC for w32 builds
18703
18704 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
18705
18706         * file-io.c process.c: MonoString are null terminated, no
18707         need for mono_string_to_utf16() anymore.
18708
18709 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18710
18711         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
18712
18713 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
18714
18715         * icall.c, reflection.h: speedup System.MonoType.
18716
18717 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
18718
18719         * reflection.c: allow null as the value of a string argument in
18720         custom attributes constructors.
18721
18722 2002-08-27  Martin Baulig  <martin@gnome.org>
18723
18724         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
18725         `trampoline_address' field.
18726
18727 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
18728
18729         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
18730         check (fixes bug #29486) 
18731
18732 2002-08-27  Martin Baulig  <martin@gnome.org>
18733
18734         * debug-mono-symfile.c: Changed the file format in a way that allows us
18735         open it read-only and to use a specially malloced area for all the
18736         dynamic data.  We can now also generate a symbol file on-the-fly if we're
18737         debugging IL code and there is no MCS generated symbol file for it.
18738
18739 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
18740
18741         * object.c: added a define for a good string and array
18742         creation speedup (not enabled by default because we need to deal with
18743         the synch stuff).
18744
18745 2002-08-26  Martin Baulig  <martin@gnome.org>
18746
18747         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
18748         function to create a dynamic symbol file.  This is used by the
18749         debugger to create a symbol file for IL code on-the-fly.
18750
18751 2002-08-26  Martin Baulig  <martin@gnome.org>
18752
18753         * loader.c (mono_lookup_pinvoke_call): Include the error message
18754         from g_module_error() in the error message.
18755
18756 2002-08-24  Martin Baulig  <martin@gnome.org>
18757
18758         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
18759         function to update the symbol file.  The symbol file is mmap()ed
18760         writable, but private.  This allows us to install the symbol file
18761         together with the assembly.
18762
18763 2002-08-24  Martin Baulig  <martin@gnome.org>
18764
18765         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
18766         but they can read the new symbol file format which mcs is now creating.
18767
18768         * debug-symfile.c (mono_debug_find_source_location): Moved to
18769         debug-mono-symfile.c; this is now operating on the new symbol file.
18770
18771 2002-08-23  Martin Baulig  <martin@gnome.org>
18772
18773         * debug-helpers.c (mono_method_desc_from_method): New function to get
18774         a MonoMethodDesc from a MonoMethod.
18775
18776 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
18777
18778         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
18779         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
18780
18781 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
18782
18783         * string-icalls.[ch]: make helper methods static.
18784
18785 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18786
18787         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
18788         types to it and to SetValueInternal.
18789
18790         * object.c: Moved handle_enum label to its proper place. This was the
18791         f... bug! ;-)
18792
18793         This time i compiled mcs and gtk-sharp and they both work.
18794
18795 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18796
18797         * icall.c: reverted partially my previous patch until 
18798         object.c:set_value handles enums correcly.
18799
18800 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18801
18802         * icall.c:
18803         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
18804         (ves_icall_System_Environment_get_MachineName): removed warning when
18805         compiling under cygwin.
18806
18807 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
18808
18809         * object.c: fixed field_get_value() for reference types.
18810
18811 2002-08-22  Dick Porter  <dick@ximian.com>
18812
18813         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
18814         Don't free a buffer while it's still needed.  Patch from Jonathan
18815         Liger <Jonathan.liger@wanadoo.fr>
18816
18817 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
18818
18819         * icall.c (ves_icall_System_Environment_get_Platform): Add new
18820         internal call.
18821
18822 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
18823
18824         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
18825         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
18826
18827         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
18828         we call unmanaged code which throws exceptions.
18829
18830 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18831
18832         * appdomain.h: added per-domain entry_assembly.
18833         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
18834         arguments.
18835         * icall.c: Assembly::GetEntryAssembly icall.
18836         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
18837         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
18838
18839 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18840
18841         * appdomain.h, gc.c: added mono_domain_finalize ().
18842
18843 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18844
18845         * object.c:
18846         (mono_print_unhandled_exception): changed g_warning by g_printerr
18847         because g_log has a 1024 characters limit (yeah, i got a big stack
18848         trace). Don't print exception name, that should be in ToString 
18849         returned string.
18850
18851 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18852
18853         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
18854         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
18855
18856 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18857
18858         * object.c:
18859         (mono_print_unhandled_exception): after previous commit, i realized
18860         that MS calls ToString on the exception. I changed this function to
18861         do that. This way we get stack_trace for free.
18862
18863 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18864
18865         * object.c:
18866         (mono_print_unhandled_exception): invoke Message property instead of
18867         getting 'message' field from Exception. Don't allocate memory for
18868         'trace' and 'message' if not needed.
18869
18870 2002-08-18  Dick Porter  <dick@ximian.com>
18871
18872         * unicode.c: Fix asserts to match Encoder.cs checks
18873
18874 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
18875
18876         * marshal.c: fix unaligned store issue and a few wrong
18877         opcode argument types.
18878
18879 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18880
18881         * icall.c: added GetUninitializedObjectInternal internal call.
18882
18883 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
18884
18885         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
18886         to the right domain.
18887
18888 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
18889
18890         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
18891
18892         * class.c (class_compute_field_layout): set blittable to false for Strings
18893
18894         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
18895
18896 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
18897
18898         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
18899         first chunk of code to create types at runtime. Code to
18900         handle ReflectedType/DeclaringType. Make reflection handles
18901         domain specific.
18902
18903 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
18904
18905         * class.c: set correct name in arrays.
18906
18907 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
18908
18909         * appdomain.c (mono_domain_transfer_object): make it work with
18910         valuetypes. bug fixes.
18911
18912 2002-08-12  Dick Porter  <dick@ximian.com>
18913
18914         * object.h: Rename some parameters to avoid c++ keywords (Patch
18915         from Joseph Wenninger <kde@jowenn.at>)
18916
18917 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
18918
18919         * icall.c: added icall to implement Assembly.GetFile*.
18920
18921 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18922
18923         * reflection.h, reflection.c: code to embed managed resources.
18924
18925 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
18926
18927         * class.c: move all the type size stuff into
18928         class_compute_field_layout().
18929
18930 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
18931
18932         * class.c: ensure enums have always the correct instance size.
18933         * unicode.c: remove wrong assert.
18934
18935 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
18936
18937         * assembly.c: fix mem corruption issue.
18938         * image.h, image.c: added mono_image_get_resource () to access
18939         managed resources.
18940         * icall.c: implemented Assembly.EntryPoint property and some
18941         Managed Resources related internalcalls.
18942
18943
18944 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
18945
18946         * image.c, image.h: impemented mono_image_get_entry_point ().
18947         * appdomain.c: use mono_image_get_entry_point.
18948
18949 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18950
18951         * reflection.c: support the object type argument when loading
18952         custom attributes.
18953
18954 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
18955
18956         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
18957         String as return type.
18958
18959 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
18960
18961         * reflection.c: fix encoding of named args for custom attrs to match
18962         the ms implementation. Read them back when instantiating custom
18963         attributes.
18964
18965 2002-08-02  Radek Doulik  <rodo@ximian.com>
18966
18967         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
18968         by Dietmar as quick fix
18969         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
18970         16 as stack size, used on more places as quick fix before Dietmar
18971         will fix it properly
18972
18973 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
18974
18975         * object.h, object.c: added accessors for fields and properties.
18976
18977 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
18978
18979         * class.c, class.h: made mono_class_get_field_from_name ()
18980         loop on parent types.
18981         Added mono_class_get_property_from_name ().
18982
18983 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
18984
18985         * class.c, class.h: move the code to setup the type vtable in its own
18986         function so that it can be reused also for types created at runtime.
18987         Eliminate the "class" identifier from the header file.
18988         * reflection.c: setup the vtable for enums so that we can create
18989         objects for use in SetConstant ().
18990
18991 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
18992
18993         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
18994         instead of the delegate itself as this pointer (bug #28383)
18995
18996 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
18997
18998         * marshal.c (mono_marshal_get_managed_wrapper): added return type
18999         conversions.
19000
19001 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19002
19003         * loader.c: don't set the pinvoke bit on icalls.
19004
19005 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
19006
19007         * debug-helpers.c (mono_method_full_name): only print a number to
19008         indicate wrapper type (so that the output is more readable in traces).
19009
19010 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
19011
19012         * class.c (mono_class_init): include method override patch from Paolo
19013
19014 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
19015
19016         * icall.c: fixed GetTypeCode().
19017
19018 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
19019
19020         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
19021         use real delegate invoke function to make it work with multicast
19022         delegates (fix bug# 28291).
19023
19024 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19025
19026         * object.c: load constant strings.
19027
19028 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19029
19030         * reflection.c: no magic numbers.
19031         * tabledefs.h: security action enum.
19032
19033 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19034
19035         * assembly.c: fix possible memory corruption.
19036
19037 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19038
19039         * reflection.h, reflection.c: added support for linking resources.
19040         * verify.c: check we have an updated corlib.
19041
19042 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
19043
19044         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
19045         string arrays.
19046         (mono_marshal_string_array): null terminate unmanaged string arrays.
19047         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
19048
19049 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19050
19051         * icall.c: Type.GetType () can now return also types from the
19052         calling assembly.
19053
19054 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19055
19056         * loader.h, loader.c: stack walking support.
19057         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
19058         GetCallingAssembly.
19059
19060 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
19061
19062         * marshal.c: added optimisations for blittable types 
19063
19064         * class.c (mono_array_class_get): do not set blittable attribute on arrays
19065         (mono_class_setup_mono_type): set blittable attribute for single
19066         and double.
19067
19068         * marshal.c (mono_string_utf8_to_builder): impl.
19069         (mono_string_builder_to_utf8): impl.
19070         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
19071
19072 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
19073
19074         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
19075         (mono_marshal_get_managed_wrapper): impl. byref types
19076
19077 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19078
19079         * icall.c:
19080         (search_method): don't display debug message. 
19081
19082 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19083
19084         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
19085
19086 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
19087
19088         * appdomain.c: set the missing filename when throwing exception.
19089
19090 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
19091
19092         * metadata.c (mono_type_size): code cleanup
19093         (mono_type_stack_size): removed some test code
19094
19095 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
19096
19097         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
19098         mono_get_exception_file_not_found now.
19099
19100         * exception.c (mono_exception_from_name_two_strings): New version
19101         that will call a constructor with two string arguments. 
19102         (mono_get_exception_file_not_found): New helper routine, used to
19103         report file-not-found errors.
19104
19105 2002-07-20  Dick Porter  <dick@ximian.com>
19106
19107         * process.h:
19108         * process.c: Pass file handles to CreateProcess
19109         
19110         * icall.c:
19111         * file-io.h:
19112         * file-io.c: Implemented CreatePipe
19113
19114 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19115
19116         * metadata.c (mono_get_param_info): set alignment for value types
19117
19118 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19119
19120         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
19121         Constify mono_domain_assembly_open().
19122         * loader.c: handle null namespace in icalls.
19123
19124 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
19125
19126         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
19127         (emit_str_to_ptr_conv): marshal object as structs
19128
19129         * metadata.c (mono_type_to_unmanaged): marshal object as structs
19130
19131         * marshal.c (mono_marshal_get_runtime_invoke): support value types
19132
19133 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
19134
19135         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
19136         (mono_marshal_get_native_wrapper): we an now return value types
19137
19138 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19139
19140         * verify.c: more checks implemented.
19141
19142 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
19143
19144         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
19145         (fix bug #27695)
19146         (mono_marshal_get_native_wrapper): allow byref arguments
19147         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
19148         impl. PtrToStringXXX methods
19149         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
19150         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
19151         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
19152         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
19153         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
19154
19155 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19156
19157         * reflection.c: fix buglet in parsing an assembly name.
19158
19159 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19160
19161         * marshal.c (emit_ptr_to_str_conv): first impl.
19162
19163 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19164
19165         * object.c, class.h: cache the vtable in the class as suggested by
19166         vargaz@freemail.hu (Zoltan Varga).
19167
19168 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19169
19170         * class.h, loader.c: added mono_field_from_token().
19171         * verify.c: first cut of type checking code.
19172
19173 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
19174
19175         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
19176
19177 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
19178
19179         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
19180         (fix bug #27782)
19181         (mono_marshal_get_remoting_invoke): impl.
19182         (mono_delegate_begin_invoke): impl.
19183         (mono_mb_emit_save_args): impl.
19184         (mono_delegate_end_invoke): impl.
19185         (mono_marshal_get_delegate_begin_invoke):
19186         (mono_marshal_get_delegate_end_invoke):
19187         (mono_marshal_get_delegate_invoke): generate a special name for
19188         those methods (including the signature) and associate them whith
19189         the delegate class. 
19190
19191 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
19192
19193         * reflection.[ch]: 
19194         (mono_reflection_type_from_name): now it has a MonoImage parameter
19195         which is used as the default image to search the type in. If the image
19196         is NULL or getting the type from it fails, it defaults to corlib.
19197
19198         * icall.c: changed 1 call to mono_reflection_type_from_name to match
19199         new parameter.
19200
19201 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19202
19203         * reflection.c: update the parameter table index.
19204
19205 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19206
19207         * domain.c: don't include the mark byte in the string hash.
19208
19209 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19210
19211         * icall.cs: icall for Type.GetTypeCode ().
19212         * verify: a couple of fixes and disabled local initialization checks.
19213
19214 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
19215
19216         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
19217
19218         * debug-helpers.c (mono_method_full_name): print the type of the
19219         runtime wrapper
19220
19221         * metadata.c (mono_signature_hash): a hash function for signatures
19222         (mono_signature_hash): better hash algorithm
19223
19224         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
19225
19226         * debug-helpers.c (mono_method_full_name): this can now generate
19227         method names with signatures
19228
19229         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
19230         method dont have this pointers.
19231
19232 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
19233
19234         * reflection.c: fixup typebuilder tokens.
19235         * image.c: fix buglet.
19236         * marshal.h: remove whitespace.
19237         * metadata.h, metadata.c: reinstate code that was removed.
19238         * verify.c: handle catch directives and fix another couple of bugs.
19239
19240 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
19241
19242         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
19243         (mono_marshal_get_native_wrapper): make it comp. with the old code
19244         (mono_marshal_get_native_wrapper): support boolean
19245         (mono_marshal_get_managed_wrapper): support more types
19246
19247 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
19248
19249         * class.c (class_compute_field_layout): compute class->blittable attribute.
19250
19251 2002-07-09  Dick Porter  <dick@ximian.com>
19252
19253         * threads.c: Make the thread cleaning up cope with threads that
19254         call ExitThread()
19255
19256 2002-07-08  Radek Doulik  <rodo@ximian.com>
19257
19258         * reflection.c (method_encode_code): use non-translated values to
19259         compute finally_start, this fixes exception handling on ppc, yay!
19260
19261         * decimal.h (struct signscale): fix endianess
19262
19263 2002-07-07  Radek Doulik  <rodo@ximian.com>
19264
19265         * reflection.c: swap box_val and not val
19266
19267 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19268
19269         * reflection.c, reflection.h: handle full assembly info in type name.
19270         Handle Type arguments when loading custom attributes.
19271         * icall.c: updated to use new mono_reflection_type_from_name () method.
19272
19273 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19274
19275         * loader.c:
19276         (method_from_memberref): also print assembly name when method not found.
19277
19278 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19279
19280         * icall.c:
19281         (ves_icall_TypeGetProperties): fixed bug #27473. 
19282
19283 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19284
19285         * reflection.c: display image name and token when cannot find the
19286         .ctor for an attribute.
19287
19288 2002-07-05  Martin Baulig  <martin@gnome.org>
19289
19290         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19291
19292 2002-07-04  Dick Porter  <dick@ximian.com>
19293
19294         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
19295         compile on mingw.  This will cause mingw builds to not wait for
19296         subthreads to terminate after the main thread does.  I've lodged a
19297         bug with the mingw developers for them to wrap OpenThread().
19298
19299 2002-07-03  Dick Porter  <dick@ximian.com>
19300
19301         * threads.c: Store thread IDs instead of handles, because
19302         GetCurrentThread() returns a pseudohandle and therefore stores
19303         useless values.  mono_thread_cleanup() continues checking the
19304         array of threads until it is empty, to cope with subthreads
19305         spawning new threads after the main thread has finished.
19306
19307         * profiler.h:
19308         * profiler.c:
19309         * profiler-private.h: Pass the thread ID to thread profiler
19310         functions, instead of a handle
19311
19312 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19313
19314         * verify.c: fixes to make it more usable.
19315         * pedump.c: added --verify code to verify IL code in an assembly.
19316
19317 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19318
19319         * reflection.c: turn errors into warnings to allow compiling corlib.
19320
19321 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
19322
19323         * reflection.c: add special cases to compile corlib.
19324
19325 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19326
19327         * reflection.c: handle properties with only a set method.
19328
19329 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19330
19331         * opcodes.h: add enum with opcodes in opval order.
19332
19333 2002-07-01  Dick Porter  <dick@ximian.com>
19334         
19335         * object.h:
19336         * object.c (mono_runtime_run_main): Removed unneeded argument
19337
19338 2002-06-28  Martin Baulig  <martin@gnome.org>
19339
19340         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
19341
19342 2002-06-27  Dick Porter  <dick@ximian.com>
19343
19344         * threads.c: Store the handle in both the parent thread and in the
19345         subthread, to minimise the time between starting a new thread and
19346         storing its ID.
19347
19348 2002-06-26  Dick Porter  <dick@ximian.com>
19349
19350         * appdomain.c (mono_runtime_cleanup): Close the socket library
19351         after all the threads have finished, not before
19352
19353 2002-06-26  Martin Baulig  <martin@gnome.org>
19354
19355         * debug-symfile.c (mono_debug_find_source_location): Added
19356         `guint32 *line_number' argument.  If it's not NULL, store the line number
19357         there and return the file name without the line number.
19358
19359 2002-06-25  Dick Porter  <dick@ximian.com>
19360
19361         * icall.c:
19362         * process.h:
19363         * process.c: Process forking and other support functions
19364
19365 2002-06-25  Dick Porter  <dick@ximian.com>
19366
19367         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
19368         things dont happen when the image is closed.
19369         (mono_image_lookup_resource): Walk the resource section looking
19370         for a particular entry
19371
19372         * cil-coff.h: PE resource section decoding
19373
19374 2002-06-25  Dick Porter  <dick@ximian.com>
19375         
19376         * assembly.h:
19377         * assembly.c: 
19378         (mono_assembly_foreach): Accessor functions to walk the list of
19379         loaded assemblies
19380         (mono_assembly_set_main):
19381         (mono_assembly_get_main): Process methods need to know which
19382         assembly is the "main" one
19383
19384         * object.c (mono_runtime_run_main): Record the main assembly
19385
19386         * debug-helpers.c: Fix typo
19387
19388 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
19389
19390         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
19391         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
19392
19393 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19394
19395         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
19396
19397 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
19398
19399         * image.c (do_mono_image_open): Initialize reference count,
19400         otherwise we leak the MonoImage.
19401
19402 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19403
19404         * reflection.c: small tweak to handle self-hosting.
19405
19406 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
19407
19408         * reflection.c: fix type name parse code.
19409
19410 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19411
19412         * reflection.c: break out of the loop.
19413         * image.c: special case corlib.
19414
19415 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19416
19417         * reflection.c: add all the custom attrs at the end to ensure the
19418         ctors have been properly initialized when the attributes are defined
19419         in the current assembly.
19420
19421 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19422
19423         * reflection.c: handle correctly multiple-nested types.
19424
19425 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
19426
19427         * row-indexes.h: fix typos.
19428         * reflection.c: adjust for typos and fix method_def_or_ref
19429         encoding in MethodImpl table.
19430
19431 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19432
19433         * reflection.c: fix entry point patching (thanks Serge!).
19434
19435 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
19436
19437         * verify.c: add check for System.Exception
19438
19439 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
19440
19441         * image.c, class.c: minifix for code just c&p'ed.
19442         * reflection.c: warning fix.
19443         * object.h, loader.h, domain.c: load also StringBuilder.
19444
19445 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
19446
19447         * marshal.h, marshal.c: some support code to handle complex marshaling.
19448
19449 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19450
19451         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
19452         Better signatures with vtable error dump.
19453
19454 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
19455
19456         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
19457
19458 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
19459
19460         * icall.c (ves_icall_Type_GetField): impl.
19461
19462 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19463
19464         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
19465         to retrieve a marshal description blob for a field or param.
19466
19467 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
19468
19469         * reflection.h, reflection.c: change order of nested type emission
19470         to avoid table corruption. The NestedTypes table is sorted.
19471         * icall.c: change order of GetConstructor results to workaround mcs bug.
19472
19473 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19474
19475         * reflection.h, reflection.c: handle field and param marshal
19476         information.
19477
19478 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19479
19480         * icall.c, marshal.c marshal.h: more Marshal class implementation.
19481
19482 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19483
19484         * reflection.c: fix call convention.
19485
19486 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19487
19488         * reflection.h, reflection.c: mono_image_get_memberref_token()
19489         takes a type instead of a class, now. Added
19490         mono_image_get_array_token() to create tokens for the special
19491         multi-dim array methods.
19492
19493 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19494
19495         * assembly.c: handle modules (no assembly table). Split
19496         loading references in its own function.
19497         * class.c: handle moduleref resolution scope.
19498         * image.c, image.h: cache module name in image.
19499
19500 2002-06-07  Martin Baulig  <martin@gnome.org>
19501
19502         * reflection.c (mono_image_get_type_info): Only add a class layout entry
19503         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
19504
19505 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19506
19507         * icall.c: more signature fixes that used uint instead of int.
19508
19509 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19510
19511         * reflection.c: fixed signature of field refs.
19512
19513 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19514
19515         * class.c, reflection.c: handle typerefs of nested types
19516         (both on read and when writing files).
19517
19518 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
19519
19520         * icall.c: fix method signatures that tried to workaround the previous
19521         typo, d'oh!
19522
19523 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
19524
19525         * debug-helpers.c: fix typo.
19526
19527 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
19528
19529         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
19530         rewrote the PE/COFF writing code (our programs are understood by the
19531         ms runtime, now).
19532
19533 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
19534
19535         * gc.c, gc.h, icall.c: weakreference support.
19536
19537 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
19538
19539         * Makefile.am, mono-config.c: use $(sysconfdir).
19540
19541 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
19542
19543         * icall.c: changed default precision of Double.ToString() to 15.
19544         Fixed memory leak. Unified with Single.ToString.
19545
19546 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
19547
19548         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
19549
19550 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
19551
19552         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
19553         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
19554         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
19555         and myself.
19556
19557 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19558
19559         * debug-symfile.c, sysmath.c: yet more compilation fixes.
19560
19561 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
19562
19563         * reflection.c, socket-io.c: more compilation fixes.
19564
19565 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19566
19567         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
19568         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
19569         unicode.c: warning and compiler compatibility fixes.
19570
19571 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19572
19573         * class.h, metadata.c: fixed warnings/compilation errors.
19574
19575 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
19576
19577         * Makefile.am, mono-config.c, mono-config.h: configuration file
19578         support routines.
19579         * loader.c, loader.h: make Dll mapping configurable at runtime in the
19580         config file. Export methods to insert and lookup mappings.
19581
19582 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
19583
19584         * reflection.c: handle types and boxed objects in custom attr
19585         constructors.
19586
19587 2002-05-30  Martin Baulig  <martin@gnome.org>
19588
19589         * debug-symfile.c
19590         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
19591
19592 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
19593
19594         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
19595         to lookup the implmap row for a P/Invoke method.
19596         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
19597         P/Invoke method from the runtime on an as needed basis.
19598
19599 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
19600
19601         * metadata.c (mono_metadata_parse_signature): impl.
19602
19603 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19604
19605         * class.c: handle .pack directive.
19606
19607 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
19608
19609         * object.c: initialize static fields with RVA data.
19610
19611 2002-05-25  Martin Baulig  <martin@gnome.org>
19612
19613         * debug-symfile.c
19614         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
19615
19616 2002-05-24  Martin Baulig  <martin@gnome.org>
19617
19618         * debug-symfile.c
19619         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
19620         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
19621         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
19622
19623 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
19624
19625         * object.c: special case string ctros in invoke.
19626         * gc.c: silly whitespace changes.
19627
19628 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
19629
19630         * threadpool.[ch]: impl. a threadpool that can
19631         be used by mint and mono.
19632
19633 2002-05-22  Martin Baulig  <martin@gnome.org>
19634
19635         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
19636         The first argument is now a `MonoReflectionModuleBuilder *', the return
19637         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
19638         `methods' field to get the method builder.  The `token' argument is the
19639         unfixed token.
19640
19641         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
19642         invalid characters instead of g_assert_not_reached()ing.  This seems
19643         to be the behaviour of mscorlib.
19644
19645 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
19646
19647         * object.c (mono_runtime_invoke_array): applied patch from Rachel
19648         Hestilow to fix bug #25104
19649
19650 2002-05-21  Martin Baulig  <martin@gnome.org>
19651
19652         * debug-symfile.c (mono_debug_find_source_location): New function.
19653         Looks up an IL offset in the line number table and returns the source
19654         location as a string.
19655
19656 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19657
19658         * icall.c:
19659         (mono_double_ToStringImpl): changed %f by %g until we have something
19660         better.
19661
19662 2002-05-21  Nick Drochak  <ndrochak@gol.com>
19663
19664         * icall.c : Use different name for Math.Pow's icall.  Needed to check
19665         parameters first in C#.
19666
19667 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19668
19669         * icall.c, reflection.h: added icall to get info about an event.
19670
19671 2002-05-20  Radek Doulik  <rodo@ximian.com>
19672
19673         * object.c (mono_value_box): don't use memcpy for boxing on BIG
19674         endian
19675         (mono_value_box): don't use memcpy for small sizes on
19676         architectures with unaligned access
19677
19678 2002-05-20  Martin Baulig  <martin@gnome.org>
19679
19680         * reflection.c (mono_reflection_setup_internal_class): Don't crash
19681         if `tb->parent == NULL'.
19682         (mono_reflection_create_internal_class): New function.  This is
19683         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
19684         for enum types.
19685
19686         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
19687         New interncall.
19688
19689 2002-05-19  Martin Baulig  <martin@gnome.org>
19690
19691         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
19692         argument to get the length, don't default to the array length.
19693
19694 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
19695
19696         * assembly.c (mono_assembly_setrootdir): New function used to
19697         override the MONO_ASSEMBLIES directory.
19698
19699 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
19700
19701         * icall.c: ValueType_GetHashCode() initialize local var.
19702
19703 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
19704
19705         * reflection.c: sort custom attributes table.
19706
19707 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19708
19709         * reflection.c: support named args in custom attributes (write support).
19710
19711 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
19712
19713         * reflection.c: fix finally position calculation.
19714
19715 2002-05-15  Radek Doulik  <rodo@ximian.com>
19716
19717         * reflection.c: fixed endianess at many places
19718
19719         * icall.c (ves_icall_InitializeArray): comment out debug msg
19720
19721 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
19722
19723         * object.c (mono_unhandled_exception): new function to handle
19724         unhandled exceptions.
19725         (mono_unhandled_exception): call the UnhandledException event.
19726         (mono_runtime_delegate_invoke): impl.
19727
19728 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
19729
19730         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
19731         returns the RVA, not the direct pointer to the data. Handle the case
19732         when the class size is fixed.
19733
19734 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
19735
19736         * reflection.c: fix some endianess issues.
19737
19738 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
19739
19740         * object.c (mono_runtime_invoke): is now able to catch exceptions.
19741
19742         * threads.c (mono_thread_init): added a callback which is invoked
19743         at thread start.
19744
19745 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19746         
19747         * icall.c: make GetHashCode return non-negative values.
19748
19749 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
19750
19751         * object.c, icall.c, gc.c: revert to address-based hashcode.
19752
19753 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
19754
19755         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
19756
19757 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
19758
19759         * icall.c, class.c: special case <Module>.
19760
19761 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
19762
19763         * icall.c: fix bug in GetNow().
19764
19765 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
19766
19767         * object.c (mono_runtime_class_init): make sure that we call all
19768         static class constructors.
19769
19770 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
19771
19772         * reflection.c: sort methodsemantics table.
19773
19774 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
19775
19776         * reflection.h, reflection.c: honour init locals setting.
19777
19778 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
19779
19780         * icall.c: copied Double ToStringImpl for Single ToStringImpl
19781
19782 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
19783
19784         * reflection.c: support ContructorBuilders in attribute blob creation.
19785
19786 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19787
19788         * reflection.c: some changes to build a binary that can be run
19789         directly in windows.
19790
19791 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
19792
19793         * loader.c: print a big message when an icall can't be found.
19794
19795 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19796
19797         * string-icalls.c: fix bug 24248.
19798
19799 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
19800
19801         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
19802         icall.c, reflection.h: separate assembly loading by pathname and by
19803         assembly name. Use the MONO_PATH env var to search for assemblies.
19804
19805 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
19806
19807         * assembly.c, image.h: add some support for assemblies
19808         with multiple modules.
19809         * class.c, class.h: export mono_class_from_typeref().
19810         * loader.c: remove duplicated code and use mono_class_from_typeref(),
19811         instead.
19812
19813 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19814
19815         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
19816         documentation says (the ECMA one is correct).
19817
19818 2002-05-02  Dick Porter  <dick@ximian.com>
19819
19820         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
19821         Don't name the synchronisation mutex.
19822
19823 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
19824
19825         * rand.c
19826         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
19827         Make the prototypes match.
19828         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
19829         Same.
19830
19831         * icall.c
19832         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
19833         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
19834         all systems have tm.tm_zone, so use strftime() with %Z to print
19835         the timezone abreviation into a temp string.
19836
19837         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
19838         rather than mono_array_addr() on a MonoString on Big Endian
19839         machines.
19840
19841 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
19842
19843         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
19844         fix bug 24041
19845
19846 2002-04-30  Dick Porter  <dick@ximian.com>
19847
19848         * socket-io.c: Cope with SOCKET being an integer rather than a
19849         pointer now.
19850
19851         * threads.c: Added Thread_free_internal, to deal with thread
19852         handle cleanup.  Moved calls to handle_store() and handle_remove()
19853         to start_wrapper(), so each can only be called once.  Allocate
19854         synchronisation blocks with GC_malloc(), and use GC finalisation
19855         to close the handles.
19856
19857         * icall.c: added System.Threading.Thread::Thread_free_internal
19858
19859 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19860
19861         * icall.c: support Environment.Exit, CommandLineArgs().
19862
19863 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
19864
19865         * object.c, object.h: added mono_runtime_run_main () and
19866         mono_runtime_get_main_args () for use in System.Environment.
19867
19868 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
19869
19870         * gc.c: fix thinko, enable actual finalization since the jit is now
19871         fixed.
19872
19873 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
19874
19875         * gc.c, object.c: take into account that an object may be offset wrt the address
19876         returned by GC_malloc().
19877
19878 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
19879
19880         * image.c: handle files without entries in the assembly table (modules).
19881
19882 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
19883
19884         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
19885         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
19886         allowed to be null when it's System.Object class setup.
19887
19888 2002-04-27  Martin Baulig  <martin@gnome.org>
19889
19890         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
19891         if `tb->parent == NULL' rather than crashing.
19892
19893 2002-04-28  Nick Drochak  <ndrochak@gol.com>
19894
19895         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
19896         calling acos() where asin() should have been called.
19897
19898 2002-04-26  Martin Baulig  <martin@gnome.org>
19899
19900         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
19901         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
19902         there's a subdirectory called `System', but we don't want to read that
19903         subdirectory as an assembly.
19904
19905 2002-04-25  Martin Baulig  <martin@gnome.org>
19906
19907         * debug-symfile.c: Reflect latest MonoString changes.
19908
19909 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
19910
19911         * rand.c, rand.h: instance method icalls need to have an explicit
19912         this pointer as first argument in the C implementation.
19913
19914 2002-04-25  Nick Drochak <ndrochak@gol.com>
19915
19916         * icall.c: Fix typo in map for GetNonZeroBytes
19917
19918 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19919
19920         * string-icalls.c : String does now passes unit tests without any 
19921         errors, the following changes has been made:
19922         
19923         Implemented replace methods.
19924         Renaming of methods to (try) follow the standard.
19925         Fixed compare ordinal
19926         Made all memory allocated directly to function instead of via icall function.
19927         Small performance fix in is_in_array function
19928                         
19929  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
19930
19931         c (mono_string_Internal_ctor_charp_int_int):
19932         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
19933         sindex < 0, throw ArgumentOutOfRangeException instead of
19934         ArgumentNullException.
19935
19936         Added new check for length == 0, however
19937         I need to make it return String.Empty from the C code.
19938         
19939         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
19940         that calculate the length for us here.
19941         
19942         (mono_string_Internal_ctor_sbytep_int_int): Replaced
19943         mono_string_new_utf16 with mono_string_new, since value is utf8.
19944
19945 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
19946
19947         * object.c: register the object for finalization if needed.
19948         Allocate one more char in the string for the terminating 0 char.
19949
19950 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
19951
19952         * class.c, class.h, image.c: check if a type implemenst a destructor.
19953         Use the proper key for array class lookups.
19954         * icall.c: register the icalls in the System.GC class.
19955         * gc.c, gc.h: GC-related functions and icalls.
19956
19957 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19958
19959         * icall.c:
19960         * socket-io.c:
19961         * unicode.c: free some strings gotten from mono_string_to_utf8 and
19962         changed a couple of free () by g_free ().
19963
19964         * decimal.c: one-liner in the comments for decimal2string ().
19965
19966 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19967
19968         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
19969
19970 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
19971
19972         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
19973         * object.c (mono_runtime_invoke_array) : handle null in params
19974
19975 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19976
19977         * string-icalls.c: fixed bug in split (one off bug)
19978
19979 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19980
19981         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
19982         * icalls.c: added String::Equals as internal method
19983
19984 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
19985
19986         * threads.c: fixed bug in the double interlocked functions
19987
19988 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
19989
19990         * threads.c: implemented all of the new interlocked icalls.
19991         * string-icalls.c: fix a bug in insert.
19992         * icalls.c: added the icalls for interlocked, removed old string functions.
19993         
19994 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
19995
19996         * loader.c: fix off-by-one error when reading argument names.
19997
19998 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
19999
20000         * profiler.c: win32 counter implementation (untested).
20001         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
20002         (the latter needs testing and more complete impl. from win32 folks).
20003
20004 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
20005
20006         * object.c: mono_array_new_full workaround mono_array_class_get
20007         problem.
20008
20009 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20010
20011         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
20012         * object.h (mono_string_chars): Changed casting type.
20013
20014 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20015
20016         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
20017                            method signatures to use gunichar2 instead of gint16.
20018
20019 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
20020
20021         * object.h, object.c: domain-specific versions of mono_object_new and
20022         mono_array_new.
20023
20024 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
20025
20026         * object.c: changed String layout
20027
20028         * string-icalls.c (mono_string_Internal_ctor_chara): added
20029         internal string constructors.
20030
20031 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
20032
20033         * threads.c: pass 'this' to the thread start routine.
20034
20035 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20036
20037         * string-icalls.c: fix IndexOf and LastIndexOf. Now
20038         InternalCompareStr don't call twice mono_string_cmp_char for the last
20039         character. Improved performance in mono_string_cmp_char.
20040
20041 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
20042
20043         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
20044         code into its own library: libmonoruntime.
20045
20046 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
20047
20048         * object.h, object.c: changed array format so that szarrays do not
20049         require a bounds structure.
20050         * icall.c, appdomain.c: support for new szarray format.
20051
20052 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
20053
20054         * metadata.c: compare also the retuns type when comparing signatures:
20055         we didn't do this as an optimization since really overloaded methods
20056         must differ also in the arguments, but this doesn't work with
20057         low-level IL code (or when using explicit conversion operators: see
20058         bug#23498 for an example).
20059
20060 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
20061
20062         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
20063
20064 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
20065
20066         * icall.c: make MonoType::GetElementType its own icall.
20067
20068 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
20069
20070         * icall.c: remove MonoMethod_get_Name().
20071         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
20072         object.
20073
20074 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20075
20076         * string-icalls.c: optimized a few methods.
20077
20078 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
20079
20080         * icall.c: added all new string internal calls
20081         * string-icalls.c: added, new string internal call implementation.
20082         * object.c: added mono_string_new_size for allocating a string a size
20083
20084 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
20085
20086         * object.c (mono_object_isinst): use the same code as in the
20087         optimized x86 version.
20088
20089 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
20090
20091         * profiler.c: TSC-based timer code (faster and more accurate).
20092         Not hooked up in configure, yet (set USE_X86TSC to 1).
20093
20094 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
20095
20096         * profiler.c, profiler.h: track time spent compiling methods.
20097         * threads.c: track thread creation/destruction.
20098
20099 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
20100
20101         * profiler.c, profiler.h, profiler-private.h: profiling interface
20102         and sample implementation. Moved here so that it can be used also by
20103         the jit.
20104
20105 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
20106
20107         * reflection.c, reflection.h: keep types and other handles separate in
20108         the hash tables for referred tokens. Add guid for modules.
20109
20110 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
20111
20112         * assembly.c: fix bugs found with valgrind.
20113         * metadata.h, metadata.c: added mono_metadata_guid_heap().
20114
20115 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
20116
20117         * threads: added icall support for getting current domain for
20118                    the thread.
20119  
20120 2002-04-13  Martin Baulig  <martin@gnome.org>
20121
20122         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
20123         (MonoDebugVarInfo): Added `index' field for register based addresses.
20124         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
20125         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
20126         `MonoDebugVarInfo *params' and `guint32 this_offset' with
20127         `MonoDebugVarInfo *this_var'.
20128
20129         * debug-symfile.c (relocate_variable): New static function to write
20130         a location description for a local variable or method parameter.
20131
20132 2002-04-12  Martin Baulig  <martin@gnome.org>
20133
20134         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
20135         stack offset and begin/end scope address of a local variable.
20136         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
20137         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
20138         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
20139
20140         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
20141         Added new relocation types for start/end scope of a local variable.
20142
20143 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
20144
20145         * object.h: add mono_object_domain() macro.
20146         * reflection.c: handle typespecs.
20147         * icall.c: MonoMethod::get_Name() implementation.
20148
20149 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20150
20151         * icall.c: String::GetHashCode() icall implementation.
20152
20153 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20154
20155         * icall.c: String::IndexOfAny icall.
20156         * object.c, object.h: make array->max_length more useful.
20157         Intrduced mono_object_class() and mono_string_length() macros.
20158
20159 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20160
20161         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
20162         instead of g_unichar_isdigit.
20163
20164 2002-04-11  Nick Drochak  <ndrochak@gol.com>
20165
20166         * icall.c: Implement a simple Double.ToString().
20167
20168 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
20169
20170         * appdomain.h: only io-layer.h is supposed to be included.
20171         * icall.c: explicitly import environ. Fix warning.
20172
20173 2002-04-10  Nick Drochak  <ndrochak@gol.com>
20174
20175         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
20176                 return true even if it's not Daylight Savings time.
20177                 Only return false for the case where the function isn't
20178                 implemented for a plaform (read Windows).
20179
20180 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
20181
20182         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
20183         data with a mutex.
20184
20185 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
20186
20187         * mempool.c (mono_mempool_alloc): only use g_malloc when
20188         absolutely necessary.
20189
20190 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20191
20192         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
20193
20194         * class.c (mono_class_vtable): use domain mempool to allocate vtable
20195         (mono_class_proxy_vtable): use domain mempool
20196
20197 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
20198
20199         * appdomain.h, appdomain.c: split initialization that requires the
20200         execution engine support into mono_runtime_init().
20201
20202 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
20203
20204         * class.c (mono_class_init): don't include vtable inside MonoClass
20205         to save some memory, gather some statistics.
20206         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
20207
20208 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20209
20210         * icall.c: internalcall implementation for ValueType.Equals().
20211
20212 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
20213
20214         * object.c (mono_message_init): moved 
20215         (mono_runtime_exec_main): new arch. independent impl.
20216         (mono_runtime_invoke_array): new method - like
20217         mono_runtime_invoke, but you can pass an array of objects.
20218         (mono_remoting_invoke): new arch. independent impl.
20219         (mono_message_invoke): new arch. independent impl.
20220         (mono_runtime_class_init): new arch. independent impl.
20221         (mono_runtime_object_init): new arch. independent impl.
20222
20223 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
20224
20225         * metadata.c, object.c, reflection.c: documented the exported
20226         functions.
20227
20228 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
20229
20230         * icall.c: simpler code to pass the assembly builder data to corlib.
20231         Implement GetNestedTypes() internalcall.
20232
20233 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
20234
20235         * class.c: warn if a type can't be loaded.
20236
20237 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
20238
20239         * image.h: typedef MonoImageOpenStatus
20240         * types.h: removed unused file
20241         
20242 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
20243
20244         * icall.c: Enum_ToObject accepts enum value arguments.
20245
20246 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
20247
20248         * class.c: move initialization of properties, events and nested
20249         classes, so that they happen for interfaces, too.
20250
20251 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
20252
20253         * icall.c: cleanup some ugly casts in Array_SetValue*.
20254
20255 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
20256
20257         * icall.c: the values array fro enums is of the correct type, now.
20258         Implement (correctly) getFullName instead of assQualifiedName for
20259         MonoType.
20260         * reflection.h, reflection.c: added mono_type_get_name ().
20261
20262 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
20263
20264         * assembly.c, image.h: for each MonoImage, record from wich assembly
20265         it was loaded.
20266         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
20267         Make Type.Assembly work.
20268
20269 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
20270
20271         * debug-symfile.h: use char* instead of gpointer to avoid
20272         unnecessary casts.
20273
20274         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
20275
20276         * icall.c (ves_icall_InternalExecute): impl. FielSetter
20277         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
20278
20279 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
20280
20281         * icall.c (mono_message_init): impl. (code cleanup)
20282         (ves_icall_InternalExecute): impl. FieldGetter
20283
20284         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
20285         defined we call all (non-static)methods through the vtable. 
20286
20287 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
20288
20289         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
20290         finalizer even though the memory is still referenced (and the chunk of
20291         memory is not freed).
20292
20293 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
20294
20295         * assembly.c: fix brokeness.
20296
20297 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
20298
20299         * class.c: kill some warnings. Check explicit interface method
20300         implementation also without considering the namespace.
20301         Load also literal strings in static class data.
20302
20303 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
20304
20305         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
20306         (default_assembly_name_resolver): Make the resolver take the
20307         "base" directory where the assembly was originally defined, so we
20308         can load DLLs that are in the same directory as the assembly that
20309         is being referenced.
20310
20311 2002-03-28  Dick Porter  <dick@ximian.com>
20312
20313         * file-io.h: 
20314         * file-io.c:
20315         * socket-io.c: 
20316         * unicode.h: 
20317         * unicode.c: Warning cleanups
20318
20319 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
20320
20321         * object.h, reflection.h: use the correct type instead of MonoObject.
20322
20323 2002-03-28  Martin Baulig  <martin@gnome.org>
20324
20325         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
20326         (mono_debug_update_symbol_file): Initialize classes if necessary.
20327
20328 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20329
20330         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
20331         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
20332
20333 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
20334
20335         * assembly.h: fix function prototype.
20336         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
20337         * mono-endian.h: use const cast.
20338
20339 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20340
20341         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
20342
20343 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20344
20345         * loader.c: don't assert when a typeref can't be loaded, give
20346         a chance to the runtime to trow an exception instead.
20347         * loader.h: fix warning.
20348
20349 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
20350
20351         * class.c (mono_class_proxy_vtable): added proxy support
20352
20353 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
20354
20355         * icall.c: removed last of PAL calls, added System.Environment
20356         * file-io.h, file-io.c: MonoIO implementation
20357         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
20358
20359 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20360
20361         * appdomain.c: do not use the byte marker in ldstr table lookup.
20362         * debug-helpers.c: allow two ':' to separate class and method name.
20363         * object.c: allocate arrays bounds with the GC, too.
20364         * verify: add a few more checks.
20365
20366 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
20367
20368         * reflection.c: output also literal strings. Allocate parameter data
20369         with GC_malloc() (thanks, Martin, for catching this!).
20370
20371 2002-03-26  Martin Baulig  <martin@gnome.org>
20372
20373         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
20374         include the `this' offset in the `param_offsets'.
20375
20376 2002-03-25  Martin Baulig  <martin@gnome.org>
20377
20378         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
20379         mono_debug_get_class() function to get the classes. Added new
20380         relocation types for arrays and strings.
20381         (mono_debug_get_class): New static function to search in all
20382         referenced assemblies for a metadata token.
20383
20384         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
20385
20386 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
20387
20388         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
20389         hold gc-allocated objects. Make the string heap a stream like the
20390         others. Removed duplicated code when writing stream info.
20391         Added asserts to catch possible buffer overflows. Set the sorted map
20392         for tables that need sorting. Added some documentation.
20393
20394 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
20395
20396         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
20397         for interned strings and vtables.
20398
20399 2002-03-24  Martin Baulig  <martin@gnome.org>
20400
20401         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
20402         it in the array since it was created with g_slist_prepend().
20403
20404 2002-03-24  Martin Baulig  <martin@gnome.org>
20405
20406         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
20407         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
20408         (mono_debug_method_from_token): Renamed to
20409         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
20410         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
20411
20412         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
20413         relocation types.
20414
20415         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
20416
20417 2002-03-24  Martin Baulig  <martin@gnome.org>
20418
20419         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
20420         (mono_debug_method_from_token): New func.
20421
20422         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
20423         New interncall, calls mono_debug_local_type_from_signature().
20424         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
20425         calls mono_debug_method_from_token().
20426
20427 2002-03-23  Martin Baulig  <martin@gnome.org>
20428
20429         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
20430         specifies the number of bytes to be converted, not the array size.
20431         Return the number of chars, not the number of bytes.
20432         (ves_icall_iconv_get_chars): The `byteCount' argument
20433         specifies the number of bytes to be converted, not the array size.
20434
20435 2002-03-23  Martin Baulig  <martin@gnome.org>
20436
20437         * reflection.h (MonoReflectionSigHelper): New type.
20438
20439         * reflection.c (mono_reflection_sighelper_get_signature_local),
20440         (mono_reflection_sighelper_get_signature_local): New functions.
20441
20442         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
20443         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
20444         interncalls.
20445
20446 2002-03-23  Martin Baulig  <martin@gnome.org>
20447
20448         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
20449         is_writeable is set.
20450         (mono_raw_buffer_update): New function to write the modified map
20451         back to disk.
20452
20453         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
20454
20455         * debug-symfile.c (mono_debug_update_symbol_file): Call
20456         mono_raw_buffer_update() when done writing.
20457
20458 2002-03-23  Martin Baulig  <martin@gnome.org>
20459
20460         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
20461
20462         * debug-symfile.c: Added support for arguments and local variables.
20463
20464 2002-03-23  Dick Porter  <dick@ximian.com>
20465
20466         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
20467         protected by ifdefs, hence breaking the w32 build.
20468
20469 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20470
20471         * object.c: implement is_interned() the right way.
20472
20473 2002-03-21  Martin Baulig  <martin@gnome.org>
20474
20475         * debug-symfile.[ch]: New files to handle debugging information
20476         files. There's also support to dynamically update these symbol
20477         files to include machine dependent information.
20478
20479 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
20480
20481         * threads.c (mono_thread_create): new function to create thread
20482         from C
20483
20484 2002-03-20  Martin Baulig  <martin@gnome.org>
20485
20486         * icall.c (ves_icall_InternalInvoke): Create a new object if the
20487         method is a constructor.
20488         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
20489         points to ves_icall_InternalInvoke().
20490
20491 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
20492
20493         * file-io.c: Flush shouldn't throw exceptions.
20494
20495 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
20496
20497         * file-io.c: FileStream flush support; FileSetLength now
20498         restores file pointer.
20499
20500 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20501
20502         * class.c: set image for pointer classes.
20503
20504 2002/03/19  Nick Drochak <ndrochak@gol.com>
20505
20506         * sysmath.c: Forgot one.
20507
20508 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
20509
20510         * sysmath.c: Avoid redefining existing names.
20511
20512 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
20513
20514         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
20515         handled by runtime as icall rather than dllimport from libm.so
20516         * file-io.c, file-io.h: fixed handle argument type.
20517
20518 2002-03-18  Dick Porter  <dick@ximian.com>
20519
20520         * reflection.c (mono_image_get_type_info): rename interface to
20521         iface, because of "#define interface struct" on windows.
20522
20523 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
20524
20525         * class.c, class.h: rename and export mono_ptr_class_get().
20526         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
20527         * reflection.c, reflection.h, icall.c: better/saner type name
20528         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
20529         method signatures.
20530
20531 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
20532
20533         * class.c (mono_class_init): removed hardcoded GHC_SLOT
20534
20535         * icall.c (ves_icall_InternalInvoke): impl.
20536
20537 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20538
20539         * reflection.c: output the interface map table, too.
20540
20541 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20542
20543         * class.c (class_compute_field_layout): separate computation of 
20544         static field layout
20545
20546 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
20547
20548         * icall.c: added System.Buffer support.
20549         * file-io.c: moved file icalls from PAL to FileStream.
20550
20551 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
20552
20553         * icall.c (ves_icall_System_Object_GetHashCode): impl.
20554
20555 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
20556
20557         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
20558
20559 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20560
20561         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
20562
20563 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
20564
20565         * debug-helpers.{c,h}: moved here from monograph some useful functions
20566         to locate a method by name/signature in a class or image. Included
20567         also a small and flexible IL disassembler.
20568
20569 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20570
20571         * reflection.c: fixup tokens in methods with small header size, too.
20572
20573 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
20574
20575         * object.c (mono_string_to_utf8): remove assert(!error), instead
20576         print a warning. 
20577
20578 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
20579
20580         * icall.c: update to the new mono_Array_class_get interface.
20581
20582 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20583
20584         * appdomain.c, object.c: Boehm-GC enable.
20585         * icall.c: make get_data_chunk() support split data requests.
20586         Ensure a class is initialized in more cases. Return only the first
20587         property found in GetProperties() or the compiler gets confused. 
20588         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
20589         * reflection.h, reflection.c: add fixup mechanism for field and method
20590         tokens. Initialize assembly->typeref in a single place. Output
20591         properties after events. Support custom attributes for events, too.
20592         Typo fix for paramter custom attrs.
20593
20594 2002-03-07  Martin Baulig  <martin@gnome.org>
20595
20596         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
20597
20598 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
20599
20600         * class.c (mono_array_class_get): fix. for multi. dim. arrays
20601
20602 2002-03-06  Martin Baulig  <martin@gnome.org>
20603
20604         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
20605         non-zero lower bounds. See testcases #F10-#F13.
20606
20607 2002-03-05  Martin Baulig  <martin@gnome.org>
20608
20609         * exception.c (mono_get_exception_argument_out_of_range): New exception.
20610
20611         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
20612         ves_icall_System_Array_GetValue(), only calculate the absolute array position
20613         here.
20614         (ves_icall_System_Array_SetValue): Likewise.
20615         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
20616         as argument and does the actual work. This function is used when copying a
20617         multi-dimensional array.
20618         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
20619         now do all the widening conversions of value types.
20620         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
20621
20622 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20623
20624         * class.c: remove some magic numbers and use the smbolic names,
20625         instead. Added init_events() to load event info at class init time.
20626         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
20627         and mono_metadata_methods_from_event().
20628         * reflection.h, reflection.c: added support for writing out the evnets
20629         related information.
20630
20631 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
20632
20633         * reflection.h, icall.c: use a different method (GetInterfaces)
20634         to gather interface info and add isbyref, isprimitive and
20635         ispointer to the ves_icall_get_type_info() return value.
20636
20637 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
20638
20639         * class.h: stared adding support for events.
20640         * icall.c: split find_members implementation. Added debug icall to get
20641         the address of an object.
20642         * reflection.c: handle TypeBuilders in mono_type_get_object().
20643
20644 2002-03-01  Martin Baulig  <martin@gnome.org>
20645
20646         * icall.c (ves_icall_System_Array_GetLength): This must throw an
20647         ArgumentOutOfRangeException(), not an ArgumentException().
20648         (ves_icall_System_Array_GetLowerBound): Likewise.
20649         (ves_icall_System_Array_GetValue): Improved argument checking.
20650         (ves_icall_System_Array_SetValue): Improved argument checking.
20651
20652 2002-03-01  Martin Baulig  <martin@gnome.org>
20653
20654         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
20655         called with invalid arguments rather than just dying with g_assert().
20656         (ves_icall_System_Array_SetValue): Likewise.
20657         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
20658         raise a NotImplementedException instead.
20659         (ves_icall_System_Array_GetLength): Added argument checking.
20660         (ves_icall_System_Array_GetLowerBound): Added argument checking.
20661
20662 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
20663
20664         * object.h (mono_assert): new macros mono_assert and
20665         mono_assert_not_reached
20666
20667 2002-02-28  Martin Baulig  <martin@gnome.org>
20668
20669         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
20670         and "System::String::IsInterned" to "System::String::_IsInterned".
20671
20672 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
20673
20674         * icall.c: remove hacks for typebuilder. Added icall to create a
20675         modified type from a tybebuilder.
20676         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
20677         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
20678         to create a backing MonoClass for a TypeBuilder.
20679
20680 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20681
20682         * class.c, class.h: more refactoring of class init.
20683         Export mono_class_setup_mono_type() and mono_class_setup_parent().
20684
20685 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
20686
20687         * marshal.c, marshal.h: start of marshaling interface.
20688
20689 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
20690
20691         * icall.c: fix order in assembly qualified name icall.
20692
20693 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
20694
20695         * class.c: do not free str, since we store it in the hash table.
20696         * reflection.h: add label field to MonoILExceptionInfo.
20697         * reflection.c: handle references to more than one assembly. Handle
20698         case when there isn't a module created in the assembly.
20699
20700 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
20701
20702         * class.c: Fix typo. Start refactoring of class init code.
20703
20704 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
20705
20706         * appdomain.c: exit with 1 on error.
20707         * class.c: we already have the name in MonoClassField.
20708         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
20709         MonoStreamHeader instead of an offset of image->raw_metadata.
20710
20711 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
20712
20713         * appdomain.c (mono_init): Be even more descriptive about the error.
20714
20715 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
20716
20717         * appdomain.c: give the user an informative message when corlib can't
20718         be loaded.
20719
20720 2002-02-26  Martin Baulig  <martin@gnome.org>
20721
20722         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
20723         New icall to get the time zone data.
20724
20725 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20726
20727         * reflection.c: set virtual and raw size of section correctly.
20728         * threads.c: transfer domain information to newly created threads.
20729
20730 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
20731
20732         * class.c: when instancing a class in a domain, load the default
20733         vaules for static fields from the constant table. Fix System.Enum to
20734         not be an enum.
20735         * icall.c: implement Object::GetType() internalcall. Implemented
20736         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
20737         Fixed checking of binding flags in find_members().
20738         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
20739         * reflection.c: handle enumerations when writing to the constant
20740         table. Use a different object cache for types.
20741
20742
20743 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
20744
20745         * object.c (mono_object_isinst): fix for arrays
20746
20747         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
20748
20749 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
20750
20751         * object.c: don't use mprotect ()  and fix intern pool hash table
20752         lookup for big endian systems.
20753
20754 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20755
20756         * icall.c: change type_is_subtype_of () signature.
20757
20758 2002-02-21  Mark Crichton  <crichton@gimp.org>
20759
20760         * rand.c, rand.h: Added random number generator for
20761         System.Security.Cryptography classes.
20762
20763         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
20764
20765         * icall.c: Added System.Security.Cryptography calls.
20766
20767 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
20768
20769         * class.c, icall.c, metadata.c: better support for pointer types.
20770         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
20771         * reflection.c: Add support for getting custom attrs for properties
20772         and simplify some code.
20773
20774 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
20775
20776         * icall.c: change getToken () and add custom attribute GetBlob()helper
20777         method.
20778         * reflection.h: add custom attrs array to the reflection builder structures.
20779         * reflection.c: encode and emit custom attributes for all the relevant
20780         reflection objects. Cache fieldref and methodref tokens. Change
20781         mono_image_create_token() interface to take a MonoDynamicAssembly.
20782         More complete custom attributes decoder. Load custom attributes for
20783         Assembly, Field, Method and Constructor objects, too. Make the
20784         returned array an Attribute[] one, not object[]. Added
20785         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
20786         custom attribute constructor.
20787
20788 2002-02-20  Dick Porter  <dick@ximian.com>
20789
20790         * icall.c:
20791         * rawbuffer.c:
20792         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
20793         problem code out for now).
20794
20795 2002-02-19  Radek Doulik  <rodo@ximian.com>
20796
20797         * object.c (mono_ldstr): use hash table to avoid multiple swapping
20798
20799 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
20800
20801         * icall.c: register the GetCustomAttributes method.
20802         * object.c, object.h: add mono_string_new_len ().
20803         * reflection.h, reflection.c: added mono_runtime_invoke(),
20804         mono_install_runtime_invoke(). Added
20805         mono_reflection_get_custom_attrs () to load custom attributes and
20806         create the attribute objects.
20807
20808 2002-02-19  Dick Porter  <dick@ximian.com>
20809         * threads-dummy-types.c:
20810         * threads-dummy-types.h:
20811         * threads-dummy.c:
20812         * threads-dummy.h:
20813         * threads-pthread-types.c:
20814         * threads-pthread-types.h:
20815         * threads-pthread.c:
20816         * threads-pthread.h:  Deleted obsolete files
20817
20818 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
20819
20820         * class.c (mono_class_vtable): runtime init the class when we
20821         allocate static class data.
20822
20823         * icall.c (ves_icall_System_Array_SetValue): check for null values.
20824
20825         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
20826         and String - but we will need generic marshalling support in the
20827         future. 
20828         (mono_init): set the domain name in a ms compatible way
20829
20830         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
20831         String[].
20832
20833 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
20834
20835         * object.c (mono_array_clone): use alloca() instead of g_malloc  
20836         for sizes
20837
20838         * appdomain.c (mono_domain_unload): impl.
20839
20840 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20841
20842         * appdomain.c, object.c: fix intern pool implementation.
20843         * class.c: fix alignment code.
20844
20845 2002-02-16  Radek Doulik  <rodo@ximian.com>
20846
20847         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
20848         and s2 > s1, just copy lower bytes to be compatible with little
20849         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
20850         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
20851
20852         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
20853         force big_endian to be 1 for big endian machines 
20854         (ves_icall_iconv_new_decoder): ditto
20855
20856 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
20857
20858         * socket-io.c (convert_sockopt_level_and_name): If the system
20859         doesn't define SOL_IP or SOL_TCP, get them by hand using
20860         getprotobyname() and caching the values (because this could be a
20861         slow operation).
20862         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
20863         Use the appropriate struct when the system does support it. Ie,
20864         not all systems have struct ip_mreqn so use struct ip_mreq when
20865         appropriate.
20866
20867 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
20868
20869         * reflection.c: handle finally clauses.
20870
20871 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
20872
20873         * socket-io.c: use g_snprintf() instead of snprintf.
20874
20875 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20876
20877         * reflection.c (mono_param_get_objects): Cast second argument to
20878         mono_method_get_param_names to a const char** to silence the
20879         compiler warning.
20880
20881         * appdomain.c (mono_domain_assembly_open): Put parens around the
20882         truth statement in the for-loop.
20883
20884         * unicode.c (iconv_convert): Got rid of a compiler warning about
20885         int i being unused when the system has a new iconv.
20886         (iconv_get_length): Same.
20887
20888         * image.c (load_class_names): Cast the second argument to
20889         g_hash_table_insert() to char* to hush compiler warnings about the
20890         arg being a const.
20891         (mono_image_open): Same here.
20892
20893         * socket-io.c: Don't conditionally include sys/filio.h or
20894         sys/sockio.h here anymore since we now get them from
20895         io-layer/io-layer.h
20896         (inet_pton): If the system doesn't support inet_aton, implement
20897         using inet_addr and also #define INADDR_NONE if it isn't defined
20898         by the system.
20899
20900 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
20901
20902         * metadata.c, metadata.h: added function to get packing and size info
20903         of a typedef.
20904         * reflection.h, reflection.c: handle field RVA data. Save info about
20905         the table layout if needed. Assign typedef indexes to all the types
20906         before dumping the info about them to avoid forward reference problems.
20907
20908 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
20909
20910         * socket-io.c (convert_sockopt_level_and_name): ifdef
20911         SO_ACCEPTCONN because it is not defined on my system (old debian)
20912
20913 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
20914
20915         * opcode.c: use stddef.h to get NULL.
20916
20917 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
20918
20919         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
20920         for FIONBIO, FIONREAD and SIOCATMARK.
20921         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
20922         define INADDR_NONE and besides, inet_addr() is deprecated and
20923         should not be used. Use inet_pton() instead - it also has the
20924         added bonus that it can easily handle IPv6 addresses as well.
20925         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
20926
20927 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
20928
20929         * decimal.c: remove _MSC_VER conditional.
20930
20931 2002-02-13  Dick Porter  <dick@ximian.com>
20932
20933         * socket-io.c: 
20934         * icall.c: Internal calls for Blocking, Select, Shutdown,
20935         GetSocketOption and SetSocketOption
20936
20937 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20938
20939         * assembly.cs: better resolver: use it instead of some kludgy
20940         code.
20941
20942 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
20943
20944         * reflection.c: the best way to speed-up the compiler is to avoid
20945         infinite loops.
20946
20947 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
20948
20949         * class.c (mono_class_vtable): changed the object layout
20950         (obj->vtable->class). 
20951         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
20952
20953 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
20954
20955         * assembly.c: look for assemblies in the assembly dir, too.
20956
20957 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
20958
20959         * class.c: fix thinko in mono_class_from_type().
20960
20961 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
20962
20963         * exception.h, exception.c: added TypeLoadException.
20964         * object.h, object.c: added mono_array_clone ().
20965         * icall.c: handle throwOnError in AssemblyGetType().
20966         Added Array.Clone().
20967         * opcode.h, opcode.c: use a single value for the opcode val.
20968         Compile fix for non-gcc compilers.
20969
20970 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
20971
20972         * opcodes.c, opcodes.h: export interesting info about opcodes.
20973
20974 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
20975
20976         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
20977         icalls. 
20978
20979         * class.c (class_compute_field_layout): set element_class for enums
20980         (mono_class_create_from_typedef): set element_class for normal classes
20981
20982         * icall.c (ves_icall_System_Enum_get_value): impl.
20983
20984         * class.c (mono_class_create_from_typedef): do not set valuetype
20985         flag for System.ValueType and System.Enum
20986
20987 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
20988
20989         * unicode.c (iconv_convert): fix big endian problem.
20990
20991 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
20992
20993         * class.c: add asserts if we are ever going to scribble over memory.
20994         * socket-io.c: not all systems have AF_IRDA defined.
20995
20996 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
20997
20998         * class.c (class_compute_field_layout): do not consider static
20999         fields to compute alignment
21000
21001 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
21002
21003         * appdomain.c (mono_appdomain_get): impl.
21004         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
21005
21006 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
21007
21008         * icall.c: ignore "file://" prefix when loading an assembly.
21009
21010 2002-01-23  Dick Porter  <dick@ximian.com>
21011
21012         * socket-io.c:
21013         * icall.c:
21014         * Makefile.am: Added socket support
21015
21016 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21017
21018         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
21019         code back.  This should return the assemblies that are loaded by
21020         the runtime on behalf of an application domain. 
21021
21022         The current implementation is still broken, it just returns every
21023         assembly loaded, but until we get real applications domain this
21024         will do.
21025
21026 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
21027
21028         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
21029         AppDomain object.
21030
21031 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
21032
21033         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
21034         the mono_class_from_name lookup.
21035         (ves_icall_get_parameter_info): ditto.
21036         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
21037         method.
21038         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
21039
21040 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
21041
21042         * class.c: load also nested classes on class init.
21043         System.ValueType instance methods gets passed boxed
21044         values, unless methods in derived classed that get a pointer to the
21045         data.
21046         * icall.c: use better name parsing code in GetType().
21047         * image.c, image.h: add mono_image_loaded ().
21048         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
21049         * reflection.c, reflection.h: added mono_reflection_parse_type().
21050
21051 2002-01-22  Veronica De Santis <veron78@interfree.it>
21052
21053         * icall.c : Added mapping of internal calls for Manual and Auto reset events
21054         * threads.c : Added the implementation of internal calls for events
21055         * threads.h : Added prototypes of internal calls for events
21056         
21057 2002-01-21  Radek Doulik  <rodo@ximian.com>
21058
21059         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
21060
21061 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
21062
21063         * class.c (mono_class_init): set min_align to 1 (instead of 0)
21064         (mono_class_value_size): use min_align
21065
21066 2002-01-20  Dick Porter  <dick@ximian.com>
21067
21068         * threads.h:
21069         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
21070         so it compiles on w32.
21071
21072 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
21073
21074         * metadata.c (mono_type_stack_size): impl.
21075
21076         * class.c (mono_class_get_field): impl. memberref token
21077
21078 2002-01-16 Veronica De Santis <veron78@@interfree.it>
21079
21080         * icall.h : Added the internal calls mapping for CreateMutex_internal
21081                     and ReleaseMutex_internal.
21082         * threads.h : Added the prototype of mutexes internal calls.
21083         * threads.c : Added the implementations of mutexes internal calls.
21084
21085 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
21086
21087         * metaparse.h: removed unused file.
21088         * reflection.c, reflection.h: added stream_data_align () function 
21089         to align data in streams and keep stream aligned. Add support for
21090         exception support in method headers.
21091
21092 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
21093
21094         * unicode.c: make iconv_convert () return the number of bytess written
21095         in the output buffer.
21096
21097 2002-01-15  Dick Porter  <dick@ximian.com>
21098         * threads.c: Make the runtime's idea of infinite timeouts coincide
21099         with the class library's
21100
21101         Fix a particularly egregious bug in mono_thread_cleanup(). That
21102         code was so utterly bogus it must have been written on a Monday.
21103
21104 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
21105
21106         * reflection.h: add subtypes field to TypeBuilder.
21107         * reflection.c: encode constants for literal fields.
21108         Handle subtypes. Fix user string token (and add a zero byte)
21109         at the end.
21110         
21111 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
21112
21113         * class.c (mono_class_init): bug fix: assign slot numbers for
21114         abstract methods.
21115
21116 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
21117
21118         * reflection.c: don't try to output a code RVA for abstract methods.
21119         Small fixes for method header format. Output parameter info to the
21120         ParamDef table. Save method overriding info to MethodImpl table.
21121         Fix property support. Allow typedef.extends to be a type in the
21122         building assembly.
21123         * verify.c: fix off-by-one error.
21124
21125 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
21126
21127         * class.c: fix mono_class_from_mono_type () for szarray types.
21128         Remove unused cache check in mono_class_from_type_spec().
21129         * icall.c: *type_from_name () functions handle simple arrays and byref.
21130         * reflection.c: handle byref and szarray types. Handle methods without
21131         body (gets P/Invoke compilation working). Handle types and fields in
21132         get_token ().
21133         * reflection.h: add rank to MonoTypeInfo.
21134
21135 2002-01-10  Dick Porter  <dick@ximian.com>
21136
21137         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
21138         internal calls
21139
21140 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
21141
21142         * icall.c: initialize class in type_from_handle ().
21143         Loop also in parent classes for get_method ().
21144         * reflection.c: properly encode class and valuetype types.
21145         Start on encoding TypeBuilder types. Handle fieldrefs.
21146         Use correct length when registering a user string.
21147         Handle ConstructorBuilder and MonoMethod in get_token ().
21148         Make mono_type_get_object () aware of cached types.
21149         * object.c: back out change to mono_string_new ().
21150
21151 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
21152         * object.c: mono_string_new should return a NULL when the string 
21153         passed in is NULL -- not try to deference it.
21154         
21155 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
21156
21157         * icall.c: hack to make IsSubType work for TypeBuilders.
21158         * reflection.c: emit constructors before methods.
21159         Retrieve param names in mono_param_get_objects().
21160
21161 2002/01/05  Nick Drochak  <ndrochak@gol.com>
21162
21163         * Makefile.am: fix list of headers and sources so automake 1.5
21164         doesn't complain. Removed \# at end of list.
21165
21166 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
21167
21168         * reflection.c: get token for a method ref. Set return type of
21169         constructor to void.
21170         * loader.c: debug message.
21171         * class.c: typo fix.
21172
21173 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
21174
21175         * icall.c: fix array init with rank > 1. FindMembers
21176         loops in parent class as well.
21177         * image.c: do not insert nested types in name cache.
21178         * reflection.c: warning fix.
21179         * reflection.h: add override method (for interface impl).
21180
21181 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
21182
21183         * metadata.c: fix customattr decoding.
21184
21185 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
21186
21187         * rawbuffer.cs: Added native Win32 implementation, avoids using
21188         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
21189
21190 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
21191
21192         * class.c: make the low-level routines handle the cache.
21193
21194 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
21195
21196         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
21197
21198 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
21199
21200         * class.c: fix mono_array_element_size() for objects.
21201         * class.h, class.c: add properties to MonoClass and load them
21202         at init time.
21203         * icall.c: check with isinst() when assigning a value to an array
21204         instead of requiring the classes to match exactly.
21205         Implemented icall for System.Type::GetType().
21206         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
21207         enums. Handle bindingflags when looking for methods and fields.
21208         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
21209         and mono_metadata_methods_from_property().
21210         * reflection.h, reflection.c: added structures for propreties,
21211         parameters and enums. Implemented mono_property_get_object() and
21212         mono_param_get_objects().
21213
21214 2001-12-18  Dick Porter  <dick@ximian.com>
21215
21216         * file-io.c: Use mono_string_to_utf16() instead of
21217         mono_string_chars()
21218
21219         * object.c: Added mono_string_to_utf16(), which copies the non
21220         NULL-terminated MonoString into a new double-null-terminated
21221         buffer.
21222
21223 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
21224
21225         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
21226
21227 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
21228
21229         * file-io.c: raise exceptions if handle is invalid.
21230
21231 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
21232
21233         * assembly.c: yet another check for mscorlib.
21234         * class.c, class.h: load nesting info for classes.
21235         * icall.c: many new functions to support the Reflection classes.
21236         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
21237         * reflection.h, reflection.c: mono_image_create_token(),
21238         mono_assembly_get_object(), mono_type_get_object(),
21239         mono_method_get_object(), mono_field_get_object(): methods to return
21240         objects that parallel the C representation of assemblies, types,
21241         methods, fields.
21242
21243 2001-12-11  Dick Porter  <dick@ximian.com>
21244
21245         * icall.c:
21246         * file-io.c: Internal calls for file IO.
21247
21248 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
21249
21250         * tabledefs.h: missing FileAttributes.
21251         * verify.h, verify.c: use is_valid_string () to simplify and check for
21252         valid strings more correctly. Fix warnings and speeling.
21253         Check more tables: Filed, File, ModuleRef, StandAloneSig.
21254         Check code: branches, maxstack, method calls.
21255
21256 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
21257
21258         * object.c (mono_object_allocate): removed static, so that the jit
21259         can allocate value types.
21260
21261         * icall.c (ves_icall_System_DateTime_GetNow): impl.
21262
21263 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21264
21265         * class.c: init enum types right away and register the
21266         token->MonoClass map in mono_class_create_from_typedef ().
21267         * verify.h, verify.c: first cut of the verifier.
21268         * pedump.c: add --verify switch to verify metadata tables.
21269         * tabledefs.h: add some missing enums.
21270
21271 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
21272
21273         * class.c (mono_install_runtime_class_init): impl.
21274         (mono_class_init): renamed mono_class_metadata_init to
21275         mono_class_init, also removed the metadata_inited flag
21276
21277         * object.c (mono_object_isinst): use faster algorithm
21278
21279 2001-11-30  Radek Doulik  <rodo@ximian.com>
21280
21281         * mono-endian.h: reverted last change
21282         added function prototypes
21283
21284         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
21285         add mono-endian.c back
21286
21287         * mono-endian.c: returned back, as Paolo pointed out, it's needed
21288         for unaligned access, I've mistaked it with endianess. I am
21289         sorry.
21290         (mono_read16): fix reverted endianess
21291         (mono_read64): ditto
21292         (mono_read32): ditto
21293
21294 2001-11-30  Dick Porter  <dick@ximian.com>
21295
21296         * exception.c: Implement mono_exception_from_name()
21297
21298 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21299
21300         * metadata.h, metadata.c: remove params_size and locals_size and their
21301         calculation from the metadata code: they are only usefult to the
21302         interp.
21303
21304 2001-11-29  Radek Doulik  <rodo@ximian.com>
21305
21306         * object.c (mono_ldstr): swap bytes here, it's probably not the
21307         best place, but works for me now, I'll redo it once I know mono
21308         better, also note that I add PROT_WRITE and don't reset back, also
21309         note that it's only affects big endians, so x86 should be OK
21310
21311         * mono-endian.h (read16): use just glib macros for both endians
21312
21313         * mono-endian.c: removed as glib macros are used in in
21314         mono-endian.h so we don't need to care about endianess for read
21315         macros as glib does that for us already
21316
21317 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
21318
21319         * class.h, class.h: take minimum alignment into consideration so
21320         that the fields of a class remain aligned also when in an array.
21321
21322 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21323
21324         * loader.h, loader.c: add mono_method_get_param_names().
21325         * class.c: 0-init class fields.
21326
21327 2001-11-26  Dick Porter  <dick@ximian.com>
21328
21329         * icall.c:
21330         * threads-types.h:
21331         * threads.c: New file that handles System.Threading on all platforms
21332
21333         * object.c: 
21334         * object.h: Remove the synchronisation struct from MonoObject,
21335         replace it with a pointer that gets initialised on demand
21336
21337         * Makefile.am: Replace all the system-specific threading code with
21338         a single file that uses the new wrapper library
21339
21340 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
21341
21342         * class.c, class.h: add mono_install_trampoline() so that the runtime
21343         can register a function to create a trampoline: removes the ugly
21344         requirement that a runtime needed to export arch_create_jit_trampoline.
21345         * object.h, object.c: added mono_install_handler() so that the runtime
21346         can install an handler for exceptions generated in C code (with
21347         mono_raise_exception()). Added C struct for System.Delegate.
21348         * pedump.c: removed arch_create_jit_trampoline.
21349         * reflection.c: some cleanups to allow registering user strings and
21350         later getting a token for methodrefs and fieldrefs before the assembly
21351         is built.
21352         * row-indexes.h: updates and fixes from the new ECMA specs.
21353
21354 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
21355
21356         * class.h, class.c: add enum_basetype field to MonoClass.
21357         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
21358         to get index in the constant table reated to a field, param or
21359         property.
21360         * reflection.h, reflection.c: handle constructors. Set public-key and
21361         version number of the built assembly to 0.
21362         * row-indexes.h: update from new ECMA spec.
21363
21364 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21365
21366         * class.h, class.c: add a max_interface_id to MonoClass.
21367         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
21368         since it's used to do that. Added mono_type_type_from_obj().
21369         Make GetType() return NULL instead of segfaulting if the type was not
21370         found. Handle simple arrays in assQualifiedName.
21371         * object.h: add a struct to represent an Exception.
21372         * reflection.c: output call convention in method signature.
21373         Add code to support P/Invoke methods and fixed offsets for fields.
21374
21375 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
21376
21377         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
21378         the value.
21379         * icall.c: use mono_array_addr instead of array->vector: fixes the
21380         reflection image writing.
21381         * reflection.c: init call convention byte to 0 in method signature.
21382         Encode the property signature. Don't output property-related methods
21383         twice. Really process the properties for a type (don't cast a field to
21384         a property, my mom always told me that).
21385         Fix 64 bit issues in pointer alignment in a different and more
21386         readable way.
21387
21388 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
21389
21390         * loader.h: Removed type class from MonoDefaults, added monotype
21391
21392         * loader.c: Loaded MonoType, removed loading of Type
21393
21394         * icall.c (my_mono_new_object): Now returns a System.MonoType,
21395         and fills in System.Type._impl with a RuntimeTypeHandle rather
21396         than the actual MonoClass *
21397
21398         (ves_icall_type_from_handle): change from type_class to
21399         monotype_class
21400
21401         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
21402         implemented
21403
21404         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
21405         implemented
21406
21407         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
21408
21409         (ves_icall_System_Reflection_Assembly_GetType): implemented
21410
21411         (ves_icall_System_MonoType_assQualifiedName): implemented
21412
21413         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
21414
21415 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
21416
21417         * assembly.c (mono_assembly_open): Implement a cache for the
21418         assemblies. 
21419
21420         (mono_assembly_close): only destroy the assembly when the last
21421         reference is gone.
21422         
21423 2001-11-09  Dick Porter  <dick@ximian.com>
21424
21425         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
21426
21427 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
21428
21429         * class.c (mono_class_metadata_init): bug fix: compute the right slot
21430
21431 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
21432
21433         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
21434         from Martin Weindel.
21435         * object.h: add mono_string_chars ().
21436
21437 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
21438
21439         * reflection.c (build_compressed_metadata): Eliminates warnings
21440         and uses 64-bit clean code.
21441
21442         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
21443         (mono_type_equal): Change signature to eliminate warnings.
21444
21445 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
21446
21447         * icall.c, loader.c: remove the internalcall array constructors.
21448         Changes to match the new MonoArray structure.
21449         * object.h, object.c: an array object doesn't allocate an extra
21450         vector. Add mono_array_new_full () to create jagged arrays easily.
21451
21452 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
21453
21454         * metadata.h, metadata.c: add mono_metadata_field_info () to
21455         retreive all the info about a field from vairous tables.
21456         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
21457         * class.h, class.c: augment MonoClassField with more info.
21458         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
21459         policy and load a field's RVA if needed.
21460
21461 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
21462
21463         * class.c (mono_class_metadata_init): create a trampoline for all
21464         virtual functions instead of actually compiling them.
21465
21466 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
21467
21468         * class.h, class.c: include name in MonoClassField.
21469         * class.c: fix fundamental type of System.Object and System.String.
21470         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
21471         tokens in ldtoken.
21472         * icall.c: remove internalcalls for the Reflection stuff that is now
21473         done in C# code.
21474         * loader.c: mono_field_from_memberref () implementation.
21475         * mono-endian.c: thinko (s/struct/union/g).
21476         * object.c, object.h: make the mono_string_* prototypes actually use
21477         MonoString instead of MonoObject.
21478         * reflection.c, reflection.h: updates for changes in the reflection
21479         code in corlib: we use C structures that map to the actual C# classes.
21480         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
21481         fat method header if needed and use the info from the ILGenerator for
21482         methods. Handle fields in types. Misc fixes.
21483
21484 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
21485
21486         * class.c (mono_class_metadata_init): bug fix: always allocate
21487         space for static class data
21488
21489 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
21490
21491         * class.c (mono_compute_relative_numbering): use relative
21492         numbering to support fast runtime type checks.
21493
21494 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
21495
21496         * class.c (mono_class_create_from_typeref): added debugging output
21497         to print class name when MonoDummy is returned instead of real class
21498
21499 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
21500
21501         * class.c (mono_class_metadata_init): interface offset table now
21502         contains pointers into the vtable - this is more efficient for the jit
21503
21504 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
21505
21506         * class.c (mono_class_metadata_init): use a temporary vtable (the
21507         old algorithm only worked for the interpreter, but not for the jit)
21508
21509 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
21510
21511         * loader.c (method_from_memberref): use mono_class_get to get the
21512         class of an array instead of using System.Array directly.
21513         (mono_get_method): also add MEMBERREF methods to the method cache
21514         which usefull for arrays.
21515
21516 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
21517
21518         * pedump.c (arch_compile_method): added to compute vtable entry
21519
21520         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
21521         number of interfaces.
21522         
21523         * class.h: merged MonoArrayClass into MonoClass
21524
21525         * class.c (mono_class_create_from_typedef): compute the vtable size and
21526         allocate space to include the vtable inside MonoClass
21527         (mono_class_metadata_init): initialize the vtable
21528
21529 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
21530
21531         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
21532         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
21533         * image.c: endian fixes by Laurent Rioux.
21534         * object.h, object.c: rename MonoStringObject to MonoString and
21535         MonoArrayObject to MonoArray. Change some function names to conform to
21536         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
21537         guint16* as first argument, so don't use char*.
21538         Provide macros to do the interesting things on arrays in a portable way.
21539         * threads-pthread.c: updates for the API changes and #include <sched.h>
21540         (required for sched_yield()).
21541         * icall.c: updates for the API changes above.
21542         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
21543         platforms that need them.
21544
21545 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21546
21547         * class.c: set the correct type for all the fundamental
21548         type when loading the class.
21549
21550 2001-10-05  Dick Porter  <dick@ximian.com>
21551
21552         * threads-pthread.c (pthread_mutex_timedlock): Simple
21553         compatibility version for C libraries that lack this call.
21554
21555 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21556
21557         * class.c: MonoTypes stored in MonoClass are stored as
21558         fundamental MonoTypes when the class represents a
21559         fundamental type (System.Int32, ...).
21560         The TypeHandle return by ldtoken is a MonoType*.
21561         * icall.c: ves_icall_get_data_chunk () write out all the
21562         PE/COFF stuff. Implement ves_icall_define_method (),
21563         ves_icall_set_method_body (), ves_icall_type_from_handle ().
21564         * image.c: properly skip unknown streams.
21565         * loader.h, loader.c: add type_class to mono_defaults.
21566         * metadata.c, metadata.h: export compute_size () as
21567         mono_metadata_compute_size () with a better interface.
21568         Typo and C&P fixes.
21569         * pedump.c: don't try to print the entry point RVA if there is no entry point.
21570         * reflection.c, reflection.h: many cleanups, fixes, output method
21571         signatures and headers, typedef and typeref info, compress the metadata
21572         tables, output all the heap streams, cli header etc.
21573         * row-indexes.h: typo fixes.
21574
21575 2001-10-04  Dick Porter  <dick@ximian.com>
21576
21577         * object.h: Add a synchronisation mutex struct to MonoObject
21578
21579         * object.c (mono_new_object): Initialise the object
21580         synchronisation mutexes
21581
21582         * icall.c: System.Threading.Monitor internal calls
21583         
21584         * threads-pthread.h:
21585         * threads-pthread.c: System.Threading.Monitor internal calls
21586
21587         * threads-types.h: New file, includes the system-specific thread
21588         structures
21589         
21590         * threads-pthread-types.h:
21591         * threads-pthread-types.c: New files, handle pthread-specific
21592         synchronisation types
21593
21594         * threads-dummy-types.h: 
21595         * threads-dummy-types.c: New files of dummy support for
21596         thread-specific types
21597
21598         * metadata.c:
21599         * image.c:
21600         * pedump.c: include mono-endian.h not endian.h
21601         
21602         * Makefile.am: More threads files.
21603         Name mono-endian.h not endian.h
21604
21605 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
21606
21607         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
21608         stuff and implement a few more bits.
21609         * icall.c: a field needs to be dereferenced twice. Do not use the same
21610         name for two variables in the same scope.
21611         * image.c, image.h: cleanups.
21612
21613 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
21614
21615         * class.c (mono_class_metadata_init): bug fix: compute the right size
21616
21617 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
21618
21619         * icall.c: implemented some of the Reflection internalcalls.
21620         * image.c, image.h: start writing out the PE/COFF image.
21621         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
21622         that does the reverse than decode_blob_size ().
21623         * object.c: use mono_metadata_encode_value (). Move here
21624         temporary implementation of mono_string_to_utf8 ().
21625         * rawbuffer.c: make malloc_map static.
21626
21627 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21628
21629         * metadata.c: fix type comparison for arrays.
21630         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
21631         Added a couple of new classes to monodefaults.
21632         * icall.c: added a couple of Reflection-related internalcalls.
21633         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
21634         Added a byval_arg MonoType to MonoClass.
21635
21636 2001-09-28  Dick Porter  <dick@ximian.com>
21637
21638         * icall.c:
21639         * threads-pthread.h: 
21640         * threads-pthread.c: Implemented internal calls for
21641         LocalDataStoreSlot operations.  Applied mutexes around all shared
21642         data.  Reworked the thread creation and Start() operations to
21643         avoid a race condition.
21644         
21645         * threads-dummy.h:
21646         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
21647
21648 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
21649
21650         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
21651
21652 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
21653
21654         * class.c, loader.c: warn and return NULL instead of erroring out.
21655         * icall.c: added System.AppDomain::getCurDomain().
21656         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
21657
21658 2001-09-25  Dick Porter  <dick@ximian.com>
21659
21660         * threads-pthread.h:
21661         * threads-pthread.c: Implemented timed thread joining and added
21662         System.Threading.Thread::Join_internal internal call
21663
21664         * icall.c: Added System.Threading.Thread::Join_internal internal call
21665
21666         * threads-dummy.h:
21667         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
21668
21669 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
21670
21671         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
21672         mono_string_intern () to implement the semantics of the ldstr opcode
21673         and the interning of System.Strings.
21674         * icall.c: provide hooks to make String::IsIntern and String::Intern
21675         internalcalls.
21676
21677 2001-09-23  Dick Porter  <dick@ximian.com>
21678
21679         * threads-dummy.c: 
21680         * threads-dummy.h: New files of dummy threading routines
21681
21682         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
21683         support code based on system specifics
21684
21685         Rename PTHREAD_LIBS to THREAD_LIBS
21686         
21687 2001-09-23  Dick Porter  <dick@ximian.com>
21688
21689         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
21690         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
21691         internal calls.
21692         (mono_thread_init): Set up a Thread object instance to return when
21693         the main thread calls Thread.CurrentThread
21694         (mono_thread_cleanup): Wait for all subthreads to exit
21695
21696         * icall.c: New internal calls for System.Threading.Thread::Sleep
21697         (including Schedule) and CurrentThread
21698
21699         * threads.h: New file, to insulate thread-specific stuff from the
21700         rest of the code
21701
21702 2001-09-21  Dick Porter  <dick@ximian.com>
21703
21704         * threads-pthread.h: 
21705         * threads-pthread.c: New file, for handling pthreads-style
21706         threading support.  Start() now starts a new thread and executes
21707         the ThreadStart delegate instance.
21708
21709         * icall.c: Added the internalcall for
21710         System.Threading.Thread::Start_internal
21711
21712         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
21713
21714 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
21715
21716         * loader.c: work around the different signatures for delegates
21717         constructors csc generates in compiled code vs the ones compiled in mscorlib.
21718
21719 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
21720
21721         * class.h, class.c: add mono_class_get_field_from_name ().
21722         * *: Fix C comments and other ANSI C issues.
21723
21724 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
21725
21726         * endian.h, assembly.c: fix some endianness issues.
21727
21728 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
21729
21730         * loader.h, load.c: add delegate_class to mono_defaults.
21731         Handle runtime provided methods in mono_get_method ().
21732
21733 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
21734
21735         * loader.c (mono_get_method): use pinvoke for internal call
21736
21737         * icall.c: use pinvoke for internal call
21738
21739         * loader.c (method_from_memberref): set the method name
21740
21741 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
21742
21743         * metadata.c: help the compiler generate better code for
21744         mono_class_from_mono_type ().
21745
21746 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
21747
21748         * class.c (mono_class_metadata_init): delayed computing of the
21749         class size to mono_class_metadata_init ()
21750
21751 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
21752
21753         * class.c, class.h: add an interfaces member to MonoClass.
21754         * image.c, image.h: add assembly_name field to MonoImage
21755         from the assembly table.
21756         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
21757
21758 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21759
21760         * class.c: Handle Array in mono_class_from_mono_type ().
21761         * metadata.c, pedump.c: some endian fixes.
21762
21763 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
21764
21765         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
21766         * metadata.c: fix small problem introduced with the latest commit.
21767
21768 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
21769
21770         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
21771         We don't need a MonoMetadata pointer anymore to compare signatures in
21772         mono_metadata_signature_equal (), update callers.
21773         Reduced memory usage an number of allocations for MonoMethodHeader and
21774         MonoMethodSignature.
21775
21776 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
21777
21778         * metadata.c: added compare for szarray.
21779
21780 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
21781
21782         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
21783         and add a couple more types to it and mono_defaults. Give an hint on
21784         classes that need implementing in our corlib and are referenced
21785         in mscorlib.
21786
21787 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
21788
21789         * class.h, class.c: keep track if a class is also an Enum.
21790         * loader.c: Implement a couple more types for use in libffi
21791         marshalling. Gives better diagnostics when failing to dlopen
21792         a library. Set method->klass for P/Invoke methods, too.
21793
21794 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
21795
21796         * class.c, class.h: add a MonoType this_arg to MonoClass that
21797         represents a pointer to an object of the class' type that
21798         can be used by the interpreter and later the type cache.
21799         Add best guess alignment info for valuetype objects.
21800
21801 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
21802
21803         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
21804         into MonoType: one less level of indirection and allocation and
21805         simplifies quite a bit of code. Added cache for MonoTypes that are
21806         used frequently, so that we don't need to allocate them all the time.
21807
21808 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
21809
21810         * class.c (mono_class_create_from_typedef): System.Enum is also a
21811         value type, although it does not derive from System.ValueType
21812         (maybe a bug in the ms compiler?)
21813
21814         * metadata.c (mono_type_size): return the right size for value types
21815
21816         * loader.c (mono_get_method): only initialize method header if not abstract
21817
21818         * class.c (mono_class_from_mono_type): use mono_default values. 
21819
21820 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
21821
21822         * *: use MonoClass pointers instead of <type_tokens>
21823         
21824         * class.h: new flag: metadata_inited.
21825
21826         * class.c (mono_class_metadata_init): impl.
21827         (mono_class_instance_size): impl.
21828         (mono_class_data_size): impl.
21829
21830 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
21831
21832         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
21833         MonoClass now has the name and name_space fields. 
21834         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
21835         mono_get_method () takes and optional MonoClass as argument.
21836         Removed mono_typedef_from_name() and added mono_class_token_from_name()
21837         instead that takes advantage of a map from class names to typedef
21838         tokens in MonoImage.
21839
21840 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
21841
21842         * metadata.c: zero is not a valid alignment boundary.
21843         Merge MONO_TYPE_VOID in default decoding code.
21844
21845 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
21846
21847         * image.h: merged MonoMetadata into MonoImage
21848
21849         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
21850         identify the type of elements.
21851
21852 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
21853
21854         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
21855         * cil-coff.h: split MonoMSDOSHeader and add size info.
21856         * image.c: add some consistency checks.
21857         * metadata.c: fix row size computation: one programmer
21858         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
21859         add explanation for the locator routine.
21860         Fix decoding of size in method header.
21861         
21862 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
21863
21864         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
21865         (g_concat_dir_and_file): Bring g_concat_dir_and_file
21866         function from gnome-libs.  This uses the right path separator
21867         based on the OS, and also works around a bug in some systems where
21868         a double slash is not allowed. 
21869         (default_assembly_name_resolver): Use g_concat_dir_and_file
21870         (mono_assembly_open): ditto.
21871
21872 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
21873
21874         * metadata.c (mono_metadata_signature_equal): impl.
21875
21876         * *: void is now a realy MonoType (instead of using NULL)
21877         
21878         * metadata.c (do_mono_metadata_parse_type): use
21879         mono_metadata_parse_type to parse void value.
21880
21881 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
21882
21883         * metadata.c, metadata.h: in the signature and method header store
21884         only the space required for holding the loca vars and incoming arguments.
21885
21886 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
21887
21888         * metadata.c (do_mono_metadata_parse_type): treat void like any
21889         other type (instead of assigning NULL);
21890
21891 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
21892
21893         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
21894
21895 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
21896
21897         * image.c (do_mono_image_open): added a cache for arrays.
21898
21899 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21900
21901         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
21902         decode a single column from a row in a metadata table and changes
21903         to take advantage of it in the typedef locator (gives a nice speed up).
21904         Store offset info for function params.
21905
21906 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
21907
21908         * image.h (MONO_IMAGE_IS_CORLIB): removed 
21909
21910 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
21911
21912         * assembly.c: how could mono_assembly_close () had ever worked?
21913         * metadata.c, metadata.h: provide offset info for local vars.
21914         Implement mono_type_size () to take care of alignment as well
21915         as size (it was mono_field_type_size in cli/class.c before).
21916
21917 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
21918
21919         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
21920
21921         * assembly.h (CORLIB_NAME): set to corlib.dll
21922
21923         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
21924
21925 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
21926
21927         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
21928         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
21929         tokentype.h: massive namespace cleanup.
21930
21931 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
21932
21933         * metadata.h, metadata.c: decode exception clauses when parsing method header.
21934
21935 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
21936
21937         * metadata.c (mono_metadata_free_type): added check for type !=
21938         NULL (void) before calling mono_metadata_free_type()
21939
21940 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
21941
21942         * metadata.h, row_indexes.h: added header with enumerations to use
21943         to index in the columns from tables in metadata and to decode coded
21944         tokens: we should start using this instead of embedding magic numbers
21945         all over the code.
21946
21947 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
21948
21949         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
21950         Move metadata_t info from cli_image_info_t to MonoImage, where
21951         it's easily accessible. Changed all the uses accordingly.
21952         Added the method and class caches to MonoImage.
21953         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
21954         and mono_metadata_decode_value () signature to be more consistent
21955         with the other parse functions (and simplify code). Taken advantage
21956         of zero-length array allocation with GCC. Removed reduntant (and
21957         wrong) MonoFieldType struct and use MonoParam instead. Changed
21958         mono_metadata_parse_field_type () to use common code for parsing.
21959         Added mono_metadata_typedef_from_field () and
21960         mono_metadata_typedef_from_method () to lookup a typedef index from a
21961         field or method token.
21962         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
21963
21964 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
21965
21966         * metadata.c (mono_metadata_parse_field_type): Implement. 
21967         (do_mono_metadata_parse_type): Split engine from
21968         mono_metadata_parse_type, so that we can create smaller structures
21969         for things that just have one pointer to the MonoType (look at
21970         the MonoFieldType)
21971
21972 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
21973
21974         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
21975         as Jan Gray found out, it is incorrect. 
21976
21977 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
21978
21979         * assembly.c: Implement asssembly loading.  This loads an image
21980         and loads all the referenced assemblies.  Come to think of it, we
21981         could always do lazy loading of the assemblies. 
21982
21983         * image.c (mono_image_open): Keep loaded images in a hashtable.
21984
21985         * image.h (MonoImage): Add reference count.
21986
21987 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
21988
21989         * assembly.c (mono_assembly_open): Keep track of the file name in
21990         case the assembly has no ASSEMBLY table.
21991
21992         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
21993         from get.c here.
21994
21995 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
21996
21997         * metadata.c, metadata.h: decode local vars in method header
21998         parse function. Change callers accordingly.
21999
22000 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
22001
22002         * metadata.h, cil-coff.h: protect against multiple inclusion.
22003         Added some new structures to hold information decoded from metadata:
22004         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
22005         and relevant decoding/free functions.
22006         * metadata.c: implement decoding functions. Add warning for out of bounds
22007         index in mono_metadata_locate(). Implement mono_get_method () to retreive
22008         all the info about a method signature and invocation. Remove check on
22009         uninitialized local var in parse_mh() and fix memory leak.
22010
22011 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
22012
22013         * metadata.h: More macros.
22014
22015         * tokentype.h: New file.
22016
22017 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
22018
22019         * assembly.c: added a consistency check and initialize
22020         some structures with g_new0().
22021         * metadata.c: fixed a couple more bugs in table size computation
22022         and add other checks for out-of bound access to metadata.
22023
22024 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
22025
22026         * metatada.c: fix bugs computing table sizes. Spew a
22027         warning when index in string heap is out of bounds.
22028
22029 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
22030
22031         * metadata.h: Add a couple of macros to manipulate tokens. 
22032
22033 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
22034
22035         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
22036         cli_section_tables).
22037
22038 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
22039
22040         * metadata.c (mono_metadata_user_string): New function, provides
22041         access to the UserString heap. 
22042
22043 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
22044
22045         * metadata.c: Add inline documentation.
22046
22047 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
22048
22049         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
22050         files. 
22051
22052 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
22053
22054         * typeattr.h: New file, TypeAttribute flags. 
22055
22056 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
22057
22058         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
22059         mono_assembly_ensure_section): Section loading code.
22060         (load_section_tables): Load the sections.
22061
22062         * mono/metadata/metadata.c (mono_metadata_locate_token,
22063         mono_metadata_locate): Functions to locate the information
22064         definition given a token or a table and an index.
22065         (mono_metadata_compute_table_bases): New.
22066         (compute_size): New function to compute the sizes of the various
22067         tables.
22068
22069         * mono/metadata/metadata.h: Finish listing the different index
22070         types. 
22071
22072         * mono/metadata/pedump.c: Improve to dump new information.
22073
22074 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
22075
22076         * mono/metadata/metadata.c: Entered all the tables matching
22077         Beta2. 
22078
22079         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
22080
22081
22082