Added comment that all code I commit is contributed under the MIT/X11 license.
[mono.git] / mono / metadata / ChangeLog
1 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
2
3         * object.c (mono_remote_class_vtable): Need to create proxy vtable
4         entries for __ComObject type in addition to ComImport types.
5         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
6         about hash table.
7         
8         All code is contributed under the MIT/X11 license.
9
10 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
11
12         * image.c: avoid tentative loading of modulerefs that contain
13         no metadata (P/Invoke library names).
14
15 2006-07-28  Dick Porter  <dick@ximian.com>
16
17         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
18         mono_loader_lock() somewhere, so don't delete the critical section
19         for now.  Found by running and exiting monodevelop.
20
21 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
22
23         * filewatcher.c: define the inotify syscalls when we're building on
24         linux and have sys/syscall.h. The build system might not have support
25         for inotify but the target system might have it.
26
27 2006-07-26  Miguel de Icaza  <miguel@novell.com>
28
29         * domain.c: Documentation updates.
30
31         * loader.c (mono_free_method): Do not release the method
32         information if we are being profiled, as profilers will use this
33         information at shut down to present some data to the user.
34
35         This is needed so that the profiler does not crash, as the
36         profiler tends to keep MonoMethods around, and they might become
37         invalid if we free these.
38
39         (mono_get_method_constrained): Return the original CIL stream
40         method as well, so verification can be performed against it.
41
42 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
43
44         * filewatcher.[ch]: support for inotify file system watcher.
45         * icall.c: add new internal calls for the inotify file system watcher.
46
47 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
48
49         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
50         #78888.
51
52 2006-07-20  Dick Porter  <dick@ximian.com>
53
54         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
55         warning.
56
57 2006-07-20  Dick Porter  <dick@ximian.com>
58
59         * threads.c (start_wrapper): Do the thread cleanup while we still
60         hold a reference to its object.  Fixes bug 78123.
61
62 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
63
64         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
65         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
66           "managed-to-managed".
67         * icall.c: Redirect string constructors that take sbyte* to
68           ves_icall_System_String_ctor_RedirectToCreateString.
69         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
70           to CreateString () methods with matching signature.
71         * reflection.c: Use original security informations for
72           MONO_WRAPPER_MANAGED_TO_MANAGED.
73         * security-manager.c: Use original security informations for
74           MONO_WRAPPER_MANAGED_TO_MANAGED.
75         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
76           that is a placeholder and only its address should be used.
77         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
78           that is a placeholder and only its address should be used.
79
80 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
81
82         Begin implementing COM Interop.
83         * appdomain.c: Increment corlib version.
84         * class.c: Set ComImport classes' parent to __ComObject.
85         * loader.c: Mark cominterop methods as such.
86         * domain.c: Add __ComObject class to MonoDefaults structure.
87         * image.c: Add 2 hashtables to the image for COM Interop related methods
88         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
89         using the mempool allocator
90         
91         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
92         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
93         declaration for mono_metadata_type_dup_mp.
94         
95         * debug-helpers.c: Added strings for two additional wrapper types
96         * object.c: Create proxy objects for ComImport classes
97         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
98         and added __ComObject class to MonoDefaults structure.
99         
100         * object-internals.h: Finish MonoRealProxy definition, and add definition of
101         MonoComInteropProxy and MonoComObject.
102         
103         * marshal.c: Added support for COM Interop
104         (signature_cominterop): Converts managed signature to corresponding
105         unmanaged COM signature.
106         (cominterop_get_function_pointer): gets unmanaged function pointer via
107         COM object vtable
108         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
109         (cominterop_get_method_interface): returns interface type that method is defined on
110         (mono_mb_emit_cominterop_call): emits native call to function pointer
111         gotten from vtable
112         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
113         that matches signature of unmanaged function.
114         (cominterop_get_native_wrapper): wrapper around adjusted method call.
115         (cominterop_get_invoke): forwards call from proxy to __ComObject
116         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
117         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
118         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
119         
120         * marshal.h: Added Marshal icall declarations.
121         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
122         so we can access them in finalizer
123         
124 2006-07-14  Dick Porter  <dick@ximian.com>
125
126         * object.c (mono_type_initialization_cleanup): Fix a race
127         condition by temporarily commenting out the critical section
128         deletion.
129
130 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
131
132         * reflection.c (create_custom_attr): Fix some warnings.
133         (create_custom_attr_data): Ditto.
134         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
135         types. Fixes #78855.
136
137 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
138
139         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
140
141         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
142
143 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
144
145         * reflection.c (resolve_object): Add support for DynamicMethod.
146
147         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
148         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
149
150 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
151
152         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
153         don't leak GPtrArray's pdata has we have no use (nor free) for it.
154
155 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
156
157         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
158         Fixes #77888.
159
160 2006-06-30  Raja R Harinath  <rharinath@novell.com>
161
162         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
163         slightly: remove a shadow local variable.
164
165 2006-06-29  Raja R Harinath  <rharinath@novell.com>
166
167         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
168         definition that introduces the virtual function slot.
169         Also fix Coverity #105.
170
171 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
172
173         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
174         for dynamic assemblies. Fixes #78724.
175
176 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
177
178         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
179         Fixes #78722.
180
181 2006-06-21  Martin Baulig  <martin@ximian.com>
182
183         * reflection.c
184         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
185         fixes #76484.
186
187 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
188
189         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
190
191 2006-06-20  Raja R Harinath  <rharinath@novell.com>
192
193         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
194         nor TYPEREFs.
195         * class.c (mono_class_create_from_typespec): Add 'context' argument.
196         Inflate result if necessary.
197         (mono_class_get_full): Remove old version.  Rename from
198         'mono_class_get' and add 'context' argument.  Pass it to
199         ..._create_from_typespec.
200         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
201         (mono_ldtoken): Revert change below.
202
203 2006-06-20  Martin Baulig  <martin@ximian.com>
204
205         * class.c (mono_ldtoken): Don't pass the generic context to
206         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
207
208 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
209
210         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
211         and later freeing it. Fixes #78638.
212
213 2006-06-15  Miguel de Icaza  <miguel@novell.com>
214
215         * icall.c (mono_class_get_throw): Revert over-zealous error
216         throwing, the caller for mono_class_get_throw will cope with
217         errors when classes are not properly initialized already.
218
219         The code still copes with loader exceptions though.
220
221         Fixes the regression in reftype1 and reftype3 from the CAS tests.
222         
223 2006-06-14  Miguel de Icaza  <miguel@novell.com>
224
225         Fixes the `make run1' version of RuntimeAbort (to be commited,
226         source is in Bugzilla).
227         
228         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
229         FALSE on class loading failure instead of returning true.
230
231         * class.c (mono_class_create_from_typedef): It is possible for
232         mono_metadata_interfaces_from_typedef_full to fail if a class is
233         not found, cope with this.
234         
235
236 2006-06-14  Dick Porter  <dick@ximian.com>
237
238         * socket-io.c: 
239         * process.c: Fix a bunch of signed/unsigned warnings from gcc
240         4.1.1
241
242 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
243
244         * culture-info-table.h : oops, forgot to make it nsync with r61548.
245
246 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
247
248         * icall.c: Another fix for building mono in Visual Studio.
249
250 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
251
252         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
253         
254 2006-06-09  Martin Baulig  <martin@ximian.com>
255
256         * debug-mono-symfile.c: Put this back and really fix it this
257         time. Sorry for all the trouble.
258
259 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
260
261         * icall.c (mono_class_get_throw): Fix a warning.
262         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
263         ReflectionTypeLoadException if needed. Fixes #78606.
264
265         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
266         (mono_class_init): Ditto.
267
268         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
269         ref_only exceptions.
270         (mono_loader_clear_error): Make this work even if there is no error.
271
272 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
273
274         * object-internals.h marshal.c marshal.h icall.c: Implement method 
275         Marshal.GetComSlotForMethodInfo using internal call.
276
277 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
278
279         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
280         a function for signalling it.
281
282         * class.c (mono_class_from_typeref): Use the new kind of loader error when
283         a referenced assembly is not found.
284
285         * loader.c (mono_loader_error_prepare_exception): Add support for 
286         LOADER_ERROR_ASSEMBLY. Fix formatting.
287
288 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
289
290         * domain.c appdomain.c class-internals.h marshal.c: Add support 
291         for VARIANT marshalling on windows and increment corlib version
292         since Variant struct was added.
293
294 2006-06-03  Miguel de Icaza  <miguel@novell.com>
295
296         * debug-mono-symfile.c: Revert Martin's previous patch which broke
297         stack trace line information:
298
299         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
300         (Martin) when looking up B which is between A and C, return A not C.
301
302         Bug is #78573.
303
304         Thanks to Alexander Olk for tracking this down.
305
306 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
307
308         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
309         
310         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
311         avoid clobbering its value.
312         (mono_string_to_lpstr): Fix a warning on windows.
313
314 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
315
316         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
317
318         * reflection.c loader.c: Removed references to 'dummy' flag.
319
320         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
321
322         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
323         it gets GC tracking.
324
325         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
326         GC tracking.
327         
328         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
329
330         * marshal.c threadpool.c: Update callers of mono_async_result_new.
331
332         * appdomain.c: Bump corlib version.
333
334 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
335
336         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
337         CEE_STIND_REF when working with object references.
338
339 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
340
341         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
342         Fixes #78539.
343
344 2006-05-30  Miguel de Icaza  <miguel@novell.com>
345
346         * loader.c (method_from_memberref): Fix argument value for
347         mono_loader_set_error_method_load (I was passing the MonoClass
348         instead of the class name char *).
349
350 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
351
352         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
353         CEE_STIND_REF when working with object references.
354
355 2006-05-30  Martin Baulig  <martin@ximian.com>
356
357         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
358         mono_method_full_name() change and replace the ':' with a '.'
359         here.
360
361 2006-05-30  Martin Baulig  <martin@ximian.com>
362
363         * debug-mono-symfile.c
364         (mono_debug_symfile_lookup_location): Fix the algorithm:
365         when looking up B which is between A and C, return A not C.
366
367 2006-05-29  Martin Baulig  <martin@ximian.com>
368
369         * mono-debug.h
370         (MonoDebugMethodInfo): Make the typedef public.
371         (MonoDebugSourceLocation): New public struct.
372
373         * mono-debug.c
374         (mono_debug_source_location_from_address): Removed.
375         (mono_debug_source_location_from_il_offset): Removed.
376         (mono_debug_il_offset_from_address): Removed.
377         (mono_debug_address_from_il_offset): Removed.
378         (mono_debug_lookup_method): New public function.
379         (mono_debug_lookup_source_location): New public function; replaces
380         the old mono_debug_source_location_from_*() functions; see the
381         inline documentation.
382         (mono_debug_free_source_location): New public function.
383         (mono_debug_print_stack_frame): New public function; see the
384         inline documentation.
385
386         * debug-mono-symfile.c
387         (mono_debug_find_source_location): Renamed into
388         mono_debug_symfile_lookup_location(); only take a
389         `MonoDebugMethodInfo *' and an `offset' argument; added inline
390         documentation.
391         (mono_debug_find_method): Renamed into
392         mono_debug_symfile_lookup_method().
393
394 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
395
396         * assembly.c (mono_assembly_open_full): Dont overwrite the status
397         returned by mono_image_open_full ().
398
399         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
400         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
401         #78517.
402
403         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
404         #78518.
405
406 2006-05-27  Miguel de Icaza  <miguel@novell.com>
407
408         * class.c (mono_class_from_typeref): handle missing images
409         earlier, deals with bug #78418.   Refactor code; 
410
411         Fix a warning introduced in my previous commit (some stale code
412         from before I revisited my patch).
413
414         * class.c (mono_class_create_from_typedef): On failure, remove the
415         class from the MonoImage->class_cache as the class is not
416         initialized;   Fixes the leak pointed out by Paolo.
417
418 2006-05-25  Dick Porter  <dick@ximian.com>
419
420         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
421         DeleteCriticalSections until I figure out which one may still be
422         sometimes locked when mono_thread_cleanup is called.
423
424 2006-05-24  Dick Porter  <dick@ximian.com>
425
426         * threads.c (mono_thread_cleanup): Move the threading cleanup out
427         of mono_thread_manage and back into its own function, so it can be
428         called after the finalizer thread has finished.
429
430         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
431
432 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
433
434         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
435         Fixes #78495.
436
437         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
438         with non-blittable elements.
439         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
440
441 2006-05-24  Martin Baulig  <martin@ximian.com>
442
443         * mono-debug-debugger.h (MonoDebuggerEvent): Added
444         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
445
446         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
447         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
448         `mono_debugger_event_handler' to NULL.
449
450 2006-05-24  Martin Baulig  <martin@ximian.com>
451
452         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
453
454 2006-05-24  Martin Baulig  <martin@ximian.com>
455
456         * mono-debug-debugger.h
457         (mono_debugger_create_notification_function): Added
458         `MonoCodeManager *' argument.
459
460 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
461
462         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
463
464 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
465
466         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
467         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
468         implementation.
469
470 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
471
472         * icall.c: precise GC support: objects can't be stored in unmanaged
473         memory anymore, even if they are kept alive by other references: since
474         they can move the GC needs to be able to always find them.
475
476 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
477
478         * object.c: precise GC support for static fields. Support
479         for moving GCs: write barriers and pinned allocation for interned
480         strings.
481
482 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
483
484         * domain.c, domain-internals.h: precise GC support for the MonoDomain
485         structure.
486
487 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
488
489         * class.c, gc.c: sgen and precise GC updates.
490
491 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
492
493         * marshal.h, marshal.c: added write barrier wrapper and precise type
494         fixes.
495
496 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
497
498         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
499         support.
500
501 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
502
503         * reflection.c: precise and sgen GC updates.
504
505 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
506
507         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
508
509 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
510
511         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
512
513 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
514
515         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
516         MONO_TYPE_OBJECT. Fixes #78462.
517
518 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
519
520         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
521         and blittable types.
522
523 2006-05-17  Miguel de Icaza  <miguel@novell.com>
524
525         * class.c (mono_class_get_exception_for_failure): Implement parts
526         of a TODO: if the loader error is set (instead of the class
527         error), we return a Loader exception that can be properly thrown
528         elsewhere.
529
530         This was exposed by some Winforms 2.0 code that I tried to run
531         (Atsushi pointed me to it).
532
533 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
534
535         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
536         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
537         
538         * marshal.c (emit_marshal_vtype): Add limited support for 
539         UnmanagedType.LPStruct. Fixes #78427.
540
541         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
542         Applied a patch from kangaroo to fix #77523.
543
544 2006-05-17  Martin Baulig  <martin@ximian.com>
545
546         * threads.c
547         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
548         (debugger_thread_created): Removed.
549         (debugger_thread_exited): Removed.
550
551 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
552
553         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
554
555         * object-internals.h (MonoReflectionResource): Sync with managed version.
556
557 2006-05-12  Wade Berrier <wberrier@novell.com>
558
559         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
560
561 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
562
563         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
564         functions try to allocate from the image mempool.
565
566 2006-05-12  Dick Porter  <dick@ximian.com>
567
568         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
569
570 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
571
572         * object.c: The FieldGetter and FieldSetter methods require the full
573         name of the class, not only the name. Fixes bug #78277.
574
575 2006-05-11  Miguel de Icaza  <miguel@novell.com>
576
577         * loader.c (method_from_memberref): Do not pass the NULL klass to
578         mono_loader_set_error_() methods.  Pass the non-NULL value
579         (class). 
580
581 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
582
583         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
584         (mono_assembly_close): Null out assembly->image->references after freeing it.
585
586         * image.c (mono_image_close): Free image->references.
587         
588         * reflection.c (mono_image_basic_init): Fix a small memory leak.
589
590 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
591
592         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
593         before checking if it's NULL (g_assert).
594
595 2006-05-10  Martin Baulig  <martin@ximian.com>
596
597         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
598         I thought I already killed that two months ago, but now it somehow reappeared.
599
600 2006-05-10  Martin Baulig  <martin@ximian.com>
601
602         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
603
604 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
605
606         * reflection.c: Allocate memory for dynamically created methods in the image
607         mempools.
608
609 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
610
611         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
612         don't use the ad pointer before checking if it's NULL (g_assert).
613
614 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
615
616         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
617         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
618
619         * marshal.c: Allocate all signatures from mempools.
620
621         * marshal.c: Allocate some more signatures from mempools.
622
623 2006-05-09  Miguel de Icaza  <miguel@novell.com>
624
625         * object.c (mono_load_remote_field): The code used to provide a
626         temporary variable for returning results if the user did not
627         provide a result pointer.  But our temporary variable was allocted
628         on the satck.
629
630         Fix calling code to always pass a result area.   Coverity ID 103.
631
632 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
633
634         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
635         value, not the old. Fixes #78312.
636         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
637
638         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
639         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
640         per-image cache.
641
642         * assembly.c (mono_assembly_close): Free image->references.
643
644         * assembly.c (mono_assembly_names_equal): Fix a warning.
645         (mono_assemblies_cleanup): Cleanup more global data.
646
647         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
648
649         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
650         ptr_cache and image->modules.
651
652         * image.c (mono_image_init): Allocate array_cache lazily.
653         
654 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
655
656         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
657         behavior was changed recently and has bad side effects.
658
659 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
660
661         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
662         
663         * assembly.c (mono_assembly_close): Remove a debug printf.
664
665         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
666
667         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
668         to also allow for temporary references between mono_image_open ()/close ().
669
670         * domain.c (get_runtimes_from_exe): Add a FIXME.        
671
672 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
673
674         * marshal.c: Fix support for dynamic methods.
675
676         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
677
678         * marshal.c (mono_marshal_cleanup): New cleanup function.
679
680         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
681         image mempools.
682
683         * class.c (mono_class_init): Fix leaking class->nested_classes.
684
685         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
686
687         * image.c (mono_image_init): Initialize the new cashes.
688
689         * image.c (mono_image_close): Destroy the new cashes.
690
691         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
692
693         * mempool.c (mono_mempool_strdup): New helper function.
694
695         * class-internals.h: Add prototype for mono_loader_unlock ().
696
697         * domain.c (mono_jit_info_table_find): Fix a warning.
698         (mono_debugger_check_runtime_version): Ditto.
699
700         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
701         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
702         functions to these modules.
703
704         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
705         metadata modules.
706         
707         * marshal.c (mono_free_bstr): Fix a warning.
708
709         * assembly.c (mono_assembly_open_full): Fix another small leak.
710
711         * object.c: Fix some unload leaks in the remoting code.
712
713         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
714         function.
715
716         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
717
718         * reflection.c: Fix some unload leaks in dynamic assemblies.
719
720 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
721
722         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
723         * marshal.h: Add BSTR support on Win32
724         * icall.c: Add BSTR icalls
725         * metadata.h: Add BSTR enums
726
727 2006-04-28  Miguel de Icaza  <miguel@novell.com>
728
729         Work to catch the crash from #76795 and turn it into an
730         exception.   As I stubbed out pieces of the VisualBasic support,
731         I found a number of places where the code was failing and I added
732         checks to those places. 
733         
734         * metadata.c (do_mono_metadata_parse_generic_class): Make this
735         function return a status code.  If we fail to parse the signature
736         from mono_metadata_parse_generic_inst, return FALSE.
737
738         * loader.c (mono_get_method_from_token): If we fail to load the
739         method (mono_class_get) return NULL.   
740
741         * (method_from_memberref): Return NULL if we are unable to parse
742         the method signature
743
744         (mono_loader_error_prepare_exception): Since we now use the
745         loader_error flag internally to stop processing, and obtaining
746         exceptions that might be thrown will walk this code path the
747         proper way of going from a MonoLoaderError into a
748         MonoException was convoluted.   This new routine encapsulates the
749         process of turning the error into an exception and *clearing* the
750         error afterwards.
751         
752 2006-04-27  Miguel de Icaza  <miguel@novell.com>
753
754         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
755         with missing assemblies), and to cope with:
756
757                 * Missing fieldref from a non-existing assembly.
758                 * Missing methodref from a non-existing assembly.
759
760         The first batch of work to address *some* of the issues from 76661.
761         
762         * object.c (mono_class_create_runtime_vtable): If we fail to
763         initialize the class raise the exception here. 
764
765         * metadata.c (mono_class_get_overrides_full): If any methods fail
766         to load return the failure to the caller.
767
768         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
769         flagging assemblies that failed to load.   
770
771         Do not crash if we are unable to load the assembly.
772
773         (mono_assembly_close): Do nothing with REFERENCE_MISSING
774         assemblies. 
775
776         * loader.c (mono_loader_set_error_type_load): Change the
777         convention to always pass unallocated strings, so we make our own
778         copies (I know our own code had duplicated strings before, but
779         this keeps the normal conventions).
780         (method_from_memberref): Call mono_loader_set_error_method_load
781         for all possible failures of loading the class. 
782         Remove assert, turn into a loader error.
783
784         (mono_loader_error_to_exception): Move this routine from mini
785         (mini_loader_error_to_exception) there was no need to have that in
786         mini. 
787
788         * class.c (mono_class_from_typeref): If we were not able to load
789         the assembly with mono_assembly_load_reference, call the
790         mono_loader_set_error_type_load to register the problem.
791
792         (mono_class_setup_fields): If we fail to load the type from
793         mono_metadata_parse_type_full, call mono_class_set_failure and
794         break from the loop.
795
796         If class->exception_type is set, we do not layout the fields as
797         that might crash the runtime, and instead return (from breaking
798         from the previous loop).
799
800         (mono_class_setup_vtable): This now returns a boolean indicating
801         whether the table was properly setup.   The decision is driven by
802         mono_class_get_overrides_full which might run into non-existing
803         methods. 
804         
805         (mono_class_init): Returns TRUE on success or FALSE if there was a
806         problem in loading the type (incorrect assemblies, missing
807         assemblies, methods, etc).
808
809         When we call mono_class_setup_fields we also check for a potential
810         error inside this call (either a class exception or a general
811         loader exception).
812
813         (mono_class_create_from_typedef): If the parent fails to load
814         (calling mono_class_get_full) return NULL.
815         
816         ** Important **
817
818         calls to mono_metadata_parse_type_full should be checked
819         everywhere and set the mono_class_set_failure
820         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
821
822         The current patch checks the places where my manually constructed
823         tests show the errors are showing up, but we should do it
824         everywhere. 
825
826         ** Important2 **
827
828         mono_class_init return values should be tested everywhere, like
829         the previous case this is something that we should audit
830         everywhere and not only on the cases exposed by the tests I
831         created. 
832
833 2006-04-26  Miguel de Icaza  <miguel@novell.com>
834
835         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
836         boolean parameter and instead pass the information on `options'
837         parameter (FileOptions).
838
839         * icall.c: Register the new signature for MonoIO.Open.
840
841         * debug-helpers.c (dis_one): Trying to understand how coverity
842         works.  Fix Run 5, item 78.
843
844 2006-04-26  Dick Porter  <dick@ximian.com>
845
846         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
847         dereference.
848
849 2006-04-25  Martin Baulig  <martin@ximian.com>
850
851         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
852
853         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
854         debugger_thread_created().
855         (debugger_gc_push_all_stacks): Don't handle the main thread in any
856         special way.
857         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
858         (mono_debugger_finalize_threads): New function; undo the effects
859         of mono_debugger_init_threads().
860         (mono_debugger_create_all_threads): Removed.
861
862 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
863
864         * image.c (mono_image_close): Tidy up trace messages.
865
866         * assembly.c (mono_assembly_close): Ditto.
867
868         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
869         no longer references an already freed assembly. Fixes #78168.
870
871 2006-04-21  Dick Porter  <dick@ximian.com>
872
873         * threads.c (mono_thread_detach): Fix reference counting when
874         detaching threads.
875
876 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
877
878         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
879         #78155.
880
881 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
882
883         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
884         (mono_type_to_stind): Ditto.
885
886         * marshal.c: Use the new helper functions to simplify code.
887
888         * image.c (mono_image_close): Add some code for help debug assembly unloading
889         problems.
890
891         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
892         image mempool.
893
894         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
895         assembly was already loaded in another appdomain. Fixes #78083.
896
897 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
898
899         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
900         referenced assemblies.
901         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
902
903         * domain.c (mono_domain_free): Add a trace message.
904
905         * appdomain.c (add_assemblies_to_domain): Ditto.        
906
907         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
908         field.  
909
910 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
911
912         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
913
914 2006-04-12  Martin Baulig  <martin@ximian.com>
915
916         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
917         `USE_INCLUDED_LIBGC'.   
918
919 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
920
921         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
922         the patch contains ../ and a small directory name later. Hopefully fixes
923         #78035.
924
925 2006-04-10  Martin Baulig  <martin@ximian.com>
926
927         Clean up the debugger's thread-handling code.
928
929         The debugger's thread-handling code has been moved from
930         ../mini/debug-debugger.c to threads.c.  We now iterate directly
931         over the `threads' hash, keep track of exiting threads and also
932         use proper locking.
933
934         We can now debug XSP and XSP based applications with the debugger.
935
936         * object-internals.h (MonoThread): Added `gpointer end_stack'.
937
938         * threads.h
939         (MonoThreadCallbacks): Removed; this was only used by the debugger.
940         (mono_install_thread_callbacks): Likewise.      
941
942         * threads.c (mono_thread_callbacks): Removed.
943         (debugger_thread_created, debugger_thread_exited): New static functions.
944         (start_wrapper): Call debugger_thread_created().
945         (thread_cleanup): Call debugger_thread_exited().
946         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
947         (mono_debugger_init_threads): New public function.
948         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
949         iterate directly over the `threads' hash and also use proper locking.
950
951         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
952
953         * mono-debug-debugger.h
954         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
955
956 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
957
958         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
959         argument type=array. Fixes #78057.
960
961 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
962
963         * culture-info-table.h : regenerated. Fixed bug #69652.
964
965 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
966
967         * loader.c metadata.c: Reapply a variant r59116.
968         
969         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
970
971         * class.c (mono_class_setup_interface_offsets): New internal function.
972
973         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
974         interfaces too. Fixes #77398.
975
976         * reflection.c (encode_cattr_value): Add support for 
977         parameter type=object, argument type=array.
978         (load_cattr_value): Ditto. Fixes #77916.
979
980         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
981         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
982
983         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
984         a byval char array and CharSet is Ansi.
985
986         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
987
988 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
989
990         * metadata.c: Add some locking comments.
991         
992         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
993         mempool.
994         (mono_metadata_free_method_signature): Don't free the signature itself.
995
996         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
997
998         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
999         reference the same MonoImage.
1000         (mono_assembly_load_from_full): Add an assert.
1001
1002 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
1003
1004         * image.c (mono_image_close): Don't put the image we are about to free into the
1005         loaded_images_guid_hash.
1006
1007         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
1008         to reduce code duplication.
1009
1010         * marshal.c: Register the native functions called by this module as icalls, to
1011         somewhat centralize the creation of MonoMethodSignature's.
1012
1013         * loader.c (mono_method_signature): Add a cache for method signatures.
1014
1015         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
1016         the parameter attributes of a method.
1017         (mono_metadata_parse_method_signature_full): Refactored the computation of
1018         parameter attributes into a separate function. Also avoid one allocation in
1019         most cases.
1020
1021         * assembly.c (mono_assembly_close): Ditto.
1022
1023         * image.c (mono_image_close): Log trace messages with INFO level.
1024
1025         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
1026
1027         * image.c reflection.c: Correct reference counting of image modules.
1028         
1029         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
1030         of this function from the image mempool.
1031         
1032         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
1033         to allow more cached types to be used.
1034
1035         * mono-debug.c (mono_debug_add_method): Appled patch from
1036         David S. Miller  <davem@sunset.davemloft.net>: Access 
1037         minfo->lexical_blocks[] entry elements using read32().
1038
1039 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
1040
1041         * loader.c (mono_free_method): No longer free the method header for non-dynamic
1042         methods as it is allocated from the mempool.
1043
1044         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
1045         image mempool.
1046
1047         * metadata-internals.h: Add comments describing the reference counting scheme
1048         used for MonoImage and MonoAssembly.
1049
1050         * image.c assembly.c reflection.c: Rework reference counting of images and 
1051         assemblies so they are freed when the runtime is shut down. Free some 
1052         additional memory structures when an image is unloaded.
1053         
1054 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
1055
1056         * class.c loader.c reflection.c: Allocate more data structures in
1057         the image mempool.
1058
1059 2006-03-31  Miguel de Icaza  <miguel@novell.com>
1060
1061         * icall.c
1062         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
1063         build on pre glib 2.4 systems.
1064
1065 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
1066
1067         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
1068
1069         * icall.c: Fix some warnings.
1070
1071 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
1072
1073         * culture-info-table.h : regenerated.
1074
1075 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
1076
1077         * threads.c, object-internals.h, verify.c: changed the culture caching
1078         code to use a normal MonoArray for storage so the GC can keep track of
1079         them easily. Fixed bits of the cache logic, too and simplified the
1080         code.
1081
1082 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
1083
1084         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
1085         thread for non-Boehm GCs.
1086
1087 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1088
1089         * domain.c, object.c, domain-internals.h: reduce the amount of memory
1090         needed to keep track of the data for static fields.
1091
1092 2006-03-29  Raja R Harinath  <rharinath@novell.com>
1093
1094         Fix #75172
1095         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
1096         for interface classes.  Use 'num_methods' instead.
1097         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
1098         before using '->vtable_size' field.
1099
1100 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1101
1102         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
1103         doesn't contain managed pointers, so use a normal hashtable.
1104
1105 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1106
1107         * reflection.c, class-internals.h, domain.c: fixed handling of types
1108         used as values for objects in custom attributes (bug #77915):
1109
1110 2006-03-24  Martin Baulig  <martin@ximian.com>
1111
1112         * class.c (mono_class_setup_fields): Added support for generic
1113         instances; fixes #77580.
1114
1115 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1116
1117         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
1118
1119 2006-03-24  Dick Porter  <dick@ximian.com>
1120
1121         * file-io.c (get_file_attributes): More stat macro breakage.
1122         Fixes bug 77759.
1123
1124 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
1125
1126         * profiler.c: added the file=filename option in the default profiler
1127         to output the profile data to filename.
1128
1129 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1130
1131         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
1132         bug #77877.
1133
1134 2006-03-22  Martin Baulig  <martin@ximian.com>
1135
1136         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
1137         allocated `MonoClassField *' in `fb->handle'.
1138
1139 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1140
1141         * class.c, image.c, metadata-internals.h: implemented new mechanism to
1142         allocate interface ID to save memory and allow better ID reuse on
1143         appdomain unload. setup_generic_vtable () removal from Martin.
1144
1145 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1146
1147         * object.h, appdomain.c, domain.c, exception.c, icall.c,
1148         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
1149         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
1150         write barriers for reference stores with managed objects accessed with
1151         C structures in the runtime and in embedding programs.
1152
1153 2006-03-20  Raja R Harinath  <rharinath@novell.com>
1154
1155         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
1156         'interface_id' and 'max_interface_id' fields of MonoClasses
1157         representing open generic types.
1158
1159 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
1160
1161         * object.h, object.c, icall.c: added functions to deal with
1162         storing valuetypes that contain references in managed objects.
1163         * reflection.c, string-icalls.c, threads.c, marshal.c: small
1164         fixes and comments around uses of mono_array_addr ().
1165
1166 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
1167
1168         * object.h, icall.c, monitor.c: object.GetHashCode ()
1169         implementation that supports the moving garbage collector.
1170
1171 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
1172
1173         * icall.c, threads-types.h, threads.c: implemented finalizer for
1174         LocalDataStoreSlot.
1175
1176 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1177
1178         * metadata.c (mono_type_size): Add a fixme.
1179         (mono_type_stack_size): Ditto.
1180
1181         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
1182         'type_forwarders' field.
1183
1184         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
1185         attribute from net 2.0.
1186
1187         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
1188         from class.c.
1189
1190         * class.c (mono_class_setup_fields): Fix a warning.
1191         
1192         * class.c (mono_class_from_name): Add support for assemblyref entries
1193         in the EXPORTEDTYPE table.
1194
1195         * reflection.c: Add support for handling type forwarders under net 2.0.
1196
1197         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
1198         
1199 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
1200
1201         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
1202         overwriting entries in ModuleBuild->types, also clean up the code
1203         a little. Fixes #77774.
1204
1205 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
1206
1207         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
1208         load friend assembly info when present.
1209
1210 2006-03-14  Raja R Harinath  <rharinath@novell.com>
1211
1212         Fix crasher on gtest-158.cs.
1213         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
1214         the return value if the MonoClass we want is yet in an
1215         inconsistent state.
1216         * class.c (mono_class_create_from_typedef): Add an comment
1217         explaining an order dependency between mono_class_setup_parent and
1218         mono_class_setup_mono_type.
1219
1220 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
1221
1222         * class.c: documentation updates and events bug fix.
1223
1224 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1225
1226         * class.c: some cleanup, locking fixes.
1227
1228 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
1229
1230         * class.c: fix the generics code to setup nested
1231         type info to the instantiated type (bug #77770).
1232
1233 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1234
1235         * marshal.c: fixed a few type correctness issues.
1236
1237 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1238
1239         * loader.c: the Set/Get/Addrtess array methods should be public.
1240
1241 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
1242
1243         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
1244         
1245         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
1246         info->wrapper.
1247
1248 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
1249
1250         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
1251
1252         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
1253
1254         * mempool.c (mono_mempool_alloc): Speed this up a bit.
1255         (mono_mempool_alloc0): Ditto.
1256
1257 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1258
1259         * socket-io.c:
1260         (create_object_from_sockaddr): it was allocating 4 extra bytes
1261         for the AF_UNIX data. Fixes bug #77747.
1262
1263 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
1264
1265         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
1266
1267 2006-03-09  Dick Porter  <dick@ximian.com>
1268
1269         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
1270         Fixes bug 76966 again.
1271
1272 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
1273
1274         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
1275         names from r57532
1276         * appdomain.c: Bumped corlib version to 48 (due to r57532)
1277
1278 2006-03-07  Martin Baulig  <martin@ximian.com>
1279
1280         * object.c
1281         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
1282
1283 2006-03-07  Martin Baulig  <martin@ximian.com>
1284
1285         * class.c
1286         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
1287         regression introduced in r56970; see gtest-252.cs.
1288
1289         * loader.c (mono_get_method_constrained): Correctly handle generic
1290         methods; see gtest-253.cs.
1291
1292 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
1293
1294         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
1295
1296 2006-03-04  Martin Baulig  <martin@ximian.com>
1297
1298         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
1299         compute the parent type at runtime, just like we're already doing
1300         it for interfaces.
1301
1302         * reflection.c
1303         (mono_reflection_bind_generic_parameters): Don't compute the
1304         parent type anymore.
1305
1306         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
1307
1308 2006-03-04  Martin Baulig  <martin@ximian.com>
1309
1310         * mono-debug-debugger.h
1311         (mono_debugger_create_notification_function): Allocate memory at
1312         runtime and return a pointer to it.
1313
1314 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1315
1316         * assembly.c: Fix windows build.
1317         
1318         * assembly.c: Fix build.
1319
1320         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1321
1322         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1323         
1324 2006-03-03  Dick Porter  <dick@ximian.com>
1325
1326         * process.c
1327         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1328         Check parameters before dereferencing them.  Fixes Aaron's part of
1329         bug 77393.
1330
1331 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1332
1333         Fix performance regression.
1334         * loader.c (find_method_in_class): Add 'from_class' argument.
1335         Rename 'klass' argument to 'in_class'.  The signature is compared
1336         against the method in 'in_class', and the corresponding method is
1337         returned from 'from_class'.
1338         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1339         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1340         type definition and generic instantiation in parallel.
1341         (mono_get_method_constrained): Update to changes.
1342
1343 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1344
1345         * threads.c: make sure the domain is correct, too when doing
1346         mono_thread_attach ().
1347
1348 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1349
1350         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1351         windows. Fixes #77683.
1352
1353 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1354
1355         * object.h, *: introduced specific way to set elements of an array
1356         of references to be used as write barrier. Still need to audit the
1357         uses of mono_array_addr.
1358
1359 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1360
1361         * object-internals.h: New field to cache the assmebly name, patch
1362         from Tambet Ingo (tambet@ximian.com)
1363
1364 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1365
1366         * decimal.h, class-internals.h, metadata-internals.h,
1367         file-io.h: mark a few function declarations as internal, to
1368         reduce the number of PLT entries.
1369
1370 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1371
1372         * file-io.c: fix typo in warning message.
1373
1374 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1375
1376         * loader.c: on unix, lookup the "*A" version of a function
1377         if charset is auto as a second option before failing.
1378
1379 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1380
1381         * class.h (mono_class_inflate_generic_method): Revert to two
1382         argument version.
1383         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1384         (mono_class_inflate_generic_method_full): Add.
1385         * class.c (mono_class_inflate_generic_method_full): Rename from
1386         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1387         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1388         * loader.c, reflection.c: Update to changes.
1389
1390 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1391
1392         * icall.c: const fixes and small improvements.
1393
1394 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1395
1396         * threadpool.c: for asynchronous connect(), enable the same workaround
1397         for BSD 6 as for the Mac. Fixes bug #77637.
1398
1399 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1400
1401         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1402         formatted classes. Fixes #77524.
1403
1404 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1405
1406         * class.c (inflate_generic_type): Add a couple more
1407         micro-optimizations.
1408         (inflate_generic_context): Don't use the 'gmethod' from
1409         'inflate_with'.
1410         (mono_class_inflate_generic_method): If the method has generic
1411         parameters, but the passed-in context doesn't have a 'gmethod',
1412         create one.  Use the possibly simplified generic instantiation
1413         from the declaring class instead of the one passed in.
1414
1415 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1416
1417         Make generic method signature and method header handling lazy.
1418         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1419         (inflate_generic_header): Likewise.
1420         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1421         parameter to avoid inflating types.
1422         (mono_get_inflated_method): Empty out.
1423         * class.h (mono_class_inflate_generic_method): Update to changes.
1424         * loader.c (mono_get_method_from_token): Don't parse signature for
1425         generic methods, nor methods of generic classes.
1426         (mono_method_signature): Rename from 'mono_method_signature'.
1427         Inflate signature on demand.
1428         (mono_method_get_header): Inflate method header on demand.
1429         * reflection.c: Update to changes.
1430
1431 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1432
1433         * metadata.c (mono_metadata_inflate_generic_inst): If the
1434         instantiation is closed, don't bother expanding it in the new
1435         context.
1436         * class.c (inflate_generic_class): If the generic instantiation
1437         doesn't change after inflation, return the argument itself.
1438         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1439         Add bounds checks.
1440         (inflate_generic_context): If neither the generic class nor the
1441         generic method instantiations change, return the original context.
1442         * reflection.c (mono_method_get_object): Do
1443         'mono_get_inflated_method' before accessing the ->klass field.
1444         (inflate_mono_method): Don't create a MonoGenericMethod unless
1445         necessary.
1446         (inflate_method): Don't pass a constructed type as the declaring
1447         type of a methodbuilder.
1448
1449 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1450
1451         * object.c: fix memory overwrite.
1452
1453 2006-02-22  Dick Porter  <dick@ximian.com>
1454
1455         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1456         it doesn't work any more.
1457         (mono_threads_request_thread_dump): Fix unused variable warnings.
1458
1459 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1460
1461         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1462         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1463         the public header file.
1464
1465 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1466
1467         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1468
1469 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1470
1471         * class-internals.h, object.c: reduce the size of MonoVTable
1472         and store the interface_offsets array at negative offsets.
1473
1474 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1475
1476         * metadata.c: tweak table descriptors data structures to reduce
1477         size and runtime relocations.
1478
1479 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1480
1481         * marshal.c: fix some types and opcodes to be type-safe
1482         in marshaling wrappers.
1483
1484 2006-02-21  Ankit Jain  <jankit@novell.com>
1485
1486         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1487
1488 2006-02-21  Raja R Harinath  <rharinath@novell.com>
1489
1490         * metadata.c (get_constraints): Relax debugging checks for monodis.
1491
1492 2006-02-21  Ankit Jain  <jankit@novell.com>
1493
1494         * metadata.c (mono_metadata_load_generic_params): Move the code
1495         checking for ambiguous generic params from here to mono/dis/get.c
1496         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
1497
1498 2006-02-21  Raja R Harinath  <harinath@gmail.com>
1499
1500         Fix assertion triggered when compiling nemerle.
1501         * class.c (mono_get_shared_generic_inst): Rename from
1502         get_shared_inst and make non-static.
1503         * loader.c (mono_get_shared_generic_method): New.  Used to create
1504         the MonoGenericContext-equivalent of a MonoGenericContainer.
1505         (mono_get_method_from_token): Initialize the 'context' field of
1506         the created MonoGenericContainer.
1507         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
1508         * metadata.c (get_constraints): Add sanity check.
1509         * class-internals.h: Add new internal methods.
1510
1511         * reflection.c (verify_safe_for_managed_space): New sanity check.
1512         Currently checks that owner-less generic parameters aren't allowed
1513         in managed space.
1514         (mono_type_get_object): Use it.
1515         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
1516         that are now in mono_type_get_object.
1517         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
1518
1519 2006-02-19  Raja R Harinath  <harinath@gmail.com>
1520
1521         * metadata.c (mono_type_create_from_typespec): Rename from
1522         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
1523         argument and caching of types in the generic container.
1524         (unwrap_arrays, find_generic_param): Remove.
1525         * metadata-internals.h: Update.
1526         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
1527
1528 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
1529
1530         * class.c (mono_class_get_exception_for_failure): Fix a warning.
1531
1532         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
1533         return values. Fixes #77581.
1534
1535         * class.c (mono_fnptr_class_get): Switch name and name_space.
1536
1537         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
1538         classes and add support for [In, Out] attributes.
1539         (mono_marshal_free_asany): Ditto. Fixes #77524.
1540
1541 2006-02-18  Raja R Harinath  <harinath@gmail.com>
1542
1543         * class.c (mono_class_from_generic_parameter): Make more robust to
1544         incomplete MonoGenericContainers from monodis.
1545
1546 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1547
1548         * class-internals.h: added some more exception types.
1549         * class.c, metadata.c: added a few checks to handle missing
1550         types.
1551
1552 2006-02-17  Raja R Harinath  <rharinath@novell.com>
1553
1554         Use owner-less generic-params some more.
1555         * class.c (my_mono_class_from_generic_parameter): Remove.
1556         (mono_class_from_generic_parameter): Handle null image,
1557         param->name and param->owner.
1558         (mono_class_from_mono_type): Update.
1559         (mono_class_create_from_typespec): Remove 'container' parameter.
1560         If that parameter is non-null, the result is always inflated by
1561         'mono_class_get_full' anyway.
1562         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
1563         parameter.
1564         (mono_class_get_full): Update.
1565
1566         * class.c (inflate_generic_type) [GENERICINST]: If the generic
1567         instance is not open, don't bother inflating.
1568         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
1569         parse metadata for inflated classes.
1570         (_mono_class_get): Change GenericContext* parameter to
1571         GenericContainer*.
1572         (mono_class_create_from_typespec): Likewise.  Simplify, and
1573         implement trivially.  All the cases are handled in
1574         mono_class_from_mono_type.  Don't inflate returned class.
1575         (mono_class_get_full): Delegate GENERICINST optimization to
1576         inflate_generic_type.
1577         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
1578
1579 2006-02-16  Dick Porter  <dick@ximian.com>
1580
1581         * socket-io.c (create_object_from_sockaddr): Fix typo.
1582         (create_sockaddr_from_object): Check array lengths before
1583         potentially accessing items off the end.
1584         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
1585         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
1586         (ves_icall_System_Net_Sockets_Socket_Send_internal)
1587         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
1588         length checks to avoid wraparound overflows.
1589         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
1590         contents of the array of sockets
1591         (hostent_to_IPHostEntry2)
1592         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
1593         Check return value of inet_ntop ().
1594         (addrinfo_to_IPHostEntry): Fix typo
1595
1596 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1597
1598         Type metadata parsing doesn't use generic-instantiation information.
1599         * metadata.c (mono_metadata_parse_array_full): Change
1600         MonoGenericContext* parameter to MonoGenericContainer*.
1601         (mono_metadata_parse_type_full): Likewise.
1602         (mono_type_create_from_typespec_full): Likewise.
1603         (mono_metadata_parse_mh_full): Likewise.
1604         (mono_metadata_parse_generic_inst): Likewise.
1605         (do_mono_metadata_parse_generic_class): Likewise.
1606         (do_mono_metadata_parse_type): Likewise.
1607         * metadata-internals.h: Update to changes.
1608         * class.c (mono_class_find_enum_basetype): Likewise.
1609         (mono_class_setup_fields): Likewise.
1610         (mono_class_create_from_typespec): Likewise.
1611         * loader.c (method_from_methodspec): Likewise.
1612         (mono_get_method_from_token): Likewise.
1613         (mono_method_get_header): Likewise.
1614
1615 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1616
1617         * marshal.c: handle additional GENERICINST case (patch from
1618         Thong Nguyen <tum@veridicus.com>).
1619         Fix a few cases where LDIND_I/STIND_I was used for references.
1620
1621 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1622
1623         * reflection.c (mono_reflection_get_token): Remove unused variable.
1624
1625 2006-02-16  Martin Baulig  <martin@ximian.com>
1626
1627         * reflection.c (mono_reflection_get_token): Add support for fields
1628         in instantiated generic types.
1629
1630         * icall.c
1631         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
1632
1633 2006-02-15  Martin Baulig  <martin@ximian.com>
1634
1635         * icall.c
1636         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
1637         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
1638         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
1639         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
1640
1641 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1642
1643         * class.c, metadata.c, metadata.h, object.c, icall.c,
1644         marshal.c: changed mono_type_get_underlying_type () to do
1645         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
1646         Fixed handling of instantiated generic valuetypes (bug #75479).
1647
1648 2006-02-15  Raja R Harinath  <rharinath@novell.com>
1649
1650         * metadata.c (mono_metadata_decode_signed_value): Simplify.
1651         Delegate to mono_metadata_decode_value, and work on the returned value.
1652
1653         * icall.c (ves_icall_MonoType_GetGenericArguments):
1654         Add consistency check here too.
1655         
1656 2006-02-15  Ankit Jain  <jankit@novell.com>
1657
1658         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
1659         char/short etc.
1660
1661 2006-02-15  Ankit Jain  <jankit@novell.com>
1662
1663         * metadata.c (mono_metadata_decode_signed_value): New function to decode
1664         signed values, used only for representing lower bounds of arrays.
1665         (mono_metadata_parse_array_full): Use new
1666         mono_metadata_decode_signed_value to decode lower bounds.
1667
1668 2006-02-14  Martin Baulig  <martin@ximian.com>
1669
1670         * reflection.c
1671         (mono_reflection_get_token): Support "MonoGenericMethod" and
1672         "MonoGenericCMethod" and allow generic instances / methods.
1673
1674 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
1675
1676         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
1677         to obtain the terminal size using an ioctl.
1678
1679         * object.c (mono_nullable_init): Revert this as nullable reference
1680         types are not valid.
1681         (mono_nullable_box): Ditto.
1682
1683 2006-02-09  Dick Porter  <dick@ximian.com>
1684
1685         * threads.c (mono_thread_detach): Drop a reference to the thread
1686         we're detaching.
1687
1688 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
1689
1690         * object.c (mono_nullable_init): Handle nullable reference types.
1691         (mono_nullable_box): Ditto. Fixes #77446.
1692
1693 2006-02-07  Martin Baulig  <martin@ximian.com>
1694
1695         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
1696
1697 2006-02-07  Ankit Jain  <jankit@novell.com>
1698
1699         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
1700         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
1701         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
1702         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
1703         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
1704         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
1705
1706 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
1707
1708         * class.c (mono_class_create_generic): Set type_token as well.
1709
1710         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
1711         compatible with MS.
1712
1713 2006-02-02  Martin Baulig  <martin@ximian.com>
1714
1715         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
1716         has never been used so far.
1717
1718 2006-02-02  Martin Baulig  <martin@ximian.com>
1719
1720         * mono-debug-debugger.h: Changed comment at the top of this file;
1721         the header is not installed, but it's safe to #include it from
1722         within the JIT.
1723
1724         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
1725         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
1726
1727 2006-02-02  Martin Baulig  <martin@ximian.com>
1728
1729         * mono-debug.h
1730         (MonoSymbolTable): Removed the `metadata_info' field.
1731
1732         * mono-debug.c
1733         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
1734
1735         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1736         (mono_debugger_add_builtin_types): Removed.
1737         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
1738         (mono_debugger_create_notification_function): We now operate on a
1739         pre-allocated area; take a `gpointer' and return `void'.
1740
1741         * mono-debug-debugger.c
1742         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
1743         (mono_debugger_add_builtin_types): Removed.
1744
1745 2006-02-02  Martin Baulig  <martin@ximian.com>
1746
1747         * threads.c (mono_debugger_create_all_threads): New public method.
1748
1749 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1750
1751         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
1752         breaks on several platforms.
1753
1754 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
1755
1756         * assembly.c: the VS.NET build doesn't supply default values for
1757         MONO_ASSEMBLIES and MONO_CFG_DIR.
1758
1759 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
1760
1761         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
1762         helper function.
1763
1764         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
1765
1766         * loader.c (method_from_memberref): Fix a warning.
1767
1768         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
1769
1770         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
1771         with explicit layout. Fixes #77433.
1772
1773 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
1774
1775         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
1776         max_interface_id is initialized before using it. Fixes #77398.
1777         (ves_icall_Type_GetInterfaces): Ditto.
1778
1779 2006-01-30  Raja R Harinath  <rharinath@novell.com>
1780
1781         * metadata.c (mono_metadata_parse_method_signature_full): Don't
1782         allocate memory for parameter attributes when parsing memberref
1783         signatures.
1784         * loader.c (mono_loader_set_error_method_load): Don't warn.
1785         (method_from_memberref): Ensure MissingMethodException gets thrown
1786         if method is not found.  Make warning more informative.
1787
1788 2006-01-29  Raja R Harinath  <harinath@gmail.com>
1789
1790         Fix #77397
1791         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
1792         return true if is byref.
1793         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1794         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
1795         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1796
1797 2006-01-27  Raja R Harinath  <rharinath@novell.com>
1798
1799         Fix tests/find-method.2.il
1800         * loader.c (find_method, find_method_in_class): Remove is_inflated
1801         argument.  Revert 2006-01-18 change.
1802         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
1803         is generic, search for method in its generic definition.
1804         * class.c (mono_class_setup_vtable_general): Print generic
1805         arguments of generic types in debugging printf.
1806
1807 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
1808
1809         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
1810
1811         * threads.c (mono_threads_request_thread_dump): New helper function.
1812
1813 2006-01-25  Raja R Harinath  <rharinath@novell.com>
1814
1815         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
1816
1817 2006-01-25  Ankit Jain  <jankit@novell.com>
1818
1819         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
1820         move definition to ..
1821         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
1822         
1823 2006-01-25  Ankit Jain  <jankit@novell.com>
1824             Raja R Harinath  <rharinath@novell.com>
1825
1826         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
1827         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
1828         as necessary.
1829
1830 2006-01-25  Martin Baulig  <martin@ximian.com>
1831
1832         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
1833         `MonoDebuggerThread' into debug-debugger.c.
1834
1835 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
1836
1837         * profiler.c: fix printing of data.
1838
1839 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
1840
1841         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
1842           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
1843
1844 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
1845
1846         * object.c: fix deadlock related to string interning.
1847
1848 2006-01-23  Martin Baulig  <martin@ximian.com>
1849
1850         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1851
1852         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
1853
1854 2006-01-23  Martin Baulig  <martin@ximian.com>
1855
1856         * mono-debug.h: Moved the prototypes of some functions which are
1857         used by the JIT here from mono-debug-debugger.h.
1858
1859 2006-01-21  Martin Baulig  <martin@ximian.com>
1860
1861         * Makefile.am: Don't install mono-debug-debugger.h.
1862
1863 2006-01-21  Martin Baulig  <martin@ximian.com>
1864
1865         * mono-debug-debugger.h: Enforce the private status of this header
1866         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
1867         Moved some stuff from mono-debugger-jit-wrapper.h here.
1868
1869 2006-01-20  Raja R Harinath  <rharinath@novell.com>
1870
1871         * class.c (mono_class_from_typeref): Add a sanity test to help
1872         catch lack of assembly load/search hooks.
1873
1874 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
1875
1876         * marshal.c (emit_struct_conv): Relax the fields with same offset
1877         check even more. Fixes #77230.
1878
1879 2006-01-18  Martin Baulig  <martin@ximian.com>
1880
1881         * loader.c (find_method_in_class): Added `gboolean is_inflated'
1882         argument; if false, we compare the uninstantiated signatures.
1883         (method_from_memberref): Compare the uninstantiated signatures;
1884         fixes #76417.
1885
1886 2006-01-18  Robert Jordan  <robertj@gmx.net>
1887
1888         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
1889         Clear the weak link. Fixes bug #77170.
1890
1891         * gc.c (mono_gchandle_free):
1892         Reflect *-gc.c changes (tiny optimization).
1893
1894 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
1895
1896         * metadata.c (mono_metadata_signature_dup): Applied patch from
1897         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
1898         Fixes #77288.
1899
1900 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
1901
1902         * marshal.c (emit_struct_conv): Allow fields with the same offset when
1903         marshalling from native to managed code. Fixes #77230.
1904
1905 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1906
1907         * threadpool.c: fix problem (Mac only) when more than one asynchronous
1908         connect. Fixes bug #77020.
1909
1910 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
1911
1912         * class.c: fixed id assignement for nested interfaces (bug #77275).
1913         Added also better info for --print-vtable debugging.
1914
1915 2006-01-12  Martin Baulig  <martin@ximian.com>
1916
1917         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
1918         interfaces on-the-fly; fixes #76625.
1919
1920         * class-internals.h
1921         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
1922         don't need that anymore.
1923
1924 2006-01-12  Miguel de Icaza  <miguel@novell.com>
1925
1926         * socket-io.c
1927         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
1928         To avoid initing the nested_classes when not needed I turned the
1929         PeerCredData as a toplevel internal class, as it has to be shared
1930         anyways. 
1931
1932         Fixes the CASA issue.
1933
1934 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
1935
1936         * domain.c: Accessors for MonoJitInfo
1937
1938         * profiler-private.h: Add jitinfo to the end jit hook
1939
1940         * profiler.[ch]: Define new hooks, called after jitting which give
1941         the MonoJitInfo that was compiled
1942
1943 2006-01-10  Martin Baulig  <martin@ximian.com>
1944
1945         * class.c (mono_class_setup_events): Add support for generic
1946         classes; fixes #76440.
1947
1948 2006-01-06  Raja R Harinath  <rharinath@novell.com>
1949
1950         Fix #77160.
1951         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
1952         on passed-in method.
1953
1954 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
1955
1956         * object.c (mono_runtime_invoke_array): Add Nullable support.
1957
1958         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
1959
1960 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
1961
1962         * file-io.c: Don't consider sockets as directory and avoid an endless
1963         loop. Fix bug #76966.
1964
1965 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
1966
1967         * object.c (mono_nullable_init): New helper function.
1968         (mono_nullable_box): Ditto.
1969
1970         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
1971
1972         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
1973
1974         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
1975         
1976 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
1977
1978         * class.c (mono_class_is_assignable_from): Make T assignable to 
1979         Nullable<T>.
1980
1981 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
1982
1983         * appdomain.c: Bump corlib version to 46.
1984         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
1985         serialization purpose) and changed ves_icall_System_Reflection_
1986         Assembly_get_code_base signature to accept a boolean (to escape, or 
1987         not, the assembly code base).
1988
1989 2005-12-23  Dick Porter  <dick@ximian.com>
1990
1991         * icall.c: 
1992         * threads-types.h: 
1993         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
1994         CreateEvent icall now returns "created" boolean parameter.
1995
1996 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
1997
1998         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
1999         #76967.
2000
2001         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
2002         when attr_klass is an interface. Fixes #77045.
2003
2004 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
2005
2006         * marshal.c (emit_struct_conv): Fix previous patch.
2007         
2008         * marshal.c (emit_struct_conv): Add a check for fields with the same
2009         offset.
2010
2011 2005-12-20  Raja R Harinath  <rharinath@novell.com>
2012
2013         Fix regression in Mono.C5.
2014         * class.c (mono_class_create_generic): If 'klass' is an interface
2015         set up the interface offsets.
2016         (mono_class_is_assignable_from): Don't throw away generic arguments.
2017
2018 2005-12-19  Raja R Harinath  <rharinath@novell.com>
2019
2020         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
2021         type parameters.
2022
2023 2005-12-15  Raja R Harinath  <rharinath@novell.com>
2024
2025         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
2026         dead store.
2027         (do_mono_metadata_parse_generic_class): Don't pass the current
2028         generic context when parsing the type being instantiated: it
2029         cannot use it, anyway.
2030
2031         * loader.c (method_from_memberref): Don't inflate a signature if
2032         it doesn't contain any type parameters.
2033
2034 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2035
2036         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
2037
2038 2005-12-14  Martin Baulig  <martin@ximian.com>
2039
2040         * class.c
2041         (mono_type_get_name_recurse): Don't return null for type
2042         parameters and open generic classes.
2043         (mono_class_setup_methods): Don't exclude generic instances.
2044         (mono_get_unique_iid): Use different IDs for different
2045         instantiations of the same generic type.
2046         (mono_class_setup_vtable): Only use setup_generic_vtable() for
2047         open generic instances; create a normal vtable for closed generic
2048         instances.
2049         (mono_class_setup_vtable_general): We're now also called for
2050         closed generic instances.
2051
2052         * reflection.c
2053         (mono_reflection_bind_generic_parameters): Correctly use
2054         mono_metadata_lookup_generic_inst() everywhere.
2055
2056 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
2057
2058         * object.c (mono_class_create_runtime_vtable): Call 
2059         mono_class_setup_vtable ().
2060
2061         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
2062         function.
2063         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
2064         #76959.
2065
2066         * loader.c (mono_loader_set_error_type_load): Print the type load
2067         warnings to the console so they are more visible to the user.
2068         (mono_loader_set_error_method_load): Ditto.
2069
2070         * reflection.c (ensure_runtime_vtable): Revert the last change as it
2071         is still broken.
2072         
2073         * reflection.c (ensure_runtime_vtable): Fix build.
2074
2075         * reflection.c (ensure_runtime_vtable): Disable an optimization which
2076         doesn't work in all cases.
2077
2078 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
2079
2080         * object.c (mono_array_new_full): Treat a single dimensional array
2081         with 0 lower bounds as an szarray. Fixes #76973.
2082
2083         * reflection.c (custom_attr_visible): Really fix this.
2084
2085 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
2086
2087         * reflection.c (custom_attr_visible): Allow nested public attributes
2088         as well.
2089
2090         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
2091         interface check.
2092
2093 2005-12-12  Raja R Harinath  <harinath@gmail.com>
2094
2095         * class.c (set_generic_param_owner): Delete.
2096         (mono_class_create_from_typedef): Don't set ->owner field of
2097         generic parameters to "param containers" of enclosing classes.
2098         * reflection.c (mono_reflection_initialize_generic_parameter):
2099         Likewise.
2100
2101 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
2102
2103         * reflection.c (custom_attr_visible): Fix build.
2104
2105 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
2106
2107         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
2108         private attributes.
2109         
2110         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
2111         handling of null parameter defaults.
2112
2113 2005-12-09  Raja R Harinath  <rharinath@novell.com>
2114
2115         * class.c (mono_class_from_generic_parameter): Don't set
2116         klass->generic_container.
2117         (my_mono_class_from_generic_parameter): Likewise.
2118
2119 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2120
2121         * reflection.c (load_public_key): Fix a warning.
2122         (method_encode_code): Fix unaligned accesses.
2123
2124 2005-12-07  Martin Baulig  <martin@ximian.com>
2125
2126         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
2127
2128         * reflection.c
2129         (write_generic_param_entry): Encode our custom attrs.
2130
2131         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
2132
2133 2005-12-07  Martin Baulig  <martin@ximian.com>
2134
2135         * reflection.c (encode_new_constraint): Removed; we don't use the
2136         `NewConstraintAttribute' anymore.
2137
2138 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2139
2140         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
2141         not fire a TypeResolve event when Assembly.GetType () is called.
2142
2143 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2144
2145         Beginning of support for nullable types in the runtime. Parts of
2146         this patch are from Martin.
2147
2148         * appdomain.c (MONO_CORLIB_VERSION): Bump
2149
2150         * domain.c (mono_init_internal): get the nullable type
2151
2152         * class.c (mono_class_is_nullable): New method
2153         (mono_class_get_nullable_param): New mehod
2154         (mono_class_create_generic): In types T? set cast_class to T
2155
2156         * class-internals.h (MonoDefaults): new nullable default class
2157         (mono_class_get_nullable_param, mono_class_get_nullable_param):
2158         new methods.
2159
2160 2005-12-05  Raja R Harinath  <rharinath@novell.com>
2161
2162         * metadata.c (select_container): New.  Refactor code to select the
2163         appropriate GenericContainer given the type of generic parameter
2164         we are looking for.
2165         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
2166         not a MonoGenericContext.  Use select_container.  Update parameters.
2167         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
2168         and MONO_TYPE_MVAR.
2169         (unwrap_arrays): Remove duplicate tests.
2170         (find_generic_param): Rename from 'has_same_context'.  Now walks a
2171         generic instantiated class to find any arguments that are generic
2172         parameters.
2173         (mono_type_create_from_typespec_full): Use find_generic_param to
2174         avoid evicting some generic instantiations from the typespec
2175         cache.
2176
2177 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
2178
2179         * reflection.c: fixed writing of doubles on ARM FPA.
2180
2181 2005-12-02  Robert Jordan  <robertj@gmx.net>
2182
2183         * icall.c: Fixed EventInfo.ReflectedType (#76829).
2184
2185 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2186
2187         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
2188         least on SUSE 10 they are not the same (on debian, they are just the
2189         same thing).
2190
2191 2005-12-01  Raja R Harinath  <rharinath@novell.com>
2192
2193         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
2194         DeclaringType for VARs and MVARs.
2195         * class.c (set_generic_param_owner): Fix initialization of owner
2196         fields.
2197
2198 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2199
2200         * icall.c: fixed Enum.ToObject() to correctly convert the values.
2201
2202 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2203
2204         * threadpool.c: workaround for a bug that shows up on the Mac:
2205         select()+connect() on a blocking socket is not like it should
2206         be, so we proceed to connect() in that case, wasting the I/O
2207         threadpool thread until connect succeedes. Fixes bug #75436.
2208
2209 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2210
2211         * threadpool.c: fix typo when setting file descriptor states.
2212
2213 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2214
2215         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
2216         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2217         create a temporary signature container.
2218         (mono_metadata_parse_generic_param): Update to changes.
2219         (mono_type_create_from_typespec_full): Update to changes.
2220         * loader.c (method_from_memberref): Don't use a
2221         MonoGenericContainer while parsing a memberref signature.
2222         (method_from_methodspec): Remove dead-store of the 'container'
2223         variable.  It's overwritten before use.
2224
2225         * metadata.c (mono_type_create_from_typespec_full): Make debugging
2226         checks tighter.
2227         (mono_metadata_parse_generic_param): Likewise.
2228         * loader.c (find_method_in_class): Does not need a
2229         MonoGenericContainer.  Use 'mono_method_signature' rather than
2230         'mono_method_signature_full'.
2231         (find_method, mono_get_method_constrained, method_from_memberref):
2232         Update to changes.
2233
2234         * metadata.c (mono_type_create_from_typespec_full): Ensure that
2235         owner-less generic-parameters are never evicted from the typespec
2236         cache.
2237
2238         * loader.c (method_from_memberref): Don't use the current context
2239         when parsing signatures.
2240         (method_from_methodspec, mono_get_method_from_token): Update to changes.
2241
2242         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
2243         side-effects in g_assert.
2244         * loader.c (mono_get_method_from_token): Resolve klass earlier so
2245         that we don't potentially lose information.
2246
2247 2005-11-26  Dick Porter  <dick@ximian.com>
2248
2249         * icall.c:
2250         * threads.c: icalls to implement basic (ie, not named)
2251         System.Threading.Semaphore.
2252
2253 2005-11-24  Dick Porter  <dick@ximian.com>
2254
2255         * process.c
2256         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2257         Use GetProcessId() if it's available.
2258
2259 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
2260
2261         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
2262
2263 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2264             Ankit Jain  <jankit@novell.com>
2265
2266         * loader.c (mono_get_method_from_token): Initialize 'method' field
2267         of all generic parameters before parsing the signature.  Remove
2268         code that "fixed"-up MVAR references.
2269
2270 2005-11-23  Ankit Jain  <jankit@novell.com>
2271
2272         * metadata.c (mono_metadata_has_generic_params):
2273         (mono_metadata_load_generic_param_constraints):
2274         (mono_metadata_load_generic_params): Move duplicate code ...
2275         (mono_metadata_get_generic_param_row): ... here. Returns the
2276         first row-id in GenericParam table for a given owner (token).
2277         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
2278         prototype.
2279
2280 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2281             Ankit Jain  <jankit@novell.com>
2282
2283         * metadata.c (mono_metadata_class_equal): Pass signature_only when
2284         comparing VARs too.
2285         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
2286         type->data.generic_param only if the type is an MVAR.
2287         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
2288         leak owner-less VARs and MVARs into managed space.
2289
2290 2005-11-21  Martin Baulig  <martin@ximian.com>
2291
2292         * class-internals.h
2293         (MonoMethod): Moved the `generic_container' here from
2294         `MonoMethodNormal' since we now also need it for
2295         `MonoMethodPInvoke';
2296         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
2297         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
2298         an union containing both `MonoMethodNormal' and
2299         `MonoMethodPInvoke'.
2300
2301         * loader.c
2302         (mono_get_method_from_token): Allow implementing generic methods
2303         as interncalls.
2304
2305         * threads.c
2306         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
2307         icall.
2308
2309 2005-11-17  Dick Porter  <dick@ximian.com>
2310
2311         * icall.c: 
2312         * process.h: 
2313         * process.c: Split the Process Start_internal icall into
2314         ShellExecuteEx_internal and CreateProcess_internal, which are
2315         called depending on whether UseShellExecute is true.  Fixes bug
2316         76670.
2317
2318         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2319
2320 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2321
2322         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2323         'msize' parameters, use the information in 'mspec' instead.
2324         (emit_object_to_ptr_conv): Ditto.
2325
2326         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2327         fields out of order. Fixes #76733.
2328
2329 2005-11-17  Ankit Jain  <jankit@novell.com>
2330
2331         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2332
2333 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2334
2335         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2336           bug #76575.
2337
2338 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2339
2340         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2341         for types with non-auto layout. Fixes #76717.
2342
2343 2005-11-16  Ankit Jain  <jankit@novell.com>
2344
2345         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2346         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2347         if generic_context is null.
2348           (mono_metadata_generic_param_equal): param->owner can be null.
2349           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2350         null.
2351
2352 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2353
2354         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2355         the correct value.
2356
2357 2005-11-15  Martin Baulig  <martin@ximian.com>
2358
2359         * object.c (set_value): Use mono_class_from_mono_type() instead of
2360         the hack for generic instances; fixes #76136.
2361
2362 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2363
2364         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2365         fields.
2366
2367         * image.c (load_metadata_ptrs): Initialize the new fields.
2368
2369         * reflection.c (create_dynamic_mono_image): Ditto.
2370
2371         * reflection.c (build_compressed_metadata): Use the new fields.
2372
2373         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2374         icall.
2375
2376         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2377         icall.
2378         
2379 2005-11-15  Ankit Jain  <jankit@novell.com>
2380             Raja R Harinath  <harinath@gmail.com>
2381
2382         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2383         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2384         new per-generic_container cache if the cached MonoType's context matches
2385         the current context.
2386           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2387         to the expected context.
2388           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2389
2390 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2391
2392         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2393         we changed the signature of an icall.
2394         * icall.c: Modify to mono_double_ParseImpl return true/false 
2395         depending on the success, instead of throwing the exception. This will
2396         help us in Double.TryParse methods.
2397         
2398 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2399
2400         * marshal.c (emit_marshal_object): Throw an exception when
2401         marshalling 'object' instead of crashing. Fixes #76696.
2402
2403 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2404
2405         * class-internals.h: Add prototype for mono_type_get_full_name ().
2406
2407 2005-11-11  Dick Porter  <dick@ximian.com>
2408
2409         * threads.c (mono_thread_manage): Make sure the main thread has
2410         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2411
2412 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2413
2414         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2415         console about the missing type.
2416         (mono_loader_set_error_method_load): Ditto.
2417
2418 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2419
2420         * mono-config.c (mono_get_config_dir): Set the system defaults if
2421         none is specified.
2422
2423         * assembly.c (mono_set_dirs): New API entry point to set the
2424         assembly and the config directory in one call
2425
2426 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2427
2428         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2429         the ftnptr was created from a delegate in a domain other than the
2430         current domain. Fixes #75377.
2431
2432         * exception.h exception.c: Add mono_get_exception_not_supported ().
2433
2434 2005-11-08  Martin Baulig  <martin@ximian.com>
2435
2436         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2437
2438 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2439
2440         * security-manager.h: Added definitions to deal with strongname key 
2441         pairs bigger (and smaller) than 1024 bits.
2442         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2443         adjust wrt the public key length being used.
2444
2445 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2446
2447         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2448           Windows build (r51396-51397).
2449
2450 2005-11-03  Martin Baulig  <martin@ximian.com>
2451
2452         * class.c (mono_class_setup_vtable_general): Also add generic
2453         methods to the vtable; fixes #76581.
2454
2455 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2456
2457         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2458         sure that we lookup GetString method from the System.Text.Encoding
2459         class, not the derived class or we get an empty method.
2460
2461         Fixed class #76612.
2462
2463 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2464
2465         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2466         if it has been previously set (embedders). 
2467
2468         Make mono_set_rootdir available also on Unix.
2469
2470 005-10-24  Robert Jordan  <robertj@gmx.net>
2471
2472         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2473
2474 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2475
2476         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2477         only calls which are made to native code use this flag.
2478
2479         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2480
2481 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2482
2483         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2484         Add support for FieldBuilders.
2485
2486 2005-10-29  Martin Baulig  <martin@ximian.com>
2487
2488         * mono-debug.c
2489         (mono_debug_using_mono_debugger): New public method; returns
2490         whether we're running inside the debugger.
2491
2492 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
2493
2494         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
2495         for Method/Constructor/FieldBuilders.
2496
2497 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2498
2499         * reflection.c (module_add_cattrs): Save custom attributes for global methods
2500         and fields as well.
2501
2502 2005-10-26  Martin Baulig  <martin@ximian.com>
2503
2504         * mono-debug-debugger.c
2505         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
2506
2507 2005-10-24  Raja R Harinath  <harinath@gmail.com>
2508
2509         * icall.c (base64_to_byte_array): Don't pass an out-of-range
2510         integer to isspace.
2511
2512 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2513
2514         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
2515         when passing valuetypes byref. Fixes #76502.
2516
2517 2005-10-19  Jackson Harper  <jackson@ximian.com>
2518
2519         * profiler.c: Don't put a . in front of types that are not in a
2520         namespace.
2521
2522 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
2523
2524         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
2525
2526 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
2527
2528         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
2529         #76436.
2530         (mono_marshal_get_ldflda_wrapper): Fix a warning.
2531
2532 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2533
2534         * assembly.c metadata-internals.h icall.c: Define an additional
2535         parameter for mono_assembly_name_parse_full, so we can avoid creating
2536         S.R.AssemblyName.Version when no version info wasn't passed.
2537         
2538 2005-10-09  Miguel de Icaza  <miguel@novell.com>
2539
2540         * class.c (mono_type_get_full_name): Reimplement method that was
2541         removed. 
2542
2543         * image.c: Some docs
2544
2545 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
2546
2547         * profiler.c (output_newobj_profile): Fix printing of Total memory
2548         on x86.
2549
2550 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2551
2552         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
2553
2554 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
2555
2556         * threads.c: remove debug output.
2557
2558 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2559
2560         * threads.c (mono_thread_manage): Fix crashes if more than 64
2561         threads need to be aborted. Hopefully fixes #75899.
2562
2563         * assembly.c (mono_stringify_assembly_name): New helper function.
2564
2565         * class.c: Use mono_stringify_assembly_name instead of the similar
2566         static function.
2567
2568         * assembly.h assembly.c: Add support for calling a postload search 
2569         hook if an assembly cannot be loaded.
2570
2571         * appdomain.c: Register new search hooks which call the AssemblyResolve
2572         events in AppDomain. Fixes #75231
2573
2574 2005-10-07  Martin Baulig  <martin@ximian.com>
2575
2576         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
2577         methods without debug info.
2578
2579 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
2580
2581         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
2582         wrappers.
2583
2584 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2585
2586         * file-io.c: now that we return symlinks, use lstat and, when the file
2587         is a symbolic link, stat, to get the file attributes. Also avoid the
2588         conversion to/from utf16/external.
2589
2590 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
2591
2592         * class.c (mono_class_layout_fields): Compute klass->has_references
2593         correctly if an embedded valuetype is not yet initialized. Fixes
2594         #76331.
2595
2596 2005-10-04  Martin Baulig  <martin@ximian.com>
2597
2598         * metadata.c
2599         (mono_metadata_load_generic_param_constraints): New public
2600         function; splitted the constraints loading out from
2601         mono_metadata_load_generic_params().
2602
2603         * class.c (mono_class_create_from_typedef): Call
2604         mono_metadata_load_generic_param_constraints() after setting up
2605         the type and creating our parent; fixes #75329.
2606
2607 2005-10-04  Martin Baulig  <martin@ximian.com>
2608
2609         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
2610         non-dynamic parent classes.
2611
2612 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2613
2614         * file-io.c : win32 build fix (ETXTBSY seems not found).
2615
2616 2005-10-04  Martin Baulig  <martin@ximian.com>
2617
2618         * reflection.c
2619         (mono_image_get_methodspec_token): Make the cache actually work;
2620         fixes #75974.
2621
2622 2005-10-04  Martin Baulig  <martin@ximian.com>
2623
2624         * class.c (mono_class_name_from_token): Removed the unneccessary
2625         `MonoGenericContext *' argument.
2626
2627 2005-10-04  Martin Baulig  <martin@ximian.com>
2628
2629         * loader.c
2630         (method_from_methodspec): Make the caching work again; fixes the
2631         performance regression from #76262.
2632
2633 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2634
2635         * file-io.c:
2636         * file-io.h:
2637         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
2638         GetFileSystemEntries that performs the same work but without going
2639         into io-layer, locking, etc.
2640
2641 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
2642
2643         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
2644         ThreadState_Stopped as well. Fixes #76047.
2645
2646 2005-09-29  Martin Baulig  <martin@ximian.com>
2647
2648         * class.c
2649         (inflate_generic_context): If the new context has a `gmethod', set
2650         its `container' that that gmethod's `container'.
2651
2652         * metadata.c
2653         (mono_metadata_parse_generic_param): Simplify things;
2654         `generic_container = generic_context->container;' is just fine.
2655
2656         * loader.c (method_from_methodspec): Code cleanups.
2657
2658 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
2659
2660         * decimal.c: fix warning (and let gcc generate correct
2661         code on ARM with optimizations).
2662
2663 2005-09-28  Martin Baulig  <martin@ximian.com>
2664
2665         * loader.c
2666         (method_from_memberref): Added `MonoGenericContext *class_context'
2667         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
2668         (method_from_methodspec): If we're a memberref, use the enclosing
2669         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
2670
2671 2005-09-28  Martin Baulig  <martin@ximian.com>
2672
2673         * object.c (mono_runtime_invoke_array): Added support for
2674         MONO_TYPE_GENERICINST; fixes #75917.
2675
2676 2005-09-27  Martin Baulig  <martin@ximian.com>
2677
2678         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
2679         `k->byval_arg.type' to determine the actual type.
2680
2681         * loader.c (method_from_methodspec): Removed some hacks.
2682
2683 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
2684
2685         * class-internals.h (mono_field_is_deleted): Do the test for
2686         rtspecialname before we check the actual name of the field. This
2687         prevents us from dereferencing a pointer into the string table,
2688         saving us from accessing a few pages
2689
2690         * *.c: Replace the use of {Enter,Leave}CriticalSection with
2691         macros. This will allow a deadlock debugger to easily be plugged
2692         in.
2693
2694 2005-09-27  Martin Baulig  <martin@ximian.com>
2695
2696         * loader.c (method_from_methodspec): Create a "signature"
2697         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
2698
2699 2005-09-27  Martin Baulig  <martin@ximian.com>
2700
2701         * class.c
2702         (inflate_generic_class): Correctly set the new context's
2703         container.
2704
2705         * loader.c
2706         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
2707         instead of a `MonoGenericContext *'.
2708         (mono_method_signature_full): Take a `MonoGenericContainer *'
2709         instead of a `MonoGenericContext *'.
2710
2711         * metadata.c
2712         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
2713         instead of a `MonoGenericContext *'.
2714         (mono_metadata_parse_method_signature_full): Likewise.
2715
2716 2005-09-26  Martin Baulig  <martin@ximian.com>
2717
2718         * class.c
2719         (mono_class_from_generic_parameter): Set `klass->generic_container'
2720         (mono_class_from_generic_parameter): Likewise.
2721         (mono_bounded_array_class_get): We inherit the generic container
2722         from the element class.
2723
2724         * loader.c
2725         (find_method, find_method_in_class): Take a `MonoGenericContext *'
2726         argument rather than computing it here.
2727         (method_from_memberref): Correctly set the generic context before
2728         parsing the signature.  Fixes #75681.
2729
2730 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
2731
2732         * object.c (mono_class_has_special_static_fields): Fix warnings.
2733
2734 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2735
2736         * assembly.c: Add parse_public_key function, to
2737         par the public keys. Also added mono_assembly_name_parse_full,
2738         to define it the parsed key should be freed or not.
2739         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
2740         to parse a long format assembly name.
2741         * metadata-internals.h: Keep mono_assembly_name_parse_full as
2742         private, since calling it to preserve the key requires
2743         freeing it manually.
2744         
2745 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2746
2747         * locales.c : removed HAVE_ICU part.
2748
2749 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
2750
2751         * object.c (mono_class_create_runtime_vtable): Avoid calling 
2752         field_is_special_static if the klass has no special static fields.
2753
2754         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
2755         (MonoCachedClassInfo): Likewise.
2756
2757         * object.c (mono_class_has_special_static_fields): New helper function.
2758
2759 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2760
2761         * class.c (mono_class_create_from_typedef): Don't call 
2762         interfaces_from_typedef_full for enums.
2763         (mono_class_create_from_typedef): Compute the base types of enums directly
2764         without calling mono_class_setup_fields ().
2765         (mono_class_find_enum_basetype): New helper function.
2766
2767         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
2768         one place inside the string heap.
2769         
2770 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
2771
2772         * class.c: locking fixes, code cleanups, some docs added.
2773         Allocate some data structures in the image mempool.
2774
2775 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2776
2777         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2778         the example code.
2779         
2780 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
2781
2782         * class-internals.h, class.c, reflection.c: reduce memory taken by
2783         MonoClass.
2784
2785 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
2786
2787         * metadata.c, metadata.h, loader.h: documentation updates, code and
2788         API cleanups.
2789
2790 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2791
2792         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2793         the example code.
2794
2795         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
2796         page faults caused by the runtime while reading metadata.
2797
2798 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2799
2800         * socket-io.c: the field names were changed 3 months ago and no one
2801         realized until bug #76077 got filed!
2802
2803 2005-09-20  Martin Baulig  <martin@ximian.com>
2804
2805         * icall.c (assembly_icalls): Removed some unused debugger icalls.
2806
2807 2005-09-20  Martin Baulig  <martin@ximian.com>
2808
2809         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
2810         write the rank into the class entry.
2811
2812 2005-09-20  Martin Baulig  <martin@ximian.com>
2813
2814         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
2815
2816 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
2817
2818         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2819
2820         * icall.c (custom_attrs_defined_internal): New icall.
2821
2822         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
2823         function.
2824         (mono_custom_attrs_construct_by_type): New helper function.
2825
2826 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
2827
2828         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
2829         terminate the resulting string. Fixes #76123.
2830
2831 2005-09-16  Martin Baulig  <martin@ximian.com>
2832
2833         * mono-debug.c
2834         (mono_debug_add_method): Ignore inflated methods for the moment.
2835
2836 2005-09-14  Martin Baulig  <martin@ximian.com>
2837
2838         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
2839
2840 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
2841
2842         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
2843         return a success/failure indication.
2844         (mono_metadata_interfaces_from_typedef_full): Ditto.
2845         (get_constraints): Ditto.
2846
2847 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
2848
2849         * marshal.c (emit_marshal_array): Fix handling of null arrays.
2850         
2851         * marshal.c (emit_marshal_array): Add support for returning string
2852         arrays from delegates. Fixes #76063.
2853
2854         * marshal.c: Use the emit_ldloc/stloc macros where possible.
2855
2856 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
2857
2858         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
2859         icall.
2860
2861 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
2862
2863         * reflection.c icall.c: Fix after mono_get_exception_type_load
2864         signature change.
2865
2866         * assembly.c (mono_assembly_get_assemblyref): New helper function.
2867         (mono_assembly_load_reference): Use the new helper.
2868
2869         * class-internals.h (MonoLoaderError): New structure containing 
2870         information about type loading errors.
2871
2872         * class-internals.h loader.c: Add APIs to store per-thread loader
2873         error information.
2874
2875         * loader.c class.c: Set the loader error if needed.
2876
2877         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
2878
2879 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
2880
2881         * decimal.c: fixed to handle the broken ARM fp format.
2882
2883 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
2884
2885         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
2886         broken.
2887
2888 2005-09-06  Martin Baulig  <martin@ximian.com>
2889
2890         * domain.c (supported_runtimes): Added v2.0.50727.
2891
2892 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
2893
2894         * culture-info.h: reduce the size of some structures.
2895
2896 2005-09-05  Martin Baulig  <martin@ximian.com>
2897
2898         Reflect latest API changes in the August CTP.
2899
2900         * icall.c
2901         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
2902         ("MonoType.HasGenericArguments"): Removed.
2903         ("MonoMethod.BindGenericParameters"): Renamed to
2904         "MakeGenericMethod".
2905         ("MethodBuilder.BindGenericParameters"): Renamed to
2906         "MakeGenericMethod".    
2907
2908 2005-09-05  Martin Baulig  <martin@ximian.com>
2909
2910         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
2911
2912 2005-09-05  Martin Baulig  <martin@ximian.com>
2913
2914         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2915
2916         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
2917         generic_container is non-NULL.
2918
2919 2005-09-05  Martin Baulig  <martin@ximian.com>
2920
2921         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2922
2923         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
2924
2925 2005-08-29  Michal Moskal  <malekith@nemerle.org>
2926
2927         * reflection.c (encode_locals,
2928         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
2929         for large generic types.
2930
2931 2005-09-05  Martin Baulig  <martin@ximian.com>
2932
2933         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2934
2935         * class.c (mono_dup_array_type): New public method.
2936         (mono_metadata_signature_deep_dup): New public method.
2937         (dup_type): Correctly duplicate array and function types.
2938
2939 2005-09-05  Martin Baulig  <martin@ximian.com>
2940
2941         Applying a patch from Michal Moskal <malekith@nemerle.org>.
2942
2943         * reflection.c (get_default_param_value_blobs): Handle generic types
2944         and generic methods.
2945
2946 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
2947
2948         * class.c: Fixed error reporting (method/class were inversed) for 
2949         inheritance demands.
2950         * security-manager.c|h: Added the AppDomain when calling the managed
2951         System.Security.SecurityManager.InheritanceDemand method.
2952
2953 2005-09-01  Raja R Harinath  <rharinath@novell.com>
2954
2955         * reflection.c (encode_marshal_blob): 'marshaltype' and
2956         'marshaltyperef' are alternate sources for the custom marshaler
2957         name.
2958
2959 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
2960
2961         * class.c: fix creation of array classes with rank == 1
2962         (patch by Ankit Jain <jankit@novell.com>).
2963
2964 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
2965
2966         * object.c: fix check for creating the bound data for arrays vs
2967         szarrays.
2968
2969 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2970
2971         * object.c: configuration file name is now based on the executable name,
2972         not the image name. Fixes bug #75931.
2973
2974 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
2975
2976         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
2977         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
2978
2979 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
2980
2981         * rand.c: Use wincrypt.h instead of WinCrypt.h.
2982
2983 2005-08-24  Ankit Jain  <jankit@novell.com>
2984             Raja R Harinath  <rharinath@novell.com>
2985
2986         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
2987           called by it recursively.
2988           (mono_class_init): Remove special case in pending_init handling, since it's
2989           superseded by the fix to mono_class_from_typeref.
2990
2991 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
2992
2993         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
2994         BROKEN_THREAD_START stuff.
2995
2996 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
2997
2998         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
2999         trampoline.
3000
3001         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
3002         
3003         * object.c (mono_delegate_ctor): Replace the original function address with
3004         a delegate trampoline.
3005
3006 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
3007
3008         * icall.c: add boolean argument to base64_to_byte_array and 
3009         InternalFromBase64String to control whether a whitespace-only string
3010         is allowed (or should casue a FormatException to be thrown). We need
3011         this as the behavior has changed between MS.NET 1.x and 2.0, and we
3012         to match the MS behaviour in both profiles.
3013         * appdomain.c: Bump corlib version.
3014
3015 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3016
3017         This patch implements a big portion of publisher policy
3018         support, used to bind assembly versions and redirect
3019         one assembly from version A to version B.
3020
3021         * assembly.c:
3022         New GSList loaded_assembly_bindings, for storing the cached
3023         assembly bindings.
3024         (assembly_binding_maps_name): New static function for checking if a 
3025         assembly binding information maps an assembly name.
3026         (mono_assembly_binding_info_free): New function for freeing
3027         assembly binding information resources.
3028         (get_publisher_policy_info): New static function for retrieving 
3029         assembly binding information from a MonoImage.
3030         (compare_versions): New static function for comparing an assembly
3031         binding information data and the version of an assembly name.
3032         (check_policy_versions): New static function for checking if an
3033         assembly binding info mapping an assembly name is valid for it.
3034         (mono_assembly_load_publisher_policy): New static function for
3035         loading the 'policy.major.minor.MyAssembly' image for an assembly
3036         with an assembly name 'aname'.
3037         (mono_assembly_bind_version): New static function for updating
3038         assembly redirection.
3039         (mono_assembly_apply_binding): New static function for applying
3040         assembly binding.
3041         (search_binding_loaded): New static function for searching 
3042         loaded assembly binding infos in the cache domain.
3043         (mono_assembly_load_full): Don't apply assembly binding for
3044         reflection only assemblies.
3045
3046         * metadata-internals.h: Add MonoAssemblyBindingInfo,
3047         which contains information about assembly binding. Also
3048         declare signature for mono_config_parse_publisher_policy ()
3049         function, used to retrieve pub policy info.
3050         
3051         * mono-config.c:
3052         (publisher_policy_start): New static function used to parse publisher 
3053         policy config files.
3054         (publisher_policy_parser): New static MonoParseHandler containing 
3055         the functions used when parsing config files.
3056         (mono_config_parse_publisher_policy): New function for parsing
3057         publisher policy files.
3058         
3059 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3060
3061         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
3062
3063         * marshal.c (mono_delegate_free_ftnptr): Ditto.
3064
3065         * object.c (mono_get_addr_from_ftnptr): New helper function.
3066
3067         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
3068
3069         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3070
3071 2005-08-19  Dick Porter  <dick@ximian.com>
3072
3073         * threads.c, threads.h, appdomain.c, appdomain.h,
3074         profiler-private.h, monitor.c, object.c, object-internals.h,
3075         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
3076         store the thread ID, so it can hold a 64 bit value if needed.
3077
3078 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3079
3080         * reflection.c (mono_reflection_create_dynamic_method): Store the
3081         handle class into the method references as well so ldtoken works in
3082         dynamic methods.
3083
3084         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
3085         types.
3086
3087 2005-08-19  Ankit Jain <jankit@novell.com>
3088
3089         Fix #75847.
3090         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
3091           here rather than using the method signature of a arbitrary function
3092           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
3093           two arguments.
3094           Hack done with Harinath.
3095
3096 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3097
3098         * threadpool.c: disable printing stack traces when we get a exception
3099         in a threadpool thread. I need to do more testing to figure out which
3100         cases actually print this. Fixes bug #75828.
3101
3102 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3103
3104         * icall.c: there might be ignored whitespace after the last '='. This
3105         fixes length computation and bug #75840.
3106
3107 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
3108
3109         * assembly.c (mono_assembly_load_full): Consider .exe extension as
3110         well. Fixes #75809.
3111
3112         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
3113         #75784.
3114         
3115         * reflection.c (create_custom_attr_data): Ditto.
3116
3117 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
3118
3119         * locales.c, culture-info.h : removed RegionLCIDMap.
3120         * culture-info-tables.h : regenerated.
3121
3122 2005-08-16  Martin Baulig  <martin@ximian.com>
3123
3124         * class.c (mono_type_get_name_recurse): Small fix.
3125
3126 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3127
3128         * locales.c : indentation fixie.
3129
3130 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
3131
3132         * object-internals.h,
3133           locales.h,
3134           locales.c,
3135           culture-info.h,
3136           icall.c : added RegionInfo table support.
3137         * culture-info-table.h : regenerated for region support.
3138
3139 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
3140
3141         * reflection.c (resolve_object): handle all kinds of MonoMethod
3142         including generic ones
3143
3144 2005-08-12  Ankit Jain <jankit@novell.com>
3145
3146         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
3147           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
3148
3149 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
3150
3151         * process.c: Don't close a thread handle when it's NULL. This is a
3152         workaround for bug #75733.
3153
3154 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3155
3156         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
3157
3158 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
3159
3160         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
3161
3162 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3163
3164         * threadpool.c: if a work item in the thread pool has a callback that
3165         catches a exception, don't propagate it after invoking the callback.
3166         Fixes bug #75336.
3167
3168 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3169
3170         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
3171
3172         * class-internals.h (MonoCachedClassInfo): Add some new fields.
3173
3174         * class.c (mono_class_init): Load field info lazily in the AOT case.    
3175
3176         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
3177
3178 2005-08-03  Ankit Jain  <jankit@novell.com>
3179
3180         Fix #75683.
3181         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
3182           PInvoke calling convention is 0.
3183
3184 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
3185
3186         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
3187         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
3188
3189 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
3190
3191         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
3192         to handle threads not started by the GC (patch by Michael Meeks
3193         <michael.meeks@novell.com>).
3194
3195 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
3196
3197         * reflection.c: Make buffer used in emitting types larger for some
3198         big generic types (patch by Michal Moskal).
3199
3200 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3201
3202         * mono-debug.c: Fix some (not all) alignment problems.
3203
3204 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3205
3206         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
3207         Invoke mono_image_load_from_data_full passing the refonly
3208         parameter.
3209
3210         * assembly.c
3211         (mono_assembly_open_from_bundle): Add the refonly argument, 
3212         in order to pass it to other methods it calls to.
3213         (do_mono_assembly_open): Add the refonly argument, in order 
3214         to pass it to other methods it calls to.
3215         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
3216         the refonly parameter to it.
3217
3218         * image.c: Add loaded_images_refonly_hash and
3219         loaded_images_refonly_guid_hash to cache the reflection
3220         only loaded images.
3221         (mono_images_init): Initialize the hash tables used for
3222         caching the reflection only images.
3223         (load_modules): Invoke mono_image_open_full passing the refonly
3224         parameter to load the modules the correct way.
3225         (build_guid_table): Add the refonly argument, to re-build the 
3226         correct hash table.
3227         (do_mono_image_open): Added the refonly argument, in order to
3228         define it for the loaded image.
3229         (mono_image_loaded_full): New function, which receives an
3230         additional parameter to look for the image in the refonly or
3231         non-refonly section.
3232         (mono_image_loaded): Updated, using mono_image_loaded_full.
3233         (mono_image_loaded_by_guid_full): The same case that happens
3234         with mono_image_loaded_full.
3235         (mono_image_loaded_by_guid): Likewise.
3236         (register_image): Use the ref_only variable inside MonoImage
3237         to decide in which hash table store the current image.
3238         (mono_image_open_from_data_full): Rename
3239         mono_image_open_from_data to mono_image_open_from_data_full,
3240         adding the refonly argument, to define the ref_only variable 
3241         inside MonoImage.
3242         (mono_image_open_from_data): Return 
3243         mono_image_open_from_data_full.
3244         (mono_image_open_full): Rename mono_image_open to
3245         mono_image_open_full, receiving the new refonly argument,
3246         to pass it to inner methods.
3247         (mono_pe_file_open): Update this function, to open
3248         a MonoImage as a non-refonly image.
3249         (mono_image_close): Use the refonly variable inside
3250         MonoImage to remove the image from the correct caches.
3251
3252         * image.h: Add the signatures of mono_image_open_full,
3253         mono_image_open_from_data_full, mono_image_loaded_full,
3254         mono_image_loaded_by_guid_full.
3255
3256         * metadata-internals.h: Add the ref_only field to 
3257         MonoImage.
3258         
3259 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3260
3261         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
3262         Fix the last behavior, which used to load the assemblies and
3263         extract MonoReflectionAssemblyName information, instead of
3264         extract it from the metadata tables. Needed for Reflection
3265         Only assemblies.
3266         
3267 2005-07-29  Martin Baulig  <martin@ximian.com>
3268
3269         * mono-debug-debugger.c
3270         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
3271         not initialized.
3272
3273         * mono-debug.c
3274         (mono_debug_address_from_il_offset): Check whether we have
3275         debugging support before attempting to take the lock.
3276         (mono_debug_source_location_from_address): Likewise.
3277         (mono_debug_source_location_from_il_offset): Likewise.
3278         (mono_debug_il_offset_from_address): Likewise.
3279         (mono_debug_address_from_il_offset): Likewise.
3280
3281 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
3282
3283         * class.c (mono_class_from_name_case): Add support for dynamic images.
3284         Fixes #75650.
3285
3286         * object.c (mono_class_compute_gc_descriptor): Add a workaround
3287         for #75479.
3288
3289 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3290         
3291         * reflection.c (mono_method_get_object): Fix warning.
3292
3293 2005-07-28  Martin Baulig  <martin@ximian.com>
3294
3295         * mono-debug.c
3296         (mono_debug_add_wrapper): Also write the wrapper type.
3297
3298 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3299
3300         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
3301         
3302         * class.c (mono_class_init): Avoid reading nested classes if the AOT
3303         data indicates the class has none.
3304
3305 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
3306
3307         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
3308         loader lock with the debugger lock. Prevents deadlocks for beagle.
3309
3310         Beagle can now run on an smp box for a weekend without any
3311         issues. Woohoo!
3312
3313 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3314
3315         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3316         in a module. Fixes #75629.
3317
3318 2005-07-26  Martin Baulig  <martin@ximian.com>
3319
3320         * mono-debug.c (mono_debug_add_wrapper): New static method.
3321         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3322         interncall or a wrapper.
3323
3324         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3325         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3326         (MONO_DEBUGGER_VERSION): Bump to 51.
3327
3328         * mono-debug-debugger.c
3329         (mono_debugger_add_type): Removed this empty function.
3330         (mono_debugger_add_method): Likewise.
3331
3332 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3333
3334         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3335         before accessing method->slot.
3336
3337 2005-07-21  Jb Evain  <jbevain@gmail.com>
3338
3339         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3340         Fixes #75010.
3341
3342 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3343
3344         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3345         #75587.
3346
3347 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3348
3349         * image.h image.c: Add mono_image_get_guid () API function.
3350
3351 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3352
3353         There were issues when multiple threads tried to load
3354         assemblies. A deadlock was created between assemblies_mutex and
3355         mono_domain_assemblies_lock. This fixes the issue by making the
3356         assembly ref counting be lock free. See bug 75586.
3357         
3358         * image.c (mono_image_close): The add ref function here was using
3359         Interlocked operations while the unref was using a mutex and a
3360         --. I don't think this was ever a bug that would be exposed in a
3361         non-pendantic way (ie, by an embedder doing a ref on one thread
3362         and an unref on another), but for the sake of correctness, this is
3363         now Interlocked.
3364
3365         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3366         (mono_assembly_load_reference): Call mono_assembly_addref rather
3367         than touching the refcount ourselves.
3368         (mono_assembly_close): Use InterlockedDecrement to unref the
3369         assembly. Don't acquire the lock unless it is actually needed.
3370
3371 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3372
3373         * class.c (mono_class_layout_fields): Fix calculation of has_references
3374         for generic types.
3375
3376 2005-07-12  Martin Baulig  <martin@ximian.com>
3377
3378         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3379
3380         * metadata.c
3381         (mono_type_hash): Provide better hashing for generic instances.
3382         (mono_generic_inst_hash): Improve hashing.
3383         (mono_generic_class_hash): Likewise.
3384
3385         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3386         generic instances.
3387
3388 2005-07-12  Martin Baulig  <martin@ximian.com>
3389
3390         * reflection.c (mono_reflection_create_runtime_class): Remove the
3391         hack for generic type definitions and non-`Run' assemblies.
3392         (mono_reflection_bind_generic_parameters): Also use
3393         `klass->wastypebuilder' to check for TypeBuilders.
3394
3395 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3396
3397         * class.c (mono_class_layout_fields): Fix calculation of has_references
3398         for generic types.
3399
3400         * class.c (inflate_generic_class): Fix a leak.
3401         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3402         for generic types.
3403
3404 2005-07-11  Martin Baulig  <martin@ximian.com>
3405
3406         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3407         on error.
3408
3409 2005-07-11  Martin Baulig  <martin@ximian.com>
3410
3411         * loader.c (find_method): Also lookup in
3412         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3413
3414 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3415
3416         * appdomain.c (mono_domain_unload): Don't free the error message
3417         before passing it to mono_get_exception_...
3418
3419         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3420         
3421 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3422
3423         * threads.c: try to better guess an available RT signal (bug #75387).
3424
3425 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3426
3427         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3428         and CACHE_OBJECT.
3429
3430 2005-07-07  Martin Baulig  <martin@ximian.com>
3431
3432         * class.c (mono_type_get_name_full): Return NULL for
3433         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3434         fixes #75408.
3435
3436 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3437
3438         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3439         exit the appdomain as well being aborted.
3440
3441         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3442         change back to the root domain after calling managed code. This enables
3443         appdomains using threadpools to be unloaded.
3444
3445 2005-07-07  Martin Baulig  <martin@ximian.com>
3446
3447         * class-internals.h
3448         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3449         into `MonoDynamicGenericClass' since we only need it for dynamic
3450         types.
3451
3452         * reflection.c (mono_class_bind_generic_parameters): We don't need
3453         to compute the `parent' here.
3454
3455 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3456
3457         * culture-info-table.h : regenerated.
3458
3459 2005-07-06  Martin Baulig  <martin@ximian.com>
3460
3461         * icall.c
3462         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3463
3464         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3465
3466 2005-07-06  Martin Baulig  <martin@ximian.com>
3467
3468         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3469         we're doing a signature-only comparision; fixes #74945.
3470
3471 2005-07-06  Martin Baulig  <martin@ximian.com>
3472
3473         * class-internals.h (MonoGenericClass): Moved some things out into
3474         a new `MonoInflatedGenericClass' type.  
3475         (MonoInflatedGenericClass): New type; the `klass' of a
3476         `MonoGenericClass' is now computed lazyly in
3477         mono_get_inflated_generic_class().      
3478
3479         * class.c (mono_get_inflated_generic_class): New public function.
3480         (mono_class_inflate_generic_method): Removed the unused
3481         `MonoClass *' argument.
3482         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3483         all the methods.
3484         (mono_class_create_generic): Make this static and merge it with
3485         mono_class_create_generic_2(); we're now called automatically from
3486         mono_get_inflated_generic_class().
3487
3488         * loader.c (mono_method_signature): Call
3489         mono_get_inflated_method() here.
3490
3491 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
3492
3493         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
3494         type of fields with RVA.
3495
3496         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
3497         for this pseudo class.
3498         (my_mono_class_from_generic_parameter): Likewise.
3499         (mono_class_init): Allow interfaces to have cctors.
3500
3501 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3502
3503         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
3504         lazily for AOT methods.
3505
3506 2005-07-05  Martin Baulig  <martin@ximian.com>
3507
3508         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
3509         returns FALSE for a successful match, not TRUE.
3510
3511 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3512
3513         * loader.c (mono_method_get_index): Optimize this a bit.
3514
3515 2005-07-04  Martin Baulig  <martin@ximian.com>
3516
3517         * class.c
3518         (class_compute_field_layout): Move the check for generic type
3519         definitions into mono_class_layout_fields().  Fixes #74684.
3520         (mono_class_from_generic_parameter): Correctly compute
3521         `klass->parent'; fixes #75457.
3522
3523         * reflection.c (register_assembly, register_module): Make sure
3524         `domain->rejobject_hash' is already created.
3525
3526 2005-07-02  Martin Baulig  <martin@ximian.com>
3527
3528         * class-internals.h
3529         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
3530         `MonoDynamicGenericClass'.      
3531
3532 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
3533
3534         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
3535         returned by a field getter is null, since null is a valid value.
3536
3537 2005-07-01  Martin Baulig  <martin@ximian.com>
3538
3539         * reflection.c (mono_reflection_generic_class_initialize): Update
3540         the `dgclass->fields [i].parent' to the correct class.
3541         (mono_image_get_fieldref_token): Use the declaring type, not the
3542         reflected type.
3543
3544 2005-07-01  Martin Baulig  <martin@ximian.com>
3545
3546         * loader.c (find_method): Also look in the interfaces; fixes #75429.
3547
3548 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
3549
3550         * threads.c (thread_cleanup): assert that thread != NULL
3551         (wait_for_tids_or_state_change): We were using the wrong variable
3552         when accessing wait->threads. `i' was always out of the bounds of
3553         the array.
3554
3555 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3556
3557         * loader.c: map user32 and kernel32 to libMonoSupportW
3558
3559 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
3560
3561         * appdomain.c (unload_thread_main): Mark this as WINAPI.
3562
3563 2005-06-28  Martin Baulig  <martin@ximian.com>
3564
3565         * loader.c (method_from_methodspec): Fix #75334.
3566
3567 2005-06-28  Martin Baulig  <martin@ximian.com>
3568
3569         Fix #74953 - Arrays now implement the generic IList<T> interface
3570         on the 2.0 platform.
3571
3572         * class-internals.h (MonoDefaults): Added `generic_array_class'.
3573
3574         * reflection.c (mono_class_bind_generic_parameters): New public
3575         function; similar to mono_reflection_bind_generic_parameters(),
3576         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
3577
3578         * domain.c (mono_init_internal): Try to initialize.
3579         `mono_defaults.generic_array_class' here; this'll only succeed if
3580         we're using the 2.0 corlib.
3581
3582         * icall.c
3583         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
3584         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
3585         (mono_lookup_internal_call): Added support for nested classes.
3586
3587         * loader.c
3588         (mono_get_method_from_token): Set `result->signature->pinvoke' if
3589         we're an interncall and have generic arguments.
3590
3591         * class.c
3592         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
3593         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
3594         instance of System.Array.InternalArray<T> for arrays, so they
3595         implement the generic IList<T> interface.
3596
3597 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
3598
3599         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
3600         (chastamar@yahoo.com). Fixes #75374.    
3601
3602 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
3603
3604         * culture-info-table.h: regenerated.
3605
3606 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3607
3608         * icall.c: handle spaces correctly for base64 strings.
3609
3610 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
3611
3612         * *.c: Kill some warnings.
3613
3614 2005-06-23  Duncan Mak  <duncan@novell.com>
3615
3616         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
3617         that this builds on Solaris 10 (x86).
3618
3619 2005-06-23  Martin Baulig  <martin@ximian.com>
3620
3621         * class.c
3622         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
3623         generic type definitions.
3624
3625 2005-06-23  Martin Baulig  <martin@ximian.com>
3626
3627         Fix #75331.
3628
3629         * metadata.c (mono_class_get_overrides): Renamed to
3630         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
3631         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
3632         pass it to mono_get_method_full().
3633
3634 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
3635
3636         * reflection.c (mono_reflection_create_runtime_class): take the
3637         mono_domain_lock in this method. Prevents deadlocks
3638
3639 2005-06-22  Martin Baulig  <martin@ximian.com>
3640
3641         * loader.c (method_from_methodspec): Fix #75330.
3642
3643 2005-06-22  Martin Baulig  <martin@ximian.com>
3644
3645         * reflection.c (type_get_qualified_name): Use
3646         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
3647         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
3648         argument; use it if we don't have an assembly name.
3649
3650 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
3651
3652         * object.c: In mono_message_init, set "copy out" flag for in
3653         parameters with the [Out] flag.
3654
3655 2005-06-21  Martin Baulig  <martin@ximian.com>
3656
3657         * class.c
3658         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
3659         and MONO_TYPE_PTR.
3660
3661 2005-06-21  Martin Baulig  <martin@ximian.com>
3662
3663         * class.c (mono_class_init): Don't initialize `class->fields' for
3664         generic instances since they're initialized again in
3665         compute_field_layout(). 
3666         (compute_field_layout): Set the field's `generic_info' here; fix
3667         #75320. 
3668
3669 2005-06-21  Martin Baulig  <martin@ximian.com>
3670
3671         * class-internals.h
3672         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
3673
3674         * metadata.c (mono_metadata_generic_method_equal): Also
3675         distinguish the `generic_class'; fixes #75334.
3676
3677 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3678
3679         * domain.c:
3680         * appdomain.c:
3681         * domain-internals.h:
3682         * reflection.c: 'domain_assemblies' field is now protected by its own
3683         lock. Don't call into managed code to run the AssemblyLoad event if we
3684         now there are no registered delegates for it.
3685
3686 2005-06-20  Martin Baulig  <martin@ximian.com>
3687
3688         * class.c (mono_class_is_assignable_from): Use a custom version of
3689         mono_class_has_parent() to make things work for generic instances;
3690         fix #75300.
3691
3692 2005-06-20  Martin Baulig  <martin@ximian.com>
3693
3694         * loader.c (method_from_methodspec): Apply a patch from
3695         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
3696
3697 2005-06-20  Martin Baulig  <martin@ximian.com>
3698
3699         * class.c (mono_class_init): Reverted Zoltan's last change; it
3700         breaks generics.
3701
3702 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
3703
3704         * threads.c (wait_for_tids_or_state_change): Add missing locking.
3705
3706 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3707
3708         * socket-io.c: fix the index in the socket array for writable/error
3709         sockets. Fixes bug #75306.
3710
3711 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
3712
3713         * class.c (mono_class_init): Allow interfaces to have static ctors.
3714
3715 2005-06-17  Martin Baulig  <martin@ximian.com>
3716
3717         * loader.c (method_from_methodspec): Use `context->container' when
3718         parsing the `gmethod->inst'.
3719
3720 2005-06-17  Martin Baulig  <martin@ximian.com>
3721
3722         * class.c (mono_type_get_name_recurse): Don't add the assembly
3723         name for type arguments.
3724
3725 2005-06-15  Martin Baulig  <martin@ximian.com>
3726
3727         * reflection.c (mono_image_get_inflated_method_token): Encode
3728         correct klass; fixes #75260.
3729
3730 2005-06-13 Michal Moskal <malekith@nemerle.org>
3731
3732         * icall.c: Make GetCorrespondingMethod/Constructor take
3733         MonoReflectionMethod method not MonoMethod. Removed
3734         MonoType.GetCorrespondingField, and make
3735         MonoGenericType.GetCorrespondingField take name not
3736         MonoClassField.
3737
3738 2005-06-13  Michal Moskal <malekith@nemerle.org>
3739
3740         * reflection.c (field_encode_signature, encode_locals):
3741          Make sizes of buffers for types larger (for big generic types).
3742          (create_generic_typespec,
3743          mono_reflection_sighelper_get_signature_local,
3744          mono_reflection_sighelper_get_signature_field):
3745          Add asserts for too small buffers.
3746
3747 2005-06-15  Martin Baulig  <martin@ximian.com>
3748
3749         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
3750         if our parent is not a dynamic type.
3751
3752 2005-06-15  Martin Baulig  <martin@ximian.com>
3753
3754         * class-internals.h (MonoTypeNameFormat): New enum.
3755
3756         * class.c
3757         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
3758         (mono_type_get_full_name): Removed.
3759         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
3760         argument instead of the boolean's.
3761
3762         * icall.c (ves_icall_System_MonoType_getFullName):
3763         Added `gboolean assembly_qualified'.    
3764
3765         * reflection.h
3766         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
3767
3768         * reflection.c (mono_reflection_parse_type): Parse the new type
3769         name format.
3770
3771 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3772
3773         * icall.c: no need to convert from utf16 to utf8 and then back again
3774         after the call to GetLogicalDrives.
3775
3776 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3777
3778         * icall.c: frombase64. Fix problems exposed by new tests.
3779
3780 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3781
3782         * icall.c: added internal calls for converting char [] and strings in
3783         base64 into byte [].
3784
3785 2005-06-10  Martin Baulig  <martin@ximian.com>
3786
3787         * class.c (mono_class_create_generic_2): Read the nested classes
3788         from the metadata rather than from `gklass->nested_classes' since
3789         `gklass' might not be initialized yet.
3790
3791 2005-06-09  Duncan Mak  <duncan@novell.com>
3792
3793         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
3794         all public headers. Fixes #74919.
3795
3796 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
3797
3798         * domain.c: The key for proxy_vtable_hash is now a pointer
3799         array. Added new GHashFunc and GCompareFunc functions for this.
3800
3801         * class.h: The list of interfaces in MonoRemoteClass is known in
3802         advance and can't grow (we create a new MonoRemoteClass if needed),
3803         so now the interface array can be allocated together with
3804         MonoRemoteClass.
3805         
3806         * object.c: Added a new method create_remote_class_key.
3807         Fixed mono_remote_class so it does not depend on
3808         mono_upgrade_remote_class.
3809         Removed extend_interface_array.
3810         Added new method clone_remote_class(), which makes a copy of a remote
3811         class and adds a new interface or class to it.
3812         mono_upgrade_remote_class() now creates a new remote class (or gets
3813         it from the cache) if an vtable upgrade is needed. In this way
3814         we make sure that other objects sharing the same remote class
3815         don't get the new vtable with unwanted interfaces.
3816         
3817         * object-internals.h:
3818         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
3819         
3820         * marshal.c: Track changes in mono_upgrade_remote_class().
3821
3822 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
3823         * icall.c: Add runtime methods for obtaining members of inflated
3824         class, which were created from supplied non-inflated members. It
3825         is used in internal Get{Method,Constructor,Field} methods in
3826         System.Type
3827
3828 2005-06-09  Martin Baulig  <martin@ximian.com>
3829
3830         * reflection.c
3831         (mono_reflection_bind_generic_method_parameters): Fix #75169.
3832
3833 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3834         * reflection.c (mono_image_basic_init): Define
3835         Version in MonoDynamicAssembly. 
3836         
3837 2005-06-08  Martin Baulig  <martin@ximian.com>
3838
3839         Fix #75136.
3840
3841         * loader.c
3842         (mono_method_signature_full): New public method; takes a
3843         `MonoGenericContext *'.
3844         (find_method): Use mono_method_signature_full() and pass the
3845         klass'es context to it.
3846
3847         * class.c (mono_class_is_inflated_method): Use
3848         mono_method_signature_full() and pass the context to it.
3849
3850 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
3851
3852         * object.c: add proper locking in mono_remote_class_vtable(),
3853         fixes possible memory corruption.
3854
3855 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
3856
3857         * marshal.c (mono_remoting_marshal_init): set
3858         initialized after initialization.
3859
3860 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
3861
3862         * locales.c : hush.
3863
3864 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
3865
3866         * object.c (extend_interface_array): fix really silly
3867         memory corrupting / comparison bug.
3868
3869 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3870
3871         * reflection.c: Functions added to support the creation
3872         of CustomAttributeData, which includes Attribute data
3873         used by ReflectionOnly methods.
3874
3875         * reflection.h:  mono_reflection_get_custom_attrs_data and
3876          mono_custom_attrs_data_construct added (functions exposed).
3877
3878          * icall.c: Added mono_reflection_get_custom_attrs_data
3879          as icall.
3880         
3881 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
3882
3883         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
3884         lupus's request.
3885
3886 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
3887
3888         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
3889
3890         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
3891         dynamic DllImportAttribute.
3892
3893         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
3894         dynamic DllImportAttribute.
3895
3896         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
3897         Fixes #75162.
3898
3899 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3900
3901         * threads.c: avoid segfault when an unstarted thread is aborted.
3902
3903 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
3904
3905         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
3906         Returns the name and version of the runtime for reporting.
3907
3908 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3909
3910         * appdomain.c: bump corlib version.
3911         * object-internals.h: new field in MonoReflectionAssembly.
3912
3913 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3914
3915         * object-internals.h: Carlos forgot to add this field.
3916
3917 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3918
3919         * icall.c: Added create_version to create instances
3920         of Version of MonoReflectionAssemblyName. This change helps
3921         the AssemblyName tests to keep running fine.
3922         
3923 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
3924   
3925         * object.c (mono_method_return_message_restore): A somehow less
3926         intrusive fix for #75138.
3927
3928 2005-06-03  Raja R Harinath  <rharinath@novell.com>
3929
3930         * object.c (mono_method_return_message_restore): Fix computation
3931         of expected number of out args.
3932
3933 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
3934
3935         * reflection.c (mono_image_get_method_info): Fix the case when the
3936         charset is empty.
3937
3938 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
3939
3940         * object.c: Added missing null check in
3941           mono_method_return_message_restore.
3942
3943 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
3944
3945         * reflection.c (mono_image_get_method_info): Handle the case when
3946         dllentry is empty.
3947
3948 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
3949
3950         * object.c: When creating the vtable for a proxy, take into account
3951         all inherited interfaces, not only the ones registered in
3952         iclass->interfaces. This fixs bug #74996.
3953         Also, in mono_method_return_message_restore, verify that the array
3954         of out args has the expected lengh.
3955
3956 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3957
3958         * socket-io.c: update the timeout in Poll when the call is interrupte.
3959
3960 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3961
3962         * socket-io.c: support abort/suspend in Select_internal after last
3963         change.
3964
3965 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3966
3967         * threadpool.c: remove warning.
3968
3969 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3970
3971         * icall.c:
3972         * socket-io.[ch]: Select_internal uses poll() now when available, thus
3973         removing the 1024 limit from select(). Runtime part of the fix for
3974         bug #71203.
3975
3976 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3977
3978         * socket-io.c: when resolving the addresses for the same
3979         host returned by gethostname(), get the local IPs from the interface
3980         list. Loopback addresses are discarded if the are interfaces up with
3981         non-loopback ones. Fixes bug #63265.
3982
3983 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
3984
3985         * appdomain.c, verify.c, object-internals.h, reflection.c:
3986         bumped corlib number to 36, and added new extra_flags field
3987         to ReflectionMethodBuilder and friends.  Fixes #75060.
3988
3989 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
3990
3991         * gc.c: register a new weak link only if the object is non-null
3992         (fixes bug#75047).
3993
3994 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3995
3996         * culture-info.h : short time pattern too.
3997
3998 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
3999
4000         * culture-info.h : expand long time pattern string length.
4001
4002 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4003
4004         * culture-info-table.h : update (more French date format; #72788).
4005
4006 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
4007
4008         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
4009         the method is static. Fixes #75029.
4010
4011 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
4012
4013         * reflection.c: Update the table_idx field of method builders after
4014         saving the module, since it can change. This is a workaround for
4015         bug #74914. 
4016
4017 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4018
4019         * culture-info-table.h : update (additional French date format).
4020
4021 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4022
4023         * icall.c (ves_icall_type_Equals): Revert last change.
4024         
4025         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
4026
4027         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
4028
4029 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
4030
4031         * class-internals.h: Added executioncontext_class field to 
4032         MonoDefaults structure.
4033         * domain.c: Cache System.Threading.ExecutionContext class in 
4034         mono_defaults.
4035         * object.c: Capture the ExecutionContext for asynchroneous calls in
4036          mono_async_result_new.
4037         * object-internals.h: Added execution_context and original_context 
4038         fields to MonoAsyncResult. Added execution_context to MonoThread.
4039         * security-manager.c|.h: Added mono_get_context_capture_method to 
4040         return the capture method (if required by the security manager or by
4041         the framework version used).
4042         * threadpool.c: Apply capture (if present) ExecutionContext in 
4043         mono_async_invoke and revert to original context after it completes.
4044
4045 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
4046
4047         * culture-info-table.h : updated (real hacky solution for zh-CHT).
4048
4049 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
4050
4051         * culture-info-table.h : zh-CHT related workaround.
4052
4053 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4054
4055         * marshal.c (emit_marshal_custom): Add some error checking and call the
4056         methods in the ICustomMarshaler interface. Fixes #74875.
4057         
4058         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
4059         native->managed wrappers.
4060
4061 2005-05-12  Martin Baulig  <martin@ximian.com>
4062
4063         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
4064         here and use the loader lock.
4065
4066         * mono-debug.c: Properly lock when the debugger is not attached.
4067         (mono_debug_init): Release the initial lock if we're not running
4068         in the debugger.
4069
4070 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4071
4072         * marshal.c (emit_marshal_custom): Pass through NULL values without
4073         calling the custom marshalling routines.
4074
4075         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
4076         conversion in structures. Fixes #74882.
4077
4078 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
4079
4080         * culture-info-table.h : zh-* cultures were missing.
4081
4082 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
4083
4084         * threads.c: Added a new event background_change_event which is signaled
4085         when a thread changes its background mode.
4086         Moved here several checks previously done in managed code. The checks
4087         require the thread lock, and using the thread lock in managed code
4088         can result in deadlocks.
4089         Merged Start_internal and Thread_internal into a single method. Now 
4090         Thread_internal does all work of creating and starting a thread.
4091         Added icalls for setting and getting the state of the object. Moved from
4092         managed code to avoid locking there.
4093         Added wait_for_tids_or_state_change() which is called instad of
4094         wait_for_tids when waiting for non-backround threads to end. This method
4095         will return if one of the threads ends or the background_change_event
4096         is signaled.
4097         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
4098         the background mode. This method signals the background_change_event
4099         event.
4100         * icall.c:
4101         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
4102         removed Start_internal.
4103         
4104 2005-05-11  Martin Baulig  <martin@ximian.com>
4105
4106         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
4107         to order of some fields to get proper alignment on 64-bit machines.
4108
4109 2005-05-11  Martin Baulig  <martin@ximian.com>
4110
4111         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
4112         changes as they're broken and completely fuck up the debugger.
4113
4114         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
4115
4116 2005-05-10  Martin Baulig  <martin@ximian.com>
4117
4118         * reflection.c (mono_reflection_generic_class_initialize): Don't
4119         call mono_class_setup_parent() here.
4120
4121 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4122
4123         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
4124         send/receive timeout use an integer in milliseconds. We were using a
4125         struct timeval.
4126
4127 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4128
4129         * locales.c:
4130         (internal_get_cultures): reserve the first slot of the array for the
4131         InvariantCulture, which will be filled in managed code.
4132
4133 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
4134
4135         * reflection.c (mono_image_fill_module_table): Initialize the
4136         GENERATION field as well.
4137
4138 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4139
4140         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
4141         Monitor.Enter on the object.
4142
4143 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4144
4145         * threads.c: Enable the wait for running threads when exiting.
4146         * icall.c: Suspend all threads before exiting.
4147
4148 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4149
4150         * assembly.c (mono_assembly_load_reference): Fix warning.
4151
4152 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4153
4154         * threadpool.c: changed the default number of threads per cpu. From now
4155         on, the default will be 20 + (5 * number of cpus) instead of 50.
4156
4157 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
4158
4159         * loader.c (mono_method_get_signature_full): Add locking here.
4160
4161 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
4162
4163         * appdomain.c: Moved methods for parsing and freeing assembly
4164         names to assembly.c.
4165         * assembly.c, domain-internals.h: Created public methods for parsing
4166         assembly names. Fixed mono_assembly_load_with_partial_name:
4167         it now finds the best match, taking into account the version,
4168         token and culture specified in the partial name. Also return
4169         the latest version if no version information is specified.
4170
4171 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
4172
4173         * threadpool.c: replace check for SocketAsyncCall class.
4174
4175 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4176
4177         * threadpool-internals.h:
4178         * Makefile.am: added threadpool-internals.h
4179
4180         * threadpool.c: call mono_unhandled_exception on exceptions not handled
4181         that happen in threadpool threads (tested on MS).
4182         (mono_thread_pool_remove_socket): new function that dispatch any pending
4183         AIO call on a socket that is closing. By now only epoll really needs it,
4184         as select/poll wake up when the socket closes.
4185
4186
4187         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
4188
4189 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
4190
4191         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
4192
4193 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
4194
4195         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
4196
4197 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
4198
4199         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
4200         has an abort request, convert it into a suspend request.
4201
4202 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
4203
4204         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
4205         warning for the usage of `UnmanagedFunctionPointerAttribute' which
4206         is not supported yet.
4207
4208 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4209
4210         * image.c: register assemblies loaded from data (bundles) in the loaded
4211         assemblies hash. Fixes bug #74772.
4212
4213 2005-04-29  Martin Baulig  <martin@ximian.com>
4214
4215         * class.c (mono_type_get_name_recurse): Update to the new naming
4216         schema from the latest .NET 2.x beta2.
4217         (mono_class_setup_vtable_general): If we're a generic instance,
4218         copy the vtable from our generic type definition and inflate all
4219         the methods in it.
4220
4221         * loader.c (find_method): Update to the new naming schema from the
4222         latest .NET 2.x beta2.
4223
4224 2005-04-29  Raja R Harinath  <harinath@gmail.com>
4225
4226         * class.c (mono_class_init): Add a mono_loader_unlock to the
4227         #74734 fix.
4228
4229 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4230
4231         * icall.c (ves_icall_System_Environment_Exit): Remove the 
4232         suspend_all_other_threads () call for the time being, since it can hang.
4233
4234         * threads.c (mono_thread_manage): Similarly, disable the waiting for
4235         the background threads to exit, since it can also hang.
4236
4237         * class.c (mono_class_init): Applied patch from Ankit Jain 
4238         (radical@gmail.com). Avoid pending init errors when a field refers
4239         to a nested class using a typeref. Fixes #74734.
4240
4241         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
4242         this for dynamic modules.
4243
4244 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4245
4246         * threads.c: don't wait for threads that are in the process of aborting
4247         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
4248         and waiting for background threads to finish. This makes xsp and
4249         mod-mono-server exit without random length delays and/or hangs.
4250
4251 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4252
4253         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
4254
4255 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
4256
4257         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
4258         dynamic types to prevent infinite loops. Fixes #74727.
4259
4260         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
4261         ..._is_assignable_to.
4262
4263 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
4264
4265         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
4266
4267 2005-04-25  Martin Baulig  <martin@ximian.com>
4268
4269         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
4270
4271         * domain.c
4272         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
4273
4274         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
4275
4276         * reflection.c (build_compressed_metadata): Set metadata header
4277         version to 2.0.
4278
4279 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4280
4281         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
4282         number into an integral and a decimal part. Fixes #70473.
4283
4284         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
4285
4286 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
4287
4288         * culture-info-table.h : reflected the latest locale-builder output.
4289
4290 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4291
4292         * threadpool.c: check for SuspendRequested too when deciding if
4293         mono_thread_interruption_checkpoint should be called.
4294
4295 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4296
4297         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
4298         * threads.c: remove interruption_mutex and use Interlocked instead. When
4299         suspending all the threads, wait for all the suspended events at once.
4300         If we're shutting down and get an APC that is going to be queued,
4301         call mono_thread_execute_interruption immediately, as the thread might
4302         be sleeping on a pthread condition or mutex.
4303
4304         * icall.c: call mono_runtime_set_shutting_down before suspending the
4305         threads.
4306
4307         Fixes bug #74693. And now xsp is happier when exiting.
4308
4309 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4310
4311         * loader.c (mono_stack_walk): Fix #74690.
4312
4313 2005-04-22  Martin Baulig  <martin@ximian.com>
4314
4315         * mono-debug.h (MonoDebugMethodJitInfo): Added
4316         `MonoDebugMethodJitInfo *jit'.
4317
4318         * mono-debug.c (mono_debug_read_method): Cache the
4319         MonoDebugMethodJitInfo in `address->jit'.
4320         (mono_debug_free_method_jit_info): New public method.
4321
4322 2005-04-22  Martin Baulig  <martin@ximian.com>
4323
4324         * class.c (mono_class_is_assignable_from): Disallow
4325         type parameter -> interface.
4326
4327 2005-04-21  Dick Porter  <dick@ximian.com>
4328
4329         * threads.c (mono_thread_create): Turn an assertion into an error.
4330
4331 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4332
4333         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4334         
4335         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4336         Fix some gcc 4.0 warnings.
4337
4338 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4339
4340         * file-io.c: fix alt dir separator char on unix systems
4341         and cleanup (fixes bug #71214).
4342
4343 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4344
4345         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4346         a call to a remote domain, since the method may be an
4347         interface method in the client domain. This fixes bug #74192.
4348
4349 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4350
4351         * threadpool.c: recv/send are now performed before going back to managed
4352         code to save one transition.
4353
4354 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4355
4356         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4357
4358         * metadata/threadpool.c: removed hack to workaround the bug above.
4359
4360         Fixes bug #74618.
4361
4362 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4363
4364         * reflection.c reflection.h: Fix handling of parameter defaults in
4365         dynamic methods. Also fixes handling of parameter attributes.
4366         Fixes #74609.
4367
4368         * mono-debug.c (mono_debug_close_image): Fix warning.
4369
4370 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4371
4372         * socket-io.h: replaced old unused field with new 'blocking'.
4373         * threadpool.c: restore socket blocking state on windows(tm).
4374
4375 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4376
4377         * icall.c: don't return the codebase in the AssemblyName[] returned by
4378         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4379         * object-internals.h: Removed FIXME (fields were presents) and fixed
4380         versioncompat declaration.
4381
4382 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4383
4384         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4385         not closed, so don't cleanup when it happens.
4386
4387 2005-04-13  Chris Toshok  <toshok@ximian.com>
4388
4389         * mono-debug-debugger.h: change prototype for
4390         mono_debugger_lookup_type.
4391
4392         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4393         this function, although it should probably be named
4394         mono_debugger_init_type.
4395
4396 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4397
4398         * threadpool.c: fix non-AIO case.
4399
4400 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4401
4402         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4403         the built-in profiler to measure just JIT compilation times.
4404
4405 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4406
4407         * threadpool.c: the epollfd might be closed by another thread at
4408         any time, so ignore EBADF at treat it as a "we're closing" sign.
4409
4410 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4411
4412         * threadpool.c: release the semaphores with a count equals to the number
4413         of working threads in both IO and regular pools. Fixed typo that messed
4414         up the count of IO pool threads. Don't initialize the pipe handles if
4415         we're using epoll.
4416
4417 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4418
4419         * threadpool.c: some systems don't like a NULL when deleting the socket
4420         from epoll.
4421
4422 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4423
4424         * threadpool.c: fix semaphore allocation.
4425
4426 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4427
4428         * threadpool.c: added epoll() based implementation for asynchronous IO
4429         that is used instead of the default poll() when available.
4430         It can be disabled by setting MONO_DISABLE_AIO.
4431
4432 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4433
4434         * threadpool.c: windows needs 'closesocket' and instead of returning
4435         0 when the stream is closed while in select, it returns -1. Fixes bug
4436         #74573.
4437
4438 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4439
4440         * class.c (class_compute_field_layout): Fix the regression caused by
4441         the previous try.
4442
4443 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4444
4445         * threadpool.c: separate pool for socket async. IO.
4446         * threadpool.h: mono_max_worker_threads is not a global any more.
4447
4448 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4449
4450         * class.c (class_compute_field_layout): Fix #74549.
4451
4452 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4453
4454         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4455         use 2 connected sockets instead.
4456
4457 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4458
4459         * mono-config.c: Add new entry point for mkbundle
4460         mono_config_parse_memory. 
4461
4462 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4463
4464         * threadpool.c: removed another unused function.
4465
4466 2005-04-08  Ankit Jain  <radical@corewars.org>
4467
4468         * reflection.c (get_default_param_value_blobs): Add 'types'
4469         parameter to get the types encoded in the constant table.
4470         (mono_param_get_objects): Use the type from the constant table,
4471         not the type of the parameter, when creating default values.
4472         Handle null default values correctly.
4473
4474 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4475
4476         * file-io.c:
4477         * file-io.h:
4478         * threadpool.c:
4479         * threadpool.h:
4480         * icall.c:
4481         * socket-io.c: removed dead code for async IO.
4482
4483 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4484
4485         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4486
4487         * threadpool.c: intercept socket async. calls and pass them to a thread
4488         that is polling and dispatching the job items to the threadpool as
4489         socket become ready. Fixes bugs #71217, #71933.
4490
4491         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
4492         between char and short/ushort arrays.
4493
4494         * socket-io.c: remove dead code.
4495
4496 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4497
4498         * locales.c,
4499           icall.c : removed InternalToUpper_Comp() and
4500           InternalToLower_Comp().
4501
4502 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4503
4504         * char-conversions.h : The tables were incorrectly generated. Should
4505           be generated against invariant culture.
4506
4507 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4508
4509         * object.c (mono_runtime_invoke_array): Fix return value when 
4510         passing pre-created valuetype objects to ctors.
4511
4512         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
4513         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
4514         Fixes #74338.
4515
4516 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
4517
4518         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
4519         only used with --security and hides the wrong corlib version error.
4520
4521 2005-03-30  Joshua Tauberer  <tauberer@for.net>
4522
4523         * class.c: Changed mono_class_name_from_token so that types
4524         outside of a namespace don't have an initial period.  Improved
4525         the g_warning message used in _mono_class_get when loading
4526         fails.
4527         * assembly.c: In mono_assembly_load_reference, when an assembly
4528         can't be found, "No such file or directory" is misleading and
4529         unhelpful because a few paths were checked for the presence of
4530         the assembly.  When that happens (ENOENT), display a nicer
4531         message indicating the directories that were searched.  In all
4532         cases, the warning is made easier to read for non-hackers.
4533
4534 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
4535
4536         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
4537         project/solution.
4538         * appdomain.h|domain.c: Removed inline from functions.
4539         * appdomain.c: Reduced warnings when compiling on windows.
4540         * icall.c: Fixed output_debug declaration to gunichar2*.
4541         * mono-config.c: Reduced warnings when compiling on windows.
4542         * rand.c: Added missing "windows.h". Added missing return value.
4543         * rawbuffer.c: Added missing winsock2.h for windows.
4544         * sysmath.h: Added mono-compiler.h header to allow/ease 
4545         compilation with non-GCC compilers.
4546         * threads.c: Fixed declarations to compile with VS.NET C compiler.
4547         Removed cast warnings.
4548
4549         Adapted from the work of J Lothian (for VC6).
4550
4551 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4552
4553         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
4554         from default_path.
4555
4556 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
4557
4558         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
4559         the 2.0 profile.
4560
4561 2005-03-27  Raja R Harinath  <harinath@gmail.com>
4562
4563         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
4564         has to be in $(exec_prefix).  $(prefix) is for arch-independent
4565         stuff, and it would probably use $(prefix)/share rather than
4566         $(prefix)/lib.
4567
4568 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4569
4570         * console-io.c: added 2 includes that might be missing.
4571
4572 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4573
4574         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
4575         profile.
4576
4577         * reflection.c (create_custom_attr): Allocate the params array using
4578         alloca so it gets GC tracking.
4579
4580 2005-03-23  Chris Toshok  <toshok@ximian.com>
4581
4582         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
4583         out some spew.
4584
4585 2005-03-24  Raja R Harinath  <rharinath@novell.com>
4586
4587         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
4588         changes to pick up any changes in prefix, etc.
4589
4590 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4591
4592         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
4593         
4594         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
4595         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
4596
4597 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4598
4599         * class-internals.h object-internals.h class.c reflection.c: Extend the
4600         mono_lookup_dynamic_token () function to return the class of the
4601         token as well. 
4602
4603         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
4604         well. Fixes #73848.
4605
4606 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
4607
4608         * security-manager.c: Skip inheritance checks for intra-corlib
4609         class inheritance and method overrides. This skips a lot of checks
4610         and (anyway) permissions cannot work until corlib is loaded.
4611
4612 2005-03-23  Martin Baulig  <martin@ximian.com>
4613
4614         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
4615         MONO_TYPE_GENERICINST.  
4616
4617 2005-03-23  Martin Baulig  <martin@ximian.com>
4618
4619         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
4620
4621 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4622
4623         * class.c: added locking comments to some functions.
4624         Cache the interface offsets arrays (saves about 20 KB
4625         of runtime memory in a typical app).
4626         Reduce the time overhead in mono_class_setup_supertypes ().
4627
4628 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
4629
4630         * icall.c: speedup and fix leaks in GetMethodsByName and
4631         GetPropertiesByName.
4632
4633 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
4634
4635         * reflection.c: some locking fixes.
4636
4637 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
4638
4639         * metadata.c: added missing break in case statement.
4640
4641 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
4642
4643         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4644         typedbyref return values. Fixes #73941.
4645
4646 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
4647
4648         * security-manager.c|h: Added demandunmanaged method and 
4649         suppressunmanagedcodesecurity class to MonoSecurityManager.
4650         Renamed aptc class to allowpartiallytrustedcallers.
4651
4652 2005-03-17  Martin Baulig  <martin@ximian.com>
4653
4654         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
4655
4656 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4657
4658         * file-io.c: disabled file async. IO using aio_*. It uses the
4659         threadpool now. Workaround for bug #73718.
4660
4661 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
4662
4663         * assembly.h, mono-config.c: added code to deal with bundled configs
4664         for bundled assemblies.
4665
4666 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
4667
4668         * *.c, private.h: cleanup, removing old private.h header file.
4669
4670 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
4671
4672         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
4673         and throw_on_unmappable_char attributes.
4674
4675 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
4676
4677         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
4678         _ProcessName_internal.
4679
4680 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
4681
4682         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
4683         #73631.
4684
4685         * icall.c threads.c threads-types.h: Remove slothash icalls as they
4686         are no longer used.
4687
4688 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
4689
4690         * object.c (compute_class_bitmap): Add support for generics. Fixes
4691         #73527.
4692
4693 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4694
4695         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
4696
4697 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4698
4699         * filewatcher.c: commented out the code for windows watcher, as we don't
4700         use it (we use the managed implementation instead).
4701
4702 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4703
4704         * object-internals.h (MonoThread): Remove 'unused1' field.
4705
4706         * appdomain.c: Bump corlib version.
4707
4708         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
4709
4710         * reflection.c (mono_reflection_create_runtime_class): Remove the
4711         AssemblyBuilder.Save optimization since it causes too many problems.
4712
4713 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
4714
4715         * exception.c|h: Added mono_get_exception_reflection_type_load to
4716         create a ReflectionTypeLoadException object.
4717         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
4718         to return NULL is a InheritanceDemand fails during reflection. Updated
4719         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
4720         ReflectionTypeLoadException if an InheritanceDemand fails during 
4721         reflection. Added icall mapping for GetLinkDemandSecurity.
4722         * security-manager.c|h: Added ves_icall_System_Security_
4723         SecurityManager_GetLinkDemandSecurity internal call to return the
4724         class and methods permissions set for a LinkDemand. Removed unused
4725         fields in MonoSecurityManager.
4726
4727 2005-03-10  Martin Baulig  <martin@ximian.com>
4728
4729         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
4730         it's a generic instance.
4731
4732 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
4733
4734         * reflection.c (mono_get_object_from_blob): Applied patch from
4735         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
4736
4737         * class.c (mono_class_is_assignable_from): Another try at fixing 
4738         #73469 without breaking anything.
4739
4740 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
4741
4742         * class.c: (mono_class_is_assignable_from): Revert the last changes
4743         since they don't work with generics.
4744         
4745         * class.c (mono_class_is_assignable_from): Fix build bustage.
4746
4747         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
4748         the managed IsAssignableFrom method. Fixes #73469.
4749
4750         * reflection.c (mono_reflection_call_is_assignable_from): New helper
4751         function.
4752
4753 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
4754
4755         * object.c (mono_load_remote_field_new): Fix returning uninitialized
4756         memory when the remoting callback does not sets the out arguments.
4757         Fixes #73007.
4758
4759         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
4760         by mistake.
4761
4762         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
4763
4764         * object-internals.h (MonoStackFrame): Sync with managed object layout.
4765
4766         * appdomain.c: Bump corlib version.
4767
4768 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
4769
4770         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
4771         function.
4772
4773         * threads.c (mono_thread_attach): Detect threads which are not started
4774         by the GC pthread wrappers.
4775
4776 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
4777
4778         * icall.c: Added new icall for RNG.
4779         * rand.c|h: Added new icall to open the RNG. This allows to share a 
4780         single handle on Linux to access /dev/urandom and fix #73183.
4781
4782 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
4783
4784         * object.c: setting the new vtable in a transparent proxy object must
4785         not change the GC descriptor.
4786
4787 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
4788
4789         * object.c: fixed compilation without GCJ support.
4790         * reflection.c: for runtime-created types ensure klass->has_references
4791         is correct (bug #73215).
4792
4793 2005-03-02  Martin Baulig  <martin@ximian.com>
4794
4795         * class.c (mono_class_is_assignable_from): Make this work if
4796         `oklass' is a generic instance; fixes #72831.
4797
4798 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
4799
4800         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
4801         with hasthis set.
4802         
4803         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
4804
4805         * marshal.c: Reorganize native->managed marshalling code to also use
4806         the emit_marshal_... functions.
4807
4808 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
4809
4810         * object.c: typed allocs have issues with bitmap sizes > 30,
4811         so check for max_set >= 30.
4812
4813 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
4814
4815         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
4816         managed code. Fixes #73012.
4817
4818         * metadata.h (MonoMarshalSpec): Add elem_mult field.
4819
4820         * metadata.c reflection.c: Load/Emit elem_mult as well.
4821         
4822         * metadata.h (MonoMarshalSpec): Add comment.
4823
4824         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
4825
4826         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
4827         num_elem to -1 if not given.
4828
4829         * object-internals.h (MonoReflectionMarshal): Add has_size field.
4830
4831         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
4832         given values.
4833
4834 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
4835
4836         * null-gc.c (mono_gc_free_fixed): Was not compilable.
4837
4838 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
4839
4840         * reflection.c (encode_marshal_blob): Encode param_num field as well.
4841
4842         * object-internals.h (MonoReflectionMarshal): Add param_num field.
4843
4844 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
4845
4846         * object.c: generalized the reference bitmap creation
4847         and added hooks for the new GC.
4848         * class-internals.c: removed the gc_bitmap field from MonoClass.
4849
4850 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
4851
4852         * domain.c: help the compiler to produce better code
4853         in mono_jit_info_table_find ().
4854
4855 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
4856
4857         * object.c: make all allocations look typed.
4858
4859 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
4860
4861         * socket-io.c: load Mono.Posix if it's not loaded already
4862         (fixes bug#73033).
4863
4864 2005-02-24  Martin Baulig  <martin@ximian.com>
4865
4866         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
4867         * reflection.c (dup_type): Likewise.
4868
4869 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
4870
4871         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
4872         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
4873
4874 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
4875
4876         * domain.c, threads.c, object-internals.h: make the critical thread
4877         local vars use the fast access mode (even when we're compiled in
4878         a lib). Provide accessors to be used by the jit during codegen.
4879
4880 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4881
4882         * appdomain.c: Changed hook functios behavior to include
4883         support for the reflection only assemblies. Some icalls were changed
4884         to support the mentioned assemblies too. Signatures of static methods
4885         try_assembly_resolve and real_load now have an additional parameter:
4886         refonly.
4887
4888         * assembly.c: General changes to mono_assembly_ methods to support
4889         reflection only api. Functions mono_assembly_open, mono_assembly_load,
4890         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
4891         suffix, to support an additional gbool parameter to specify whether
4892         the assembli is reflection only or not. Created some new hook functions 
4893         to add support for reflection only assemblies. Signatures of static 
4894         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
4895         have now an additional parameter: refonly.
4896
4897         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
4898         indicating whether the assembly is reflection only or not.
4899
4900         * exception.c: Add mono_get_exception_invalid_operation.
4901
4902         * icall.c: Throw an InvalidOperationException when trying to invoke
4903         a property/method/event, or trying to set/get the value of a field.
4904         Also add an icall to retrieve the ref_only flag to the
4905         MonoReflectionAssembly.
4906
4907 2005-02-23  Chris Toshok  <toshok@ximian.com>
4908
4909         Part of fix for #72827.
4910         * mono-debug.c (mono_debug_add_method): add lexical block data to
4911         the info we write.  Kind of a hack at the moment - we copy the
4912         lexical block info from the MonoDebugMethodInfo to the
4913         MonoDebugMethodJitInfo here, before writing it.
4914         (mono_debug_read_method): read the lexical block info.
4915
4916         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
4917
4918         * debug-mono-symfile.h: add lexical block support.
4919
4920         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
4921         support.
4922
4923 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
4924
4925         * loader.c (mono_lookup_pinvoke_call): Fix warning.
4926
4927         * object.c (mono_runtime_free_method): Call mono_free_method () and
4928         put the TODOs there.
4929
4930         * loader.c (mono_free_method): Free up most memory allocated for 
4931         dynamic methods.
4932
4933 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
4934
4935         * reflection.c: properly flag a Type argument to a
4936         named custom attr value (bug #72248).
4937
4938 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
4939
4940         * reflection.c: reduce code duplication in named custom
4941         attribute encoding.
4942
4943 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
4944
4945         * reflection.c: properly encode custom attrs of type object
4946         (bug #72649).
4947
4948 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
4949
4950         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
4951
4952 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
4953
4954         * socket-io.c: load System.dll if it's not loaded already
4955         (bug #72850 and #70477).
4956
4957 2005-02-21  Martin Baulig  <martin@ximian.com>
4958
4959         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4960         generic instances.
4961
4962 2005-02-21  Martin Baulig  <martin@ximian.com>
4963
4964         * reflection.c (mono_image_build_metadata): We also need to
4965         "fixup" the MethodImpl table after we computed the final method
4966         indices.  Call fixup_methodimpl() to do that.
4967         (fixup_methodimpl): New private method.
4968
4969 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
4970
4971         * assembly.c: special case mscorlib.dll (bug#72536),
4972         patch from Carlos Alberto Cortez.
4973
4974 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
4975
4976         * threads-types.h threads.c: Fix build bustage.
4977
4978         * threads.c: Use a union for long<->double conversions.
4979
4980         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
4981         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
4982
4983         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
4984         containing the checkpoint call with NOT_TAKEN.
4985         
4986         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
4987         checkpoint before pushing the arguments, so they won't have to be
4988         spilled to stack.
4989
4990 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
4991
4992         * domain.c, assembly.c, domain-internals.h: make some data
4993         const and relocation-free.
4994
4995 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
4996
4997         * object.c, appdomain.c, class-internals.h: introduce the
4998         MonoClassRuntimeInfo structure to hold the info needed to
4999         use a class at runtime. Made mono_class_vtable() lock-free
5000         for all the appdomains.
5001
5002 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
5003
5004         * metadata-internals.h, image.c: introduce a per-image mempool to
5005         be used for memory that has the same lifetime as the image.
5006
5007 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
5008
5009         * domain.c: In mono_init_internal(), instead of selecting the first
5010         runtime version supported by an executable, get a list of all
5011         supported versions and select the one for which an mscorlib exists
5012         (since even if the runtime supports a given version, it doesn't mean
5013         that the framework for that version is installed).
5014         Modified get_runtimes_from_exe to support this behavior.
5015         In supported_runtimes, added information about additional system
5016         assembly versions.
5017         
5018         * assembly.c: Added support for more than one system assembly version
5019         per runtime version. Updated the assembly list.
5020         In mono_assembly_remap_version, removed the initial version check,
5021         since we don't know to which version we need to compare until we
5022         get the version set on which the assembly is based.
5023         Moved the code for loading corlib into the new method
5024         mono_assembly_load_corlib(), so it can be used by the initialization
5025         code.
5026         
5027         * domain-internals.h: Updated data structures and added declaration
5028         for mono_assembly_load_corlib.
5029
5030 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5031
5032         * reflection.c (resolve_object): Fix the creation of the signature in 
5033         the SignatureHelper case.
5034
5035         * assembly.c (mono_assembly_remap_version): Fix binary search.
5036         
5037 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
5038  
5039         * class.c: Added inheritance check when a method is overloaded (from a
5040         virtual method or when implementing an interface) and when a class is
5041         inherited. Added functions to set a failure for a class and to 
5042         retreive the exception from a failure.
5043         * class-internals.h: Added fields to MonoClass to keep the exception
5044         information status for inheritance (or other exceptions) to be thrown
5045         later (i.e. not at load time).
5046         * object.c: Throw the inheritance SecurityException when a type is to 
5047         be created with either class or method inheritance violations.
5048         * reflection.c|h: Fix when getting declsec from a class. Removed 
5049         unrequired code for class. Improved sanity in parameter naming.
5050         * security-manager.c|h: Added functions to check for class and method
5051         inheritance.
5052
5053 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5054
5055         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
5056         and has_finalize in dynamic types as well.
5057
5058 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
5059
5060         * culture-info-table.h : fixed currency format for en-GB (and so on).
5061
5062 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
5063
5064         * gc.c: ensure the GC handles never have 0 as a value.
5065
5066 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5067
5068         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
5069         a pointer to a struct to unmanaged code. Fixes #72625.
5070
5071 2005-02-16  Martin Baulig  <martin@ximian.com>
5072
5073         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
5074
5075 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5076
5077         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
5078
5079 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5080
5081         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
5082
5083         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
5084         UnmanagedFunctionPointerAttribute, use it for determining calling convention
5085         etc. Fixes #71471.
5086
5087         * reflection.c (mono_custom_attrs_get_attr): New helper function.
5088
5089         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
5090
5091 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
5092
5093         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
5094         changes to make the current context a field in MonoThread.
5095
5096 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5097
5098         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
5099         the last change.
5100         
5101         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
5102         extracted from mono_marshal_get_native_wrapper.
5103
5104         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
5105         to create wrappers around native functions.
5106
5107         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
5108         delegates for arbitrary function pointers. Fixes #71472.
5109
5110 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5111
5112         * threads.c: cleaned up the code a little.
5113
5114 2005-02-15  Martin Baulig  <martin@ximian.com>
5115
5116         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
5117         the data table.
5118
5119         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
5120         allocate larger chunks if needed.
5121
5122 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5123
5124         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
5125         in by mistake.
5126
5127 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
5128
5129         * domain.c: keep the domains in an array and ensure the domain ids
5130         are kept small, so they can be used as indexes to domain-specific data
5131         with a small memory overhead.
5132
5133 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5134
5135         * icall.c: Handle byref types in Type icalls. Fixes #72544.
5136
5137 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
5138
5139         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
5140
5141 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
5142
5143         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
5144
5145         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
5146         values.
5147
5148         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
5149         
5150 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
5151
5152         * domain-internals.h: add the hashtable here.
5153
5154         * class-internals.h: Remove `info' from MonoMethod
5155
5156         * domain.c: Add a new hashtable, jit_trampoline_hash
5157
5158 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5159
5160         * object.c: don't set the value of static fields
5161         (fixes bug#72494).
5162
5163 2005-02-11  Martin Baulig  <martin@ximian.com>
5164
5165         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
5166         (mono_debug_add_method): Silently ignore the method if it's too big.
5167         (mono_debug_add_type): Likewise.
5168
5169 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
5170
5171         * threads.c, appdomain.c: remove #ifdefs from the code.
5172
5173 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
5174
5175         * metadata-internals.h: Added flags to MonoAssembly to cache the most
5176         common security informations. This allows us to stay in unmanaged code
5177         when doing LinkDemand and it's special cases (except for the first 
5178         time for initialization). The flags a very much used with --security.
5179         * reflection.c|h: Added code to get declarative security attributes 
5180         for LinkDemand and InheritanceDemand. This required to refactor the
5181         existing code for Demand.
5182         * security-manager.c|h: Added new method fields for the special cases
5183         of LinkDemand.
5184
5185 2005-02-10  Martin Baulig  <martin@ximian.com>
5186
5187         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
5188         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
5189
5190 2005-02-10  Martin Baulig  <martin@ximian.com>
5191
5192         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
5193         debugging code; this is almost a complete rewrite.
5194
5195         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
5196
5197 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5198
5199         * domain.c, object.h: expose mono_string_equal () and 
5200         mono_string_hash ().
5201         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
5202         it's implemented in managed code.
5203
5204 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5205
5206         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
5207         lo leak objects between appdomains.
5208
5209 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5210
5211         * assembly.c: old compilers compilation fix from 
5212         robertj@gmx.net (Robert Jordan).
5213
5214 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
5215
5216         * class-internals.h: Little reminder for the future.
5217
5218         * debug-helpers.c: Fix up wrapper_type_names
5219
5220 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5221
5222         * image.c, metadata-internals.h: when loading an image from a file,
5223         mmap all of it and use the same codepaths as when using a
5224         in-memory image: the code is simpler and we use less memory
5225         (both writable and readonly).
5226
5227 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5228
5229         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
5230         API to alloc runtime data structures that need to be tracked by the
5231         GC and contain pointers.
5232         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
5233         make the code more readable and eventually use a different GC.
5234
5235 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
5236
5237         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
5238         for out arguments.
5239         
5240 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
5241
5242         * object.c: In release_type_locks(), don't release the cctor lock
5243         if it has already been released. This fixes a crash in the
5244         thread5 test.
5245
5246 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5247
5248         * gc.c, marshal.c, icall.c: register a delegate for finalization
5249         only when the native function pointer has been allocated for it.
5250
5251 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5252
5253         * object.c: cleaned up some code, allocate objects that are
5254         pointer free with the atomic malloc variant. Allocate memory
5255         for static data from the mempool if it's pointer-free.
5256         Allocate the bounds array at the end of the array data, when needed.
5257         * object-internals.h, object.h: move a private function in a private
5258         header.
5259         * class.c: handle missing case in tracking references in fields.
5260
5261 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5262
5263         * class.c, class-internals.h: keep track if a type has
5264         reference fields in either the instance or static fields.
5265
5266 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
5267
5268         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
5269         and renamed to MonoRuntimeInfo. Added fields to store the expected
5270         framework assembly version. Changed mono_get_framework_version and
5271         mono_get_runtime_version for a single mono_get_runtime_info method.
5272         
5273         * assembly.c: Added method to remap system assembly versions to the
5274         current executing runtime version. Removed old mapping code.
5275         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
5276         
5277         * icall.c, reflection.c: Track api changes.
5278
5279 2005-02-06  Miguel de Icaza  <miguel@novell.com>
5280
5281         * loader.c (method_from_memberref): Improve error reporting,
5282         produce the class name instead of the typeref/typedef index. 
5283
5284 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
5285
5286         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
5287
5288 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5289
5290         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
5291         stdcall and charset name mangling.  Reorganize the code and add
5292         some tracing stuff.
5293
5294 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5295
5296         * monodiet.c: More iters!
5297
5298         * marshal.c: Iter usage.
5299
5300         * icall.c: Iter usage.
5301
5302         * object.c: Use iters.
5303
5304         * debug-helpers.c: More iters
5305
5306 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5307
5308         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
5309         under win32.
5310
5311 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5312
5313         * mono-debug-debugger.c: use iters
5314
5315         * class.c, class-internals.h: mono_class_setup_events is static
5316         now
5317
5318         * All callers: use iters
5319
5320 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5321
5322         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5323         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5324
5325 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5326
5327         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5328
5329         * marshal.h: Add prototypes for ldfld/stfld_remote.
5330
5331         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5332         this is called during startup.
5333         
5334 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5335
5336         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5337         MonoThreadsSync struct private in monitor.c. Changed the way
5338         MonoThreadsSync is allocated so it's faster and there is no
5339         need to keep track of it with a finalizer and it uses less memory.
5340         This also finally allows us to allocate mono objects as ptrfree when
5341         there are no reference fields.
5342
5343 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5344
5345         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5346         disappearing link to the GC interface and use them to simplify
5347         the gchandles code.
5348
5349 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5350
5351         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5352         stfld_remote which call mono_load/store_field_new. This allows methods
5353         calling ldfld/stfld wrappers to be AOTed.
5354
5355         * console-io.c: Include sys/filio.h under solaris.
5356         
5357         * console-io.c: Include curses.h if needed correctly.
5358
5359 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5360         
5361         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5362         method->klass as well.
5363
5364         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5365
5366         * class.c (mono_class_init): Switch on lazy initialization of 
5367         methods.
5368
5369         * class.c (mono_class_get_finalizer): Handle the case when the 
5370         finalizer is inherited.
5371
5372 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5373
5374         * console-io.c: <curses.h> is needed by term.h on solaris.
5375
5376 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5377
5378         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5379         mono_class_setup_properties where possible. Remove this ftn from
5380         the header file, and make it static.
5381
5382 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5383
5384         * loader.c: Add missing setup_... call.
5385
5386         * class.c: Add missing setup_... calls.
5387
5388         * class.c (mono_class_init): Switch on lazy initialization of 
5389         the generic vtable.
5390         
5391         * class.c (mono_class_init): Fix generics broken by the recent changes.
5392
5393         * monodiet.c (handle_type): Add missing setup_... calls.
5394
5395         * class.c: Back out garbage in previous patch.
5396         
5397         * class.c: Add missing setup_... calls.
5398
5399         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5400         mono_class_setup_methods () if possible.
5401
5402         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5403
5404         * class-internals.h (MonoCachedClassInfo): New structure.
5405
5406         * class.c: Initialize properties and events fields of MonoClass lazily.
5407
5408         * class.c: Add infrastructure for lazily initializing the methods and
5409         vtable fields of MonoClass. Not yet used.
5410
5411         * class.c (mono_class_get_finalizer): New helper function.
5412
5413         * class.c: Add infrastructure for loading some class related data from
5414         an AOT file.
5415
5416         * object.c: Add infrastructure for initializing the vtable from data
5417         in the AOT file.
5418
5419         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5420
5421         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5422         appropriate initialization function before accessing parts of the
5423         MonoClass structure.
5424
5425         * marshal.c: Fix warnings.
5426         
5427         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5428
5429         * mono-debug-debugger.c (get_exception_message): Use 
5430         mono_class_get_method_from_name_flags ().
5431
5432 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5433
5434         * reflection.c, appdomain.c: Replace a few manual searches that
5435         Zoltan missed. (Paolo approved this part of my initial patch).
5436
5437 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5438
5439         * profiler.c: disable recording statistical events at report time.
5440
5441 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5442
5443         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5444         to byteswap arrays of enum values, too (bug #72080).
5445
5446 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5447
5448         * appdomain.c (set_domain_search_path): Allow this to be called if
5449         domain->setup is not yet set.
5450
5451         * loader.c (mono_method_get_index): New helper function.
5452
5453         * loader.c reflection.c: Use mono_method_get_index ().
5454
5455         * class.c (mono_class_get_method_from_name_flags): New helper method.
5456
5457         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5458         this.
5459
5460         * class.c (mono_class_get_cctor): New helper method.
5461
5462         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5463         mono_class_get_method () to look up methods.
5464
5465 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5466
5467         * console-io.c: Fix the build, this should work on Windows.
5468
5469 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5470
5471         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5472         be set to null to keep things valid
5473
5474 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5475
5476         * icall.c: added Console 2.0 icalls.
5477         * Makefile.am: added console-io.[ch]
5478         * console-io.[ch]: internal calls for Console 2.0 API.
5479
5480 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5481
5482         * class.c: make sure we consider all the interfaces
5483         when calculating max_interface_id (bug found by
5484         Jeroen Frijters running ikvm).
5485
5486 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5487
5488         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
5489         valuetype fields to null.
5490
5491         * object.c (set_value): Ditto. Fixes #71669.    
5492
5493 2005-01-31  Martin Baulig  <martin@ximian.com>
5494
5495         * metadata.c (mono_metadata_has_generic_params): New public
5496         function; checks whether something is a generic method.
5497
5498 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
5499
5500         * appdomain.c: fix infinite recursion when adding assemblies.
5501
5502 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
5503
5504         * object.c: Fix small typo to return all items for Environment.
5505         GetCommandLineArgs.
5506
5507 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5508
5509         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5510         reflection.c: more domain and assembly-unload related fixes
5511         and memory leaks plugs.
5512
5513 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
5514
5515         * 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.
5516
5517 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
5518
5519         * loader.c (mono_method_signature): Make this method lazy
5520         (mono_get_method_from_token): Don't computate the signature here.
5521
5522         Doing this saves quite a bit of memory. I got 90 kb on starting up
5523         monodoc. It should also save some disk reads on startup.
5524
5525         * *: MonoMethod->signature might be NULL now. You *MUST* use
5526         mono_method_signature.
5527
5528 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
5529
5530         * object.c (mono_runtime_get_main_args): Return an array from the
5531         current domain here. Fixes #71938.
5532
5533 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
5534
5535         * monitor.c: formatting changes to comply with the
5536         mono coding style and remove #ifdefs from the code.
5537
5538 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5539
5540         * metadata.c, private.h: remove some unneeded data
5541         and use a more compact representation for table schemas.
5542
5543 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
5544
5545         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
5546         to get a better distribution in hash tables.
5547         * *.c: use mono_aligned_addr_hash() where appropriate.
5548         * assembly.c: make var static.
5549
5550 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
5551
5552         * domain-internals.h: Put MonoJitInfo on a diet.
5553
5554         * domain.c: Fix a warning.
5555
5556 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5557
5558         * gc.c: rework the gc handles code to reuse handles
5559         when freed.
5560
5561 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5562
5563         * domain.c: fixed long standing bug in mono_string_equal() which
5564         was brought to light with the ldstr changes.
5565
5566 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
5567
5568         * reflection.c: Remove warning by adding missing include for marshal.h
5569
5570 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5571
5572         * domain.c, object.c: change the ldstr_table to hold
5573         MonoString* as keys: makes the runtime isinterned lookup
5574         faster and simplifies memory management.
5575
5576 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
5577  
5578         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
5579         possible to add imperative security checks before calling the icall.
5580         * reflection.c: Return security attributes on the original MonoMethod
5581         (and not the wrapped one). This fix permissions on icalls.
5582
5583 2005-01-25  Dick Porter  <dick@ximian.com>
5584
5585         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
5586         the check for mktime() support actually test the mktime() return
5587         value.  "Fixes" bug 71682, though the output is still different to
5588         MS.
5589
5590 2005-01-25  Martin Baulig  <martin@ximian.com>
5591
5592         * class.c (mono_class_is_assignable_from): Make this work for
5593         generic instances.
5594
5595 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
5596
5597         * marshal.c (mono_string_utf8_to_builder)
5598         (mono_string_builder_to_utf16): We might not have ownership of the
5599         string. In thise case, we need to create a new buffer.
5600
5601         * object-internals.h (mono_stringbuilder_capacity): sb->str might
5602         be null, in which case, use the default capacity.
5603
5604 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5605
5606         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
5607         GC events to the profiler.
5608
5609 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5610
5611         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
5612         if you don't want the GC to run.
5613
5614 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
5615
5616         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
5617         start providing a GC API and keeping different implementations in
5618         their own file.
5619         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
5620
5621 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
5622
5623         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
5624         mmap rather than allocating a huge buffer.
5625         (mono_debug_close_mono_symbol_file): Free the buffer allocated
5626         above.
5627
5628 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
5629
5630         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
5631         and CheckExecutionRights.
5632         * reflection.c|h: Keep the index of the declarative security to be 
5633         used, instead of the pointer, when AOT compiler is used. Also add 
5634         class initialization when requesting demands.
5635         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
5636         CheckExecutionRights. Both properties are now FALSE by default, and
5637         unmodifiable, unless the --security option is used.
5638
5639 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5640
5641         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
5642         reflection.c: properly refcount images and assemblies, many leaks fixed.
5643
5644 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5645
5646         * threadpool.c: increase the timeout for threads in the thread pool to
5647         10s.  Fixes bug #67159.
5648
5649 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5650
5651         * class-internals.h: Sun's compiler insists on explicit
5652         signed on bit fields to handle then correctly.
5653
5654 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
5655
5656         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
5657         Make the size of the array fit only the number of invalid path
5658         chars that we have.
5659
5660         * class.c (_mono_class_get): Improve the error reporting when a
5661         class referenced is not found, to assist debugging. 
5662
5663 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
5664
5665         * threads.c: fix off-by-one error.
5666         * domain.c: free data allocated in the domain.
5667
5668 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5669
5670         * reflection.c (mono_method_body_get_object): Fill out exception info
5671         as well.
5672
5673         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
5674         structure.
5675         
5676 2005-01-19  Martin Baulig  <martin@ximian.com>
5677
5678         * loader.c (mono_get_method_constrained): Make this work again.
5679
5680 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5681
5682         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
5683         guint16 to match the managed side.
5684
5685         * reflection.c (mono_reflection_body_get_object): Fill out local
5686         variables array.
5687
5688         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
5689         as well.
5690
5691         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
5692         'local_var_sig_token'.
5693
5694 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
5695
5696         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
5697         System.Drawing.
5698
5699         * reflection.c (mono_method_body_get_object): Handle abstract and
5700         runtime methods.
5701
5702 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
5703
5704         * marshal.c, loader.c, class-internals.h, reflection.c:
5705         store the emthod data for a wrapper in an array instead of a list.
5706
5707 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
5708
5709         * marshal.c: change the code to allocate memory more
5710         conservatively for method wrappers.
5711
5712 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
5713
5714         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
5715         fields from MonoClass to the marshal info structure where they belong.
5716
5717 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5718
5719         * class.c, object.c, class-internals.h, marshal.c: rearrange
5720         some fields and tweak some types to lower memory usage.
5721
5722 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
5723
5724         * threads.c (signal_thread_state_change): Handle the case when the
5725         target thread is the current thread.
5726
5727         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
5728
5729         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
5730         emit_ptr_to_object_conv. 
5731
5732         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
5733         marshalling. Fixes #71352.
5734
5735 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5736
5737         * metadata.h, blob.h: move table enum to blob.h so it can be included
5738         in any header.
5739         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
5740         cut the size of MonoImage/MonoDynamicImage.
5741
5742 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
5743
5744         * profiler.c (mono_profiler_install_simple): Fix default arguments.
5745
5746 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5747
5748         * reflection.c, reflection.h, icall.c: add a function to check
5749         if an attribute type is defined for a metadata object.
5750
5751 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
5752
5753         * object-internals.h: Added some needed fields from StringBuilder class.
5754         * marshal.c: Set the maxCapacity when creating a StringBuilder.
5755
5756 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
5757
5758         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
5759         threads before shutting down the runtime.
5760
5761         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
5762
5763 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5764
5765         * object-internal.h, threads.c: implement stacksize and 
5766         parameterized thread start functionality (requires
5767         matching corlib). Marked broken code for later removal.
5768
5769 2005-01-12  Martin Baulig  <martin@ximian.com>
5770
5771         * class-internals.h (MonoGenericClass): Moved the `initialized'
5772         flag to MonoDynamicGenericClass, removed `init_pending'.
5773         (MonoGenericInst): Added `is_reference' flag.
5774
5775 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
5776
5777         * reflection.c (mono_image_create_pefile): Only set the pe_offset
5778         inside the MSDOS header. Fixes #71201.
5779
5780         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
5781         gc thread.
5782         (mono_domain_finalize): Ditto.
5783
5784 2005-01-12  Martin Baulig  <martin@ximian.com>
5785
5786         * class.c (mono_get_shared_generic_class): Use the cache for
5787         non-dynamic generic classes.
5788
5789         * class-internals.h (mono_class_create_generic_2): Removed
5790         function prototype, this function is now static inside class.c.
5791
5792         * class.c (mono_class_create_generic_2): Made this static, only
5793         call it from mono_class_init() and mono_class_setup_parent().
5794         (collect_implemented_interfaces_aux): Call mono_class_init() on
5795         the interfaces we collect.
5796         (mono_class_setup_vtable): Call mono_class_init (class->parent).
5797
5798 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
5799
5800         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
5801         it a real thread handle.
5802
5803         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
5804         MonoJitExceptionInfo, since each catch clause needs its own variable.
5805         
5806 2005-01-11  Dick Porter  <dick@ximian.com>
5807
5808         * image.c (mono_pe_file_open): New variant on mono_image_open()
5809         that does not set up the CLI metadata; used for FileVersionInfo so
5810         it can get the data for windows binaries too.
5811         
5812         * process.c (process_read_string_block): Don't read off the end of
5813         the StringTable block.
5814
5815         These both fix bug 70766.
5816
5817 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
5818
5819         * gc.c: set some fields to NULL at GC cleanup time.
5820         * threads.c: if we quit the main thread, call exit ().
5821
5822 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
5823
5824         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
5825
5826 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
5827
5828         * threads.h, threads.c, object.c: added accessor and settor for
5829         main_thread. Handle it specially when exiting from it: wait
5830         for other foreground threads to exit.
5831
5832 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
5833
5834         * process.c, verify.c: remove some bloat.
5835
5836 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
5837
5838         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
5839         the calling convention to cdecl under win32.
5840
5841 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
5842
5843         * object.c (mono_object_get_size): New function to get the size of
5844         an object instance.
5845
5846         * profiler.c (simple_allocation): Use above.
5847
5848 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
5849
5850         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
5851         ves_icall_System_AppDomain_getRootDomain (as it's not required to
5852         get an appdomain by it's id and we can't assume the root's id is 0).
5853         * domain-internals.h: Change the function prototype to match.
5854         * icall.c: Change the icall table for AppDomain.
5855
5856 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
5857
5858         * locales.c (string_invariant_compare_char): Only compute
5859         GUnicodeTypes in the case where we need them.  Test for ordinality
5860         first and return if so.
5861
5862         From the commit:
5863
5864                 /*
5865                  * FIXME: here we must use the information from c1type and c2type
5866                  * to find out the proper collation, even on the InvariantCulture, the
5867                  * sorting is not done by computing the unicode values, but their
5868                  * actual sort order.
5869                  */
5870
5871 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5872
5873         * loader.c: for P/Invoke methods, allow the "Internal" shared
5874         library name to refer to the calling process symbol namespace.
5875
5876 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
5877
5878         * Makefile.am: Add the security manager to the build.
5879         * security-manager.c|h: New. Initialization of the security manager.
5880
5881 2005-01-07  Dick Porter  <dick@ximian.com>
5882
5883         * threads.c: 
5884         * monitor.c: Update thread state during Monitor and WaitHandle
5885         waits.  Fixes bug 71031.
5886
5887 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
5888
5889         * reflection.c (property_encode_signature): Correctly handle when the
5890         property has no methods.
5891
5892 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
5893
5894         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
5895         
5896         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
5897         fields from mb, not rmb. Fixes #71017.
5898
5899         * marshal.c (emit_ptr_to_str_conv): Add support for 
5900         ByValTStr -> string conversion. Fixes #71015.
5901
5902         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
5903
5904         * mempool.c (mono_mempool_contains_addr): New helper function.
5905
5906 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
5907
5908         * metadata.c (mono_metadata_compute_size): Fix size calculation of
5909         HasSematics encoded fields.
5910         
5911         * metadata.c (mono_type_to_unmanaged): Improve error message for 
5912         invalid string marshalling.
5913
5914         * metadata.c: Fix warnings.
5915         
5916 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5917
5918         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
5919         profiler support.
5920
5921 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
5922
5923         * domain.c object.c domain-internals.h: Revert part of r38077 since the
5924         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
5925         tests.
5926
5927 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
5928
5929         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
5930         so methods containing these can be AOTed.
5931
5932 2005-01-03  Martin Baulig  <martin@ximian.com>
5933
5934         * loader.c (find_method): Removed the hack for generic instances.
5935         (method_from_memberref): If our parent is a generic instance, pass
5936         its generic type definition to find_method() and then inflate the
5937         method.
5938         (mono_get_method_constrained): Pass the generic type definition to
5939         find_method() and inflate the method later.
5940
5941         * class-internals.h (MonoStats): Added `generic_class_count'.
5942
5943         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
5944         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
5945
5946         * reflection.c (mono_custom_attrs_from_params): Don't ignore
5947         generic type definitions.
5948
5949 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
5950
5951         * loader.c icall.c: Fix warnings.
5952
5953 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
5954
5955         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
5956         blittable types. Fixes #70864.
5957
5958 2004-12-29  Martin Baulig  <martin@ximian.com>
5959
5960         * icall.c
5961         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
5962
5963         * reflection.c (mono_method_get_object): Create a
5964         "System.Reflection.MonoGenericMethod" for inflated methods; don't
5965         call mono_get_inflated_method().
5966
5967         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
5968
5969 2004-12-27  Martin Baulig  <martin@ximian.com>
5970
5971         * class-internals.h (MonoMethod): Added `is_inflated' flag.
5972         (MonoMethodInflated): Added `inflated' field.
5973
5974         * class.c (mono_class_inflate_generic_method): Don't really
5975         inflate the method here; just set the `is_inflated' flag in the
5976         MonoMethod.
5977         (mono_class_get_inflated_method): Actually inflate the method here
5978         if it's not already inflated; we use the MonoMethodInflated's new
5979         `inflated' field as a cache.
5980
5981 2004-12-26  Martin Baulig  <martin@ximian.com>
5982
5983         * class.c
5984         (inflate_generic_class): Moved some code out of inflate_generic_type().
5985         (mono_class_inflate_generic_method): If we're already inflated,
5986         inflate the context and use the declaring method; ie. make sure
5987         the declaring method of an inflated method is always the generic
5988         method definition.
5989         (mono_class_create_from_typedef): Create
5990         `class->generic_container->context->gclass'.
5991
5992 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
5993
5994         * metadata-internals.h, marshal.c, reflection.c: More
5995         MonoGHashTable->GHashTable.
5996
5997         * domain-internals.h, class.c: Change MonoGHashTable's into
5998         GHashTables for some cases where no gc stuff is used
5999
6000         All users: update apis
6001
6002 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
6003
6004         * metadata.c (builtin_types): Make this `const'. Makes this get
6005         put into the shareable section.
6006         (mono_metadata_init): Casts to make gcc happy.
6007
6008 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
6009
6010         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
6011
6012 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
6013
6014         * icall.c: Added an internal call to retrieve the position and length
6015         of assembly-level declarative security attributes (RequestMinimum, 
6016         RequestOptional and RequestRefuse). This is used by the Assembly class
6017         to re-create the corresponding permission sets.
6018
6019 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
6020
6021         * marshal.c: fix the stelemref wrapper to be type correct
6022         (and faster).
6023
6024 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
6025
6026         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
6027         to do key & 0x7fffffff. Hashtable already does this. It just
6028         results in longer code.
6029
6030 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
6031
6032         * appdomain.c: Bump corlib version.
6033         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
6034         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6035         * reflection.c|h: Add functions to get declarative security infos
6036         (blob position and length) for assemblies, classes and methods.
6037
6038 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
6039
6040         * reflection.c: sort the constant table (bug #70693).
6041
6042 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
6043
6044         * object-internals.h, threads.c, domain.c: add accessors for
6045         the MonoThread and MonoDomain tls keys.
6046
6047 2004-12-18  Martin Baulig  <martin@ximian.com>
6048
6049         * class.c (inflate_generic_type): If we're inflating a generic
6050         instance, set `ngclass->context->container = context->container';
6051         ie. the container we inflated into.
6052
6053         * metadata.c (mono_metadata_parse_generic_param): Reflect above
6054         inflate_generic_type() changes.
6055
6056 2004-12-17  Martin Baulig  <martin@ximian.com>
6057
6058         * class-internals.h
6059         (MonoGenericClass): Replaced `MonoType *generic_type' with
6060         `MonoClass *generic_class'.  Removed `dynamic_info'; if
6061         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
6062         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
6063
6064 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
6065
6066         * exception.c (mono_exception_from_token): New helper function.
6067
6068 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
6069
6070         * assembly.c (mono_assembly_load_with_partial_name): Call 
6071         mono_assembly_loaded before invoking the preload hooks. Fixes
6072         #70564.
6073
6074         * object-internals.h (MonoThread): Change culture_info and 
6075         ui_culture_info into an array.
6076
6077         * threads.c: Cache culture info objects from more than one appdomain.
6078
6079         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
6080         current UI culture.
6081
6082 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
6083
6084         * threads.h threads.c appdomain.c: Clear the culture_info field of
6085         all threads during unloading if they point to an object in the dying
6086         appdomain.
6087
6088 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
6089
6090         * culture-info.h (TextInfoEntry): New struct
6091         * object-internals.h: sync with managed
6092         * locales.c: fill the `text_info_data' field
6093         * culture-info-tables.h: update
6094
6095 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
6096
6097         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
6098         collector.
6099
6100 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
6101
6102         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
6103         (ves_icall_ModuleBuilder_getMethodToken): Ditto
6104
6105 2004-12-12  Martin Baulig  <martin@ximian.com>
6106
6107         * mono-debug-debugger.c (write_type): If we're an enum and the
6108         builtin types have already been initialized, call mono_class_init().
6109
6110 2004-12-11  Martin Baulig  <martin@ximian.com>
6111
6112         * metadata.c (mono_metadata_load_generic_params): Added
6113         `MonoGenericContainer *parent_container' argument; automatically
6114         compute `container->is_method'; pass the correct owner to
6115         get_constraints().      
6116
6117         * reflection.c (compare_genericparam): Sort the GenericParam table
6118         according to increasing owners. 
6119
6120 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
6121
6122         * profiler.c: allow disabling the default profiler.
6123
6124 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
6125
6126         * decimal.c, icall.c: allow disabling System.Decimal support.
6127
6128 2004-12-09  Marek Safar <marek.safar@seznam.cz>
6129
6130         * reflection.c: Add support for null attribute arguments.
6131
6132 2004-12-09  Martin Baulig  <martin@ximian.com>
6133
6134         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
6135         names to get rid of compiler warnings.
6136
6137 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6138
6139         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
6140         mono_marshal_load_type_info (). Fixes #69625.
6141         (mono_marshal_get_ptr_to_struct): Likewise.
6142
6143 2004-12-08  Martin Baulig  <martin@ximian.com>
6144
6145         * mono-debug.h: Bumped version number to 47.
6146
6147         * mono-debug-debugger.c
6148         (mono_debugger_event_handler, mono_debugger_event): Take two
6149         guint64 arguments insteed of a gpointer and a guint32.  
6150
6151 2004-12-08  Martin Baulig  <martin@ximian.com>
6152
6153         * debug-mono-symfile.h
6154         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
6155         `address' to `native_offset'.
6156
6157 2004-12-08  Martin Baulig  <martin@ximian.com>
6158
6159         * class.c (mono_class_create_from_typespec): Only inflate if we
6160         either have `context->gclass' or `context->gmethod'.
6161
6162 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6163
6164         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
6165
6166         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
6167
6168         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
6169
6170         * reflection.c (mono_assembly_get_object): Remove the workaround put
6171         in for the release.
6172         
6173         * appdomain.c: Use the corlib_internal field from MonoAssembly.
6174
6175         * appdomain.c: Bump corlib version.
6176
6177         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
6178         be visible in other appdomains.
6179
6180 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
6181
6182         * threads.c: Interlocked inc and dec for longs were messed up,
6183         use a KISS based impl for this. Fixes 70234
6184
6185 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
6186
6187         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
6188
6189 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6190
6191         * icall.c: fix to follow policy not to allow struct
6192         arguments in icalls.
6193
6194 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6195
6196         * process.c: make the patch that handles spaces in file paths work
6197         on mono/windows too.
6198
6199 2004-12-06  Martin Baulig  <martin@ximian.com>
6200
6201         * class.c (mono_class_create_generic): Call
6202         mono_class_setup_supertypes() if we're dynamic.
6203         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
6204
6205 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
6206
6207         * object-internals.h: Add new fields to MonoThread.
6208
6209         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6210
6211         * icall.c threads-types.h threads.c: Add new icalls.
6212
6213         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
6214
6215         * object-internals.h (MonoReflectionAssembly): Sync object layout with
6216         managed side.
6217
6218         * appdomain.c: Bump corlib version.
6219
6220         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
6221         internal assemblies. Fixes #69181.
6222
6223 2004-12-05  Martin Baulig  <martin@ximian.com>
6224
6225         * class.c (mono_class_inflate_generic_signature): Make this a
6226         no-op if `context' is NULL or we don't have any type parameters;
6227         also copy `sentinelpos'.        
6228
6229 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
6230
6231         * image.c: Add unbox_wrapper_cache.
6232
6233         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
6234
6235         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
6236         function generator.
6237         
6238         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
6239         Fixes #70173.
6240
6241         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
6242         
6243 2004-12-04  Martin Baulig  <martin@ximian.com>
6244
6245         * loader.c (mono_method_get_signature_full): New public function;
6246         like mono_method_get_signature(), but with an additional
6247         `MonoGenericContext *' argument.
6248
6249         * class.c (mono_class_inflate_generic_signature): Formerly known
6250         as inflate_generic_signature(); make this public.
6251
6252 2004-12-04  Martin Baulig  <martin@ximian.com>
6253
6254         * metadata.c
6255         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
6256         instead of a `MonoGenericContainer *'.  
6257         (mono_metadata_parse_array_full): Likewise.
6258         (mono_metadata_parse_signature_full): Likewise.
6259         (mono_metadata_parse_method_signature_full): Likewise.
6260         (mono_metadata_parse_generic_inst): Likewise.
6261         (mono_metadata_parse_generic_param): Likewise.
6262         (mono_metadata_parse_mh_full): Likewise.
6263         (mono_type_create_from_typespec_full): Likewise.
6264
6265 2004-12-03  Martin Baulig  <martin@ximian.com>
6266
6267         * class-internals.h (MonoGenericContainer): Replaced the
6268         `MonoGenericContext * pointer with a `MonoGenericContext'
6269         structure and made it the first element.
6270
6271 2004-12-03  Martin Baulig  <martin@ximian.com>
6272
6273         * class.c
6274         (inflate_generic_type): Set the `context->container' when creating
6275         a new MonoGenericContext.
6276         (mono_class_inflate_generic_method): Likewise.
6277         (mono_class_create_from_typespec): Just use `context->container'
6278         to get the container.
6279
6280         * loader.c (method_from_methodspec): Set `context->parent' from
6281         `context->container' - and if that's a method container, use its
6282         parent.  Also set the `context->container' when creating a new
6283         MonoGenericContext.
6284         (mono_get_method_from_token): Use just `context->container' to get
6285         the container.
6286
6287         * metadata.c (do_mono_metadata_parse_generic_class): Also set
6288         `gclass->context->container'.
6289
6290         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
6291         the `context->container' when creating a new MonoGenericContext.
6292
6293 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
6294
6295         * reflection.c (compare_genericparam): Sort params with identical
6296         owner by their number. Fixes gen-111 on sparc.
6297
6298 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6299
6300         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
6301         around the domain changes.
6302
6303         * appdomain.c (mono_domain_unload): Handle the case when the thread
6304         calling Unload is itself being aborted during unloading. Fixes #70022.
6305
6306         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
6307
6308         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
6309         checkpoint_func as an icall so it gets a wrapper.
6310         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
6311         in the cross-appdomain wrappers too.
6312
6313         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6314
6315         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6316
6317         * reflection.c: Fix some memory leaks.
6318         
6319 2004-12-02  Martin Baulig  <martin@ximian.com>
6320
6321         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6322
6323         * metadata.c (generic_class_cache): New static hashtable.
6324         (mono_metadata_lookup_generic_class): New public method.
6325
6326 2004-12-02  Martin Baulig  <martin@ximian.com>
6327
6328         * class.c (mono_class_create_from_typedef): Call
6329         mono_class_setup_parent() and mono_class_create_mono_type() before
6330         parsing the interfaces.
6331
6332 2004-12-02  Martin Baulig  <martin@ximian.com>
6333
6334         * metadata.c (generic_inst_cache): New static hashtable.
6335         (mono_metadata_lookup_generic_inst): New public function.
6336         (mono_metadata_inflate_generic_inst): New public function.
6337         (mono_metadata_parse_generic_inst): New public function.
6338         (do_mono_metadata_parse_generic_class): Use the new
6339         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6340         since this'll also use the cache.
6341
6342         * reflection.c (mono_reflection_bind_generic_method_parameters):
6343         Use mono_metadata_lookup_generic_inst() to use the new cache.
6344
6345         * class.c (inflate_mono_type): Use
6346         mono_metadata_inflate_generic_inst() to inflate a generic
6347         instance; this'll also use the new cache.
6348
6349         * loader.c (method_from_methodspec): Use
6350         mono_metadata_parse_generic_inst() and
6351         mono_metadata_inflate_generic_inst() rather than parsing it
6352         manually, so we can use the new cache.
6353
6354 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6355
6356         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6357         the wait times out.
6358
6359 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6360
6361         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6362         iter->args based on whether parameters are passed in registers (i.e.
6363         MONO_ARCH_REGPARMS is defined)
6364
6365 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6366
6367         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6368         the exception message. Fixes #70070.
6369         (method_from_methodspec): Fix warnings.
6370
6371 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6372
6373         * process.c: (complete_path) return the path quoted
6374
6375 2004-12-01  Martin Baulig  <martin@ximian.com>
6376
6377         * class-internals.h (MonoGenericInst): New structure.
6378         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6379         `is_open' with `MonoGenericInst *inst'.
6380         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6381         `is_open' with `MonoGenericInst *inst'.
6382
6383 2004-11-30  Martin Baulig  <martin@ximian.com>
6384
6385         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6386
6387         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6388         to `generic_class_cache'.
6389
6390         * metadata.c
6391         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6392         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6393         (mono_generic_inst_is_valuetype): Renamed to
6394         mono_generic_class_is_valuetype().
6395
6396         * class-internals.h
6397         (MonoGenericInst): Renamed to MonoGenericClass.
6398         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6399         (MonoClass): Renamed `generic_inst' to `generic_class'.
6400         (MonoGenericContext): Renamed `ginst' to `gclass'.
6401
6402         * object-internals.h
6403         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6404
6405         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6406         mono_reflection_generic_class_initialize().
6407
6408         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6409         now known as "System.Reflection.MonoGenericClass".
6410         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6411
6412 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6413
6414         * class-internals.h: Added a flag field to MonoClass to cache the
6415         declarative security attributes actions associated with the class.
6416         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6417         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6418         applicable to the JITted method.
6419         * reflection.c|h: Added functions to extract (as flags) which security
6420         actions are available (declaratively) for a method, class or assembly.
6421         * metadata.c|h: Added functions to search the declarative security
6422         table in the metadata.
6423         
6424 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6425
6426         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6427         EXPORTEDTYPES are already in the class name cache, so there is no
6428         need to add extra code here to look at them. Just removes a bit of
6429         cruft.
6430
6431         (ves_icall_System_Environment_get_TickCount): No need for #if
6432         WINDOWS. We already have the code in io-layer.
6433
6434 2004-11-28  Martin Baulig  <martin@ximian.com>
6435
6436         * loader.c
6437         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6438         Fixes gen-112.cs.
6439
6440 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6441
6442         * assembly.c (do_mono_assembly_open): Instead of having a
6443         conditional WITH_BUNDLE, incorporate support for bundles here, by
6444         having a global `bundles' variable holding a pointer to the actual
6445         bundles. 
6446
6447         (mono_register_bundled_assemblies): New API call used by the
6448         bundle code. 
6449
6450         See mkbundle.1 for details.
6451         
6452 2004-11-27  Martin Baulig  <martin@ximian.com>
6453
6454         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6455         the vtable for generic methods.
6456
6457 2004-11-26  Martin Baulig  <martin@ximian.com>
6458
6459         * metadata.c
6460         (mono_metadata_generic_method_hash): New public function.
6461         (mono_metadata_generic_method_equal): Likewise.
6462
6463         * class-internals.h
6464         (MonoGenericContainer): Added `GHashTable *method_hash'.
6465
6466         * reflection.c (ReflectionMethodBuilder): Added
6467         `MonoGenericContainer *generic_container'.
6468         (reflection_methodbuilder_to_mono_method): Don't create a new
6469         MonoGenericContainer each time we're called.
6470         (mono_reflection_bind_generic_method_parameters): Use
6471         `container->method_hash' to cache the results so we don't create a
6472         different method if we're called several times with the same
6473         arguments.
6474
6475         * loader.c (method_from_methodspec): Use the new
6476         `container->method_hash' here, too.
6477
6478 2004-11-26  Martin Baulig  <martin@ximian.com>
6479
6480         * class.c (inflate_generic_signature): Correctly compute
6481         `res->has_type_parameters'.
6482         (mono_class_vtable): Use the `has_type_parameters' flag to
6483         determine whether we're a generic method.
6484
6485         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6486
6487 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6488
6489         * object.c (mono_runtime_run_main): Fix a small memory leak.
6490
6491 2004-11-25  Martin Baulig  <martin@ximian.com>
6492
6493         * class.c (set_generic_param_owner): Fixed the loop.
6494
6495 2004-11-25  Martin Baulig  <martin@ximian.com>
6496
6497         * object.c (mono_class_vtable): Don't create any JIT wrappers for
6498         generic methods.
6499
6500 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
6501
6502         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
6503         names. Fixes #69787.
6504
6505 2004-11-24  Martin Baulig  <martin@ximian.com>
6506
6507         * class.c (mono_class_create_generic_2): If we don't have a
6508         `ginst->parent', inflate `gklass->parent' to get our parent.
6509
6510 2004-11-24  Martin Baulig  <martin@ximian.com>
6511
6512         * reflection.c (compare_genericparam): Correctly sort the
6513         GenericParam table; fixes #69779.
6514
6515 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
6516
6517         * reflection.c: When writing a PE file, don't create a huge
6518         buffer in memory. Just write the arrays we have to the file.
6519         This reduces memory usage.
6520
6521         * metadata-internals.h: MonoDynamicStream pefile is no longer used
6522         globally.
6523
6524 2004-11-17  Martin Baulig  <martin@ximian.com>
6525
6526         * class.c (mono_class_init): Don't setup `class->parent' for
6527         dynamic instances; moved this to mono_class_generic_2().
6528         (mono_class_create_generic): Also set `klass->inited' for dynamic
6529         generic instances.
6530         (mono_class_create_generic_2): Don't do anything for dynamic
6531         generic instances.  Set `klass->parent' here and also call
6532         mono_class_setup_parent() here. 
6533
6534         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
6535         `MonoType *parent' argument; set `ginst->parent' before calling
6536         mono_class_create_generic_2(), so we set the correct parent.
6537
6538 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
6539
6540         * reflection.c: allow getting attributes from ModuleBuilder
6541         (used by ikvm).
6542
6543 2004-11-17  Martin Baulig  <martin@ximian.com>
6544
6545         * class.c (mono_class_create_from_typedef): If a type parameter is
6546         inherited from an outer class, set its owner to that class.
6547
6548 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
6549
6550         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
6551           for (int*) written size. This fixes bug #69592.
6552
6553 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
6554
6555         * icall.c: Added IsAuthenticodePresnet internal call.
6556         * image.c|h: New function that check a MonoImage for an Authenticode
6557         signature in the certificate PE data directory.
6558         * security.c|h: New internal call to ask the runtime if an 
6559         Authenticode signature seems referenced in the PE header.
6560
6561 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
6562
6563         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
6564
6565         * reflection.c (mono_image_create_pefile): Free the assembly streams
6566         after writing out the assembly file.
6567
6568         * object.c (mono_runtime_run_main): Fix small memory leak.
6569
6570         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
6571         property access modifiers. Fixes #69389.
6572
6573 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
6574
6575         * domain.c, object.c, object-internals.h, domain-internals.h,
6576         object.h, marshal.c: keep dynamic code info per domain.
6577
6578 2004-11-15  Martin Baulig  <martin@ximian.com>
6579
6580         * class.c (mono_type_get_name_recurse): Put type arguments in
6581         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
6582         see bug #68387.
6583
6584 2004-11-15  Martin Baulig  <martin@ximian.com>
6585
6586         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
6587         (mono_class_setup_vtable): When computing `the_cname' for a
6588         generic instance, don't include the namespace since we'd otherwise
6589         add it twice.
6590
6591 2004-11-15  Martin Baulig  <martin@ximian.com>
6592
6593         * class.c (mono_class_create_generic): Changed return type to void.
6594         (mono_class_create_generic_2): New public function; setup
6595         `class->method', `class->field' and `class->interfaces' here
6596         instead of in mono_class_init().
6597
6598         * class.h (mono_class_create_generic): Moved to class-internals.h.
6599
6600 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
6601
6602         * reflection.c (mono_image_create_pefile): take a file HANDLE.
6603         rather than writing to memory, write to this file. Right now,
6604         we are just writting into a buffer, and copying that. However
6605         we can avoid the buffer later.
6606
6607         (mono_dynamic_stream_reset): new function
6608
6609         * icall.c, object-internals.h: update for the above.
6610
6611 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
6612
6613         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
6614         have been using gc'd memory. First it is slower, unlikely
6615         the comment in the source code said, secondly, it increases
6616         our footprint to do it in the gc.
6617
6618         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
6619         the method so that it does not have to copy to managed code.
6620
6621 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
6622
6623         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
6624
6625 2004-11-12  Martin Baulig  <martin@localhost>
6626
6627         * reflection.c (mono_image_create_token): Allow generic method
6628         definitions here, since they may appear in an `.override'; see
6629         gen-98/gen-99 for an example.
6630
6631 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
6632
6633         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
6634         #69365.
6635
6636         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
6637         descriptive.
6638
6639 2004-11-11  Martin Baulig  <martin@ximian.com>
6640
6641         * class.c (mono_class_setup_vtable): In an explicit interface
6642         implementation, the method name now includes the arity.
6643
6644 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
6645
6646         * object.c (mono_array_full_copy): Fix warning.
6647
6648 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
6649
6650         * appdomain.c: Removed look_for_method_by_name(). Use the new method
6651         mono_class_get_method_from_name() instead.
6652         
6653         * class-internals.h: Added two new types of wrappers. 
6654         Added MonoRemotingTarget enum. Added new trampoline function type, which
6655         takes an additional MonoRemotingTarget value as parameter, so it is
6656         possible to request a trampoline for a specific target.
6657         
6658         * class.c: Added new mono_class_get_method_from_name() method.
6659         
6660         * class.h: In MonoRemoteClass, we can have now to vtables, one for
6661         general remoting sinks and one specific for cross domain calls.
6662         
6663         * debug-helpers.c: Added new wrapper names.
6664         
6665         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
6666         of a remote class.
6667         
6668         * image.c: Porperly delete value objects form the remoting invoke hashtable.
6669         
6670         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
6671         with several other methods (mono_marshal_get_xappdomain_dispatch,
6672         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
6673         and others) can generate a fast remoting wrapper for cross domain calls.
6674         More information can be found in docs/remoting.
6675         Other changes: Removed mono_find_method_by_name, and used
6676         mono_class_get_method_from_name instead.
6677         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
6678         is stored in the remoting invoke hashtable.
6679         
6680         * marshal.h: published the new method for getting the xdomain wrapper,
6681         and also added a method for getting the adequate wrapper for a given
6682         method and target.
6683         
6684         * object-internals.h, object.c: Added a couple of methods for capying and
6685         cloning arrays.
6686         Modified mono_install_remoting_trampoline, which takes the new remoting
6687         trampoline that has a remoting target as parameter.
6688         mono_class_proxy_vtable now also takes a remoting target as parameter, and
6689         will return the most suitable vtable for the target.
6690         Added mono_remote_class_vtable, which returns the vtable of a remote class
6691         (which can be the normal remoting vtable or the xdomain vtable).
6692         
6693         * threads.c: the xdomain invoke and dispatch wrappers must also be
6694         protected against interruptions.
6695
6696 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6697
6698         * icall.c: use memmove in BlockCopyInternal when the source and
6699         destination arrays are the same.
6700
6701 2004-11-09  Martin Baulig  <martin@ximian.com>
6702
6703         * class-internals.h (MonoGenericContainer): Removed `method' and
6704         `signature', replaced them with `is_method' and `is_signature'
6705         flags.  Added `context'.
6706
6707         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
6708         instead of a `MonoGenericContainer *'.
6709
6710         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
6711         for dynamic type parameters.
6712         (mono_metadata_load_generic_params): Setup `container->context'.
6713
6714         * reflection.c (mono_reflection_setup_generic_class): Setup
6715         `tb->generic_container->context'.
6716         (do_mono_reflection_bind_generic_parameters): Use
6717         mono_class_inflate_generic_type() to correctly inflate types,
6718         rather than using our own hack just for MONO_TYPE_VAR.
6719
6720 2004-11-09  Martin Baulig  <martin@ximian.com>
6721
6722         * class.c (mono_class_inflate_generic_method): Small fix; don't
6723         crash here.
6724
6725         * icall.c
6726         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
6727         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
6728         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
6729         (ves_icall_Type_BindGenericParameters): Likewise.
6730         (ves_icall_Type_get_IsGenericInstance): Likewise.
6731         (ves_icall_Type_GetGenericParameterPosition): Likewise.
6732         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
6733         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6734         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6735
6736 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
6737
6738         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
6739         assembly versions and public key tokens. Fixes #69113.
6740
6741 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
6742
6743         * metadata.c: fix bug introduced with the type cache changes
6744         on 2004-11-06.
6745
6746 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
6747
6748         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
6749         the MonoClass pointer instead of the token in exception clauses.
6750         * reflection.c: updates for the above and make the code not depend
6751         on the structure of MonoExceptionClause.
6752
6753 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
6754
6755         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
6756         Add support for dynamic assemblies. Fixes #69114.
6757
6758         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
6759
6760 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
6761
6762         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
6763         since most only those methods use it. the code member of
6764         MonoMethodPInvoke was dead, so that can be removed too. Also,
6765         remove inline_count (again, not used), and move slot so that it
6766         can share bits with some other flags. This saves 8 bytes in the
6767         structure and gives us about 50 kb back for mcs helloworld.cs
6768
6769         * *.[ch]: Do naming changes for the above.
6770
6771         * loader.c (mono_method_get_header): Lazily init the header
6772         on first access.
6773         (mono_get_method_from_token): don't init the header here
6774         (mono_free_method): the header may never be allocated
6775
6776         Overall, this saves 150 kb of unmanaged allocations
6777         for mcs helloworld.cs. That accounts for 10% of the unmanaged
6778         memory at runtime.
6779         
6780         * loader.c, loader.h (mono_method_get_header): new accessor.
6781
6782         * *.[ch]: use the above method. Prepares us to lazily load
6783         the header.
6784
6785         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
6786         three warnings, which are actual bugs (see 69206).
6787
6788         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
6789         unused. Saves a cool 4 bytes / method.
6790
6791 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
6792
6793         * metadata.c (builtin_types): Add types for System.Object here.
6794         (mono_metadata_parse_type_full): Cache MonoType*'s that are
6795         for a class or valuetype from klass->this_arg or klass->byval_arg.
6796
6797         On mcs for a hello world, this gets us down from 21836 MonoType's
6798         to 14560.
6799
6800         (mono_metadata_free_type): Account for the above change.
6801
6802 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
6803
6804         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
6805         exception instead of asserting if name is null.
6806         (ves_icall_System_AppDomain_GetData): Ditto.
6807
6808 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
6809
6810         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
6811         EnumBuilder.
6812
6813         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
6814         Return NULL when the domain does not have entry_assembly set.
6815
6816         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
6817         Add a 'resource_modules' argument.
6818         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
6819
6820         * reflection.c (mono_reflection_create_runtime_class): Move setting
6821         of wastypebuilder here, so mono_get_type_object () returns a MonoType
6822         for enums too.
6823
6824         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
6825         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
6826         Throw an ArgumentNullException if 'ptr' is null.
6827
6828         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
6829         assemblies here. Fixes #69020.
6830
6831 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
6832
6833         * reflection.c (build_compressed_metadata): Fix the previous patch for
6834         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
6835         the stack.
6836
6837 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
6838
6839         * assembly.c (mono_assembly_names_equal): Allow a match if one of
6840         the cultures is false. Fixes #69090.
6841
6842         * reflection.c (build_compressed_metadata): Fix invalid memory read 
6843         detected by valgrind.
6844         
6845         * reflection.c (mono_reflection_get_type): Avoid triggering a 
6846         TypeResolve multiple times for the same type. Fixes #65577.
6847
6848 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
6849
6850         * marshal.c: Avoid using ldftn to call managed functions. It is
6851         much slower than just a call.
6852
6853         * reflection.c (mono_module_get_object): free the basename we
6854         allocate here from glib.
6855         
6856         * reflection.c (ensure_runtime_vtable): make sure to free
6857         overrides.  Also, we were allocating an array of MonoMethod not an
6858         array of MonoMethod*.
6859
6860         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
6861
6862         * image.c (mono_image_close): free image->guid here.
6863
6864 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
6865
6866         * reflection.c: Fix some spec conformance issues with the PE file
6867         structures so mcs compiled apps run on the Net 2.0 beta.
6868
6869 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
6870
6871         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
6872         Implement this. Fixes #67264.
6873
6874         * debug-helpers.h debug-helpers.c marshal.c: Move 
6875         mono_find_method_by_name to debug-helpers.c.
6876
6877 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
6878
6879         * object.c (mono_release_type_locks): type_initialization_hash is
6880         a GHashTable.
6881
6882         * reflection.c object.c object-internals.h: Fix warnings.
6883
6884         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
6885         without accessors. Fixes #61561.
6886
6887         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
6888         application base from the root domain if not set. Fixes #65641.
6889         (mono_runtime_init): Fix warning.
6890
6891 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6892
6893         * appdomain.c: call mono_thread_pool_init.
6894         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
6895         of worker threads based on the number of CPUs and the environment
6896         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
6897         for non-windows (windows) systems.
6898
6899 2004-10-27  Chris Toshok  <toshok@ximian.com>
6900
6901         * mono-debug-debugger.c (write_class): don't call mono_class_init
6902         here, as even with the check for (!klass->init_pending), we get
6903         into a situation where we're hitting cycles in class
6904         initialization.  Fixes #68816.
6905
6906 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
6907
6908         * image.c: Avoid overwriting values in the loaded_images_hash when an
6909         assembly is loaded multiple times. Fixes #61152.
6910
6911         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
6912         so multiple satellite assemblies for the same name can be loaded.
6913         Fixes #68259.
6914
6915         * mono_domain_assembly_preload: Actually return the loaded assembly, 
6916         not NULL.
6917
6918         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
6919         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
6920
6921         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
6922         pending finalizers are not invoked after the appdomain has been 
6923         unloaded. Fixes #67862.
6924
6925 2004-10-22  Martin Baulig  <martin@ximian.com>
6926
6927         * mono-debug-debugger.c
6928         (mono_debugger_runtime_invoke): Don't box valuetypes.
6929
6930 2004-10-22  Chris Toshok  <toshok@ximian.com>
6931
6932         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
6933         don't hide private methods.
6934
6935 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
6936
6937         * icall.c: Allows the runtime to "share" (when known) the public key
6938         token of an assembly. This avoid the need to recalculate the token 
6939         (from the public key) in managed code.
6940
6941 2004-10-21  Chris Toshok  <toshok@ximian.com>
6942
6943         * debug-helpers.c (append_class_name): argh, revert last patch.
6944         
6945 2004-10-21  Chris Toshok  <toshok@ximian.com>
6946
6947         * debug-helpers.c (append_class_name): use '+' as the delimiter,
6948         not '/', so that it matches what the debugger uses to look up
6949         methods.
6950
6951 2004-10-21  Martin Baulig  <martin@ximian.com>
6952
6953         * mono-debug-debugger.c (mono_debugger_throw_exception): New
6954         public method; this is called each time an exception is thrown and
6955         allows the debugger to use exception catch points.
6956
6957 2004-10-21  Martin Baulig  <martin@ximian.com>
6958
6959         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
6960         the stack pointer and the exception object in some struct and pass
6961         that to the debugger.
6962
6963 2004-10-21  Chris Toshok  <toshok@ximian.com>
6964
6965         * mono-debug-debugger.c (do_write_class): add instance/static
6966         event support.  We don't expose "raise" or "other" yet.
6967         (event_is_static): new method.
6968
6969 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
6970
6971         * mono-debug-debugger.c
6972         (mono_debugger_handle_exception): Remove
6973         bogus return value for fussy compilers.
6974
6975 2004-10-20  Martin Baulig  <martin@ximian.com>
6976
6977         * mono-debug-debugger.c
6978         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
6979         (mono_debugger_handled_exception): Likewise.
6980
6981 2004-10-20  Martin Baulig  <martin@ximian.com>
6982
6983         * mono-debug-debugger.h (MonoDebuggerEvent): Added
6984         MONO_DEBUGGER_EVENT_EXCEPTION.
6985
6986         * mono-debug-debugger.c (mono_debugger_handle_exception): New
6987         public function to send the debugger a notification for an
6988         exception and inform it about a catch/finally clause.
6989
6990 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
6991
6992         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
6993         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
6994         fix 2.95 build. 
6995
6996         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
6997
6998 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
6999
7000         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
7001         marshalled as [In,Out]. Fixes #58325.
7002
7003 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
7004
7005         * reflection.c (mono_method_body_get_object): Implement some fields.
7006
7007 2004-10-12  Martin Baulig  <martin@ximian.com>
7008
7009         * reflection.c (mono_reflection_bind_generic_parameters): Small
7010         fix, correctly retrieve our parent from a generic instance.
7011
7012 2004-10-12  Martin Baulig  <martin@ximian.com>
7013
7014         * metadata.c (mono_metadata_generic_param_equal): We always have
7015         an owner.
7016
7017         * class.c
7018         (mono_class_from_generic_parameter): We need to have an owner.
7019         (my_mono_class_from_generic_parameter): Likewise.
7020
7021         * reflection.c (mono_reflection_setup_generic_class): Renamed to
7022         mono_reflection_create_generic_class() and added a new
7023         mono_reflection_setup_generic_class().  
7024         (mono_reflection_initialize_generic_param): If we're a nested
7025         generic type and inherited from the containing class, set our
7026         owner to the outer class.
7027
7028 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
7029
7030         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
7031
7032         * reflection.c (mono_method_body_get_object): New function to create
7033         a MethodBody object.
7034
7035         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
7036
7037 2004-10-11  Martin Baulig  <martin@ximian.com>
7038
7039         * metadata.c (_mono_metadata_type_equal): Renamed to
7040         do_mono_metadata_type_equal() and made static.
7041
7042 2004-10-11  Martin Baulig  <martin@ximian.com>
7043
7044         * appdomain.c: Bump corlib version number to 28.
7045
7046 2004-10-10  Martin Baulig  <martin@ximian.com>
7047
7048         * class-internals.h
7049         (MonoGenericInst): Added `MonoGenericContainer *container'.
7050         (MonoGenericMethod): Likewise.
7051         (MonoGenericContext): Likewise.
7052         (MonoGenericParam): Added `MonoGenericContainer *owner'.
7053
7054         * metadata.c
7055         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
7056         (do_mono_metadata_parse_generic_inst): Likewise.
7057         (mono_metadata_parse_type_full): New public method.  This is the actual
7058         mono_metadata_parse_type() implementation - with an additional
7059         `MonoGenericContainer *' argument.
7060         (mono_metadata_parse_array_full): Likewise.
7061         (mono_metadata_parse_signature_full): Likewise.
7062         (mono_metadata_parse_method_signature_full): Likewise.
7063         (mono_metadata_parse_mh_full): Likewise.
7064         (mono_type_create_from_typespec): Likewise.
7065         (mono_metadata_interfaces_from_typedef_full): New public method;
7066         this is similar to the other _full() methods, but we take a
7067         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
7068         (mono_metadata_parse_generic_param): Take an additional
7069         `MonoGenericContainer *' argument and lookup the MonoGenericParam
7070         from that container.
7071         (mono_metadata_generic_param_equal): New static method to compare
7072         two type parameters.
7073         (_mono_metadata_type_equal): New static method; takes an
7074         additional `gboolean signature_only' argument - if true, we don't
7075         compare the owners of generic parameters.
7076         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
7077         with a TRUE argument - do a signature-only comparision.
7078
7079         * loader.c: Use the new _full() methods and pass the
7080         MonoGenericContainer to them.
7081
7082         * object-internals.h (MonoReflectionTypeBuilder): Added
7083         `MonoGenericContainer *generic_container' field.
7084         (MonoReflectionMethodBuilder): Likewise.
7085
7086 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
7087
7088         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
7089         case initial images of dynamic assemblies.
7090
7091         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
7092
7093         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
7094
7095         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
7096         length of event->other array.
7097         (typebuilder_setup_events): Ditto.
7098
7099         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
7100         'assembly_by_name' and add an 'assemblies' list.
7101
7102         * assembly.h assembly.c: Add a new search hook for determining whenever
7103         an assembly is already loaded. Use this instead of searching in the
7104         loaded_assemblies list.
7105
7106         * domain.c appdomain.c: Implement the new search hook so loaded 
7107         assemblies are now scoped by appdomain. Fixes #67727.
7108
7109 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
7110
7111         * threads.c (mono_thread_attach): Initialize synch_lock field so
7112         mono_thread_detach works again.
7113
7114         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
7115         'lib' too. Fixes #63130.
7116
7117 2004-10-06  Jackson Harper  <jackson@ximian.com>
7118
7119         * culture-info-tables.h: regenerated.
7120
7121 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
7122
7123         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
7124         implemented by other interfaces in the result. Fixes #65764.
7125         
7126         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7127         Handle unloadable modules without crashing.
7128
7129         * image.c (load_modules): Revert the previous patch since modules must
7130         have a fixed index inside the array.
7131         
7132         * image.c (load_modules): Don't include native modules in the modules
7133         array.
7134
7135 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
7136
7137         * reflection.h: Add param_defaults field.
7138
7139         * reflection.c: Add support for parameter defaults in dynamic methods.
7140         Fixes #64595.
7141
7142         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
7143         an empty string when a type has no namespace. Fixes #64230.
7144
7145 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
7146
7147         * tabledefs.h: Added "internal" security actions to support non-CAS
7148         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
7149         Note: they do not seems to be used anymore in 2.0 (new metadata format)
7150
7151 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7152
7153         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
7154         constructor of abstract class. Fixes #61689.
7155
7156 2004-10-04  Martin Baulig  <martin@ximian.com>
7157
7158         * class-internals.h (MonoGenericContainer): New type.
7159         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
7160         `MonoGenericContainer *generic_container'.
7161         (MonoClass): Replaced `gen_params' and `num_gen_params' with
7162         `MonoGenericContainer *generic_container'.
7163
7164         * metadata.c (mono_metadata_load_generic_params): Return a
7165         `MonoGenericContainer *' instead of a `MonoGenericParam *';
7166         removed the `num' argument.
7167
7168 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
7169
7170         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
7171         for dynamic images.
7172
7173         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
7174         machine fields.
7175
7176         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
7177
7178         * reflection.c: Save pe_kind and machine values into the generated
7179         image file.
7180
7181         * appdomain.c: Bump corlib version number.
7182
7183         * object-internals.h: Reorganize layout of LocalBuilder.
7184
7185         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
7186         New helper function.
7187
7188         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
7189         created MonoType for dynamic types. Fixes #66180.
7190
7191 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
7192
7193         * threadpool.c: the ares hashtable needs a critical section around it.
7194         this prevents some nasty segfaults
7195
7196 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
7197
7198         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
7199         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
7200         bug 67324).
7201         
7202 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7203
7204         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
7205         
7206 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
7207
7208         * image.c: Always canonicalize image file names, to avoid loading
7209         the same assembly twice when referenced using a relative path.
7210
7211 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7212
7213         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
7214
7215         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
7216
7217         * marshal.c: Fix warnings.
7218
7219 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
7220
7221         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
7222         attempting to marshal the delegate_trampoline as the method_addr.
7223         This patch has a static hashtable of marshalled delegates so that 
7224         we can map delegate_trampoline addresses back to delegates.  This
7225         allows a delegate passed to managed code to be passed back into native
7226         code.  Fixes #67039
7227
7228 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7229
7230         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
7231
7232         * reflection.c (method_encode_code): Align method headers properly.
7233         Fixes #66025.
7234
7235 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7236
7237         * marshal.c: In the runtime invoke wrapper, reset the abort
7238         exception if it is cached. This avoids the automatic rethrowal of 
7239         the exception after the catch of the wrapper. Also check for pending
7240         interruptions before calling the managed method. This is done using
7241         the new method emit_thread_force_interrupt_checkpoint, since the
7242         normal checkpoint method is ignored when running the invoke wrapper.
7243         * object.c: If the abort exception is rethrown, set the abort_exc
7244         field of the thread, so it will be rethrown aftere every catch.
7245         * threadpool.c: Only run an interruption checkpoint if what has been
7246         requested is a stop of the thread (aborts will be ignored).
7247         * threads.c: By default, a thread will now never be interrumped while
7248         running the runtime invoke wrapper (this ensures that runtime_invoke
7249         will always return to the caller if an exception pointer is provided).
7250         There is a new special method mono_thread_force_interruption_checkpoint()
7251         to force an interruption checkpoint even if running a protected
7252         wrapper, which is used by the same runtime invoke wrapper to do a check
7253         at a safe point.
7254
7255 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7256
7257         * object.c, object-internals.h: Implemented mono_release_type_locks,
7258         which releases the cctor locks held by a thread.
7259         * threads.c, threads.h: In thread_cleanup, release cctor locks held
7260         by a thread. Added mono_thread_exit() method to be used to safely stop
7261         a thread.
7262
7263 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7264
7265         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7266         Move null check before dereference.  Avoid indexing beyond the end
7267         of the 'modules' array.
7268
7269 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7270
7271         * metadata-internals.h (MonoImage): Add module_count field.
7272         * image.c (load_modules): Set image->module_count.
7273         (mono_image_load_file_for_image): Use image->module_count.
7274         * reflection.c (mono_image_load_module): Append to image->modules array 
7275         of dynamic assembly.
7276         (mono_module_get_object): Fix loop to actually increment index.
7277         Use image->module_count.
7278         * assembly.c (mono_assembly_load_references): Use image->module_count.
7279         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7280         Likewise.
7281
7282 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7283
7284         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
7285         Avoid assert on generic types.
7286
7287 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
7288
7289         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
7290
7291         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
7292
7293         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
7294         function to convert a MarshalSpec structure to its managed counterpart.
7295
7296         * reflection.c: Fix warnings.
7297         
7298         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
7299         field.
7300
7301         * icall.c (mono_create_icall_signature): Fix build.
7302
7303 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
7304
7305         * icall.c: Add MakePointType icall.
7306
7307         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
7308         warnings.
7309
7310 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7311
7312         * threadpool.c: reuse allocated slots in the queue.
7313
7314 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7315
7316         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7317
7318         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7319
7320         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7321         previous change.
7322
7323         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7324         ThrowOnUnmappableChar.
7325
7326         * icall.c (ves_icall_Type_GetPacking): New icall.
7327
7328 2004-09-24  Martin Baulig  <martin@ximian.com>
7329
7330         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7331
7332 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7333
7334         * appdomain.c:
7335         (mono_domain_set): allow setting a domain that is being unloaded.
7336         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7337         being unloaded.
7338
7339 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7340
7341         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7342         the GetCustomAttributes icall.
7343
7344 2004-09-23  Martin Baulig  <martin@ximian.com>
7345
7346         * object-internals.h (MonoReflectionGenericParam): Replaced
7347         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7348         with `guint32 attrs'.
7349
7350 2004-09-23  Martin Baulig  <martin@ximian.com>
7351
7352         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7353
7354 2004-09-23  Martin Baulig  <martin@ximian.com>
7355
7356         * object-internals.h (GenericParameterAttributes): New enum.
7357
7358 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7359
7360         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7361         
7362         * class.c (init_events): Fill out event->other field.
7363
7364         * class.c: Fix warnings.
7365
7366         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7367
7368 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7369
7370         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7371         walk which doesn't supply the IL offset.
7372
7373 2004-09-22  Martin Baulig  <martin@ximian.com>
7374
7375         * reflection.c (mono_reflection_setup_internal_class): If we're
7376         System.ValueType, System.Object or System.Enum, set
7377         `klass->instance_size' and create the vtable.
7378         (mono_reflection_create_internal_class): If we're an enum type,
7379         get the base class from our current corlib.
7380
7381 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7382
7383         * reflection.h (MonoResolveTokenError): New type.
7384
7385         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7386         icall.
7387
7388         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7389
7390 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7391
7392         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7393         Support also calling constructors, but only for already allocated objects.
7394
7395 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7396
7397         * reflection.c (type_get_qualified_name): If the klass is null
7398         return the typename to avoid a NullRefEx.
7399         (encode_cattr_value): Get the qualified name of the boxed type,
7400         not the underlying enumtype.  Fixes #62984.
7401
7402 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7403
7404         * marshal.c: Fix problems with previous checkin.
7405
7406 2004-09-21    <vargaz@freemail.hu>
7407
7408         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7409         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7410
7411         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7412
7413 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7414
7415         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7416         should only return a type for pointers, arrays, and passbyref types.
7417         Fixes bug #63841.
7418
7419 2004-09-21  Martin Baulig  <martin@ximian.com>
7420
7421         * domain.c (mono_debugger_check_runtime_version): New public
7422         function.
7423
7424         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7425
7426 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7427
7428         * reflection.c: Added missing sort to the declarative security 
7429         attributes table. MS implementation stops seeing the attributes if the
7430         token number regress in the table (as shown by ildasm and permview).
7431
7432 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7433
7434         * object-internals.h (MonoReflectionModule): Add 'token' field.
7435         
7436         * reflection.c (mono_reflection_get_token): Add support for Module
7437         and Assembly.
7438         (mono_module_get_object): Set 'token' field.
7439         (mono_module_file_get_object): Set 'token' field.
7440
7441         * icall.c: Add new Assembly and Module icalls.
7442
7443         * appdomain.c: Bump corlib version.
7444
7445 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7446
7447         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7448         tokens of metadata objects.
7449
7450         * reflection.h reflection.c (mono_reflection_get_token): New function
7451         to obtain the token of a metadata object.
7452
7453         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7454
7455 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7456
7457         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7458         
7459         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7460
7461 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7462
7463         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7464         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7465         AssemblyBuilder to access the permissions set in the class lib.
7466         * reflection.c: Added security attributes encoding step in 
7467         mono_image_build_metadata.
7468         * tabledefs.h: Added new security actions defined in 2.0:
7469         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7470
7471 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7472
7473         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7474         macro parameter.
7475
7476 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7477  
7478         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7479           finalized. There where random SIGSEVs at program termination, when
7480           an object being finalized was trying to do a string comparison and
7481           the current culture was already finalized.
7482  
7483 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7484
7485         * threads.c: call thread_cleanup before finishing the thread if we get
7486         there.
7487
7488 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
7489
7490         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
7491         assemblies from the parent. Fixes #65665.
7492
7493 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
7494
7495         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
7496         modifiers.
7497
7498 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
7499
7500         * reflection.h: add prototype for mono_get_dbnull_object
7501         * reflection.c: add prototypes for get_default_param_value_blobs 
7502         and mono_get_object_from_blob for fussier compilers
7503
7504 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
7505  
7506         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
7507         false deadlock checks in class initialization.
7508  
7509 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
7510
7511         * image.c (mono_image_addref): Fix comment.
7512
7513         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
7514         possible.
7515
7516 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
7517
7518         * reflection.c (mono_param_get_objects): Modified to return
7519         ParameterInfo.DefaultValue object.
7520
7521         (get_default_param_value_blobs):
7522         (mono_get_object_from_blob):
7523         (mono_get_dbnull_object): New helper routines. 
7524
7525         * object.c (mono_get_constant_value_from_blob): New helper routine
7526         carved out from get_default_field_value ()
7527
7528         * object-internals.h (mono_get_constant_value_from_blob): Added
7529         function declaration.
7530
7531 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
7532
7533         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
7534         referenced assemblies. Fixes #62135.
7535
7536         * exception.h exception.c (mono_get_exception_file_not_found2): New
7537         helper function.
7538
7539 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
7540
7541         * class.h class.c: Add mono_type_get_underlying_type ().
7542
7543 2004-09-09  Geoff Norton <gnorton@customerndna.com>
7544
7545         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
7546         Fix GetTypes() to support dynamically created assemblies.
7547
7548 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
7549
7550         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
7551         
7552         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
7553         previous patch.
7554
7555         * reflection.h reflection.c loader.c: Allow dynamic construction of
7556         pinvoke methods. Fixes #65571.
7557         
7558         * reflection.c (mono_reflection_get_type): Revert previous change since
7559         it causes regressions.
7560
7561 2004-09-08  Martin Baulig  <martin@ximian.com>
7562
7563         * class.c (class_compute_field_layout): Don't call
7564         mono_class_layout_fields() for open generic instances.
7565
7566 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
7567         * threads.c appdomain.c: fix typo in GC macro
7568
7569 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7570
7571         * threads.c: don't call mono_thread_detach() in start_wrapper(),
7572         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
7573
7574 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
7575
7576         * image.c (mono_image_close): Applied patch from 
7577         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
7578         assembly is loaded multiple times from data.
7579         
7580         * image.c (mono_image_open): Fix warning.
7581
7582 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7583
7584         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
7585         once. Fixes #58334.
7586         
7587         * reflection.c (mono_reflection_create_runtime_class): Initialize
7588         klass->nested_classes. Fixes #61224.
7589
7590 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
7591
7592         * threads.c: sched_yield() on exit, to allow threads to quit.
7593
7594 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7595
7596         * object.c (mono_unhandled_exception): Remove leftover debug code.
7597
7598 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
7599
7600         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
7601
7602 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7603
7604         * marshal.c (emit_marshal_array): Really null terminate string arrays.
7605         
7606         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
7607
7608 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7609
7610         * marshal.c (emit_marshal_array): Null terminate string arrays.
7611         
7612         * marshal.c (raise_auto_layout_exception): Fix warning.
7613
7614         * reflection.c (mono_param_get_objects): Initialize the default value
7615         with DBNull.Value, not null. Fixes #62123.
7616
7617 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
7618
7619         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
7620         throw an exception with a cute explanation.
7621
7622 2004-09-06  Dick Porter  <dick@ximian.com>
7623
7624         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
7625         Close the new process's thread handle, as we don't use it.  The
7626         handle stays around forever otherwise.
7627
7628 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7629
7630         * object.c (arith_overflow): Fix warning.
7631
7632         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
7633         calling conventions in method refs. Fixes #65352.
7634
7635         * reflection.c: Fix warnings.
7636
7637 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7638
7639         * icall.c: Add a new icall for Array.Clear
7640
7641 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7642
7643         * object.c: When allocating an array, we have to throw
7644         an overflow exception if any of the lengths are < 0.
7645
7646 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7647
7648         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
7649         properly. Also move implementation of string array marshalling to 
7650         managed code. Fixes #42316.
7651
7652 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7653
7654         * assembly.c: provide more information when loading an assembly fails.
7655
7656 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7657
7658         * filewatcher.c: don't expect the development fam package to be
7659         installed.
7660
7661 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
7662
7663         * marshal.c: Make a copy of the signature cookie since it will be
7664         freed by the caller.
7665         
7666         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
7667
7668         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
7669
7670         * metadata.c (mono_metadata_free_marshal_spec): New function to free
7671         marshal specs.
7672
7673         * marshal.c: More refactoring.
7674         
7675         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
7676         smaller functions.
7677
7678 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
7679
7680         * object.c: In mono_message_invoke, fill the output parameter array after
7681           calling the managed method (it was done before the call). This fixes
7682           bug #59299.
7683
7684 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7685
7686         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
7687         as well.
7688
7689 2004-09-02  Martin Baulig  <martin@ximian.com>
7690
7691         * class.c (mono_class_instance_size): Don't allow generic type
7692         definitions or open generic instances.
7693         (mono_class_array_element_size): If we're a value type, call
7694         mono_class_instance_size() on the original class.
7695
7696         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
7697         handle generic instances.
7698
7699         * mono-debug-debugger.c (write_type): Handle generic instances
7700         like classes.
7701
7702 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7703
7704         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
7705         the allocation request fails. Fixes #65089.
7706
7707         * object.c (mono_runtime_free_method): Do not call mono_free_method.
7708         
7709         * object.c (mono_runtime_free_method): New function to free a dynamic
7710         method.
7711
7712         * marshal.c (mono_delegate_free_ftnptr): New function to free the
7713         delegate trampoline.
7714
7715         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
7716         with hasthis as dynamic,
7717
7718         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
7719
7720         * domain.c (mono_jit_info_table_remove): New function to remove an
7721         entry from the jit info table.
7722
7723         * class-internals.h (MonoMethod): Add 'dynamic' field.
7724
7725         * loader.c: Fix warnings.
7726
7727 2004-09-01  Martin Baulig  <martin@ximian.com>
7728
7729         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
7730         instead of mono_debugger_lock() because the latter one is a no-op
7731         unless running in the debugger.
7732
7733 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7734
7735         * class.c (class_compute_field_layout): Classes with auto-layout or
7736         reference fields are not blittable.
7737         
7738 2004-09-01  Dick Porter  <dick@ximian.com>
7739
7740         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
7741         mono_image_get_filename() to get the assembly location.
7742
7743         * icall.c:
7744         * metadata.h: Fix compile warnings
7745
7746 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7747
7748         * class.c (class_compute_field_layout): System.Object is blittable.
7749
7750         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
7751         as in/out. Fixes #59909.
7752
7753 2004-09-01  Martin Baulig  <martin@ximian.com>
7754
7755         * metadata.h (MONO_TYPE_ISREFERENCE): Call
7756         mono_metadata_generic_inst_is_valuetype() if we're a generic
7757         instance to check whether our underlying type is a reference type.
7758
7759 2004-09-01  Martin Baulig  <martin@ximian.com>
7760
7761         * metadata.c (mono_type_size): If we're a generic instance, call
7762         mono_class_value_size() for value types.
7763
7764 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
7765
7766         * marshal.c: Implement more custom marshalling functionality. Fixes
7767         #64915.
7768
7769 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
7770
7771         * mono-debug.c, debug-mono-symfile.c: add some locking love.
7772
7773 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
7774
7775         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
7776
7777         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
7778
7779         * icall.c: Fix some warnings.
7780
7781         * threads.c (abort_appdomain_thread): Fix unref errors.
7782         (mono_thread_current): Fix THREAD_DEBUG define.
7783
7784 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
7785
7786         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
7787
7788         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
7789
7790 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
7791
7792         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
7793         string arrays.
7794
7795 2004-08-28  Martin Baulig  <martin@ximian.com>
7796
7797         * metadata.c
7798         (mono_metadata_generic_inst_is_valuetype): New public function.
7799
7800         * metadata.h (MONO_TYPE_ISSTRUCT): Call
7801         mono_metadata_generic_inst_is_valuetype() if we're a generic
7802         instance to check whether our underlying type is a valuetype.
7803
7804 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
7805
7806         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
7807         #63768.
7808
7809 2004-08-25  Martin Baulig  <martin@ximian.com>
7810
7811         * loader.c (mono_get_method_from_token): Abstract methods can also
7812         be generic and thus have type parameters.
7813
7814         * metadata-internals.h
7815         (MonoDynamicImage): Added `GPtrArray *gen_params'.
7816
7817         * reflection.c (mono_image_get_generic_param_info): Don't create a
7818         metadata row, just add an entry to the `gen_params' array.
7819         (build_compressed_metadata): Sort the `gen_params' array and then
7820         actually create the metadata.
7821
7822 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7823
7824         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
7825
7826 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
7827
7828         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
7829
7830 2004-08-24  Martin Baulig  <martin@ximian.com>
7831
7832         * class.cs (mono_class_is_subclass_of): Like an interface, a
7833         generic instance also derives from System.Object.
7834
7835 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
7836
7837         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
7838         custom modifiers to be in any order. Fixes #61990.
7839
7840 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
7841
7842         * object.c: Register mono_object_new_fast icall.
7843         
7844         * object.c (mono_class_get_allocation_ftn): Return to calling
7845         mono_object_new_fast, since it seems faster to compute the object 
7846         size in unmanaged code than passing it as a parameter.
7847
7848         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
7849
7850         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
7851         this function with Boehm as the oom handler, so we don't have to check
7852         the result of GC_malloc.
7853
7854         * object.c: Remove checks for oom.
7855
7856         * object.h object.c (mono_class_get_allocation_ftn): New function to
7857         return the icall which can be used to allocate an instance of a given
7858         class. 
7859
7860         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
7861
7862         * class-internals.h: Add 'enabled' field.
7863
7864 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
7865
7866         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
7867
7868 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
7869         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
7870         value 0x0010.
7871
7872 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
7873
7874         * appdomain.c: use the Tls function for appdomain too,
7875         at Zoltan's request. Actually return in mono_context_get
7876
7877         * appdomain.c, profiler.c, threads.c: use __thread
7878
7879 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
7880
7881         * appdomain.c threads.c: Call GC_CreateThread on windows.
7882
7883         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
7884         multiple libraries since this don't work on windows.
7885
7886 2004-08-18  Martin Baulig  <martin@ximian.com>
7887
7888         * class-internals.h
7889         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
7890         MonoMethodHeader.
7891
7892         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
7893         MonoMethodNormal since we also need it for abstract and interface
7894         methods.
7895
7896         * reflection.c
7897         (build_compressed_metadata): Sort the GenericParam table.
7898         (mono_image_create_token): Added `gboolean create_methodspec'
7899         argument; this is false when generating a MethodImpl token.
7900         (reflection_methodbuilder_to_mono_method): Abstract and interface
7901         methods may also have generic parameters.
7902
7903 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
7904
7905         * appdomain.c: thread local alloc
7906
7907 2004-08-17  Martin Baulig  <martin@ximian.com>
7908
7909         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
7910
7911         * icall.c
7912         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
7913         argument.
7914
7915         * class.c (mono_type_get_full_name): New public function.
7916         (mono_type_get_name): Don't include the type arguments.
7917
7918 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
7919
7920         * Makefile.am: Build static versions of libmetadata and libmonoruntime
7921         for inclusion into the mono executable.
7922
7923 2004-08-16  Martin Baulig  <martin@ximian.com>
7924
7925         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
7926         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
7927
7928 2004-08-14  Martin Baulig  <martin@ximian.com>
7929
7930         * class.c (dup_type): Also copy the `byref' field.
7931
7932 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
7933
7934         * reflection.c (create_dynamic_mono_image): Revert the last change 
7935         since it breaks bootstrap.
7936
7937 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
7938
7939         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
7940
7941         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
7942         not free them with g_free.
7943
7944 2004-08-11  Martin Baulig  <martin@ximian.com>
7945
7946         * reflection.c (mono_reflection_setup_internal_class): Also call
7947         mono_class_setup_mono_type() if we already have a `tb->type.type'.
7948
7949 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
7950
7951         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
7952         called during default (first) AppDomain creation. Keep track of
7953         Evidence when loading assemblies.
7954
7955 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
7956
7957         * opcodes.c, opcodes.h: reduce runtime relocations.
7958
7959 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
7960
7961         * culture-info.h, locales.c: fixes and chages to sue the new
7962         optimized format of the locale data.
7963         * culture-info-tables.h: regenerated.
7964
7965 2004-08-06  Geoff Norton <gnorton@customerdna.com>
7966         
7967         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
7968
7969 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
7970
7971         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
7972         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
7973         * domain-internals.h: icall declaration.
7974         * icall.c: icall registration.
7975         * object-internals.h: New fields in MonoAssembly for CAS.
7976
7977 2004-08-05  Duncan Mak  <duncan@ximian.com>
7978
7979         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
7980         CEE_LDELEM_ANY.
7981
7982 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
7983
7984         * reflection.c: fix to deal with object[] arrays in custom ctors
7985         (bug #62550).
7986
7987 2004-08-05  Martin Baulig  <martin@ximian.com>
7988
7989         * class.c (mono_class_array_element_size): Added support for
7990         generic instances and correctly handle "recursive" types.
7991
7992 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
7993
7994         * assembly.c: Fix warnings.
7995
7996 2004-08-04  Martin Baulig  <martin@ximian.com>
7997
7998         * class.c
7999         (mono_type_get_name_recurse): Added `gboolean include_arity'
8000         argument specifying whether or not we should include the generic
8001         arity in the type name.
8002         (_mono_type_get_name): New static function.
8003         (mono_class_setup_vtable): If we're a generic instance, don't
8004         include the generic arity in the names of explicit method
8005         implementations.        
8006
8007 2004-08-03  Martin Baulig  <martin@ximian.com>
8008
8009         * class.c (mono_type_get_name_recurse): Enclose the generic type
8010         arguments in `<', '>'.
8011
8012 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8013
8014         * gc.c: make GC warning messages use the trace API, they are just
8015         noise to most of the users.
8016
8017 2004-08-03  Martin Baulig  <martin@ximian.com>
8018
8019         * debug-mono-symfile.c (read_string): Correctly read the string.
8020
8021 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
8022
8023         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
8024         
8025         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
8026         icalls.
8027         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
8028
8029 2004-07-30  Martin Baulig  <martin@ximian.com>
8030
8031         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
8032         Reflect latest symbol writer changes.   
8033
8034 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8035
8036         * object.c: always create an object if null is passed
8037         to Invoke() where a valuetype is expected.
8038
8039 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
8040
8041         * marshal.c (mono_marshal_init): make managed
8042         signatures match native ones better for 64bits.
8043
8044 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8045
8046         * appdomain.c: hack to build correctly the private bin path on windows.
8047         Fixes bug #61991.
8048
8049 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
8050
8051         * assembly.c: Load mscorlib from the correct framework directory
8052           (mono/<version>/mscorlib.dll).
8053         * appdomain.h: Added prototypes for new functions.
8054         * internals.h: Added some prototypes.
8055         * domain.c: When initializing the runtime, get from the executable and
8056           the configuration files the runtime version that the app supports.
8057           Added support methods for reading app.exe.config. Added list of versions
8058           supported by the JIT. Added two new methods: mono_init_from_assembly,
8059           which initializes the runtime and determines the required version from
8060           the provided exe file, and mono_init_version, which initializes
8061           the runtime using the provided version.
8062         * icall.c: Get machine.config from version-specific directory.
8063         * reflection.c: When generating an image, embed the version number
8064           of the current runtime.
8065
8066 2004-07-28  Dick Porter  <dick@ximian.com>
8067
8068         * socket-io.c
8069         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
8070         returned sockaddr size before creating the remote address object.
8071         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
8072         61608.
8073
8074 2004-07-28  Dick Porter  <dick@ximian.com>
8075
8076         * locales.c (string_invariant_compare_char): Fix invariant char
8077         compares between upper and lower cases.  Fixes bug 61458.
8078
8079 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
8080         
8081         * marshal.c: actually cache stelem.ref wrappers.
8082         
8083 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
8084
8085         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
8086         sections and remove the mono_cli_rva_map () function.
8087
8088 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8089
8090         * debug-mono-symfile.c: fix one more endianess issue, from a patch
8091         by Geoff Norton (<gnorton@customerdna.com>).
8092
8093 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8094
8095         * class.c: fix class loads for pointer types (typeof(int) !=
8096         typeof(int*)).
8097
8098 2004-07-27  Martin Baulig  <martin@ximian.com>
8099
8100         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
8101         reading the debugging information from an external ".mdb" file.
8102
8103 2004-07-24  Martin Baulig  <martin@ximian.com>
8104
8105         * reflection.c (mono_image_get_type_info): Only write a class
8106         layout entry if we actually have a size or a packing size.
8107
8108 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8109
8110         * reflection.c (type_get_fully_qualified_name): 
8111         insert cast to get type checking of ?: with non-gcc compilers
8112
8113 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8114
8115         * rand.c: use g_getenv for both lookups of
8116         MONO_EGD_SOCKET
8117
8118 2004-07-17  Martin Baulig  <martin@ximian.com>
8119
8120         * reflection.c (mono_reflection_bind_generic_method_parameters):
8121         Set `gmethod->reflection_info'.
8122
8123 2004-07-17  Martin Baulig  <martin@ximian.com>
8124
8125         * class.c (mono_class_create_from_typedef): Insert the newly
8126         created class into the hash table before computing the interfaces
8127         since we could be called recursively.
8128
8129 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
8130
8131         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
8132         function to implement stelem.ref in managed code
8133         * class-internals.h, debug-helpers.c: a new wrapper type
8134         for the above.
8135
8136 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8137
8138         * gc.c: allow GC handles to work even when no GC is compiled in.
8139         Fix part of bug #61134 (GetAddrOfPinnedObject).
8140
8141 2004-07-13  Peter Williams  <peter@newton.cx>
8142  
8143         * process.c (complete_path): Make sure we don't attempt to execute
8144         directories.
8145  
8146 2004-07-12  Geoff Norton <gnorton@customerdna.com>
8147
8148         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
8149           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
8150           and will add/subtract the hour if needed
8151
8152 2004-07-12  Martin Baulig  <martin@ximian.com>
8153
8154         * reflection.c (mono_field_get_object): If we have
8155         `field->generic_info', take the attributes from
8156         `field->generic_info->generic_type'.    
8157
8158 2004-07-12  Martin Baulig  <martin@ximian.com>
8159
8160         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
8161         This function must be called before initializing the runtime.
8162         (mono_debug_init_1): New function; call this after initializing
8163         the runtime, but before loading the assembly.  It tells the
8164         debugger to load corlib and the builtin types.
8165
8166         * mono-debug-debugger.c: Did some larger changes in the debugging
8167         code; support recursive class declarations, make sure we actually
8168         add all classes.
8169
8170 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8171
8172         * debug-helpers.c: undo my previous patch and fixed the real issue in
8173         ../mini/exceptions-x86.c
8174
8175 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8176
8177         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
8178         when no HOME env. variable was set and a NullRef was thrown in a .cctor
8179         called from other .cctors.
8180
8181 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
8182
8183         * loader.c: Removed the mono_loader_wine_init hack now that we are
8184         doing a managed version of Windows.Forms.
8185
8186 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
8187
8188         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
8189         threadpool.c, threads.c: remove static data from rootset.
8190
8191 2004-07-09  Dick Porter  <dick@ximian.com>
8192
8193         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
8194         Don't do any more processing if the matched length was 0.  It was
8195         increasing the size of the string before.  Fixes bug 61167.
8196
8197 2004-07-09  Dick Porter  <dick@ximian.com>
8198
8199         * socket-io.h:
8200         * socket-io.c
8201         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8202         Add support for SO_PEERCRED if its available.
8203
8204 2004-07-09  Peter Bartok <pbartok@novell.com>
8205         * loader.c: winelib.exe.so error message is now only displayed if
8206         MONO_DEBUG is set. To help us avoid questions when people are trying
8207         out the new Managed.Windows.Forms.
8208
8209 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
8210
8211         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
8212         for isinst and castclass wrappers.
8213
8214         * class-internals.h icall.c: Move registration and lookup of JIT icalls
8215         to libmetadata from the JIT, so they could be used by the marshalling
8216         code and the interpreter.
8217
8218         * marshal.c: Register marshalling related JIT icalls here instead of
8219         in mini.c. Use CEE_MONO_ICALL instead of the family of 
8220         CEE_MONO_PROC<x> opcodes to call marshalling functions.
8221
8222         * metadata.h: Remove unneeded marshalling conversions.
8223
8224         * opcodes.c: Update for new opcodes.
8225         
8226 2004-07-08  Martin Baulig  <martin@ximian.com>
8227
8228         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
8229         (mono_debug_get_domain_data): Make this function static.
8230
8231 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8232
8233         * gc.c, object.h: add nice GC handle API for embedders.
8234
8235 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
8236
8237         * reflection.c: more changes for the new api
8238
8239         * object.c: When we reflect on a field w/ a constant value, it
8240         will not have a memory location, so we must access metadata. Also,
8241         allow easier reading of strings so that we can read them from
8242         the constant data.
8243
8244         * class.c (mono_class_layout_fields): no need for literal fields here.
8245
8246         * class-internals.h: api changes for const fields
8247
8248         * icall.c (ves_icall_get_enum_info): use new apis for const fields
8249
8250 2004-07-06  Martin Baulig  <martin@ximian.com>
8251
8252         * mono-debug.h: Increment version number to 44.
8253
8254         * mono-debug.c (mono_debug_add_wrapper): The second argument is
8255         now a gpointer, rewrote this whole method.
8256
8257         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
8258         function.  Add information about the wrapper in a new "misc table".
8259
8260         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
8261         for the new misc table.
8262
8263 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
8264
8265         * metadata-internals.h image.c: Add a cache for helper signatures.
8266
8267         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
8268
8269 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
8270
8271         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
8272         delegates from a delegate. Fixes #61033.
8273         
8274         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
8275         marshalling of stringbuilder arrays. Fixes #59900.
8276
8277 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
8278
8279         * icall.c: Add EnumBuilder:setup_enum_type icall.
8280
8281 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
8282
8283         * icall.c: Added a new icall for the property version of
8284         OffsetOfStringData.
8285
8286 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
8287
8288         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
8289         it has a constant size across platforms.
8290
8291         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
8292         stack trace.
8293
8294 2004-06-29  Martin Baulig  <martin@ximian.com>
8295
8296         * mono-debug.c (mono_debug_add_method): Protect the whole function
8297         in mono_debugger_lock(), not just parts of it.
8298
8299 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8300
8301         * reflection.c: make sure padding bytes in heaps are zeroed.
8302
8303 2004-06-24  David Waite  <mass@akuma.org>
8304
8305         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
8306         image.c, loader.c, locales.c, marshal.c, metadata.c,
8307         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
8308         string-icalls.c, threads.c: change to C90-style comments from C99 /
8309         C++ -style
8310
8311 2004-06-24  Dick Porter  <dick@ximian.com>
8312
8313         * threads.c
8314         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8315         return createdNew.  Fixes bug 60412.
8316
8317         * threads-types.h: 
8318         * icall.c: Add createdNew parameter to CreateMutex icall
8319
8320 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8321
8322         * reflection.c, object-internals.h: save default value in params.
8323
8324 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8325
8326         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8327         no need to build a new path combining that with the application base.
8328         Fixes bug #60442.
8329
8330 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8331
8332         * reflection.c: fixed minor standard compliance issues.
8333
8334 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8335
8336         * reflection.c: fixed issue with encoding some custom attributes
8337         (arrays in properties and fields, bug #60411).
8338
8339 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8340
8341         * reflection.c: fix start address when copying the public key token.
8342
8343 2004-06-23  Martin Baulig  <martin@ximian.com>
8344
8345         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8346         the `exc' object in a static object to put it into the GC's root set.
8347
8348 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8349
8350         * reflection.c: make mono_reflection_setup_internal_class ()
8351         callable a second time to setup a new parent class.
8352
8353 2004-06-23  Dick Porter  <dick@ximian.com>
8354
8355         * threads.c: Check for WAIT_IO_COMPLETION return values.
8356
8357 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8358
8359         * appdomain.c: Removed the g_free on the public key token. Now copy 
8360         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8361         * assembly.c: Added public key token string value when loading 
8362         assemblies. Fix bug #60439.
8363         * icall.c: Added missing informations (like public key) in 
8364         GetReferencedAssemblies. Fix #60519.
8365         * image.h: Changed definition for public key token from const char*
8366         public_tok_value to guchar public_key_token [17];
8367         * reflection.c: Updated for changes to public key token.
8368
8369 2004-06-22  Lluis Sanchez Gual
8370
8371         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8372         for the field in base classes.
8373
8374 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8375
8376         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8377         mark headers as not supported, they are installed only for use by the
8378         debugger.
8379
8380 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8381
8382         * *.c, *.h: avoid namespace pollution in public headers.
8383
8384 2004-06-21  Martin Baulig  <martin@ximian.com>
8385
8386         * exception.c (mono_get_exception_security): It's in
8387         "System.Security", not in "System".
8388
8389         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8390         the exception classes.
8391
8392 2004-06-21  Martin Baulig  <martin@ximian.com>
8393
8394         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8395         Protect the exception object from being finalized.
8396
8397 2004-06-21  Martin Baulig  <martin@ximian.com>
8398
8399         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8400         public function.
8401
8402 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8403
8404         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8405         if it was not loaded before. Fix parts of #60439.
8406
8407 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8408
8409         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8410         code that was broken since Ben's change: wrappers are now
8411         dependent on the method signature only again.
8412
8413 2004-06-21  Martin Baulig  <martin@ximian.com>
8414
8415         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8416         added interface support.
8417
8418 2004-06-21  Martin Baulig  <martin@ximian.com>
8419
8420         * class.c (mono_vtable_get_static_field_data): New public method.
8421
8422 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8423
8424         * filewatcher.c : Windows build fix to be compliant with API changes.
8425
8426 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8427
8428         * class.h, class.c: more accessors.
8429         * metadata.h, metadata.c: prepare for hiding MonoType and
8430         MonoMethodSignature: people should use the accessors from now on
8431         outside of the tree.
8432
8433 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8434
8435         * *.c, *.h: more API cleanups.
8436
8437 2004-06-18  Jackson Harper  <jackson@ximian.com>
8438
8439         * assembly.c: Trace loading assemblies.
8440         * loader.c: Trace loading native libraries.
8441         * mono-config.c: Trace loading config files.
8442         
8443 2004-06-18  Dick Porter  <dick@ximian.com>
8444
8445         * locales.c: Tell ICU the lengths of strings, it can cope with
8446         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8447
8448 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8449
8450         * image.c: swapped name/filename;
8451
8452 2004-06-18  Martin Baulig  <martin@ximian.com>
8453
8454         * mono-debug-debugger.c (write_class): Write the parent class at
8455         the end of the header.
8456
8457 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8458
8459         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8460
8461 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8462
8463         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8464         (bundle_obj): New conditional define.
8465         (BUILT_SOURCES): Remove.
8466         ($(bundle_srcs)): Make parallel-make safe.
8467         (libmonoruntime_la_LIBADD): Make unconditional.
8468         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8469         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8470
8471 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8472
8473         * culture-info-tables.h: It was inconsistent with the latest
8474           supp info files.
8475
8476 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8477
8478         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8479         be loaded.
8480
8481         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8482         with gcc 2.95.
8483
8484 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8485
8486         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8487         cleaned up public header threads.h.
8488
8489 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8490
8491         * Makefile.am, *.c, *.h: more API cleanups.
8492
8493 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
8494
8495         * Makefile.am: removed monosn from compilation.
8496         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
8497         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
8498         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
8499         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
8500         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
8501         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
8502
8503 2004-06-15  Jackson Harper  <jackson@ximian.com>
8504
8505         * assembly.c: Make locales lower case when searching the GAC for
8506         assemblies. gacutil will always make locales lowercase when
8507         installing so this effectively makes them case insensitive.
8508         
8509 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
8510
8511         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
8512         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
8513           parameter which allows to choose whether the wait can be interrupted or 
8514           not. Also added the method mono_monitor_enter(), which locks the monitor
8515           using an infinite wait and without allowing interruption.
8516           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
8517           interrupted.
8518         * object.h: Added new fields in MonoThread. suspend_event holds the event
8519           used to susped/resume the thread. synch_lock is the lock object to use for
8520           modifying the thread state.
8521         * threads.c: Use the new synch_lock object for locking, instead of "this",
8522           which can generate deadlocks.
8523           Moved thread state change in Thread.Sleep and Thread.Join from managed
8524           to unmanaged code. This avoids a deadlock when the thread was suspended
8525           just after acquiring the thread lock.
8526           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
8527           Implemented Thread.Suspend using an event instead of ThreadSuspend,
8528           which is not fully implemented in the io-layer.
8529         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
8530
8531 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
8532
8533         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
8534         threads-types.h: more API cleanups.
8535
8536 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8537
8538         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
8539         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
8540         threadpool.c, threads.c: first pass at the exported API cleanup.
8541
8542 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
8543
8544         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
8545
8546 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8547
8548         * icall.c: added internalGetHome.
8549
8550 2004-06-14  Dick Porter  <dick@ximian.com>
8551
8552         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
8553         possible to return successfully when '.' or '..' were the only
8554         entries in a directory, but were skipped.  The MonoIOStat was not
8555         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
8556         Fixes bug 59574.
8557
8558 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8559
8560         * reflection.c: make binaries run on .Net 1.1 by default.
8561
8562 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
8563
8564         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
8565
8566 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
8567
8568         * marshal.c: keep track of struct size with explicit layout
8569         (bug #59979).
8570
8571 2004-06-12  Martin Baulig  <martin@ximian.com>
8572
8573         * mono-debug-debugger.c: Comment out a debugging g_message().
8574
8575 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8576
8577         * reflection.c, reflection.h: do not free custom attrs that are cached.
8578         * icall.c: use braces to make code clearer.
8579
8580 2004-06-11  Martin Baulig  <martin@ximian.com>
8581
8582         * class.h (MonoInflatedField): New type.
8583         (MonoClassField): Replaced `MonoType *generic_type' with
8584         `MonoInflatedField *generic_info'.
8585
8586         * icall.c
8587         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
8588
8589 2004-06-11  Martin Baulig  <martin@ximian.com>
8590
8591         * reflection.c (mono_image_create_method_token): Correctly encode
8592         varargs methods.
8593
8594 2004-06-11  Martin Baulig  <martin@ximian.com>
8595
8596         * metadata.c (mono_metadata_parse_method_signature): When parsing
8597         a MethodDef which has VarArgs, also set sentinelpos if we don't
8598         have any parameters.
8599
8600 2004-06-11  Martin Baulig  <martin@ximian.com>
8601
8602         * verify.c (mono_method_verify): In CEE_CALL, use
8603         mono_method_get_signature() to get the method's signature, unless
8604         we're a PInvoke method.
8605
8606 2004-06-10  Jackson Harper  <jackson@ximian.com>
8607
8608         * assembly.c: Use <path>/lib/mono/gac for the extra paths
8609         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
8610         logical name as the supplied path is just a prefix to the gac not
8611         the direct path to it.
8612         
8613 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
8614
8615         * reflection.c: make the token for a created method match
8616         the token of the MethodBuilder it was created from
8617         (IKVM requires this behaviour now).
8618
8619 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
8620
8621         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
8622         reflection.c, socket-io.c: leak fixes.
8623
8624 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
8625
8626         * icall.c: handle sentinel pos in vararg methods in position different
8627         from 0.
8628
8629 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8630
8631         * culture-info-tables.h: freshly generated.
8632
8633 2004-06-09  Martin Baulig  <martin@ximian.com>
8634
8635         * loader.c (mono_get_method_constrained): Call `mono_class_init
8636         (constrained_class)'.   
8637
8638 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
8639
8640         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
8641         any methods. Fixes #59629.
8642
8643 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8644
8645         * culture-info-tables.h: reflecting locale-builder updates.
8646
8647 2004-06-08  Dick Porter  <dick@ximian.com>
8648
8649         * object.h:
8650         * locales.c: Fixed compile warnings, including a real bug in
8651         CompareInfo_internal_compare.
8652         
8653 2004-06-08  Dick Porter  <dick@ximian.com>
8654
8655         * locales.c
8656         (ves_icall_System_Globalization_CompareInfo_internal_index):
8657         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8658         Double-check the resuls of usearches, because ICU currently
8659         ignores most of the collator settings here.  Fixes bug 59720.
8660         
8661 2004-06-08  Dick Porter  <dick@ximian.com>
8662
8663         * locales.c
8664         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8665         Fix memory leak and segfault-causing typo.  No idea how this one
8666         lasted so long without being noticed.
8667
8668 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
8669
8670         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
8671         any methods. Fixes #59629.
8672
8673 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8674
8675         * assembly.c:
8676         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
8677         own the critical section before). Removed dead code (that's done
8678         in the preload hook).
8679
8680         (mono_assembly_load_with_partial_name): call the preload hook.
8681
8682 2004-06-08  Martin Baulig  <martin@ximian.com>
8683
8684         * metadata.c (mono_metadata_signature_alloc): Default
8685         `sentinelpos' to -1.
8686
8687         * reflection.c (mono_image_get_array_token): Likewise.
8688
8689 2004-06-08  Martin Baulig  <martin@ximian.com>
8690
8691         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
8692
8693         * metadata.c (mono_metadata_parse_method_signature): When parsing
8694         a MethodDef which has VarArgs, set sentinelpos.
8695
8696         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
8697         `gint16' since we're using -1 for non-varargs methods.
8698
8699         * reflection.c
8700         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
8701         (method_encode_signature): Added varargs support.
8702         (method_builder_encode_signature): Likewise.
8703         (mono_image_get_varargs_method_token): New static method.
8704         (mono_image_create_method_token): New public method; this is
8705         called via an icall instead of mono_image_create_token() when
8706         calling a varargs method.       
8707
8708 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
8709
8710         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
8711
8712 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8713
8714         * culture-info-tables.h : Reflecting the latest locale-builder that
8715           fixed empty array representation ({} to {0}).
8716
8717 2004-06-07  Jackson Harper  <jackson@ximian.com>
8718
8719         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
8720         looking up extra gac paths. This allows MONO_GAC_PATH to act
8721         exactly like a prefix.
8722         
8723 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8724
8725         * reflection.c (mono_reflection_type_from_name): Make a copy of the
8726         type name before modifying it. Fixes #59405.
8727
8728 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8729
8730         * culture-info.h: added fields for "all datetime patterns".
8731         * locales.c: (  ves_icall_System_Globalization_CultureInfo
8732           _construct_datetime_format ()): fill xxx_patterns fields.
8733         * object.h: added fields for "all datetime patterns" to
8734           MonoDateTimeFormatInfo.
8735         * culture-info-tables.h: reflecting locale-builder updates.
8736
8737 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8738
8739         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
8740         the event has no add and remove methods. Fixes #59629.
8741
8742 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
8743
8744         * object.c: Fixed possible integer overflow when allocating large
8745         strings.
8746
8747 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8748
8749         * culture-info-tables.h: reflecting locale-builder updates.
8750
8751 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8752
8753         * culture-info-tables.h: reflecting locale-builder updates.
8754
8755 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
8756
8757         * culture-info-tables.h: reflecting locale-builder updates.
8758
8759 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
8760
8761         * threads.c: Made Thread.Sleep abortable.
8762
8763 2004-06-02  Martin Baulig  <martin@ximian.com>
8764
8765         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
8766
8767         * debug-mono-symfile.h: Bumped symbol file version number to 37.
8768
8769 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
8770
8771         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
8772
8773 2004-05-30  Jackson Harper  <jackson@ximian.com>
8774
8775         * reflection.c: Do not hardcode assembly versions or public key
8776         tokens anymore. All of this except the corlib section was dead
8777         code anyways.
8778         
8779 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
8780
8781         * object.c (mono_runtime_invoke_array): Automatically create boxed
8782         objects for byref valuetypes if needed. Fixes #59300.
8783         
8784         * object.c (mono_method_return_message_restore): Handle 
8785         MONO_TYPE_OBJECT as well.
8786
8787 2004-05-28  Jackson Harper  <jackson@ximian.com>
8788
8789         * reflection.c: The modified type encoding was causing build
8790         problems. Reverted for now.
8791         
8792 2004-05-28  Jackson Harper  <jackson@ximian.com>
8793
8794         * reflection.c/h: Take an assembly ref so that we dont create
8795         fully qualified names when encoding types in the same assembly as
8796         the custom attribute being emitted.
8797         * appdomain.c: Increment version number.
8798         
8799 2004-05-26  Duncan Mak  <duncan@ximian.com>
8800
8801         * icall.c
8802         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8803         Set the full version number (major, minor, build, revision).
8804
8805 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
8806
8807         * marshal.c (emit_struct_conv): increment src/dst after blit
8808         (mono_marshal_get_managed_wrapper,
8809         mono_marshal_get_native_wrapper): make sure we have marshalling
8810         info before marshalling params (info computation affects
8811         blittable)
8812
8813         * class.c (class_compute_field_layout): correctly deal with
8814         blittable
8815         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
8816         value types (as per what windows dows by default)
8817         (mono_class_setup_mono_type): System.ValueType is blittable
8818         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
8819         blittable
8820
8821         * marshal.c (mono_marshal_load_type_info): flag types  as
8822         non-blittable if the native layout doesn't match the managed
8823         layout
8824
8825 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8826
8827         * appdomain.c: don't add stuff in the private search path that is
8828         above the application base. If application base is not set, there's
8829         no private search path.
8830
8831 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
8832
8833         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
8834         byref struct arguments in native->managed marshalling.
8835
8836 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
8837
8838         * marshal.c (mono_marshal_get_runtime_invoke): correctly
8839         cache methods using signature (special case for methods
8840         that are value type or string class)
8841         
8842         * image.c (mono_image_close): clean up allocated GSList's
8843         in runtime_invoke_cache.
8844
8845 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8846
8847         * mono-config.c: set the correct path for mono_cfg_dir on windows when
8848         there's no MONO_CFG_DIR environment variable defined.
8849
8850 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8851
8852         * threads.c: windows version must be >= 0x0500 to include OpenThread.
8853
8854 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
8855
8856         * threadpool.c: Really wait for 500ms after the async call, even if the wait
8857           is interrumped.
8858         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
8859           before waiting for it, and call CloseHandle after the wait to unref it.
8860           This will make sure that handles are not disposed too early.
8861
8862 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8863
8864         * appdomain.c:
8865         * appdomain.h:
8866         * icall.c: removed
8867         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
8868         needed now.
8869
8870         * object.c: se the application_base only for the domain that runs
8871         Main. Fixes bug #59216,
8872
8873 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8874
8875         * appdomain.c:
8876         * object.c: only the domain in which Main is run have
8877         SetupInformation.ConfigurationFile set, so moved a few lines from
8878         appdomain.c to object.c.
8879
8880 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8881
8882         * appdomain.c: we tried to load [name].(dll|exe), but according
8883         to bug #57710, we must also try [culture]/[name].(dll|exe) and
8884         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
8885         There's a test case attached to bug #58922.
8886
8887 2004-05-27  Dick Porter  <dick@ximian.com>
8888
8889         * icall.c:
8890         * file-io.c: Implemented icalls for locking and unlocking regions
8891         in a file.
8892         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
8893         FALSE on error (fixes both compiler warning and real bug.)
8894
8895 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
8896
8897         * culture-info-tables.h: reflecting locale-builder updates.
8898
8899           (Added missing ChangeLog entry for 05/26)
8900
8901 2004-05-27  Jackson Harper  <jackson@ximian.com>
8902
8903         * locales.c: Fix some cut and paste errors.
8904         
8905 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8906
8907         * mono-config.c: set the correct path for config. directory on windows.
8908
8909 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8910
8911         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
8912           on win32.
8913
8914 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
8915
8916         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
8917         from pinvoke functions.
8918         
8919         * marshal.c (mono_ftnptr_to_delegate): Implement this.
8920
8921 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
8922
8923         * culture-info-tables.h: reflecting locale-builder updates.
8924
8925 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
8926
8927         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
8928         #59086.
8929
8930 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
8931
8932         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
8933         * icall.c: Modified icalls for RNG.
8934         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
8935         Windows (CryptoAPI).
8936
8937 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
8938
8939         * locales.c: Fix build.
8940
8941 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
8942
8943         * culture-info-tables.h: reflecting locale-builder updates.
8944
8945 2004-05-25  Jackson Harper  <jackson@ximian.com>
8946
8947         * locales.c: When creating the current culture use the $LANGs
8948         specific culture. So DateTimeFormat and NumberFormat entries are created.
8949         
8950 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
8951
8952         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
8953         a char array as parameter.
8954
8955 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
8956
8957         * image.c: In mono_image_open(), always use an absolute path name to
8958           look for already loaded images.
8959
8960 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
8961
8962         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
8963         missing in the windows build (like older cygwin include files).
8964
8965 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
8966
8967         * icall.c: Fixed check for possible integer overflow in Buffer_
8968         BlockCopy icall. Replaced comments style // by /* */.
8969
8970 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
8971
8972         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
8973         
8974         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
8975         check after MONO_VTADDR. Fixes pinvoke2.exe.
8976
8977         * marshal.h marshal.c metadata.h: Add beginnings of support for
8978         ftnptr -> delegate marshalling.
8979
8980 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
8981
8982         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
8983         * threads.c: Fix warnings.
8984
8985 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
8986
8987         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
8988         * icall.c: Registered icalls for Suspend and Resume.
8989         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
8990           Thread.Abort.
8991         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
8992         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
8993         * process.c: Use WaitForSingleObjectEx.
8994         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
8995           checkpoints.
8996         * threads.c, threads.h: Make use of new Ex wait methods. Improved
8997           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
8998           for Suspend and Resume. Added new mono_thread_stop, used for stoping
8999           background threads. Added basic support for Abort in Windows.
9000           Start new threads using a managed delegate invoke wrapper. This wrapper
9001           has an interruption checkpoint that is needed since an interruption
9002           can be requested before the thread leaves the unmanaged code that starts 
9003           the thread.
9004         * marshal.c: Added interruption checkpoint after every native call, and
9005           also before managed calls for wrappers called from unmanaged code to
9006           go into managed code.
9007         * object.h: Added new field in MonoThread to keep track of interruption
9008           requests.
9009
9010 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
9011
9012         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
9013         calls.
9014
9015 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9016
9017         * appdomain.c:
9018         * assembly.c:
9019         * gc.c:
9020         * locales.c:
9021         * mono-config.c:
9022         * rand.c: getenv -> g_getenv (windows!)
9023
9024         * process.c: complete_path is also used on non-windows platforms.
9025
9026 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9027
9028         * icall.c: new signature for Process_Start.
9029
9030         * process.[ch]: new signature for Process_Start. If we're on windows
9031         and UseShellExecute is false, we have to search for the program by
9032         ourselves if we don't get a full path.
9033
9034 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
9035
9036         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
9037         marshalling and call CleanUpNativeData if needed. Fixes #58646.
9038
9039 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9040
9041         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
9042         Fixes bug #58373.
9043
9044 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9045
9046         * process.c: use double quotes to quote program name and arguments on
9047         windows. Fixes bug #58575.
9048
9049 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9050
9051         * file-io.c: don't return "." and ".." when using windows Find*File.
9052
9053 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
9054
9055         * marshal.c: Don't pass wrappers to message init because method 
9056         addressed used to lookup metadata. part of remoting[2|3] fix.
9057
9058 2004-05-15  Jackson Harper  <jackson@ximian.com>
9059
9060         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
9061         path is essentially the same as MONO_PATH except that it points to
9062         GACs instead of lib directories.
9063         * loader.h: The user gac is gone so we dont need function to
9064         enable/disable it.
9065         * mono-config.c: user gac option is now gone.
9066         
9067 2004-05-15  Jackson Harper  <jackson@ximian.com>
9068
9069         * culture-info.h: Make defines more consistent, add calendar data
9070         to the culture info table.
9071         * culture-info-tables.h: Add basic calendar data. Basically
9072         everyone gets default gregorian until all the data is
9073         updated.
9074         * locales.c: Use the new consistent defines. Set calendar data for
9075         culture info objects.
9076         * object.h: add a field for calendar data to CultureInfo
9077         
9078 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
9079
9080         * image.c: image->runtime_invoke_cache is keyed on signatures now.
9081         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
9082         a signature.
9083         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
9084         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
9085         an extra param that is the pointer of the method to invoke. The IL for
9086         the invoke method is no longer specific to the method, but to the
9087         signature of the method. Thus, we can share the same code for multiple
9088         methods. This reduces the number of methods that have to be compiled.
9089
9090 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
9091
9092         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
9093
9094         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9095
9096         * icall.c: Optimize Buffer.BlockCopy.
9097
9098 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9099
9100         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
9101         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
9102         quote). Changed them to "MMMM yyyy".
9103
9104 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
9105
9106         * rand.c
9107         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
9108
9109 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
9110
9111         * reflection.h: Updated after changes to managed structures.
9112
9113         * appdomain.c: Bump corlib version.
9114
9115 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9116
9117         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
9118         windows.
9119
9120 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9121
9122         * Makefile.am: link to ../os/libmonoos.la on windows.
9123
9124         * assembly.c:
9125                 -If MONO_DEBUG, warn about non-existing directories in
9126                 MONO_PATH.
9127                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
9128                 compile time variable.
9129                 -Removed init_default_path and call mono_set_rootdir from
9130                 libmonoos.a instead (windows only).
9131
9132         * assembly.h: declare mono_assembly_getrootdir().
9133
9134         * domain.c:
9135         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
9136
9137         * loader.c: s/getenv/g_getenv/
9138
9139 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
9140
9141         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
9142
9143         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
9144
9145         * metadata.h: Add new marshalling conversions.
9146
9147         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
9148         function.
9149
9150         * reflection.c (mono_reflection_get_type): Lookup the type in all
9151         modules of a multi-module assembly. Fixes #58291.
9152
9153 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
9154
9155         * threads.c: Before aborting a background, set the StopRequested
9156         state.  This avoids throwing the Abort exception.
9157         In mono_thread_manage, don't continue with the shutdown until all
9158         aborted threads have actually stopped.
9159
9160 2004-05-10  Jackson Harper  <jackson@ximian.com>
9161
9162         * locales.c: Remove the modifier from culture names.
9163         
9164 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9165
9166         * Makefile.am: monosn is not installed any more. It has been deprecated
9167         in favor of sn.
9168
9169 2004-05-07  Jackson Harper  <jackson@ximian.com>
9170
9171         * locales.c
9172         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
9173         Fix array construction, add bailout if the length is 0.
9174
9175 2004-05-07  Dick Porter  <dick@ximian.com>
9176
9177         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
9178         machine doesn't have a DNS entry.  Patch by Urs Muff
9179         (umuff@quark.com), fixes bug 57928.
9180
9181 2004-05-06  Jackson Harper  <jackson@ximian.com>
9182
9183         * reflection.c: Handle null PublicTokens properly. alloc mem for
9184         assembly names culture so we dont crash when freeing it.
9185         
9186 2004-05-06  Jackson Harper  <jackson@ximian.com>
9187
9188         * assembly.c: Check the usergac when loading with partial names.
9189         
9190 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9191
9192         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
9193         does nothing for now (not required for Linux/Windows) but the class
9194         library can call it (and a newer or modified runtime could need it).
9195         * icall.c: Registred icall.
9196
9197 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9198
9199         * loader.c: prints a message on module loading error we set MONO_DEBUG
9200         environment variable.
9201
9202 2004-05-05  Jackson Harper  <jackson@ximian.com>
9203
9204         * appdomain.c: Handle PublicKeyToken=null properly.
9205         
9206 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9207
9208         * environment.c|h: Added icall ves_icall_System_Environment_
9209         GetOSVersionString to get the current OS version as a string.
9210         * icall.c: Registred icall.
9211
9212 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
9213
9214         * object.c: in mono_object_get_virtual_method(), take into account that
9215         non-virtual methods don't have a slot in the vtable. Check needed when
9216         the object is a proxy.
9217
9218 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
9219
9220         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
9221         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
9222
9223         * object.c (mono_class_compute_gc_descriptor): Fix warning.
9224
9225         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
9226         passed when a valuetype is expected.
9227
9228         * object.c (mono_unhandled_exception): Only set the exit code if the
9229         exception happens in the main thread. Fixes thread5.exe.
9230
9231         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
9232         invalid names. Fixes #58047.
9233
9234 2004-05-03  Jackson Harper  <jackson@ximian.com>
9235
9236         * assembly.c: This line was committed accidently and is unneeded.
9237         
9238 2004-05-03  Jackson Harper  <jackson@ximian.com>
9239
9240         * icall.c: Add new icall for Assembly::LoadWithPartialName
9241         * assembly.c/.h: new function that probes the GAC to load partial
9242         assembly names by Paolo Molaro.
9243         
9244 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9245
9246         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
9247         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
9248         (type_get_fully_qualified_name): Added PublicKeyToken when building a
9249         full type name.
9250
9251 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9252
9253         * appdomain.c: fixed check for 'neutral' culture and removed warning.
9254         * reflection.c: fix bug when parsing a full type name and Version is not
9255         the last thing in the string.
9256
9257 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
9258
9259         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
9260         crashes when it is freed.
9261
9262 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9263
9264         * assembly.c: print the compat warning to stderr.
9265
9266 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
9267
9268         * assembly.c (mono_assembly_load_references): Add a compatibility
9269         hack to run old applications that might be still referencing the
9270         3300-based assemblies, only do this for System.xxx.
9271
9272 2004-05-01  Jackson Harper  <jackson@ximian.com>
9273
9274         * appdomain.c: If the culture is neutral we set it to "".
9275         
9276 2004-04-29  Jackson Harper  <jackson@ximian.com>
9277
9278         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
9279
9280 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
9281  
9282         * string-icalls.c: added low overhead function for copying chars
9283         * icall.c: added needed icall for the above function
9284  
9285 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9286
9287         * icall.c: fix return value of get_global_assembly_cache.  Implemented
9288         Environment.GetLogicalDrives.
9289
9290 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
9291
9292         * rand.c: try and talk to egd or prngd
9293         for random bytes if opening devices fail.
9294
9295 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
9296
9297         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
9298         alignment for the type using the native alignment of its members 
9299         instead of using klass->min_align.
9300
9301         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
9302
9303 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9304
9305         * file-io.c:
9306         * socket-io.c: added check for sys/aio.h.
9307
9308 2004-04-28  Dick Porter  <dick@ximian.com>
9309
9310         * threads.c: Don't abort a thread thats already aborting, when
9311         terminating everything.
9312
9313 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9314
9315         * icall.c: added 2 new async calls for Socket.
9316
9317         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9318         IO on *nix systems.
9319
9320         * threadpool.c: removed unused variable.
9321
9322 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9323
9324         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9325
9326 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9327
9328         * locales.c: put back string_invariant_tolower () and
9329         string_invariant_toupper ().
9330
9331 2004-04-26 David Waite <mass@akuma.org>
9332
9333         * file-io.h:
9334         * socket-io.h:
9335         * threads.h:
9336         * unicode.h: remove comma from end of enumeration declarations
9337
9338 2004-04-26 David Waite <mass@akuma.org>
9339
9340         * debug-mono-symfile.h:
9341         * decimal.c:
9342         * mono_debug.h:
9343         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9344
9345
9346 2004-04-26  Jackson Harper  <jackson@ximian.com>
9347
9348         * appdomain.c: Increment version number.
9349         
9350 2004-04-26  Jackson Harper  <jackson@ximian.com>
9351
9352         * appdomain.c: Set assembly references public token value when
9353         PublicKeyToken is specified, not the hash_value. Free public token
9354         values when free assembly name data. Previously the public key
9355         token was hex decoded, however we are using hex encoded public key
9356         tokens, so this is not neccasary.
9357         * assembly.c: Lookup assemblies in the gac if their public token
9358         value is set. Add function to allow enabling user gac
9359         lookups. Specify whether or not the assembly was loaded from the
9360         GAC. Compare full assembly names when checking the cache for
9361         assemblies (Temporarily disabled see comment in code). Remove
9362         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9363         specifies trace-loader they get extra info to stdout on the
9364         loading of assemblies.
9365         * image.h: Add a field for an assembly references public token
9366         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9367         whether an assembly has been loaded from the GAC.
9368         * image.c: Remove a corlib -> mscorlib name mapping.
9369         * loader.h: Add function to enable/disable the user gac.
9370         * mono-config.c: Check if the usergac is enabled in the config
9371         file.
9372         * icall.c: New icall to determine whether or not an assembly has
9373         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9374         * tabldefs.h: Add constant for assemblyref flag that specifies a
9375         full public key is used instead of a public token.
9376         * reflection.c: Remove mscorlib -> corlib mappings. Set
9377         PublicTokenValue instead of hash value. This value is a hex
9378         string so it does not need to be expanded.
9379
9380 2004-04-26  Martin Baulig  <martin@ximian.com>
9381
9382         * mono-debug-debugger.c (mono_debugger_initialize): Set
9383         `mono_debugger_initialized' before calling mono_debug_lock().
9384
9385 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9386
9387         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9388           InternalToUpper/InternalToLower.
9389         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9390           removed invariant culture shortcut.  This is now done in managed code.
9391         * locales.c: (string_invariant_toupper/tolower) removed.
9392
9393 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9394
9395         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9396         Added Poll internal call.
9397
9398         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9399         call for Poll. Select was too heavy for polling a single socket.
9400
9401         * threadpool.[ch]: added mono_threadpool_cleanup.
9402         * threads.c: use it. Don't use Thread_Abort on windows.
9403
9404 2004-04-23  Martin Baulig  <martin@ximian.com>
9405
9406         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9407
9408 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9409
9410         * icall.c: Registred new icalls for key pair protection and added an
9411         icall for Environment.GetFolderPath on Windows.
9412         * security.c|h: Added new icalls for key pair protection.
9413
9414 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9415
9416         * socket-io.c: don't display the non-supported family warning for known
9417         families. Now this is not displayed on windows when checking support
9418         for IPv4/IPv6.
9419
9420 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9421
9422         * class.c: don't display the layout warning for static fields.
9423
9424 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9425
9426         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9427         * locales.c, locales.h: Added new icalls for culture-specific
9428         Char.ToLower and Char.ToUpper.
9429
9430 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9431
9432         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9433         by David Waite.
9434
9435 2004-04-20  Martin Baulig  <martin@ximian.com>
9436
9437         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9438         of the type name before passing it to mono_reflection_type_from_name().
9439
9440 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9441
9442         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9443         encodings here. Fixes #56965.
9444
9445 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9446
9447         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9448         fix test on strstr result not that I can see anything that
9449         relies on the result.
9450
9451 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9452
9453         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9454         Fixes #57081.
9455
9456         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9457
9458         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9459         function to determine which marshalling to use for strings. Fixes
9460         #56965.
9461
9462         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9463
9464         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9465
9466 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9467
9468         * icall.c: #include mono-config.h
9469
9470 2004-04-15  Jackson Harper  <jackson@ximian.com>
9471
9472         * culture-info-tables.h: Fix date formats for en-US culture.
9473         
9474 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9475
9476         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9477         ThreadPool.SetMinThreads.
9478         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9479         ThreadPool.SetMinThreads.
9480
9481 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9482
9483         * mono-config.c: also load the .config file in the directory
9484         where the assembly was found.
9485
9486 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9487
9488         * assembly.c: load per-assembly config files.
9489         * icall.c: decrapified code to get the config dir and moved to
9490         mono-config.c.
9491         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
9492         per-assembly config files. When doing a dll map lookup give precedence
9493         to the per-assembly data.
9494
9495 2004-04-14  Martin Baulig  <martin@ximian.com>
9496
9497         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
9498         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
9499         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
9500
9501         * mono-debugger-debugger.c: While the debugger is locked, remember
9502         whether the symbol tables have changes and send one single
9503         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
9504
9505 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
9506
9507         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
9508
9509         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
9510         function.
9511
9512         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
9513         account when marshalling string arrays. Fixes #56965.
9514
9515 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
9516
9517         * icall.c: Add new icalls mapping for security.
9518         * security.c|h: Add internal calls for WindowsIdentity,
9519         WindowsImpersonationContext and WindowsPrincipal.
9520
9521 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
9522
9523         * class.c: Added comment to ensure the System.MonoDummy class
9524         is removed when no longer necessary
9525
9526 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
9527
9528         * appdomain.c: Pass arguments to the bootstraping exceptions to
9529         minimize JITed methods at boot
9530
9531         * metadata.c (mono_exception_from_name_two_strings): Allow for the
9532         second string to be null.
9533
9534         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9535         Change the protocol to minimize the JIT methods at startup.  Now
9536         it Returns the internal codepage, if the value of "int_code_page"
9537         is 1 at entry, and we can not compute a suitable code page
9538         number, returns the code page as a string.
9539
9540 2004-04-13  Jackson Harper  <jackson@ximian.com>
9541
9542         * culture-info-tables.h: Fix number of decimal digits for all
9543         english locales.
9544
9545 2004-04-13  Jackson Harper  <jackson@ximian.com>
9546
9547         * icall.c: Clairfy out of sync error message. It is not always
9548         your corlib that is out of sync.
9549
9550 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
9551
9552         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
9553         properties when only the set accessor is overriden. Fixes #55874.
9554
9555 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
9556
9557         * assembly.c (mono_assembly_load_references): Make this thread safe.
9558         Fixes #56327.
9559
9560 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
9561
9562         * monosn.c: Add missing initialization calls.
9563
9564 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
9565
9566         * locales.c:
9567         ves_icall_System_Globalization_CultureInfo_construct_number_format
9568         Fix g_assert so it compiles on fussier compilers re int/ptr
9569         mismatch
9570
9571 2004-04-08  Dick Porter  <dick@ximian.com>
9572
9573         * socket-io.h:
9574         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
9575         53992.  Also rearrange the code so that the internal calls return
9576         an error value and exceptions are thrown from managed code.
9577
9578         * icall.c: Add type info to the socket icalls.
9579
9580 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9581
9582         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
9583         owes me a beer.
9584
9585 2004-04-07  Martin Baulig  <martin@ximian.com>
9586
9587         * class.c (mono_class_from_generic_parameter): Don't default
9588         `klass->parent' to `mono_defaults.object_type'.
9589
9590 2004-04-07  Martin Baulig  <martin@ximian.com>
9591
9592         * reflection.c (mono_reflection_initialize_generic_parameter): Set
9593         `param->pklass->reflection_info'.       
9594
9595 2004-04-07  Jackson Harper  <jackson@ximian.com>
9596
9597         * culture-info-tables.h: Fix date separator symbol.
9598         
9599 2004-04-07  Martin Baulig  <martin@ximian.com>
9600
9601         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
9602         from System.Type to System.MonoType.
9603
9604 2004-04-07  Martin Baulig  <martin@ximian.com>
9605
9606         * reflection.h
9607         (MonoReflectionGenericParam): Added `has_reference_type' and
9608         `has_value_type' fields.
9609
9610         * reflection.c (mono_image_get_generic_param_info): Encode the
9611         correct flags if we have the `class' or `struct' constraint.
9612
9613 2004-04-07  Martin Baulig  <martin@ximian.com>
9614
9615         * reflection.h
9616         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
9617
9618 2004-04-07  Jackson Harper  <jackson@ximian.com>
9619
9620         * appdomain.c: Revert extra patches, just wanted to bump the
9621         version number.
9622         
9623 2004-04-07  Jackson Harper  <jackson@ximian.com>
9624
9625         * Makefile.am: Add culture-info private headers.
9626         * icall.c: Add new icalls for contructing locales.
9627         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
9628         * locales.h: Declare new culture info construction methods.
9629         * object.h: Add new fields used to avoid the CultureMap to
9630         MonoCultureInfo.
9631         * culture-info.h: Definition of structs used in the culture info
9632         tables.
9633         * culture-info-tables.h: Autogenerated tables that contain culture
9634         info data. This file was generated with the locale-builder tool.
9635         * appdomain.c: Incement corlib version number.
9636         
9637 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
9638
9639         * appdomain.c: (mono_runtime_init) move mono_thread_init
9640         to before mono_object_new calls so critical sections
9641         are initialized before use.
9642
9643 2004-04-07  Martin Baulig  <martin@ximian.com>
9644
9645         * icall.c
9646         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
9647         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
9648         (ves_icall_MonoGenericParam_initialize): Removed.
9649         (monogenericparam_icalls): Removed.
9650         (generictypeparambuilder_icalls): Added new table for
9651         System.Reflection.Emit.GenericTypeParameterBuilder.
9652
9653         * reflection.c
9654         (mono_reflection_define_generic_parameter): Removed.
9655         (mono_reflection_initialize_generic_parameter): This is now called
9656         from GenericTypeParameterBuilder's .ctor.
9657
9658 2004-04-06  Martin Baulig  <martin@ximian.com>
9659
9660         * class.c (mono_class_init): Don't inflate nested classes in a
9661         generic instance.
9662         (mono_type_get_name_recurse): Include the generic arguments for
9663         generic instances and generic type declarations.
9664         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
9665         (_mono_class_get_instantiation_name): Removed.
9666         (mono_class_create_generic): Always use `gklass->name' as our name.
9667
9668         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
9669
9670         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
9671         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
9672         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
9673         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
9674         closed generic methods here.
9675
9676         * reflection.c
9677         (mono_reflection_generic_inst_get_nested_types): Removed.
9678         (inflate_mono_method): Copy the generic parameters from the
9679         MonoMethodHeader into out MonoGenericMethod.
9680
9681 2004-04-06  Martin Baulig  <martin@ximian.com>
9682
9683         * row-indexes.h
9684         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
9685
9686         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
9687
9688         * reflection.c (build_compressed_metadata): If we have any entries
9689         in the GenericParam, MethodSpec or GenericParamConstraint tables,
9690         set the header version to 1.1.
9691
9692 2004-04-06  Martin Baulig  <martin@ximian.com>
9693
9694         * class.c (mono_class_init): If we're a generic instance,
9695         initialize our nested classes, too.
9696         (_mono_class_get_instantiation_name): Deal with the new `!%d'
9697         suffix. 
9698
9699 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9700
9701         * process.c: quote the argument passed to the shell on windows.
9702
9703 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
9704
9705         * threads.c (mono_alloc_special_static_data): Allow this to be
9706         called during startup.
9707
9708 2004-04-02  Martin Baulig  <martin@ximian.com>
9709
9710         * icall.c
9711         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
9712
9713 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
9714
9715         * icall.c: Fix build.
9716
9717 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
9718
9719         * Makefile.am: Added security.c|h.
9720         * icall.c: Added icall for get_UserName;
9721         * security.c: New file for security related icalls. Added function
9722         get_UserName for System.Environment (fix #56144).
9723         * security.h: New. Header file for security.c
9724
9725 2004-04-02  Dick Porter  <dick@ximian.com>
9726
9727         * icall.c: Deleted the icalls that were obsoleted some time ago
9728         by the ICU string code, and which were mixed into the icall
9729         rearranging.  Fixes bug 55969.
9730
9731         * string-icalls.h: 
9732         * string-icalls.c: Deleted the code that those icalls reference.
9733
9734 2004-04-01  Martin Baulig  <martin@ximian.com>
9735
9736         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
9737
9738         * class.c (mono_class_from_generic_parameter): Don't set 
9739         TYPE_ATTRIBUTE_INTERFACE.
9740         (my_mono_class_from_generic_parameter): Likewise.
9741
9742 2004-04-01  Martin Baulig  <martin@ximian.com>
9743
9744         * loader.c (find_method): Added an optional `MonoClass *ic'
9745         argument to search in a specific interface.
9746         (mono_get_method_constrained): New public function.
9747
9748 2004-04-01  Martin Baulig  <martin@ximian.com>
9749
9750         * reflection.c (mono_image_get_generic_field_token): Use the
9751         `handleref' cache here.
9752
9753 2004-04-01  Martin Baulig  <martin@ximian.com>
9754
9755         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
9756
9757         * reflection.c (create_generic_typespec): Use the `typespec' hash
9758         here, not the `typeref' one.    
9759
9760 2004-04-01  Martin Baulig  <martin@ximian.com>
9761
9762         * class.c (mono_class_inflate_generic_type): Moved the
9763         functionality into a new static inflate_generic_type() which
9764         returns NULL if it didn't do anything.  Only increment the
9765         `mono_stats.inflated_type_count' if we actually inflated
9766         something.
9767         (mono_class_get_full): Check the classes type to see whether we
9768         need to inflate it; also inflate MONO_TYPE_(M)VAR.
9769
9770 2004-04-01  Jackson Harper  <jackson@ximian.com>
9771
9772         * reflection.c: Set culture for assembly references.
9773         
9774 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
9775
9776         * reflection.[ch], icall.[ch], Fix support for pinning variables.
9777
9778 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9779
9780         * assembly.c:
9781         (do_mono_assembly_open): the critical section also covers
9782         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
9783
9784 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9785
9786         * threads.c:
9787         (mono_manage_threads): abort the background threads when finishing.
9788         Fixes bug #47232.
9789
9790 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9791
9792         * gc.c: only close the done_event handle if there was no timeout.
9793         C-ified comments.
9794
9795 2004-03-30  Martin Baulig  <martin@ximian.com>
9796
9797         * icall.c (icall_entries): It's called "System.Activator", not
9798         "System.Activation".    
9799
9800 2004-03-30  Martin Baulig  <martin@ximian.com>
9801
9802         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
9803         (mono_class_create_from_typespec): Likewise.
9804
9805 2004-03-30  Martin Baulig  <martin@ximian.com>
9806
9807         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
9808         `has_ctor_constraint' and `initialized'.
9809
9810 2004-03-30  Martin Baulig  <martin@ximian.com>
9811
9812         * reflection.c (encode_new_constraint): New static function to add
9813         the constructor constraint attribute to a type parameter.
9814         (encode_constraints): Call encode_new_constraint() if necessary.
9815
9816         * reflection.h
9817         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
9818
9819         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
9820         
9821 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
9822
9823         * reflection.c, icall.c: add support for pinning variables. 
9824
9825 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
9826
9827         * marshal.c (mono_marshal_get_managed_wrapper):
9828         init bool local with zero rather than null.
9829
9830 2004-03-29  Martin Baulig  <martin@ximian.com>
9831
9832         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
9833         the "official" behavior here.
9834         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
9835
9836 2004-03-29  Martin Baulig  <martin@ximian.com>
9837
9838         * icall.c: Reflect latest API changes.
9839
9840 2004-03-29  Martin Baulig  <martin@ximian.com>
9841
9842         * loader.c (mono_get_method_from_token): Also call
9843         mono_metadata_load_generic_params () for abstract and interface
9844         methods; replace the type arguments in the method signature with
9845         the ones which are loaded from the metadata.
9846
9847 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
9848
9849         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
9850         of the lock is not the current thread. MS.NET don't do it, in spite of
9851         what the documentation says. See bug #56157.
9852
9853 2004-03-28  Martin Baulig  <martin@ximian.com>
9854
9855         * class.c (mono_class_init): Don't call init_properties() and
9856         init_events() for generic instances; set `prop->parent' when
9857         inflating properties.
9858
9859         * reflection.c (mono_generic_inst_get_object): Call
9860         `mono_class_init (ginst->klass)'.
9861         (mono_type_get_object): Only create a MonoGenericInst if your
9862         generic type is a TypeBuilder.
9863         (do_mono_reflection_bind_generic_parameters): Only set
9864         `ginst->is_dynamic' if our generic type is a TypeBuilder.
9865
9866 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
9867
9868         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
9869         Fixes #56091.
9870
9871 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9872
9873         * icall.c: added Kill_internal icall.
9874         * process.[ch]: added Kill_internal icall.
9875
9876 2004-03-25  Martin Baulig  <martin@ximian.com>
9877
9878         * class.h (MonoStats): Added `generic_instance_count',
9879         `inflated_method_count', `inflated_type_count' and
9880         `generics_metadata_size'.       
9881
9882 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9883
9884         * reflection.c: no warnings now.
9885
9886 2004-03-25  Martin Baulig  <martin@ximian.com>
9887
9888         * class.c (mono_class_get_full): New public function; does a
9889         mono_class_get(), but also takes a `MonoGenericContext *'.
9890
9891         * loader.c (mono_field_from_memberref): Renamed to
9892         `field_from_memberref', made static and added `MonoGenericContext *'
9893         argument.
9894         (mono_field_from_token): Added `MonoGenericInst *' argument.
9895         (method_from_memberef): Likewise.
9896         (mono_get_method_from_token): Likewise.
9897         (mono_get_method_full): New public function; does a
9898         mono_get_method(), but also takes a `MonoGenericContext *'.
9899
9900         * verify.c (mono_method_verify): Get the method's generic context
9901         and pass it to mono_field_from_token(), mono_get_method_full() and
9902         mono_class_get_full().
9903
9904 2004-03-25  Martin Baulig  <martin@ximian.com>
9905
9906         * class.c (mono_class_inflate_generic_type): Take a
9907         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
9908         `MonoGenericMethod *'.
9909
9910 2004-03-25  Martin Baulig  <martin@ximian.com>
9911
9912         * loader.h (MonoMethodInflated): Store the MonoGenericContext
9913         instead of the MonoGenericMethod here.
9914
9915 2004-03-25  Martin Baulig  <martin@ximian.com>
9916
9917         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
9918         each time we create a new MonoGenericInst, we also create a new
9919         context which points back to us.
9920
9921         * class.c (inflate_method): Use `ginst->context' instead of
9922         creating a new context.
9923
9924         * loader.c (method_from_memberref): Use
9925         `klass->generic_inst->context' instead of creating a new context.
9926
9927 2004-03-25  Martin Baulig  <martin@ximian.com>
9928
9929         * class.h (MonoGenericContext): New struct.
9930         (MonoGenericMethod): Removed `generic_inst'.
9931
9932         * class.c (mono_class_inflate_generic_method): Take a
9933         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
9934
9935 2004-03-25  Martin Baulig  <martin@ximian.com>
9936
9937         * loader.h (MonoMethodInflated): New typedef.
9938
9939         * metadata.h (MonoMethodSignature): Removed `gen_method', make
9940         `generic_param_count' consume just 30 bits, added `is_inflated'
9941         and `has_type_parameters' flags (one bit each).
9942
9943         * class.c (mono_class_inflate_generic_method): Create a
9944         MonoMethodInflated instead of a MonoMethodNormal and set
9945         `is_inflated' in the method signature.
9946
9947         * class.h (MonoGenericMethod): Removed `generic_method'.
9948
9949 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
9950
9951         * image.c: Make sure the name of a MonoImage is always an absolute path.
9952           This fixes bug #54415.
9953
9954 2004-03-24  Martin Baulig  <martin@ximian.com>
9955
9956         * class.c (mono_class_setup_vtable): If we're a generic instance,
9957         use our generic type's vtable size.
9958
9959 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
9960
9961         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
9962         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
9963         problems.
9964
9965 2004-03-23  Martin Baulig  <martin@ximian.com>
9966
9967         * class.h (MonoDynamicGenericInst): Added `int count_events' and
9968         `MonoEvent *events'.
9969
9970         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
9971         (typebuilder_icalls): Added "get_event_info"; calls
9972         mono_reflection_event_builder_get_event_info(). 
9973
9974         * reflection.c (mono_reflection_generic_inst_initialize): Added
9975         `MonoArray *events'.
9976         (mono_reflection_event_builder_get_event_info): New function.
9977
9978 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
9979
9980         * object.h: add mono_type_initialization_init
9981
9982         * object.c (mono_runtime_class_init): 
9983         implement class constructor synchronization rules
9984         to cope with threading issues.  
9985         add mono_type_initialization_init
9986
9987         * appdomain.c (mono_runtime_init): call 
9988         mono_type_initialization_init
9989
9990         * class.h: removing initializing field from MonoVTable
9991
9992 2004-03-23  Martin Baulig  <martin@ximian.com>
9993
9994         * class.c (my_mono_class_from_generic_parameter): Use
9995         `param->name' if it's not NULL. 
9996
9997 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
9998
9999         * class.c: do not insert non-virtual methods in the vtable.
10000         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
10001         that means the method is non-virtual. This never would have
10002         happened before.
10003
10004 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
10005
10006         * profiler.c: Added lock for accessing coverage_hash.
10007
10008 2004-03-22  Martin Baulig  <martin@ximian.com>
10009
10010         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
10011         `method->method->signature->generic_param_count != 0' to make it
10012         work for interface methods.
10013
10014 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10015
10016         * process.c: quote the string passed to the shell using g_shell_quote.
10017
10018 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10019
10020         * threads.c:
10021         (mono_threads_manage): don't remove the finalizer thread and self
10022         from the threads hash table so that mono_thread_manage can be called
10023         more than once.
10024
10025 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10026
10027         * process.c: quote the arguments when UseShellExecute is true. Fixes
10028         bug #55790.
10029
10030 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10031
10032         * threads.c: set mono_thread_detach as a cleanup routine for every
10033         thread. This way it's always executed upon thread termination, either
10034         aborted or finished normally. No more xsp hangs!
10035
10036 2004-03-17  Martin Baulig  <martin@ximian.com>
10037
10038         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
10039         `int count_nested' and a `MonoType **nested'.
10040
10041         * reflection.c (mono_reflection_bind_generic_parameters): Moved
10042         most of the functionality into a new static
10043         do_mono_reflection_bind_generic_parameters() and don't take a
10044         `MonoType *nested_in' argument any more.  Don't compute nested
10045         types here.
10046         (mono_reflection_generic_inst_get_nested_types): New public method
10047         to get nested types.
10048
10049         * class.c (mono_class_create_generic): Set `klass->nested_in' if
10050         we're a nested class.
10051
10052         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
10053         mono_reflection_generic_inst_get_nested_types() to compute the
10054         nested types.
10055
10056 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10057
10058         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
10059         descriptive error message under windows.
10060         
10061 2004-03-17  Martin Baulig  <martin@ximian.com>
10062
10063         * class.c (dup_type): Added `const MonoType *original' argument;
10064         copy the attrs from the original type.
10065
10066 2004-03-17  Martin Baulig  <martin@ximian.com>
10067
10068         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
10069         `m->generic_inst_cache' here.
10070
10071 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10072
10073         * exception.h exception.c: Add stack_overflow_exception.
10074
10075 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10076
10077         * threadpool.c:
10078         (overlapped_callback): call SetEvent *after* invoking the callback.
10079         No need to call CloseHandle.
10080
10081 2004-03-16  Martin Baulig  <martin@ximian.com>
10082
10083         * reflection.c (mono_image_get_fieldref_token): Take a
10084         `MonoReflectionField *' instead of a `MonoClassField *' and a
10085         `MonoClass *'; store the `MonoReflectionField *' in the hash.
10086
10087 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10088
10089         * appdomain.c: don't add the culture to the filename we're looking for
10090         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
10091
10092 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10093
10094         * locales.c: don't ignore symbols when doing case insensitive compares.
10095         Thanks Dick! Fixes bug #54046.
10096
10097         * threads.c: surround 'threads' usage with enter/leave in
10098         mono_thread_manage.
10099
10100 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
10101
10102         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
10103         implicitly marshalled as [Out]. Fixes #55450.
10104
10105         (mono_marshal_get_runtime_invoke): Zero out the result if there is
10106         an exception.
10107
10108 2004-03-16  Martin Baulig  <martin@ximian.com>
10109
10110         * class.c (mono_class_from_generic_parameter): Use the actual
10111         parameter name. 
10112
10113 2004-03-16  Martin Baulig  <martin@ximian.com>
10114
10115         * reflection.c (type_get_signature_size): New static function.
10116         Compues the size of the type in a method signature.
10117         (method_get_signature_size): New static function; calls
10118         type_get_signature_size() to compute the actual size of the
10119         method's signature.
10120         (method_encode_signature): Use method_get_signature_size() to get
10121         the signature's size rather than using `nparams * 10'.
10122
10123 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10124
10125         * file-io.h: define here WapiOverlapped on windows. I don't want the
10126         regular OVERLAPPED one.
10127
10128         * file-io.c:
10129         * threadpool.c: somehow, BindIoCompletionCallback is not found.
10130         Disabling AIO on windows.
10131
10132 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10133
10134         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
10135         bug #55385.
10136
10137 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10138
10139         * appdomain.c: upgraded corlib version.
10140
10141         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
10142         and BeginWrite. Allow opening files for asynchrnous operations.
10143
10144         * file-io.h: new struct that maps FileStreamAsyncResult.
10145         * icall.c: added new icalls.
10146         * process.[ch]: support setting child process environment variables
10147         and use the SHELL or COMSPEC when UseShellExecute is true.
10148
10149         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
10150         callback for async. IO is here and also BindHandle.
10151
10152         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
10153         from here.
10154
10155 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
10156
10157         * reflection.c (create_custom_attr): Allow len == 0.
10158
10159         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
10160         computation on big-endian machines.
10161
10162 2004-03-13  Martin Baulig  <martin@ximian.com>
10163
10164         * class.h (MonoGenericInst): Added `int count_ifaces'.
10165
10166         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
10167         `ginst->count_ifaces' instead `klass->interface_count' since we
10168         may get called before the vtable is created.
10169
10170         * loader.c (mono_method_get_param_names): If we're a generic
10171         instance, return and don't initialize the class.
10172
10173         * reflection.c (mono_reflection_setup_generic_class): Don't call
10174         ensure_runtime_vtable().
10175         (mono_reflection_bind_generic_parameters): Set
10176         `ginst->count_ifaces'.
10177
10178 2004-03-11  Jackson Harper <jackson@ximian.com>
10179
10180         * icall.c:
10181         * unicode.c:
10182         * unicode.h: Remove unused System.Char icalls.
10183         
10184 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
10185
10186         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
10187         code when we P/Invoke the first library in Windows.Forms, instead
10188         of when we first open the assembly.
10189
10190         * assembly.c: Drop the lookup from here.
10191
10192 2004-03-10  Martin Baulig  <martin@ximian.com>
10193
10194         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
10195         class for properties, fields and events.  Finally fixes #54945.
10196
10197 2004-03-10  Martin Baulig  <martin@ximian.com>
10198
10199         * metadata.c (mono_metadata_class_equal): New static function;
10200         checks whether two generic instances or two generic parameters are
10201         equal.
10202         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
10203         compare classes.        
10204
10205 2004-03-10  Martin Baulig  <martin@ximian.com>
10206
10207         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
10208
10209         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
10210         argument and write it into the `reflection_info' field.
10211
10212         * icall.c
10213         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
10214         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
10215
10216 2004-03-09  Jackson Harper  <jackson@ximian.com>
10217
10218         * char-conversions.h: use 8 bits for numeric data its all we need
10219         * icall.c: numeric data is only 8 bits now.
10220
10221 2004-03-09  Martin Baulig  <martin@ximian.com>
10222
10223         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
10224
10225         * class.c (init_properties, init_events): Initialize the new
10226         `parent' field.
10227
10228         * reflection.c (typebuilder_setup_properties): Likewise.
10229         (typebuilder_setup_events): Likewise.
10230
10231         * reflection.h (MonoEventInfo): Replaced `parent with
10232         `declaring_type' and `reflected_type'.
10233
10234         * icall.c (ves_icall_get_property_info): Distinguish between
10235         declaring and reflected type.
10236         (ves_icall_get_event_info): Likewise.
10237
10238 2004-03-09  Martin Baulig  <martin@ximian.com>
10239
10240         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
10241         (ves_icall_Type_GetField): Correctly set field->klass.
10242
10243 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
10244
10245         * loader.h: Fix warning.
10246
10247 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
10248
10249         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
10250         library routine if present.  Notice that it will still continue
10251         executing even if its missing, for those working on the Gtk#
10252         edition of Windows.Forms.
10253
10254         * assembly.c (do_mono_assembly_open): If loading the
10255         System.Windows.Forms call mono_loader_wini_init.
10256
10257 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
10258
10259         * class.h: Added MonoRemoteClass struct.
10260         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
10261         function for MonoStrings.
10262         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
10263         Added internal call for getting the proxy type.
10264         * marshal.c: Get the type of transparent proxies from its remote_class.
10265         Added methods that generate the IL for type checks and casts:
10266         mono_marshal_get_isinst, mono_marshal_get_castclass, 
10267         mono_marshal_get_proxy_cancast.
10268         * marshal.h: Declaration of the previous new methods.
10269         * object.c: Added new moethods for creating and updating MonoRemoteClass
10270         instances: mono_remote_class, mono_upgrade_remote_class, 
10271         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
10272         * verify.c: FIx transparent_proxy_fields layout.
10273         * appdomain.c: Bump corlib version.
10274
10275 2004-03-04  Jackson Harper  <jackson@ximian.com>
10276
10277         * icall.c: Add icall to access char conversion tables.
10278         * char-conversions.h: Character conversion tables.
10279         * Makefile.am: Add char-conversions.h private header file.
10280         
10281 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
10282
10283         * appdomain.c (unload_thread_main): Increase unloading timeout to
10284         10 sec as a temporary workaround for Nant problems.
10285
10286 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
10287
10288         * gc.c: Add checks for GC_enable and GC_disable.
10289
10290         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
10291         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
10292         (bug #54988).
10293         
10294 2004-02-27  Martin Baulig  <martin@ximian.com>
10295
10296         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10297         `MonoReflectionType *' instead of a `MonoType *'.
10298
10299 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
10300
10301         * gc.c (run_finalize): Avoid finalizing the object representing the
10302         finalizer thread.
10303         (finalizer_thread): Fix warning.
10304
10305 2004-02-25  Martin Baulig  <martin@ximian.com>
10306
10307         * class.c (_mono_class_get_instantiation_name): Added `int offset'
10308         argument for nested types.
10309         (mono_class_create_generic): Added support for nested generictypes.
10310
10311         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
10312         `GList *nested'.
10313
10314         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10315
10316         * reflection.c (method_encode_signature): Increase the minimum
10317         value of `size' from 10 to 11.
10318         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10319         and `MonoType **types' arguments instead of the `MonoArray
10320         *types'; added `MonoType *nested_in'.  Recursively instantiate
10321         nested classes. 
10322
10323 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10324
10325         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10326         stack_overflow_ex members which are used by exception handling.
10327
10328         * appdomain.c (mono_runtime_init): Initialize the new members.
10329
10330         * gc.c (mono_gc_enable): New helper function.
10331         * gc.c (mono_gc_disable): New helper function.
10332
10333 2004-02-23  Martin Baulig  <martin@ximian.com>
10334
10335         * icall.c: I must have been really stupid - make it actually work
10336         this time ;-)
10337
10338 2004-02-23  Martin Baulig  <martin@ximian.com>
10339
10340         * loader.c (method_from_memberref): Only inflate the method if
10341         it's in another klass.
10342
10343 2004-02-23  Martin Baulig  <martin@ximian.com>
10344
10345         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10346         (mono_class_init): If we're a generic instance and an interface,
10347         compute `class->interface_id'; also create `class->interfaces'
10348         here and inflate them.
10349
10350         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10351         `ginst->is_open'.
10352         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10353
10354         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10355
10356 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10357
10358         * reflection.c (method_encode_code): Improved the error message
10359         generated by the exception.
10360
10361 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10362
10363         * icall.c: Martin did not do what he said in the ChangeLog for
10364         2004-02-18, but put back the changes for properties and events.
10365         Commenting those changes out again and adding comment to bug #54518.
10366         
10367         * process.c: removed warning.
10368
10369 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10370
10371         * marshal.c (emit_struct_conv): Print an error message instead of
10372         asserting when a type does not have the StructLayout attribute.
10373
10374 2004-02-20  Martin Baulig  <martin@ximian.com>
10375
10376         * reflection.c (mono_type_get_object): Also use the cache for
10377         generic instances.
10378         (mono_reflection_bind_generic_parameters): Always compute
10379         `ginst->ifaces'.        
10380
10381 2004-02-20  Martin Baulig  <martin@ximian.com>
10382
10383         * class.h (MonoGenericMethod): Removed `klass'.
10384
10385         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10386         *klass' argument.
10387
10388 2004-02-20  Martin Baulig  <martin@ximian.com>
10389
10390         * reflection.c (method_encode_methodspec): Actually use the
10391         uninflated signature for the memberref.
10392
10393 2004-02-20  Martin Baulig  <martin@ximian.com>
10394
10395         * class.h (MonoGenericMethod): Removed `declaring'.
10396
10397         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10398         is NULL, compute it here.
10399
10400 2004-02-20  Martin Baulig  <martin@ximian.com>
10401
10402         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10403
10404         * metadata.c (mono_metadata_generic_inst_hash): New method.
10405         (mono_metadata_generic_inst_equal): New method.
10406
10407         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10408         `klass->image->generic_inst_cache' cache to avoid creating
10409         duplicate MonoGenericInst's.
10410
10411         * class.c (mono_class_inflate_generic_type): Use the cache.
10412
10413 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10414
10415         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10416
10417 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10418
10419         * icall.c: added Socket.WSAIoctl icall.
10420
10421         * socket-io.[ch]: implemented
10422         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10423
10424 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10425
10426         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10427
10428 2004-02-18  Urs C Muff  <umuff@quark.com>
10429
10430         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10431         this work on PPC and other big-endian architectures.
10432
10433         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10434         fields with an underscore to make sure they're only accessed by
10435         the read32() macro.
10436
10437 2004-02-18  Martin Baulig  <martin@ximian.com>
10438
10439         * icall.c: Put the klass->refclass changes back for methods and
10440         fields, but not for properties and events.  We're currently not
10441         distinguishing between DeclaringType and ReflectedType for
10442         properties and events, that's what caused the regressions.
10443
10444 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10445
10446         * object.c:
10447         (mono_async_result_new): the handle can be NULL.
10448
10449         * threadpool.c: Use an event instead of a semaphore, don't initialize
10450         it until needed. This saves quite a few semaphores from being created
10451         when using the threadpool.
10452
10453 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10454
10455         * object.c (mono_string_is_interned_lookup): Fix interning of long
10456         strings. Fixes #54473.
10457
10458         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10459
10460         * icall.c: Revert the klass->refclass changes since they introduce
10461         regressions (bug #54518).
10462
10463 2004-02-18  Martin Baulig  <martin@ximian.com>
10464
10465         * class.c (mono_class_init): If we're a generic instance and don't
10466         come from a TypeBuilder, inflate our members here.
10467         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10468         (mono_class_create_generic): New public method.
10469         (mono_class_initialize_generic): Removed.
10470         (get_instantiation_name): Renamed to
10471         _mono_class_get_instantiation_name() and made it public.
10472
10473 2004-02-18  Martin Baulig  <martin@ximian.com>
10474
10475         * class.c (mono_class_inflate_generic_type): Clear the new
10476         instance's `nginst->klass' when inflating a generic instance.
10477         (mono_class_is_subclass_of): Added (basic) support for generic
10478         instances.
10479
10480 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10481
10482         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10483         MonoMempool to hold compiled native code.
10484
10485 2004-02-17  Martin Baulig  <martin@ximian.com>
10486
10487         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10488         `properties'.
10489
10490         * reflection.c (mono_reflection_generic_inst_initialize): Added
10491         `MonoArray *properties' argument.
10492
10493         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
10494
10495 2004-02-17  Martin Baulig  <martin@ximian.com>
10496
10497         * icall.c (ves_icall_Type_GetFields): Renamed to
10498         ves_icall_Type_GetFields_internal() and added a
10499         `MonoReflectionType *rtype' argument; pass it to
10500         mono_field_get_object() to set the field's "reflected" type.
10501         (ves_icall_Type_GetConstructors): Likewise.
10502         (ves_icall_Type_GetEvents): Likewise.
10503         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
10504         argument; pass it to mono_method_get_object() to set the method's
10505         "reflected" type.       
10506
10507 2004-02-17  Martin Baulig  <martin@ximian.com>
10508
10509         * class.h (MonoDynamicGenericInst): New type.
10510         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
10511
10512         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
10513         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
10514         (ves_icall_MonoGenericInst_GetFields): New interncall.
10515
10516         * class.c (mono_class_from_generic): Don't call
10517         mono_class_initialize_generic() if this is a dynamic instance;
10518         ie. it's being created from a TypeBuilder.
10519         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
10520         `class->byval_arg.type'.
10521
10522         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
10523         to `inflate_method' and made static.
10524         (mono_reflection_inflate_field): Removed.
10525         (mono_reflection_generic_inst_initialize): New public method.
10526
10527         * reflection.h (MonoReflectionGenericInst): Removed `methods',
10528         `ctors' and `fields'; added `initialized'.
10529
10530 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
10531
10532         * debug-helpers.c (mono_method_full_name): Fix output for empty
10533         namespaces.
10534
10535 2004-02-12  Martin Baulig  <martin@ximian.com>
10536
10537         * class.h (MonoClassField): Added `MonoType *generic_type'.
10538
10539         * reflection.c (mono_image_get_fieldref_token): Added support for
10540         instantiated generic types.
10541         (field_encode_inflated_field): Removed.
10542         (mono_image_get_inflated_field_token): Removed.
10543         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
10544
10545         * reflection.h (MonoReflectionInflatedField): Removed.
10546
10547 2004-02-12  Martin Baulig  <martin@ximian.com>
10548
10549         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
10550         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
10551
10552         * reflection.c (mono_image_get_methodspec_token): Take a
10553         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
10554         (mono_image_create_token): Check whether we have a
10555         `method->signature->gen_method' and call
10556         mono_image_get_methodspec_token() if appropriate.
10557         (inflated_method_get_object): Removed.
10558         (mono_reflection_bind_generic_method_parameters): Return a
10559         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
10560         (mono_reflection_inflate_method_or_ctor): Likewise.
10561
10562         * reflection.h (MonoReflectionInflatedMethod): Removed.
10563
10564 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
10565
10566         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
10567         for custom valuetype marshalling.
10568
10569         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
10570
10571 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10572
10573         * icall.c: fixed WSAGetLastError_internal name.
10574
10575 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
10576
10577         * threads.c (mono_thread_attach): Allow this to be called multiple
10578         times for a thread.
10579         
10580         * threads.c (build_wait_tids): Do not wait for ourselves.
10581
10582         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
10583         appdomain list is empty.
10584
10585         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
10586         memory returned by mono_string_builder_to_utf16, since it points into
10587         managed memory. Thanks to Bernie Solomon for noticing this.
10588
10589         * icall.c: Add AppDomainSetup icalls.
10590
10591         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
10592
10593         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
10594         types.
10595
10596         * reflection.c (reflection_methodbuilder_to_mono_method): Save
10597         custom attributes to the method_aux struct. Also fix array indexes etc.
10598
10599         * loader.c (mono_method_get_param_names): Make dynamic case work again.
10600         
10601 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
10602
10603         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
10604         (both static and runtime) and reduce startup time.
10605
10606 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
10607
10608         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
10609         AsAny marshalling conversion instead of crashing.
10610
10611         * marshal.c: Fix warnings.
10612
10613 2004-02-09  Martin Baulig  <martin@ximian.com>
10614
10615         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
10616
10617         * reflection.h (MonoReflectionInflatedMethod): Removed the
10618         `declaring' field, it's now in the unmanaged MonoGenericMethod.
10619
10620         * reflection.c (method_encode_methodspec): Removed the `method'
10621         argument; we get it from `gmethod->declaring'.
10622         (inflated_method_get_object): Removed the `declaring' argument.
10623
10624 2004-02-09  Martin Baulig  <martin@ximian.com>
10625
10626         * class.h (MonoGenericMethod): New type.
10627         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
10628         `generic_method'.
10629
10630         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
10631         a `MonoGenericMethod *gen_method' one.
10632
10633         * class.c (mono_class_inflate_generic_type): Take an additional
10634         `MonoGenericMethod * argument.  This is only non-NULL if we're
10635         inflating types for a generic method.   
10636         (mono_class_inflate_generic_signature): Renamed to
10637         inflate_generic_signature() and made static; take a
10638         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10639         (inflate_generic_header): Take a `MonoGenericMethod *' argument
10640         instead of a `MonoGenericInst *' one.
10641         (mono_class_inflate_generic_method): Likewise.
10642
10643         * reflection.c (encode_generic_method_sig): Take a
10644         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10645         (method_encode_methodspec): Likewise.
10646         (inflated_method_get_object): Likewise. 
10647
10648         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
10649         field with a `MonoGenericMethod *gmethod' one.  
10650
10651 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
10652
10653         * class.h (mono_class_has_parent): add parens to expansion
10654         so you can ! this.
10655
10656 2004-02-08  Martin Baulig  <martin@ximian.com>
10657
10658         * image.h (MonoImage): Removed `generics_cache'.
10659
10660         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
10661         instead of a `MonoType *' argument; removed the `inflate_methods'
10662         argument.  Don't inflate methods here.
10663
10664         * loader.c (find_method): If it's a generic instance, call
10665         mono_class_init() on the `sclass->generic_inst->generic_type'.
10666
10667         * metadata.c (mono_type_size): Make this work on uninitialized
10668         generic instances; call it on the `ginst->generic_type's class.
10669
10670         * reflection.c (mono_reflection_bind_generic_parameters): Call
10671         mono_class_from_generic() to create the `ginst->klass'.
10672
10673 2004-02-08  Martin Baulig  <martin@ximian.com>
10674
10675         * class.h (MonoClass): Changed type of `generic_inst' from
10676         `MonoType *' to `MonoGenericInst *'.
10677
10678 2004-02-08  Martin Baulig  <martin@ximian.com>
10679
10680         * icall.c (ves_icall_Type_BindGenericParameters): Just call
10681         mono_type_get_object(), this is now creating a `MonoGenericInst'
10682         for MONO_TYPE_GENERICINST.
10683         (ves_icall_MonoGenericInst_GetParentType): Likewise.
10684         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
10685
10686         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
10687         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
10688         (inflated_method_get_object): Added `MonoClass *refclass' argument.
10689         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
10690         and reflected type.
10691
10692         * reflection.h (MonoReflectionInflatedMethod): Removed
10693         `declaring_type' and `reflected_type'.
10694
10695 2004-02-08  Martin Baulig  <martin@ximian.com>
10696
10697         * class.h (MonoGenericInst): Added `MonoType *parent' and
10698         `MonoType **ifaces'.
10699
10700         * reflection.h (MonoReflectionGenericInst): Removed `klass',
10701         `parent' and `interfaces'.
10702
10703         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10704         `MonoType *' argument and return a `MonoType *'.
10705
10706         * icall.c
10707         (ves_icall_MonoGenericInst_GetParentType): New interncall.
10708         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
10709
10710 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10711
10712         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
10713         valuetype marshalling.
10714
10715 2004-02-06  Martin Baulig  <martin@ximian.com>
10716
10717         * class.c
10718         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
10719         (my_mono_class_from_generic_parameter): Likewise.
10720
10721 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10722
10723         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
10724         contents of the symbol files lazily.
10725
10726         * object.h (MonoThread): Add 'name' and 'name_len' fields.
10727
10728         * threads.h threads.c icall.c: New icalls for getting and setting the
10729         threads name.
10730
10731 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
10732
10733         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
10734         Raise an exception when the domain is not found.
10735
10736 2004-02-03  Martin Baulig  <martin@ximian.com>
10737
10738         * reflection.c (mono_image_get_methodspec_token): Use the
10739         uninflated signature; fixes gen-33.
10740
10741 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
10742
10743         * gc.c threads.c: Make the finalizer thread a normal managed thread so
10744         the finalizer code can use thread functionality.
10745
10746         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
10747         the finalizer thread.
10748
10749         * threads.c: Make some functions more robust.
10750
10751         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
10752
10753         * metadata.h: Add new marshalling conventions.
10754
10755         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
10756         stringbuilder marshalling. Fixes #53700.
10757
10758         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
10759
10760         * reflection.c (mono_image_get_type_info): Save declarative security
10761         info.
10762
10763         * reflection.c (mono_image_get_field_info): Handle uninitialized 
10764         unmanaged fields as well.
10765
10766         * appdomain.c: Bump corlib version.
10767
10768 2004-02-01  Martin Baulig  <martin@ximian.com>
10769
10770         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
10771         method type arguments.  
10772
10773 2004-01-30  Duncan Mak  <duncan@ximian.com>
10774
10775         * marshal.h: Add prototype for
10776         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
10777         and
10778         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
10779         fix the build.
10780
10781 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
10782
10783         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
10784         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
10785
10786 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
10787
10788         * marshal.c (mono_marshal_get_native_wrapper): Add support for
10789         custom marshalling of valuetypes.
10790
10791         * marshal.c: Fix some warnings.
10792
10793 2004-01-29  Martin Baulig  <martin@ximian.com>
10794
10795         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
10796         for generic method parameters.
10797
10798         * reflection.c (method_encode_methodspec): Write the uninflated
10799         signature into the methodspec table.
10800         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
10801         is always the uninflated method.
10802         (reflection_methodbuilder_to_mono_method): Copy the generic
10803         parameters from the MethodBuilder into `header->gen_params'.
10804
10805 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
10806
10807         * class.c (mono_class_from_generic_parameter): Fix warning.
10808
10809 2004-01-27  Martin Baulig  <martin@ximian.com>
10810
10811         * class.c (mono_class_from_generic_parameter): Don't create
10812         `klass->methods' here.  
10813
10814 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
10815
10816         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
10817         extension since it does not work with libraries named lib<FOO>.dll.so.
10818
10819 2004-01-25  Martin Baulig  <martin@ximian.com>
10820
10821         * class.c (mono_class_inflate_generic_type): Added support for
10822         MONO_TYPE_GENERICINST.
10823
10824         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
10825         inflate methods on open constructed types.      
10826
10827 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10828
10829         * object.c: fire ProcessExit event in the root AppDomain after running
10830         Main. Fixes bug #53299.
10831
10832 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
10833
10834         * socket-io.c: include the new socket-wrappers.h header.
10835         Use the wrappers instead of the unix socket functions to make the code
10836         more clear.
10837
10838 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
10839
10840         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
10841
10842         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
10843         Fixes #22532.
10844
10845 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
10846
10847         * reflection.c (mono_image_create_pefile): Handle the case when the
10848         entry point is not a MethodBuilder.
10849
10850         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
10851         field to ReflectionMethod since it is not allways a builder.
10852
10853         * reflection.c (type_get_fully_qualified_name): New helper function to
10854         return the fully qualified name of a type.
10855
10856         * reflection.c (encode_marshal_blob): Always emit the fully qualified
10857         type name for custom marshallers.
10858
10859         * reflection.c (mono_marshal_spec_from_builder): Ditto.
10860
10861         * class.c (mono_class_setup_vtable): If a parent class already 
10862         implements an interface, use the implementing methods from that class.
10863         Fixes #53148.
10864
10865 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10866
10867         * threadpool.c: just return instead of ExitThread to allow for thread
10868         clean up earlier.
10869
10870 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
10871
10872         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
10873         when closing resource modules.
10874
10875         * reflection.c (mono_image_create_pefile): Handle the case when the
10876         entry point is not a MethodBuilder.
10877
10878         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
10879         field to ReflectionMethod since it is not allways a builder.
10880
10881 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
10882
10883         * marshal.c (mono_marshal_get_managed_wrapper): 
10884         mono_marshal_alloc takes native int so CONV_I
10885         the arg for 64bits.
10886
10887 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
10888
10889         * reflection.c (fixup_cattrs): New function to fixup the methoddef
10890         tokens in the cattr table. Fixes #53108.
10891
10892 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10893
10894         * loader.c: don't trim ".dll" before looking up in the config file.
10895         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
10896
10897 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
10898
10899         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
10900         Return the module which contains the resource as well.
10901         (ves_icall_System_Reflection_Module_Close): New icall.
10902
10903         * appdomain.c: Bump corlib version number.
10904
10905         * image.c (mono_image_addref): New public function.
10906
10907         * assembly.c: Call mono_image_addref.
10908
10909         * reflection.c (mono_module_get_object): Increase reference count of 
10910         the image.
10911
10912         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
10913         Fixes #22532.
10914
10915         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
10916         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
10917         proper exceptions on DllImport problems.
10918
10919 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
10920
10921         * class.c, metadata.c: eliminate CSIZE macro.
10922
10923 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
10924
10925         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
10926         * object.h: Added async_callback field in MonoAsyncResult.
10927         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
10928         * verify.c: Added async_callback in MonoAsyncResult layout.
10929
10930 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
10931
10932         * reflection.c (mono_reflection_get_custom_attrs): Add support
10933         for Modules.
10934
10935 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
10936
10937         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
10938         marshalling.
10939         (mono_marshal_method_from_wrapper): Add null pointer check.
10940
10941 2004-01-16  Martin Baulig  <martin@ximian.com>
10942
10943         * debug-mono-symfile.h: Set version number to 36 and reflect
10944         latest symbol writer changes.
10945
10946 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
10947
10948         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
10949         multi-dimensional arrays.
10950         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
10951         (mono_class_from_mono_type): Use bounded_array_class_get.
10952         
10953         * class.c (mono_bounded_array_class_get): New function which takes
10954         a 'bounded' bool argument to distinguish vectors from one dimensional
10955         arrays.
10956
10957         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
10958         bounded_array_class_get if the array has bounds.
10959
10960         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
10961         Search modules loaded using AssemblyBuilder:AddModule as well.
10962
10963 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10964
10965         * appdomain.c: increased corlib version.
10966         * filewatcher.c: removed g_print.
10967         * icall.c:
10968         (get_property_info): only allocate what is actually requested.
10969         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
10970
10971 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10972
10973         * Makefile.am: added filewatcher.[ch]
10974         * filewatcher.[ch]: FileSystemWatcher runtime support.
10975         * icall.c: added new FSW icalls.
10976
10977 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
10978
10979         * string-icalls.c: fix stringbuilder regression as suggested by
10980         Iain McCoy <iain@mccoy.id.au>.
10981
10982 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
10983
10984         * process.c (process_read_stringtable_block): Recognize '007f' as
10985         a language neutral stringtable block.
10986
10987 2004-01-12  Patrik Torstensson
10988
10989         * object.h (MonoStringBuilder) : Changed layout to support our
10990         new stringbuilder class.
10991         * marshal.c: Change marshalling to support the new layout of 
10992         string builder.
10993         * appdomain.c: increased version number because new layout of
10994         string builder.
10995
10996 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
10997
10998         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
10999         assembly name as an string instead of an AssemblyName, since it is
11000         easier to extract info from it.
11001
11002         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
11003         the culture subdirectories too. Fixes #52231.
11004
11005 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11006
11007         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
11008         It takes 2 new parameters with an optional name for the method to look
11009         for and case ignoring info.
11010
11011         * threadpool.c: removed unused variable.
11012
11013 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11014
11015         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
11016         It takes 2 new parameters with an optional name for the property to look
11017         for and case ignoring info.
11018         Fixes bug #52753.
11019
11020 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
11021
11022         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
11023         Fix #52451.
11024
11025 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11026
11027         * appdomain.c:
11028         * assembly.c: escape the uri before passing it to g_filename_from_uri.
11029         Fixes bug #52630.
11030
11031 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
11032
11033         * reflection.c: Add support for more than one unmanaged resource.
11034
11035         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
11036         in field->def_value, as done in all other cases.
11037
11038         * reflection.c (mono_reflection_get_custom_attrs): Add support for
11039         TypeBuilders.
11040
11041         * reflection.c (mono_reflection_create_runtime_class): Remove 
11042         errorneous assignment to klass->element_class, since it is already
11043         done in mono_reflection_setup_internal_class.
11044
11045 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11046
11047         * gc.c: added missing LeaveCriticalSection.
11048         * icall.c: indented a couple of lines.
11049         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
11050         if we call EndInvoke inside a callback. Fixes bug #52601.
11051
11052 2004-01-07  Martin Baulig  <martin@ximian.com>
11053
11054         * mono-debug-debugger.h
11055         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
11056
11057 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
11058
11059         * appdomain.c: Use messages in NotImplementedException.
11060
11061         * exception.c (mono_get_exception_not_implemented): Now this takes
11062         a message argument.
11063
11064         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
11065         exception instead of g_asserting an aborting when something is not
11066         implemented.
11067
11068         Add some inline docs.
11069
11070 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
11071
11072         * reflection.h: Update after changes to object layout.
11073
11074         * reflection.c: Implement saving of unmanaged aka win32 resources.
11075
11076         * appdomain.c: Bump version number.
11077
11078         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
11079         Handle missing domains gracefully.
11080
11081 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
11082
11083         * file-io.c : On Windows, there are much more invalid_path_chars.
11084
11085 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
11086
11087         * class.h, object.c: prepare for GetType () speedup.
11088
11089 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
11090
11091         * profiler.c: workaround for --profile null reference exception on
11092           cygwin. Patch by Patrik Torstensson.
11093
11094 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
11095
11096         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
11097         make work for unaligned access.
11098
11099 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
11100
11101         * class.c: small cleanup (class->fields [i] -> field).
11102         * image.c: check address of metadata is valid.
11103
11104 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
11105
11106         * assembly.h assembly.c (mono_assembly_loaded): New public function to
11107         search the list of loaded assemblies.
11108
11109         * reflection.c (mono_reflection_type_from_name): Use 
11110         mono_assembly_loaded instead of mono_image_loaded.
11111
11112         * reflection.c: Fix warnings.
11113
11114 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
11115
11116         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
11117         is dynamic. This is needed since an assembly can contain both dynamic and
11118         non-dynamic images.
11119
11120         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
11121         assembly->dynamic.
11122
11123         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
11124
11125         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
11126         to store modules loaded using AddModule.
11127
11128         * reflection.c (mono_image_fill_file_table): Generalize this so it works
11129         on Modules.
11130
11131         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
11132
11133         * reflection.c (mono_image_fill_export_table_from_module): New function to
11134         fill out the EXPORTEDTYPES table from a module.
11135
11136         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
11137         into a separate function. Also handle loaded non-dynamic modules.
11138
11139         * reflection.c (mono_image_basic_init): Fix memory allocation.
11140
11141         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11142
11143         * assembly.c (mono_assembly_load_references): Make this public.
11144
11145 2003-12-19  Martin Baulig  <martin@ximian.com>
11146
11147         * class.c (mono_class_initialize_generic): Made this static, take
11148         a `MonoGenericInst *' instead of a `MonoClass *'.
11149         (mono_class_from_generic): Call mono_class_initialize_generic()
11150         unless we're already initialized or being called from
11151         do_mono_metadata_parse_generic_inst().
11152
11153         * class.h (MonoGenericInst): Added `initialized' and
11154         `init_pending' flags.
11155
11156         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
11157         `mono_class_init (gklass)' or mono_class_initialize_generic()
11158         here; set `generic_inst->init_pending' while parsing the
11159         `type_argv'.
11160
11161 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
11162
11163         * locales.c: include string.h for memxxx prototypes
11164
11165 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
11166
11167         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
11168         constructor when accessing literal fields.
11169
11170 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
11171
11172         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11173
11174         * reflection.c (assembly_add_resource_manifest): New function to fill
11175         the MANIFESTRESOURCE table.
11176
11177         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
11178
11179         * reflection.h: Update to changes in class layout.
11180
11181         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
11182         Reenable call to mono_runtime_is_shutting_down ().
11183
11184         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
11185         determine if the runtime is shutting down.
11186
11187 2003-12-16  Jackson Harper <jackson@ximian.com>
11188
11189         * icall.c: comment out call to mono_runtime_is_shutting_down to
11190         fix build.
11191         
11192 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
11193
11194         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
11195         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
11196
11197 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
11198
11199         * reflection.c: move definition of swap_with_size
11200         to before its first call
11201
11202 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
11203
11204         * appdomain.c (mono_runtime_is_shutting_down): New public function.
11205
11206         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
11207         icall.
11208
11209         * object.c: Fix warnings.
11210
11211         * icall.c (ves_icall_Type_Get...): Only consider inherited static
11212         members if FlattenHierarchy is set.
11213
11214         * reflection.c (mono_image_add_decl_security): New function to emit
11215         declarative security.
11216
11217         * reflection.h reflection.c: Add support for declarative security.
11218
11219         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11220         
11221 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
11222
11223         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11224         
11225         * appdomain.c verify.c: Moved corlib version checking into its own
11226         function in appdomain.c since it needs to create vtables etc.
11227
11228 2003-12-13  Patrik Torstensson <p@rxc.se>
11229
11230         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
11231         instead of unwrapped server.
11232
11233 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
11234
11235         * verify.c (check_corlib): Fix field index.
11236
11237 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
11238
11239         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
11240         GetGacPath icall.
11241
11242 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
11243
11244         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
11245         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
11246         cope with sizeof(size_t) != sizeof(guint32).
11247
11248 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11249
11250         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
11251         in case of failure.
11252
11253 2003-12-10  Mark Crichton <crichton@gimp.org>
11254
11255         * icall.c: removed the GetNonZeroBytes.  We now handle this case
11256         in managed code.
11257
11258         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
11259
11260 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
11261
11262         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
11263         marked as deleted.
11264
11265 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
11266
11267         * verify.c (check_corlib): Handle the case when the version field is 
11268         initialized by a static constructor.
11269
11270 2003-12-08  Patrik Torstensson  <p@rxc.se>
11271
11272     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
11273
11274 2003-12-08  Martin Baulig  <martin@ximian.com>
11275
11276         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
11277         a MonoReflectionGenericParameter, also take the parameter index
11278         and name as arguments.
11279         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
11280         (ves_icall_MonoGenericParam_initialize): New interncall.
11281         (ves_icall_Type_make_byref_type): New interncall.
11282
11283         * reflection.h (MonoReflectionGenericParam): Derive from
11284         MonoReflectionType, not just from MonoObject.  Added `refobj' and
11285         `index' fields.
11286
11287         * reflection.c (mono_reflection_define_generic_parameter): Create
11288         and return a new MonoReflectionGenericParam; don't initialize the
11289         constraints here.
11290         (mono_reflection_initialize_generic_parameter): New public method;
11291         initializes the constraints and creates the `param->pklass'.
11292
11293 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
11294
11295         * reflection.h reflection.c: Use the new fields 'num_types', 
11296         'num_fields' and 'num_methods' to track the number of types etc.
11297
11298         * verify.c (check_corlib): Check corlib version number.
11299
11300 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
11301
11302         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
11303         function works on all methods.
11304
11305 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
11306
11307         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
11308         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
11309         the custom_type_info flag of the transparent proxy.
11310         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
11311         objects that supports IRemotingTypeInfo.
11312         * object.h: Added custom_type_info field in transparent proxy.
11313
11314 2003-12-06  Martin Baulig  <martin@ximian.com>
11315
11316         * class.c (mono_class_create_from_generic): Removed.
11317         (mono_class_from_generic): Check `ginst->klass' before doing
11318         anything else.  This is important to fully support "recursive"
11319         generic types.
11320
11321         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11322         empty `generic_inst->klass' before doing anything else.
11323
11324 2003-12-06  Dick Porter  <dick@ximian.com>
11325
11326         * verify.c: 
11327         * object.h:
11328         * icall.c:
11329         * locales.c: Use C structs to access class fields.  Don't do a
11330         conversion between MonoString and UChar because both are
11331         platform-endian UTF-16.  Compare now takes startindex and count
11332         parameters.  Add a char overload for IndexOf.  Speed up the
11333         invariant string IndexOf.
11334
11335 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11336
11337         * Makefile.am (monosn_LDADD): Fix parallel build.
11338
11339 2003-12-04  Martin Baulig  <martin@ximian.com>
11340
11341         * icall.c
11342         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11343         (ves_icall_Type_make_array_type): New interncall.       
11344
11345 2003-12-04  Martin Baulig  <martin@ximian.com>
11346
11347         * locales.c: also change it in the !HAVE_ICU case.
11348
11349 2003-12-04  Dick Porter  <dick@ximian.com>
11350
11351         * icall.c:
11352         * locales.c: construct_compareinfo is now in CompareInfo, not
11353         CultureInfo.
11354
11355 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11356
11357         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11358         image->files array.
11359
11360         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11361         table as well.
11362
11363         * assembly.c (mono_assembly_load_references): Only load references
11364         once.
11365
11366         * class.c (mono_class_from_name): Avoid linear search of the 
11367         EXPORTEDTYPE table.
11368
11369         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11370
11371 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11372
11373         * image.h (MonoImage): Add 'field_cache' field.
11374
11375         * loader.c (mono_field_from_token): Cache field lookups.
11376         
11377         * reflection.c (mono_module_get_object): Fix name property.
11378
11379         * icall.c (ves_icall_get_enum_info): Update after changes to 
11380         mono_metadata_get_constant_index ().
11381
11382         * icall.c: Get rid of get_type_info icall, use a separate icall for
11383         each type property to avoid needless memory allocations. Fixes #51514.
11384
11385         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11386         to avoid needless binary searches.
11387
11388         * class.c (class_compute_field_layout): Move the initialization of
11389         field->def_value to mono_class_vtable ().
11390
11391         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11392         non-corlib types.
11393
11394         * object.c (mono_object_allocate): Make it inline.
11395
11396         * object.c (mono_object_allocate_spec): Make it inline.
11397         
11398 2003-12-02  Dick Porter  <dick@ximian.com>
11399
11400         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11401         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11402
11403 2003-12-01  Dick Porter  <dick@ximian.com>
11404
11405         * threads.c: Fix signature and call in CreateMutex and
11406         CreateEvent.
11407
11408 2003-12-01  Dick Porter  <dick@ximian.com>
11409
11410         * icall.c: 
11411         * locales.c: Implement string compares and searching
11412
11413         * object.h: Add extra Thread field
11414
11415 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11416
11417         * reflection.c (fixup_method): Add support for MonoCMethod.
11418
11419 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11420
11421         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11422
11423         * reflection.c (assembly_name_to_aname): Allow extra characters in
11424         assembly names. Fixes #51468.
11425
11426 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11427
11428         * exception.c (mono_exception_from_name_domain): New helper function.
11429
11430         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11431         exception object in the correct domain.
11432
11433         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11434         formatting + make a copy a the input data.
11435
11436         * loader.c (mono_get_method_from_token): Methods which contain
11437         native code do not have entries in the ImplMap.
11438
11439         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11440         Thanks to Gonzalo for spotting this.
11441         
11442         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11443         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11444
11445         * assembly.h (mono_assembly_load_from): Split the second part of 
11446         assembly loading into a new public function.
11447
11448         * exception.h (mono_get_exception_bad_image_format): New function.
11449
11450 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11451
11452         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11453         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11454         
11455         * icall.c: Add new icall for creating dynamic methods.
11456
11457         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11458
11459         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11460
11461         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11462         create a dynamic method.
11463
11464         * reflection.c (resolve_object): New helper function.
11465
11466         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11467         which manipulate it so they can also work on dynamic methods.
11468
11469         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11470         creating the MonoReflectionMethodAux structure if it is not needed.
11471         
11472         * reflection.h verify.c: Update after changes to object layout.
11473
11474         * reflection.c (method_builder_encode_signature): Fix compilation on
11475         gcc 2.95.x.
11476
11477 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11478
11479         * appdomain.h: Added support for context static fields. Added static_data
11480           field to MonoAppContext and renamed thread_static_fields to a more
11481           generic special_static_fields in MonoAppDomain, since it can now contain
11482           context static fields.
11483         * domain.c: Updated hashtable name.
11484         * object.c: Replaced field_is_thread_static() for a more generic
11485           field_is_special_static() which also checks for context static attribute.
11486           In mono_class_vtable(), added support for static context fields.
11487         * threads.c: Changed methods that manage thread static fields to more
11488           generic methods so they can be reused both for thread and context static
11489           data.
11490         * threads.h: Declared some new methods.
11491
11492 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
11493
11494         * reflection.h: Update after changes to the managed types.
11495
11496         * reflection.c (encode_custom_modifiers): New helper function.
11497
11498         * reflection.c (method_encode_signature): Emit custom modifiers.
11499
11500         * reflection.c (field_encode_signature): Emit custom modifiers.
11501
11502 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
11503
11504         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
11505
11506         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
11507         implementation.
11508
11509         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
11510         icall.
11511
11512         * object.c (mono_field_get_value_object): New function.
11513
11514         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
11515         specific.
11516
11517 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
11518
11519         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
11520         return a preallocated out-of-memory exception instance.
11521
11522         * object.c (out_of_memory): Use the new function.
11523
11524         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
11525         flag is before the custom modifiers. Fixes #49802.
11526
11527 2003-11-16  Martin Baulig  <martin@ximian.com>
11528
11529         * class.c (mono_class_is_open_constructed_type): Implemented the
11530         MONO_TYPE_GENERICINST case.
11531
11532 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
11533
11534         * assembly.c (mono_assembly_fill_assembly_name): New function to
11535         fill out the MonoAssemblyName structure.
11536         (mono_assembly_open): Use the new function.
11537
11538         * icall.c (fill_reflection_assembly_name): New helper function.
11539
11540         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
11541         new function.
11542
11543         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
11544
11545 2003-11-15  Martin Baulig  <martin@ximian.com>
11546
11547         * class.c (mono_class_is_open_constructed_type): New public
11548         function; checks whether a type is an open constructed type,
11549         ie. whether it still contains type parameters.
11550         (mono_class_inflate_generic_type): If we're a type parameter and
11551         the inflated type is also a MONO_TYPE_(M)VAR, return the original
11552         type.
11553
11554         * class.h (MonoGenericInst): Added `guint32 is_open'.
11555
11556         * loader.c (method_from_methodspec): Check whether we're an open
11557         or closed constructed type and set `ginst->is_open'.
11558
11559         * reflection.c (mono_reflection_bind_generic_parameters): Check
11560         whether we're an open or closed constructed type and set
11561         `ginst->is_open'.
11562         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
11563         from open constructed types.
11564
11565 2003-11-15  Martin Baulig  <martin@ximian.com>
11566
11567         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11568         a generic instance (instead of a generic type declaration) with
11569         unbound generic parameters, bind them to our actual types.
11570
11571 2003-11-14  Martin Baulig  <martin@ximian.com>
11572
11573         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
11574
11575         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11576         an interface type, populate `res->interfaces' with instantiated
11577         versions of all the interfaces we inherit.
11578
11579 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
11580
11581         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
11582         when MONO_PATH is set but doesn't contain the install dir.
11583
11584 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11585
11586         * icall.c:
11587         (ves_icall_Type_GetInterfaces): don't return an interface twice when
11588         it's also implemented in base classes. Fixes bug #50927.
11589
11590 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
11591
11592         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
11593         if this method is called from a finalizer. Fixes #50913.
11594
11595 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
11596
11597         * threads.c: Implement VolatileRead/VolatileWrite
11598
11599         * icall.c: Add new icalls for VolatileRead/VolatileWrite
11600
11601 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11602
11603         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
11604         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
11605         2.95.3.
11606
11607         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
11608         from Peter Ross (pro@missioncriticalit.com).
11609         
11610 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
11611
11612         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
11613
11614 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11615
11616         * assembly.c (mono_assembly_load_references): Disable check because it
11617         triggers on older corlibs which lots of people have.
11618
11619 2003-11-12  Jackson Harper  <jackson@ximian.com>
11620
11621         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
11622         load corlib.dll if mscorlib.dll is not found.
11623         * assembly.h: Remove corlib name define.
11624         * class.c:
11625         * domain.c:
11626         * image.c: Change corlib name to mscorlib.
11627         
11628 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11629
11630         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
11631
11632 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
11633
11634         * appdomain.h: Added loader_optimization here to sync with the C#
11635         code, and add disallow_binding_redirects field.
11636
11637 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11638
11639         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
11640
11641         * reflection.c (mono_image_build_metadata): Fix crash on modules
11642         with no types.
11643
11644         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
11645
11646         * icall.c (ves_icall_get_method_info): Return callingConvention as
11647         well.
11648
11649         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
11650         namespaces from the EXPORTEDTYPE table as well.
11651
11652         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
11653         from all modules inside the assembly.
11654         
11655 2003-11-11  Martin Baulig  <martin@ximian.com>
11656
11657         * reflection.c (mono_reflection_bind_generic_parameters): Make
11658         this work for interfaces.
11659
11660 2003-11-11  Martin Baulig  <martin@ximian.com>
11661
11662         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
11663
11664 2003-11-11  Martin Baulig  <martin@ximian.com>
11665
11666         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
11667         "MonoInflatedMethod" and "MonoInflatedCtor".
11668
11669 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11670
11671         * reflection.c (resolution_scope_from_image): Use the assembly table
11672         from the manifest module, since other modules don't have it.
11673
11674         * debug-helpers.c (mono_type_full_name): New helper function.
11675
11676         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
11677
11678         * image.c (mono_image_load_file_for_image): New public function which
11679         is a replacement for the load_file_for_image in class.c.
11680
11681         * assembly.c (mono_assembly_load_module): A wrapper for the function
11682         above which does assembly association and reference loading too.
11683
11684         * class.c (mono_class_from_name): Call mono_assembly_load_module.
11685
11686 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11687
11688         * appdomain.c: not all of the attributes for the full assembly name
11689         are required and the order doesn't matter. Fixes bug #50787.
11690
11691 2003-11-10  Dick Porter  <dick@ximian.com>
11692
11693         * locales.c: Use platform-endian UTF16
11694
11695 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11696
11697         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11698         
11699 2003-11-10  Martin Baulig  <martin@ximian.com>
11700
11701         * metadata.c
11702         (mono_metadata_load_generic_params): Make this actually work.
11703
11704         * reflection.c (mono_reflection_bind_generic_parameters): If our
11705         parent is a generic instance, pass all the `types' to it, no
11706         matter whether it has the same number of type parameters or not.
11707
11708 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11709
11710         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11711
11712         * assembly.c (mono_assembly_load_references): Move the image<->assembly
11713         assignment code to this function so it gets called recursively for all
11714         modules.
11715
11716         * image.c (load_modules): Remove the assembly assignment since it is
11717         now done by mono_assembly_load_references.
11718         
11719         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11720         Add 'module' argument.
11721         (mono_module_get_types): New helper function.
11722         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
11723
11724 2003-11-08  Martin Baulig  <martin@ximian.com>
11725
11726         * class.c (mono_class_inflate_generic_method): Interface method
11727         don't have a header.
11728
11729         * reflection.c (mono_image_get_methodspec_token): Take an
11730         additional `MonoGenericInst *' argument instead of reading it from
11731         the header; this is necessary to support interfaces.
11732         (mono_image_create_token): Pass the `MonoGenericInst *' from the
11733         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
11734         (inflated_method_get_object): Take an additional `MonoGenericInst *'
11735         argument.
11736
11737         * reflection.h (MonoReflectionInflatedMethod): Added
11738         `MonoGenericInst *ginst'.
11739
11740 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
11741
11742         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
11743
11744 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
11745
11746         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
11747
11748 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
11749
11750         * reflection.c 
11751         (reflection_methodbuilder_from_method_builder):
11752         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
11753         initialize a ReflectionMethodBuilder structure.
11754         (mono_image_get_methodbuilder_token):
11755         (mono_image_get_ctorbuilder_token): New functions to emit memberref
11756         tokens which point to types in another module inside the same assembly.
11757
11758         * reflection.c: Use the new helper functions.
11759         
11760         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
11761
11762         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
11763         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
11764
11765         * reflection.c (resolution_scope_from_image): Emit a moduleref if
11766         neccesary.
11767
11768         * reflection.c (mono_image_build_metadata): Emit metadata only for the
11769         current module. Emit the manifest only for the main module.
11770
11771         * reflection.c (mono_image_create_token): Add assertion when a 
11772         memberref needs to be created.
11773
11774         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
11775
11776         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
11777         larger buffer for the custom attribute blob. Fixes #50637.
11778         
11779 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11780
11781         * threadpool.c: notify listener on async processing handles after
11782         invoking the async callback. Thanks to Zoltan.
11783
11784 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11785
11786         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
11787         avoid code duplication.
11788
11789         * reflection.h (MonoDynamicImage): New type which is currently unused,
11790         but will be used through the ref.emit code in place of 
11791         MonoDynamicAssembly.
11792
11793         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
11794         object layout.
11795
11796         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
11797         a MonoDynamicImage instead of just a MonoImage.
11798         
11799         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
11800         icalls to ModuleBuilder but keep their semantics, so they will work
11801         with moduleb->assemblyb. This will change later.
11802         
11803 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11804
11805         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
11806         object layout.
11807
11808         * reflection.c (mono_image_build_metadata): Avoid creation of a default
11809         main module, since it is now done by the managed code.
11810
11811 2003-11-03  Martin Baulig  <martin@ximian.com>
11812
11813         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
11814         `ginst->klass' here.
11815         (method_encode_methodspec): Don't use the `ginst->generic_method's
11816         klass if it's a generic instance, use `ginst->klass' in this case.
11817
11818 2003-11-03  Martin Baulig  <martin@ximian.com>
11819
11820         * reflection.c (mono_image_get_generic_method_param_info):
11821         Removed, use mono_image_get_generic_param_info() instead.
11822         (mono_image_get_type_info): Write the GenericParam table before
11823         the Method table.  This is neccessary because in the GenericParam
11824         table, type parameters of the class (ie. '!0' etc.) must come
11825         before the ones from its generic methods (ie. '!!0' etc).
11826
11827 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11828
11829         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
11830
11831 2003-11-02  Martin Baulig  <martin@ximian.com>
11832
11833         * reflection.c (create_generic_typespec): Take a
11834         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
11835         the generic parameters from it.
11836
11837 2003-11-02  Martin Baulig  <martin@ximian.com>
11838
11839         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
11840         instead of a `MonoClassField *' since we just need the type.
11841         (create_generic_typespec): New static function.  Creates a
11842         TypeSpec token for a generic type declaration.
11843         (mono_image_get_generic_field_token): New static function.
11844         (mono_image_create_token): If we're a FieldBuilder in a generic
11845         type declaration, call mono_image_get_generic_field_token() to get
11846         the token.
11847
11848 2003-11-02  Martin Baulig  <martin@ximian.com>
11849
11850         * reflection.h
11851         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
11852         `MonoReflectionGenericInst *declaring_type' and
11853         `MonoReflectionGenericInst *reflected_type' fields.
11854
11855         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
11856         `MonoReflectionGenericInst *declaring_type' and a
11857         `MonoReflectionGenericInst *reflected_type' argument instead of a
11858         single `MonoReflectionGenericInst *type' one.  Set
11859         `res->declaring_type' and `res->reflected_type' from them.
11860         (mono_reflection_inflate_field): Likewise.      
11861
11862 2003-11-02  Martin Baulig  <martin@ximian.com>
11863
11864         * class.c (mono_class_setup_vtable): Don't store generic methods
11865         in the vtable.  
11866
11867 2003-11-02  Martin Baulig  <martin@ximian.com>
11868
11869         * reflection.h (MonoReflectionGenericInst): Added
11870         `MonoReflectionType *declaring_type'.
11871
11872         * reflection.c (mono_reflection_bind_generic_parameters): Use
11873         `if (tb->parent)' instead of `klass->parent'.
11874
11875 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
11876
11877         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
11878         with an empty ASSEMBLY table.
11879
11880         * reflection.c (mono_image_build_metadata): Avoid using the same loop
11881         variable in the inner and outer loops.
11882
11883 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
11884
11885         * metadata.h (mono_metadata_make_token): Put parentheses around macro
11886         argument.
11887
11888         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
11889         
11890         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
11891         icalls. Instead, do everything in managed code. This is needed since
11892         it is hard to restore the original domain etc. in unmanaged code in the
11893         presence of undeniable exceptions.
11894
11895         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
11896         New icalls to push and pop appdomain refs.
11897
11898 2003-10-31  Martin Baulig  <martin@ximian.com>
11899
11900         * class.c (inflate_generic_type): Renamed to
11901         mono_class_inflate_generic_type() and made it public.
11902
11903         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
11904         New interncall.
11905
11906         * loader.c (mono_field_from_memberref): Also set the retklass for
11907         typespecs.
11908
11909         * fielder.c (mono_image_get_inflated_field_token): New static
11910         method; creates a metadata token for an inflated field.
11911         (mono_image_create_token, fixup_method): Added support for
11912         "MonoInflatedField".
11913         (fieldbuilder_to_mono_class_field): New static function.
11914         (mono_reflection_inflate_field): New public function.
11915
11916         * reflection.h
11917         (MonoReflectionGenericInst): Added `MonoArray *fields'.
11918         (MonoReflectionInflatedField): New typedef.     
11919
11920 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
11921
11922         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
11923         for Solaris and other platforms without s6_addr16
11924
11925 2003-10-30  Martin Baulig  <martin@ximian.com>
11926
11927         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
11928         argument instead of two.
11929         (mono_class_inflate_generic_signature): Likewise.
11930         (inflate_generic_header): Likewise.
11931         (mono_class_inflate_generic_method): Likewise.  In addition, if
11932         `ginst->klass' is set, it becomes the new `method->klass'.
11933
11934         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
11935         field.
11936
11937         * reflection.c (encode_generic_method_sig): Write a 0xa as the
11938         first byte. [FIXME]
11939         (method_encode_methodspec): If we have generic parameters, create
11940         a MethodSpec instead of a MethodRef.
11941         (fixup_method): Added support for "MonoInflatedMethod" and
11942         "MonoInflatedCtor".
11943         (mono_image_create_token): Added support for "MonoInflatedMethod"
11944         and "MonoInflatedCtor".
11945         (inflated_method_get_object): New static function; returns a
11946         managed "System.Reflection.MonoInflatedMethod" object.
11947         (mono_reflection_bind_generic_method_parameters): Return a
11948         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
11949         (mono_reflection_inflate_method_or_ctor): Likewise.
11950         (mono_image_get_generic_method_param_info): Initialize unused
11951         fields to zero.
11952         (mono_image_get_generic_param_info): Likewise.
11953
11954         * reflection.h (MonoReflectionInflatedMethod): New public
11955         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
11956         "S.R.MonoInflatedCtor" classes.
11957
11958         * loader.c (method_from_memberref): If we're a TypeSpec and it
11959         resolves to a generic instance, inflate the method.
11960
11961 2003-10-28  Dick Porter  <dick@ximian.com>
11962
11963         * object.c (mono_runtime_run_main): Convert command-line arguments
11964         into utf8, falling back to the user's locale encoding to do so.
11965
11966 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
11967
11968         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
11969         at this time.
11970
11971         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
11972
11973         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
11974         up icalls at method definition time. Partially fixes #33569.
11975
11976 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
11977
11978         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
11979         marshalling of arrays. Fixes #50116.
11980
11981         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
11982
11983         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
11984         points to a vtable in the dying appdomain.
11985
11986         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
11987         listeners into unmanaged code inside the lock.
11988
11989         * object.c (mono_class_vtable): Turn off typed allocation in non-root
11990         domains and add some comments.
11991
11992 2003-10-25  Martin Baulig  <martin@ximian.com>
11993
11994         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
11995
11996         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
11997
11998         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
11999         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
12000         currently parsing.  Create the generic class and store it in
12001         `generic_inst->klass' before parsing the type arguments.  This is
12002         required to support "recursive" definitions; see mcs/tests/gen-23.cs
12003         for an example.
12004         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
12005         to support recursive typespec entries.
12006
12007         * class.c (mono_class_setup_parent): If our parent is a generic
12008         instance, we may get called before it has its name set.
12009         (mono_class_from_generic): Splitted into
12010         mono_class_create_from_generic() and mono_class_initialize_generic().
12011
12012 2003-10-25  Martin Baulig  <martin@ximian.com>
12013
12014         * icall.c (ves_icall_Type_BindGenericParameters): Return a
12015         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
12016         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
12017         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
12018
12019         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
12020         (create_typespec): Likewise.
12021         (mono_reflection_bind_generic_parameters): Return a
12022         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
12023         (mono_reflection_inflate_method_or_ctor): New public function.
12024
12025         * reflection.h (MonoReflectionGenericInst): New typedef.        
12026
12027 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
12028
12029         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
12030         inside the domain lock. Fixes #49993.
12031         
12032         * object.c (mono_class_vtable): When typed allocation is used, 
12033         allocate vtables in the GC heap instead of in the mempool, since the
12034         vtables contain GC descriptors which are used by the collector even
12035         after the domain owning the mempool is unloaded.
12036
12037         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
12038
12039         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
12040         reflect what it does. Also invalidate mempools instead of freeing
12041         them if a define is set.
12042
12043         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
12044         of the appdomain.
12045         
12046         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
12047         hold the finalizable objects in this domain.
12048
12049         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
12050         appdomain.
12051
12052         * appdomain.c (mono_domain_set): New function to set the current
12053         appdomain, but only if it is not being unloaded.
12054
12055         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
12056         appdomain which is being unloaded.
12057         
12058         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
12059         unloading of the root appdomain.
12060
12061         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
12062         icall to execute a method in another appdomain. Intended as a 
12063         replacement for InternalSetDomain, which can confuse the code 
12064         generation in the JIT.
12065
12066         * appdomain.c (mono_domain_is_unloading): New function to determine
12067         whenever an appdomain is unloading.
12068
12069         * appdomain.c (mono_domain_unload): New function to correctly unload
12070         an appdomain.
12071
12072         * assembly.c (mono_assembly_load_references): Check that an assembly
12073         does not references itself.
12074
12075         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
12076         domain manually, it asks the finalizer thread to do it, then waits for
12077         the result. Also added a timeout.
12078
12079         * icall.c: Register the new icalls.
12080
12081         * threads.h threads.c: Export the mono_gc_stop_world and 
12082         mono_gc_start_world functions.
12083         
12084         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
12085         function to fill out the mempool with 0x2a.
12086
12087 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
12088
12089         * reflection.h (MonoReflectionMethodAux): New structure to store
12090         information which is rarely used, thus is not in the MonoMethod
12091         structure.
12092
12093         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
12094         store the aux info.
12095
12096         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
12097         and marshalling info into the aux structure.
12098
12099         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
12100         from the aux structure.
12101
12102         * loader.c (mono_method_get_param_names): Retrieve the param names from
12103         the aux structure.
12104         
12105 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
12106
12107         * exception.h exception.c: Add AppDomainUnloadedException && fix 
12108         warning.
12109
12110 2003-10-21  Dick Porter  <dick@ximian.com>
12111
12112         * socket-io.c
12113         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
12114         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
12115
12116 2003-10-21  Martin Baulig  <martin@ximian.com>
12117
12118         * reflection.c (mono_reflection_bind_generic_parameters):
12119         `klass->parent' is NULL for interfaces.
12120
12121 2003-10-21  Martin Baulig  <martin@ximian.com>
12122
12123         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12124
12125 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
12126
12127         * exception.c (mono_exception_from_name_msg): New helper function for
12128         creating exceptions and initializing their message field.
12129
12130         * exception.c: Simplify functions using the new helper.
12131
12132         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
12133         New function.
12134
12135         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
12136         mono_raise_exception, since otherwise gcc doesn't generate the function
12137         epilog for raise_exception, confusing the stack unwinding in the JIT.
12138         Fixes #45043.
12139
12140         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
12141         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
12142         Fixes #49499.
12143
12144 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12145
12146         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
12147         utf8.
12148
12149 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
12150
12151         * icall.c: Removed GetUninitializedObject method because
12152           AllocateUninitializedClassInstance does the same.
12153
12154 2003-10-18  Martin Baulig  <martin@ximian.com>
12155
12156         * class.c (inflate_generic_signature): Renamed to
12157         mono_class_inflate_generic_signature() and made it public.
12158         (my_mono_class_from_generic_parameter): New static function; if we
12159         don't already have the generic parameter's MonoClass, create a
12160         very simple one which is just used internally in the runtime and
12161         not passed back to managed code.
12162
12163         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
12164
12165         * metadata.h (MonoMethodSignature): Moved the
12166         `MonoGenericParam *gen_params' to the MonoMethodHeader.
12167         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
12168
12169         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
12170         ves_icall_MonoMethod_GetGenericArguments(); this is now an
12171         interncall on the MonoMethod class, not on MethodInfo.
12172         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
12173         calling mono_reflection_bind_generic_method_parameters() directly.
12174
12175         * loader.c (mono_method_get_signature): If this is a MethodSpec;
12176         return the already computed `method->signature'.
12177         (method_from_methodspec): New static function to load a method
12178         from a MethodSpec entry.
12179         (mono_get_method_from_token): Call the new method_from_methodspec()
12180         for MethodSpec tokens.  
12181         (mono_get_method_from_token): If we're a generic method, load the
12182         type parameters.
12183
12184         * reflection.c (mono_image_get_memberref_token): Allow
12185         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
12186         table.
12187         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
12188         (mono_image_create_token): First check whether it's a generic
12189         method (so we'd need to create a MethodSpec), then do the other
12190         two alternatives.
12191         (mono_reflection_bind_generic_method_parameters): Return a
12192         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
12193         called directly from the interncall.
12194
12195 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
12196
12197         * reflection.c (load_public_key): Move loading of the public key
12198         into managed code.
12199
12200         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
12201
12202         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
12203         fields.
12204
12205         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
12206         culture, hash_alg and public_key. Fixes #49555.
12207
12208 2003-10-17  Martin Baulig  <martin@ximian.com>
12209
12210         * class.h (MonoGenericInst): Moved this declaration here and added
12211         `MonoMethod *generic_method'.
12212
12213         * icall.c
12214         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
12215         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
12216
12217         * metadata.c (mono_metadata_type_equal): Two types of
12218         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
12219         index; ie. don't compare the address of the `MonoGenericParam'
12220         structure.
12221         (mono_metadata_load_generic_params): Removed the `MonoMethod
12222         *method' argument.
12223
12224         * metadata.h (MonoGenericInst): Moved declaration to class.h.
12225         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
12226
12227         * reflection.c (method_encode_signature): Encode the number of
12228         generic parameters.
12229         (encode_generic_method_sig): New static function.
12230         (method_encode_methodspec): New static function; creates an entry
12231         in the MethodSpec table for a generic method.
12232         (mono_image_get_methodspec_token): New static function.
12233         (mono_image_create_token): Call mono_image_get_methodspec_token()
12234         for generic methods.
12235         (mono_reflection_bind_generic_method_parameters): New public
12236         function.  Instantiates a generic method.
12237
12238 2003-10-16  Martin Baulig  <martin@ximian.com>
12239
12240         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
12241         *gen_params' here from MonoMethodHeader.
12242
12243         * metadata.c (mono_metadata_parse_method_signature): If we have
12244         generic parameters, initialize `method->gen_params' and then set
12245         the correct `type->data.generic_param' in all the parameters.
12246
12247 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
12248
12249         * threads.c (mono_threads_get_default_stacksize): New function to 
12250         return the default stacksize.
12251
12252         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
12253         termination of the finalizer thread, since the previous method had
12254         race conditions. Fixes #49628.
12255
12256         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
12257         as for the other managed threads.
12258
12259 2003-10-16  Martin Baulig  <martin@ximian.com>
12260
12261         * class.c (inflate_generic_signature): Copy `generic_param_count'
12262         and `gen_params'.
12263
12264         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
12265         New interncall.
12266
12267         * metadata.c (mono_metadata_parse_method_signature): Actually set
12268         the `method->generic_param_count' here.
12269         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
12270
12271 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
12272
12273         * object.h: Add a new field to TypedRef to simplify the implementation
12274         of the REFANY opcodes in the JIT.
12275
12276         * icall.c: Make use of the new field.
12277
12278         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
12279         dynamically.
12280
12281 2003-10-15  Martin Baulig  <martin@ximian.com>
12282
12283         * class.c (mono_class_from_gen_param): Renamed to
12284         mono_class_from_generic_parameter() and moved most of the
12285         functionality from mono_reflection_define_generic_parameter()
12286         here; ie. we create a "real" class here.
12287         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
12288         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
12289         previously been called.
12290
12291         * class.h (MonoGenericParam): Moved the declaration of this struct
12292         here from metadata.h and added `MonoMethod *method'.
12293
12294         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
12295         interncall.
12296
12297         * loader.c (mono_get_method_from_token): If we have any generic
12298         parameters, call mono_metadata_load_generic_params() to read them
12299         from the MONO_TABLE_GENERICPAR.
12300
12301         * metadata.c (mono_metadata_load_generic_params): Added
12302         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
12303
12304         * metadata.h (MonoMethodSignature): Replaced
12305         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
12306         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
12307
12308         * reflection.c (mono_reflection_define_generic_parameter): Moved
12309         most of the functionality into the new
12310         mono_class_from_generic_parameter(); set the `method' field if
12311         we're a method parameter.       
12312
12313 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12314
12315         * marshal.c (emit_struct_conv): if native size is 0
12316         emit no code.
12317
12318 2003-10-14  Martin Baulig  <martin@ximian.com>
12319
12320         * icall.c: The generics API has changed in the spec since it was
12321         added to System.Type; these modifications make it match the spec
12322         again.
12323         (ves_icall_Type_GetGenericParameters): Renamed to
12324         `ves_icall_Type_GetGenericArguments'.
12325         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12326         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12327         `ves_icall_MonoType_get_HasGenericArguments'.
12328         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12329         `ves_icall_MonoType_get_IsGenericParameter'.
12330         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12331         this is no interncall anymore.
12332         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12333         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12334
12335 2003-10-14  Martin Baulig  <martin@ximian.com>
12336
12337         * reflection.c (mono_reflection_bind_generic_parameters): Also
12338         inflate generic methods if we're reading the class from IL.
12339
12340 2003-10-13  Martin Baulig  <martin@ximian.com>
12341
12342         * reflection.c (mono_reflection_define_generic_parameter): This
12343         method isn't called directly from the icall anymore; take a
12344         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12345         method generic parameters.
12346         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12347         (method_builder_encode_signature): Encode generic parameters.
12348         (mono_image_get_method_info): Write generic params to the
12349         MONO_TABLE_GENERICPARAM table.
12350
12351         * reflection.h (MonoReflectionMethodBuilder): Added
12352         `MonoArray *generic_params'.
12353
12354         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12355
12356         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12357         wrapper for mono_reflection_define_generic_parameter().
12358         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12359
12360 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12361
12362         * marshal.h: Add missing function to fix build.
12363
12364         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12365         the SetLastError pinvoke attribute.
12366
12367         * marshal.c (mono_marshal_set_last_error): New helper function called
12368         by the generated code.
12369         
12370         * marshal.c (mono_mb_emit_branch): New helper function.
12371
12372         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12373
12374         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12375         classes as parameters and return values of delegates. Fixes #29256. 
12376
12377 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12378
12379         * locales.c: use gint32 in non HAVE_ICU case
12380
12381 2003-10-11  Martin Baulig  <martin@ximian.com>
12382
12383         * mono-debug.c (mono_debug_add_method): Added a workaround for
12384         bug #48591.
12385
12386 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12387
12388         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12389         delegates passed to native code must use the STDCALL calling 
12390         convention. Fixes #35987.
12391
12392 2003-10-10  Martin Baulig  <martin@ximian.com>
12393
12394         * class.c (inflate_generic_type): If we're inflating for a generic
12395         type instance (and not for a generic method), return
12396         MONO_TYPE_MVAR unchanged.
12397
12398 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12399
12400         * string-icalls.c: Join ignores null strings in the source array.
12401         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12402         * threads.c: GetAvailableTheads is slightly more accurate.
12403
12404 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12405
12406         * threads.h threads.c : add mono_threads_set_default_stacksize
12407         and pass default to CreateThread calls.
12408
12409 2003-10-09  Dick Porter  <dick@ximian.com>
12410
12411         * icall.c:
12412         * locales.h:
12413         * locales.c: Internal calls for constructing CultureInfo and
12414         related objects from libicu (if its available.)
12415
12416 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12417
12418         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12419
12420 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12421
12422         * threadpool.c: added an argument to async_invoke_thread that is the
12423         item to process, pass the MonoAsyncResult to the thread start function
12424         when creating a new thread. This way we don't need to acquire any lock
12425         when we're creating a new thread. Readded a semaphore for faster
12426         response times (instead of that Sleep i added).
12427
12428 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12429
12430         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12431         get daylight change dates better on Windows, fix handling
12432         of platforms without tm_gmtoff.
12433
12434 2003-10-06  Martin Baulig  <martin@ximian.com>
12435
12436         * class.c (inflate_generic_method): Renamed to
12437         mono_class_inflate_generic_method() and made public.
12438         (mono_class_init): Don't inflate the generic methods here.
12439         (mono_class_from_generic): Added `gboolean inflate_methods'
12440         argument.  Inflate the methods here.
12441
12442         * loader.c (mono_method_get_param_names): Ignore instances of
12443         generic types for the moment.
12444
12445         * reflection.c (fixup_method): Added support for inflated methods.
12446         (mono_image_create_token): Use mono_image_get_methodref_token()
12447         for inflated methods.
12448         (mono_custom_attrs_from_param): Ignore instances of generic types
12449         for the moment.
12450         (mono_reflection_bind_generic_parameters): New public function.
12451         Moved all the functionality from
12452         ves_icall_Type_BindGenericParameters() here and added support for
12453         dynamic types.
12454         (mono_reflection_define_generic_parameter): Initialize
12455         `klass->methods' here.
12456
12457         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12458         functionality into mono_reflection_define_generic_parameter().
12459         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12460         TypeBuilder, return that TypeBuilder.
12461
12462 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12463
12464         * appdomain.c: removed mono_delegate_semaphore.
12465
12466         * threadpool.c:
12467         (mono_thread_pool_add): moved hash table creation inside and the thread 
12468         creation outside of the critical region.
12469         (mono_thread_pool_finish): removed obsolete code.
12470         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12471         continue or exit the thread depending on the queue.
12472
12473 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12474
12475         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12476         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12477         handle more bool marshalling options
12478
12479 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12480
12481         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12482         arrays of structs. Also add a more descriptive error message when
12483         a structure member is marshalled as LPArray.
12484
12485 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12486
12487         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12488         marshalling arrays of complex types. Fixes #29098. Also remove an
12489         usused and incomplete function.
12490
12491 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12492
12493         * gc.c: report heap_size - free_bytes as total memory allocated
12494         (bug#49362).
12495
12496 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
12497
12498         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
12499         fix timezone handling problems on Windows.
12500         
12501         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
12502         asserts when the year is outside the range handled by ms the functions.
12503
12504         * class.c (setup_interface_offsets): If the class is an interface,
12505         fill out its interface_offsets slot.
12506
12507 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12508
12509         * threadpool.c: mark threadpool threads as background.
12510
12511 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
12512
12513         * decimal.c - define DECINLINE to nothing if not using GCC
12514
12515 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
12516
12517         * assembly.c: More refcount fixes.
12518
12519 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12520
12521         * string-icalls.c: if we're not trimming, return the same string.
12522         When not splitting, don't create a new string.
12523
12524 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12525
12526         * image.c:
12527         (mono_image_open): increment the ref_count inside the critical section.
12528
12529 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
12530
12531         * image.c (mono_image_open): Fix reference counting bug.
12532
12533 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
12534
12535         * marshal.c (mono_marshal_type_size) struct alignment changed for 
12536         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
12537         64bits. Avoid leak in mono_marshal_get_native_wrapper when
12538         mono_lookup_pinvoke_call throws.        
12539
12540 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
12541
12542         * reflection.c (mono_reflection_parse_type): Fix #49114.
12543
12544         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
12545         temporary workaround for cygwin header problem.
12546
12547         * object.c (mono_object_isinst): Synchronize this with the code
12548         generated by the JIT for casts.
12549
12550 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
12551
12552         * reflection.c (encode_type): Fix #38332.
12553
12554 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
12555
12556         * marshal.c (mono_marshal_method_from_wrapper): New function to return
12557         the original method from the wrapper method.
12558
12559 2003-09-25  Martin Baulig  <martin@ximian.com>
12560
12561         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
12562         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
12563         (ves_icall_Type_get_IsGenericInstance): New interncall.
12564
12565 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
12566
12567         * object.c: fix cast warning in big endian code.
12568
12569 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
12570
12571         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
12572         
12573 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12574
12575         * assembly.c: don't call check_env from mono_assembly_load. It's
12576         already done once in mono_assemblies_init and may cause headaches when
12577         multiple threads are loading assemblies.
12578
12579 2003-09-19  Martin Baulig  <martin@ximian.com>
12580
12581         * reflection.c (mono_reflection_define_generic_parameter): Don't
12582         allocate `klass->methods', set `klass->flags' to
12583         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
12584
12585 2003-09-18  Martin Baulig  <martin@ximian.com>
12586
12587         * class.c (mono_class_init): Don't create `class->methods' if it's
12588         already initialized.
12589
12590         * metadata.c (mono_metadata_load_generic_params): Make this
12591         actually work.
12592
12593         * reflection.c (mono_reflection_define_generic_parameter): Set
12594         parent class and interfaces from the constraints.
12595
12596         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
12597         to keep this struct in sync with the declaration in TypeBuilder.cs.
12598
12599 2003-09-17  Martin Baulig  <martin@ximian.com>
12600
12601         * metadata.h (MonoType): Replaced the data's `int type_param'
12602         field with `MonoGenericParam *generic_param'.
12603         (MonoGenericParam): Added `MonoClass *klass'.
12604
12605         * class.c (mono_class_from_gen_param): Removed the
12606         `MonoImage *image' and `int type_num' arguments.
12607
12608         * metadata.c (mono_metadata_parse_generic_param): New static
12609         method; creates a MonoGenericParam which just contains the index.
12610         (do_mono_metadata_parse_type): Call
12611         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
12612         MONO_TYPE_MVAR.
12613
12614         * reflection.c (mono_image_typedef_or_ref): Generic type
12615         parameters may be in the same assembly, but never use a typedef
12616         for them.
12617         (mono_reflection_define_generic_parameter): We're now creating a
12618         "real" class for the type parameter; it's now safe to call
12619         mono_class_from_mono_type() on the class'es type, it'll do the
12620         right thing.
12621
12622 2003-09-16  Martin Baulig  <martin@ximian.com>
12623
12624         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
12625         `symfile->range_entry_size' and `symfile->class_entry_size' here;
12626         the `symfile' data structure must be fully initialized before it
12627         gets added to the table.
12628
12629 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
12630
12631         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
12632
12633         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
12634         class init trampolines.
12635
12636 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
12637
12638         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
12639         to the built-in profiler to turn off time and allocation profiling
12640         respectively.
12641
12642 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
12643
12644         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
12645         g_direct_equal.
12646
12647         * debug-helpers.c (mono_method_full_name): Print the wrapper type
12648         in human readable form.
12649
12650 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
12651
12652         * reflection.c icall.c: Fixed warnings.
12653
12654         * image.c (load_class_names): Use a temporary hash table to hold the
12655         namespaces in order to avoid doing many string comparisons.
12656
12657         * image.h: Fix typo.
12658
12659         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
12660         Pass NULL instead of g_direct_equal to the GHashTable constructor 
12661         since the NULL case is short-circuited inside g_hash_table_lookup, 
12662         leading to better performance.  
12663
12664         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
12665         obtain the first custom attribute for a given index. Depends on the
12666         CustomAttribute table being sorted by the parent field.
12667
12668         * reflection.c (mono_custom_attrs_from_index): Use the new function 
12669         for better performance.
12670
12671 2003-09-07  Martin Baulig  <martin@ximian.com>
12672
12673         * class.c (mono_class_init): If we're a generic instance, inflate
12674         all our methods instead of loading them from the image.
12675         (mono_class_from_generic): Set `class->methods = gklass->methods'.
12676
12677 2003-09-07  Martin Baulig  <martin@ximian.com>
12678
12679         * mono-debug-debugger.c: Added support for constructors.
12680
12681 2003-09-06  Martin Baulig  <martin@ximian.com>
12682
12683         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
12684         New interncall.
12685
12686         * reflection.c (mono_reflection_setup_generic_class): Call
12687         ensure_runtime_vtable() to create the vtable.
12688
12689 2003-09-05  Martin Baulig  <martin@ximian.com>
12690
12691         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
12692         MONO_TYPE_MVAR.
12693
12694 2003-09-04  Martin Baulig  <martin@ximian.com>
12695
12696         * reflection.c (mono_reflection_define_generic_parameter): Generic
12697         parameters start with zero.
12698
12699 2003-09-04  Martin Baulig  <martin@ximian.com>
12700
12701         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12702
12703         * reflection.h (MonoReflectionGenericParam): New typedef.
12704         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
12705         the generic parameters from the managed TypeBuilder.
12706
12707         * reflection.c (mono_reflection_define_generic_parameter): New function.
12708         (mono_reflection_create_runtime_class): Encode generic parameters.
12709         (mono_reflection_setup_generic_class): New function; this is
12710         called after adding adding all generic params to the TypeBuilder.
12711         (encode_type): Added MONO_TYPE_VAR.
12712
12713 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
12714
12715         * class.h class.c (mono_class_needs_cctor_run): Moved this method
12716         here from the JIT.
12717
12718         * assembly.h assembly.c: Moved the AOT loading code into an assembly
12719         load hook.
12720
12721 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
12722
12723         * reflection.h reflection.c class.h class.c: Delete duplicate 
12724         definition of mono_type_get_name () from reflection.c and export the
12725         one in class.c.
12726
12727         * class.c: Class loading fixes from Bernie Solomon 
12728         (bernard@ugsolutions.com).
12729
12730         * reflection.c: Endianness fixes from Bernie Solomon 
12731         (bernard@ugsolutions.com).
12732         
12733 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
12734
12735         * assembly.h assembly.c: Define a file format version for AOT
12736         libraries.
12737         
12738         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
12739
12740         * appdomain.h (MonoJitInfo): New field to determine whenever the
12741         code is domain neutral.
12742         
12743 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
12744
12745         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
12746
12747 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
12748
12749         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
12750         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
12751         Avoid caching the result since strings must be domain specific. Fixes
12752         #48050.
12753
12754 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
12755
12756         * marshal.c (mono_marshal_init): Make this callable multiple times
12757         since it is hard to find a correct place to call it.
12758
12759         * object.c (mono_runtime_class_init): Execute static constructors in
12760         the correct appdomain.
12761
12762         * image.c (build_guid_table): Handle the case when multiple images have
12763         the same GUID.
12764
12765 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12766
12767         * icall.c: added a couple of icalls for System.Web.
12768
12769 2003-08-28  Martin Baulig  <martin@ximian.com>
12770
12771         * icall.c (ves_icall_Type_BindGenericParameters): Use
12772         `klass->generic_inst' instead of `&klass->byval_arg' in the
12773         mono_type_get_object() call.  The returned type must be
12774         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
12775
12776 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
12777
12778         * NOTES: New file.
12779
12780         * object.c (mono_class_proxy_vtable): Make it thread safe.
12781
12782         * pedump.c: Fix warning.
12783
12784         * object.c appdomain.h: Get rid of metadata_section. 
12785         It is no longer needed and it was causing deadlocks with domain->lock.
12786
12787         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
12788
12789 2003-08-26  Martin Baulig  <martin@ximian.com>
12790
12791         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
12792
12793 2003-08-26  Martin Baulig  <martin@ximian.com>
12794
12795         * pedump.c (main): Call mono_metadata_init(),
12796         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
12797         and mono_loader_init().
12798
12799 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
12800
12801         * loader.h: Add missing include to fix build.
12802
12803         * image.h: mono_image_load_references is no more.
12804
12805         * assembly.c: Reworked assembly loading to make it really thread safe.
12806         After these changes, the assembly returned by mono_assembly_open is
12807         fully initialized, i.e. all its references assemblies are loaded.
12808
12809         * assembly.c (mono_image_load_references): Renamed to 
12810         mono_assembly_load_references, and made private, since clients no
12811         longer need to call it.
12812
12813         * class.c: Removed calls to mono_assembly_load_references, since it was
12814         a source of deadlocks.
12815
12816         * loader.h loader.c class.h class.c: Protect data structures using a 
12817         new lock, the loader lock.
12818
12819         * class.c (mono_class_setup_vtable): Create temporary hash tables and
12820         GPtrArrays only when needed.
12821
12822         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
12823         into empty structures by mcs. Fixes pinvoke7.cs.
12824         
12825         * domain.c (mono_init): Call a new initialization function.
12826
12827         * appdomain.c (mono_runtime_init): Call the new initializer function
12828         of the marshal module.
12829
12830         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
12831         inserted into empty structures by mcs. Fixes pinvoke7.cs.
12832
12833         * marshal.h marshal.c: Added locks around the wrapper caches to make
12834         this module thread safe.
12835
12836         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
12837         this argument. Fixes pinvoke1.exe.
12838
12839 2003-08-25  Lluis Sanchez <lluis@ximian.com>
12840
12841         * object.h: Added call_type field to MonoMethodMessage and the corresponding
12842         enumeration of values. Removed fields to store remote call output values in
12843         MonoAsyncResult. Not needed any more.
12844         * object.c: Initialize call_type and async_result fields in mono_message_init.
12845         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
12846         dispatching the message.
12847         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
12848         async call to finish. To do it use a message with EndInvoke call type.
12849
12850 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
12851
12852         * loader.h loader.c (mono_method_hash_marhal_info): New function which
12853         determines whenever a method has marshalling info.
12854
12855 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12856
12857         * assembly.c: fix the build on windows.
12858
12859 2003-08-22 Lluis Sanchez <lluis@ximian.com>
12860
12861         * object.cs: Fixed bug #47785.
12862
12863 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
12864
12865         * string-icalls.c (StringReplace): If their are no occurances of
12866         the old string found return a reference to the supplied
12867         string. This saves some memory and matches MS behavoir.
12868         
12869 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12870
12871         * socket-io.c: fixed compilation for systems that define AF_INET6
12872         and don't define SOL_IP/SOL_IPV6.
12873
12874 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
12875
12876         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
12877         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
12878
12879         * rawbuffer.c rawbuffer.h: Make this module thread safe.
12880
12881         * domain.c: Make this module thread safe.
12882
12883         * domain.c (mono_init): Call new initialization function.
12884
12885         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
12886         reference types too. Fixes #38812.
12887
12888         * image.c (mono_image_init): Fixed warnings.
12889
12890         * class.c (mono_class_from_typeref): Handle assembly load failure
12891         correctly.
12892
12893         * appdomain.c (add_assemblies_to_domain): Handle the case when
12894         the references of an assembly are not yet loaded.
12895
12896         * metadata.c image.c assembly.c: Moved initialization of global
12897         variables to a separate function called at startup since lazy 
12898         initialization of these variables is not thread safe.
12899         
12900         * image.c assembly.c: Made this module thread safe by adding locks in 
12901         the appropriate places.
12902
12903         * domain.c (mono_init): Call the new initialization functions of the
12904         three modules.
12905
12906 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
12907
12908         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
12909           make a direct call. It is proxy's work to make the call asynchronous.
12910           mono_delegate_end_invoke(): If the targe is a proxy, just collect
12911           the return values.
12912         * object.cs: mono_method_call_message_new(): read AsyncResult and
12913           state object from parameters list, if this info is requested.
12914         * object.h: Added fields to store remote call output values in
12915           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
12916
12917 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
12918
12919         * object.h: add needed fields to MonoThread.
12920         * threads.c, threads.h: allow registering a function to cleanup data
12921         allocated per thread by the JIT.
12922
12923 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
12924
12925         * loader.h: portability fix by Bernie Solomon
12926         * <bernard@ugsolutions.com>.
12927
12928 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
12929
12930         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
12931         return a MonoArray. This simplifies the code and also ensures that
12932         the cache allways contains an object reference as a value.
12933
12934         * icall.c (ves_icall_get_parameter_info): Simplified using the new
12935         function.
12936
12937 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12938
12939         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
12940         fixes a problem with byte ordering when getting the address family for
12941         a socket.
12942
12943 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
12944
12945         * .cvsignore: Added monosn.
12946
12947         * reflection.h reflection.c loader.c: Added support for parameter
12948         marshalling to dynamically created types. Fixes #47295.
12949
12950 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
12951
12952         * rand.c: remove useless warnings.
12953
12954 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
12955
12956         * class.c: implemented ldtoken for methods and fieldrefs.
12957
12958 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12959
12960         * threadpool.c: when mono_async_invoke was called, no one took care of
12961         monitoring the queue. So if the method invoked took some time and we
12962         got new async invoke requests after 500 ms (the thread created waited
12963         that long in WaitForSingleObject), the new async invoke was not called
12964         until the previous one finished.
12965
12966         This is fixed now. Thanks to Totte for helping with it.
12967
12968 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12969
12970         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
12971
12972 2003-08-11  Martin Baulig  <martin@ximian.com>
12973
12974         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
12975
12976 2003-08-06  Martin Baulig  <martin@ximian.com>
12977
12978         * mono-debug-debugger.c: Added support for static fields,
12979         properties and methods.
12980
12981 2003-08-06  Martin Baulig  <martin@ximian.com>
12982
12983         * mono-debug-debugger.c: Don't store the MonoString's vtable to
12984         make this work for applications with multiple application domains.
12985
12986 2003-08-04  Martin Baulig  <martin@ximian.com>
12987
12988         * mono-debug-debugger.c: Completely reworked the type support; the
12989         most important thing is that we're now just using one single
12990         `MonoType' instance per type.
12991
12992 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
12993
12994         * mono-endian.h, mono-endian.c, icall.c: Added icall
12995         ves_icall_System_Double_AssertEndianity to assert double word endianity
12996         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
12997
12998 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
12999
13000         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
13001         support, icalls and fixes.
13002
13003 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
13004
13005         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
13006         classes that are a punctuation character in .NET is not the same a
13007         g_unichar_ispunct.
13008
13009 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13010
13011         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
13012
13013 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
13014
13015         * icall.c: Add new MemCopy internalcall.
13016         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
13017         Simplified code; It is not necessary to handle all the cases here,
13018         as the C# code takes care of it.  Only handle the case of the name
13019         resource embedded into the assembly.
13020
13021         Changed signature to return the data pointer and the size of the
13022         data. 
13023
13024 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
13025
13026         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
13027         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
13028
13029 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13030
13031         * socket-io.c: ignore EINTR error in select.
13032
13033 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13034
13035         * class.h, class.c: removed unused subclasses field in MonoClass.
13036
13037 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13038
13039         * icall.c: improve fix of get_base_definition(). If the parent class
13040           doesn't have the mehod, look at the parent of the parent.
13041         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
13042           to check if a parameter is an in or out parameter
13043           (PARAM_ATTRIBUTE_IN is not set by default).
13044           mono_method_return_message_restore(): Use mono_class_value_size to
13045           get the size of a value type. mono_type_stack_size (parameterType)
13046           does not return the correct value if parameterType is byRef.
13047           mono_load_remote_field(), mono_load_remote_field_new(),
13048           mono_store_remote_field(), mono_store_remote_field_new():
13049           raise exception if the remote call returns an exception.
13050
13051 2003-07-28  Martin Baulig  <martin@ximian.com>
13052
13053         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
13054         method.  This is a wrapper around mono_runtime_invoke() which
13055         boxes the instance object if neccessary.
13056
13057 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13058
13059         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
13060         metadata.h, row-indexes.h, verify.c: first cut of generics support.
13061
13062 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13063
13064         * icall.c: disable mcs bug workaround.
13065
13066 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
13067
13068         * object.c (mono_runtime_class_init): Take the metadata_section
13069         mutex before obtaining the domain mutex.
13070
13071         * appdomain.h: Added definition of metadata_section mutex here. 
13072
13073         * object.c: define metadata_mutex here.
13074
13075 2003-07-24  Ravi Pratap  <ravi@ximian.com>
13076
13077         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
13078         fixed.
13079
13080 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
13081
13082         * reflection.c: Fix bug #46669
13083
13084 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13085
13086         * exception.c:
13087         * exception.h:
13088         * icall.c:
13089         * object.h: fill in the type name for TypeLoadException.
13090
13091 2003-07-23  Ravi Pratap  <ravi@ximian.com>
13092
13093         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
13094         relationship between TypeBuilders while compiling corlib) and bug
13095         45993 (Array types returned from the runtime while compiling
13096         corlib were from the loaded corlib).
13097
13098 2003-07-22  Martin Baulig  <martin@ximian.com>
13099
13100         * mono-debug-debugger.c: Reworked the type support a bit more;
13101         distinguish between types and classes.
13102
13103 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
13104
13105         * icall.c: add IsArrayImpl icall.
13106
13107 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
13108
13109         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
13110         initializing real_size only once. Also fix bug #46602.
13111
13112 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
13113
13114         * object.c: Renamed mono_metadata_section to metadata_section.
13115
13116 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
13117
13118         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
13119           empty array if the type is an array. Fixed.
13120           ves_icall_MonoMethod_get_base_definition: if the base method
13121           is abstract, get the MethodInfo from the list of methods of
13122           the class.
13123         * reflection.c: ParameterInfo.PositionImpl should be zero-based
13124           and it was 1-based. Fixed in mono_param_get_objects.
13125
13126 2003-07-20  Martin Baulig  <martin@ximian.com>
13127
13128         * mono-debug.h: Set version number to 31.
13129         (mono_debug_init): Added `MonoDomain *' argument.
13130
13131         * mono-debug-debugger.c: Reworked the type support; explicitly
13132         tell the debugger about builtin types; pass the `klass' address to
13133         the debugger.
13134
13135 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
13136
13137         * image.c: Allow new metadata tables to be loaded without a
13138         warning. Also update the warning message to give the new constant value.
13139                 
13140 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
13141
13142         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
13143         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
13144         array type representation changes.
13145
13146 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13147
13148         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
13149         on Environment.Exit () call.
13150
13151 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13152
13153         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
13154         requires a matching corlib.
13155
13156 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13157
13158         * Changelog: My editor decided to add a CR to each line. Sorry about that.
13159           Committed again without the CRs.
13160         
13161 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13162
13163         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
13164           getting it from the "this" socket instance. Did not work
13165           if the socket is a subclass of Socket.
13166           Also fixed bug #35371.
13167
13168 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13169
13170         * metadata.c: fixed size for TypedByRef.
13171         * loader.c: when searching for a method, consider the vararg amrker.
13172         * unicode.c, decimal.c: constify some arrays.
13173
13174 2003-07-15  Dick Porter  <dick@ximian.com>
13175
13176         * socket-io.c: Fixed compilation for gcc < 3.2.
13177
13178         Fixed compilation for machines that don't have AF_INET6 (thanks to
13179         Bernie Solomon <bernard@ugsolutions.com> for that part.)
13180
13181         Fixed compile warnings.
13182         
13183         Fixed formatting and line endings.
13184
13185 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
13186
13187         * socket-io.h:
13188         * socket-io.c: Added IPv6 support.
13189
13190 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
13191
13192         * class.c (mono_class_is_assignable_from): New function to implement
13193         the is_assignable_from logic. Used by mono_object_isinst, 
13194         Type::IsAssignableFrom () and the interpreter.
13195
13196         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
13197         Object, even interfaces.
13198         
13199         * object.c (mono_object_isinst): Implement in terms of 
13200         is_assignable_from.
13201
13202         * icall.c (ves_icall_type_is_assignable_from): New icall.
13203
13204 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
13205
13206         * domain.c (foreach_domain): fix compiler warning.
13207
13208 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
13209
13210         * image.c (load_metadata_ptrs): use g_strndup because strndup is
13211         not available on all plattforms
13212
13213 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
13214
13215         * image.h image.c: Store the metadata version string in MonoImage.
13216         * icall.c: New icall to retrieve the image version.
13217         * reflection.c (create_dynamic_image): Fill in the image version field
13218         * reflection.c (build_compressed_metadata): Use the image version
13219         from the image structure.
13220
13221 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13222
13223         * appdomain.c: modified comment.
13224         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
13225         That will be its last iteration when mono_gc_cleanup is called from
13226         mono_runtime_cleanup and before the domain is unloaded.
13227
13228         Fixes bug #45962.
13229
13230 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
13231
13232         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
13233         attributes.
13234
13235 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13236
13237         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
13238         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
13239         Bernie Solomon <bernard@ugsolutions.com>.
13240
13241 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13242
13243         * object.c, object.h: provide mono_object_new_fast() for faster
13244         allocation in some special cases.
13245
13246 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
13247
13248         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
13249         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
13250
13251 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
13252
13253         * threadpool.c: fix leaks.
13254
13255 2003-07-01  Dick Porter  <dick@ximian.com>
13256
13257         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
13258         using MonoGHashTables.  Fixes threadpool bug posted to list.
13259
13260 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13261
13262         * image.h, image.c: added support to load an assembly from a byte array.
13263         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
13264         assembly bundle support.
13265
13266 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
13267
13268         * threadpool.c (mono_thread_pool_add): keep a reference to the
13269         AsyncResult to prevent GC
13270
13271 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13272
13273         * class.c: leak fix.
13274
13275 2003-06-25  Dick Porter  <dick@ximian.com>
13276
13277         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
13278         for the async object, the WaitHandle object will close the handle.
13279         Fixes bug 45321.
13280
13281 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13282
13283         * class.c: in mono_array_class_get (), lookup from the hash with the
13284         same type we insert: this works around a bug in
13285         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
13286         lluis. The real fix will have to wait for after the release.
13287
13288 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13289
13290         * icall.c: fix memory leak when getting type members.
13291
13292 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13293
13294         * reflection.c: added more pubtoken special cases.
13295
13296 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
13297
13298         * class.c: handle field offset correctly when class size
13299         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
13300
13301 2003-06-20  Martin Baulig  <martin@ximian.com>
13302
13303         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
13304         *image' field.
13305
13306 2003-06-20  Martin Baulig  <martin@ximian.com>
13307
13308         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
13309
13310 2003-06-20  Martin Baulig  <martin@ximian.com>
13311
13312         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13313         just distinguish between variables in registers and variables at
13314         an offset relative to a register.
13315
13316 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13317
13318         * icall.c: #ifdef out latest changes until mcs is fixed.
13319
13320 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13321
13322         * icall.c: return members in metadata order.
13323
13324 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13325
13326         * icall.c: avoid infinite loop in GetTimeZoneData.
13327
13328 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13329
13330         * icall.c: added Marshal.Prelink/All icalls.
13331
13332 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13333
13334         * object.c, object.h: fix warnings and do some overflow checking
13335         when creating arrays.
13336
13337 2003-06-17  Dick Porter  <dick@ximian.com>
13338
13339         * file-io.h:
13340         * file-io.c: File attributes need to be tweaked slightly when
13341         passed from the managed to the w32 world.
13342
13343 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13344         * profiler.h profiler-private.h profiler.c: Rework last patch
13345         based on suggestion by Paolo.
13346         
13347 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13348
13349         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13350         instruction level coverage data collection.
13351         * profiler.h profiler.c (: Added new callback function which can be
13352         used by the profiler to limit which functions should have coverage
13353         instrumentation.
13354         * profiler.c (mono_profiler_load): Call g_module_build_path to
13355         generate the file name of the profiler library.
13356
13357 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13358
13359         * profiler.c, profiler.h, profiler-private.h: added basic block 
13360         coverage profiling API.
13361
13362 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13363
13364         * reflection.c (mono_reflection_create_runtime_class): Add support
13365         for events in dynamically generated code.
13366
13367         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13368         not allocated.
13369
13370 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13371
13372         * icall.c: when getting timezone info, return reasonable values if we
13373         can't get the actual data.
13374
13375 2003-06-14  Dick Porter  <dick@ximian.com>
13376
13377         * threads.c (start_wrapper): Remove the reference to the thread
13378         object in the TLS data, so the thread object can be finalized.
13379         This won't be reached if the thread threw an uncaught exception,
13380         so those thread handles will stay referenced :-( (This is due to
13381         missing support for scanning thread-specific data in the Boehm GC
13382         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13383
13384 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13385
13386         * reflection.c: ensure streams and tables are first allocated with
13387         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13388
13389 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13390
13391         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13392
13393 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13394
13395         * reflection.c (mono_reflection_create_runtime_class): Add support for
13396         properties to dynamically created classes.
13397         * reflection.c: Fix a few places where non-MonoObjects were inserted
13398         into the tokens hashtable.
13399
13400 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13401
13402         * object.c: some support to handle out of memory exceptions.
13403
13404 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13405
13406         * marshal.c (mono_marshal_get_native_wrapper): support reference
13407         return types
13408
13409 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13410
13411         * object.h, object.c: more portability stuff from Bernie Solomon.
13412         Unexport mono_object_allocate(). Added mono_object_unbox ().
13413         Set exitcode when an unhandled exception is thrown.
13414
13415 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13416
13417         * marshal.c (mono_marshal_get_native_wrapper): use custom
13418         marshaler for return types.
13419
13420 2003-06-10  Dick Porter  <dick@ximian.com>
13421
13422         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13423         ip_mreq is available
13424
13425 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13426
13427         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13428         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13429         by Bernie Solomon <bernard@ugsolutions.com>.
13430
13431 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13432
13433         * gc.c (mono_gc_init): Avoid error message on shutdown when
13434         GC_DONT_GC=1 is used.
13435
13436         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13437         New icall to return the GUID of a module.
13438
13439 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13440
13441         * class.c: ensure instance size always includes the parent's size
13442         even whem class size is set explicitly (fixes bug#44294).
13443
13444 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13445
13446         * profiler.h, profiler.c: made the simple profiler thread-safe,
13447         get more accurate timing info. Allow the loading of an
13448         externally-developed profiler module.
13449
13450 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13451
13452         * marshal.c (mono_marshal_get_native_wrapper): improved
13453         class/byref arguments.
13454         (mono_marshal_get_native_wrapper): better string marshaling support.
13455
13456 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13457
13458         * class.c: ensure .pack and .size are handled correctly and
13459         simplified layout of static fields.
13460
13461 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13462
13463         * appdomain.c
13464         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13465
13466         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13467         current directory (fix bug 44008)
13468
13469 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13470
13471         * marshal.c (mono_marshal_get_native_wrapper): started support for
13472         custom marshalers.
13473         (mono_delegate_to_ftnptr): consider marshalling specifications
13474
13475 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13476
13477         * reflection.c, reflection.h: emit custom marshal info.
13478
13479 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13480
13481         * object.c: free the GError.
13482         * icall.c: added CloseEvent_internal.
13483         * threads.[ch]:
13484         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13485         call.
13486
13487 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13488
13489         * loader.c (mono_method_get_signature): Add support for dynamic
13490         assemblies.
13491
13492 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
13493
13494         * reflection.c: fixed bug #43905.
13495
13496 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13497
13498         * class.c, domain.c, icall.c, metadata.h, object.h: support for
13499         handling TypedReference and ArgIterator.
13500         * loader.c, loader.h: added function to get signature at call site.
13501
13502 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13503
13504         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
13505         data readonly. Buglets and warning fixes. Some MethodSpec support.
13506
13507 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13508
13509         * class.h, class.c, object.c: remove relative numbering support.
13510
13511 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
13512
13513         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
13514         free the string, until we get a chance to fix Gtk#
13515
13516 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13517
13518         * marshal.c: revert last patch.
13519
13520 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
13521
13522         * icall.c: updates for new mono_class_vtable() not calling
13523         the type constructor anymore.
13524
13525 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13526
13527         * object.h, object.c: separate vtable creation from type
13528         initialization. Make running the .cctor thread safe.
13529
13530 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
13531
13532         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
13533
13534 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
13535
13536         * loader.c (mono_get_method): consider calling convention
13537
13538 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
13539
13540         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
13541         to return the invisible global type for a module.
13542
13543         * reflection.c (mono_image_build_metadata): Emit global fields too.
13544
13545 2003-05-20  Peter Williams  <peterw@ximian.com>
13546
13547         * loader.c (mono_lookup_internal_call): Add a few newlines.
13548
13549 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
13550
13551         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
13552         literal strings.
13553
13554         * appdomain.c (set_domain_search_path): Recalculate search path when
13555         AppDomainSetup.PrivateBinPath changes.
13556
13557         * object.c (mono_class_compute_gc_descriptor): It turns out some
13558         parts of the class libs (like System.Thread) holds pointers to
13559         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
13560         to treat native int a pointer type here.
13561         
13562 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
13563
13564         * appdomain.h, domain.c: add hashtable for jump target resolution.
13565
13566 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
13567
13568         * reflection.h reflection.c icall.c: Added new icalls 
13569         GetManifestResourceInfoInternal, GetModulesInternal and support
13570         infrastructure.
13571
13572 2003-05-16  Dick Porter  <dick@ximian.com>
13573
13574         * icall.c:
13575         * file-io.h:
13576         * file-io.c: Implement System.IO.MonoIO::GetTempPath
13577
13578 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
13579
13580         * object.c: mono_store_remote_field: little fix to previous patch.
13581
13582 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13583
13584         * class.c: add constructors to array classes.
13585         * icall.c: special case array construction for InternalInvoke (),
13586
13587 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
13588
13589         * class.h class.c reflection.c object.c: Added support for field
13590         defaults in dynamically generated classes.
13591
13592 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
13593
13594         * reflection.c: properly encode charset for ddlimport.
13595
13596 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
13597
13598         * threads.c: allow compiling without GC.
13599
13600 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13601
13602         * appdomain.h, object.c, object.h, threads.c, threads.h: added
13603         handling of thread static data.
13604
13605 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13606
13607         * reflection.h, reflection.c: added mono_custom_attrs_free ().
13608
13609 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
13610
13611         * class.c (mono_array_class_get): always set the serializable flags
13612         (mono_array_class_get): always set the SEALED attribute for array types
13613
13614 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
13615
13616         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
13617         attributes (fix for bug 42021).
13618
13619 2003-05-12  Dick Porter  <dick@ximian.com>
13620
13621         * gc.c: Don't run finalizers when the finalizer thread is
13622         finishing up, because the default domain has already been
13623         destroyed.
13624
13625 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
13626
13627         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
13628         value is null, we should throw an exception.   This is slightly
13629         different than the other conventions used for the constructor.
13630
13631 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13632
13633         * socket-io.c: fixed windows build.
13634
13635 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13636
13637         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
13638
13639 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
13640
13641         * object.c (mono_string_new_wrapper): Compatibility fix for MS
13642         compilers.
13643
13644 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
13645
13646         * class.c (mono_class_layout_fields): Add experimental GC aware
13647         auto layout facility. Requires class library changes to work correctly.
13648
13649         (mono_class_setup_vtable): Avoid overriding explicit interface
13650         method implementations. Fixes iface3.exe test.
13651
13652         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
13653         object reference.
13654         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
13655         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
13656
13657         * metadata.h: Add new type classification macro which determines
13658         whenever the type holds an object reference.
13659
13660 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
13661
13662         * marshal.c (mono_marshal_get_native_wrapper): cleanups
13663
13664 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
13665
13666         * gc.c (finalizer_thread): Work around a GC bug.
13667
13668 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
13669
13670         * marshal.c (emit_struct_conv): allow unions
13671
13672         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
13673
13674 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
13675
13676         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
13677
13678 2003-05-06  Martin Baulig  <martin@ximian.com>
13679
13680         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
13681
13682 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13683
13684         * socket-io.c:
13685         (Select_internal): allow NULLs, don't create arrays if not needed.
13686         Coupled with Socket.cs changes.
13687
13688         * threadpool.c:
13689         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
13690         register a finalizer for it that will close the semaphore handle. This
13691         fixes the leak and make Lupus' test run with > 4080 loops.
13692
13693 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
13694
13695         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
13696         Jerome Laban (bug #42287)
13697
13698 2003-05-02  Martin Baulig  <martin@ximian.com>
13699
13700         * debug-mono-symfile.h
13701         (MonoSymbolFile): Moved declaration into mono-debug.h.
13702         (MonoDebugMethodJitInfo): Likewise.
13703         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
13704         argument.
13705         (_mono_debug_address_from_il_offset): Take a
13706         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
13707
13708         * mono-debug.h
13709         (MonoDebugDomainData): New struct.
13710         (mono_debug_get_domain_data): New function.
13711         (mono_debug_add_method): Take an additional `MonoDomain *'
13712         argument.
13713         (mono_debug_source_location_from_address): Likewise.
13714         (mono_debug_il_offset_from_address): Likewise.
13715         (mono_debug_address_from_il_offset): Likewise.
13716
13717 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
13718
13719         * reflection.c: one more check for null type in custom attrs.
13720
13721 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13722
13723         * reflection.c: avoid warning (comparison is always false due to limited
13724         range of data type).
13725
13726 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13727
13728         * icall.c: throw an exception in Type.GetField if the argument 'name'
13729         is NULL.
13730
13731 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
13732
13733         * reflection.c: fixed handling of enums in named arguments to custom
13734         attributes (bug #42123).
13735
13736 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
13737
13738         * reflection.c: use the right array element type and handle
13739         a null for a Type argument, too.
13740
13741 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
13742
13743         * reflection.c: handle arrays as arguments to custom attributes.
13744
13745 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13746
13747         * reflection.c: handle a string value in a custom attr
13748         ctor that takes an object.
13749
13750 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
13751
13752         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
13753         (fix bug #42063)
13754
13755 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
13756
13757         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
13758
13759 2003-04-27  Martin Baulig  <martin@ximian.com>
13760
13761         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
13762         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
13763         MONO_DEBUGGER_EVENT_BREAKPOINT.
13764         (mono_breakpoint_trampoline_code): Removed.
13765         (mono_debugger_event_handler): The last argument is now a
13766         `guint32'.
13767         (mono_debugger_insert_breakpoint_full): Removed the
13768         `use_trampoline' argument.
13769         (mono_debugger_method_has_breakpoint): Likewise.
13770         (mono_debugger_trampoline_breakpoint_callback): Renamed to
13771         mono_debugger_breakpoint_callback(); take the method and
13772         breakpoint number as arguments.
13773
13774 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
13775
13776         * metadata.c: fix off by one when loading parameters attributes.
13777
13778 2003-04-24  Martin Baulig  <martin@ximian.com>
13779
13780         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
13781
13782 2003-04-24  Martin Baulig  <martin@ximian.com>
13783
13784         * mono-debug-debugger.c: Moved all code which interacts with the
13785         Mono Debugger here.
13786
13787         * debug-mono-symfile.c: This code now just deals with the symbol
13788         file itself, the debugger code is now in mono-debug-debugger.c.
13789
13790 2003-04-23  Martin Baulig  <martin@ximian.com>
13791
13792         * mono-debug.c (mono_debug_source_location_from_il_offset):
13793         New method; like mono_debug_source_location_from_address(), but
13794         takes an IL offset instead of a machine address.
13795
13796 2003-04-23  Martin Baulig  <martin@ximian.com>
13797
13798         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
13799         `line' field; this is now computed by the debugger.
13800
13801 2003-04-23  Martin Baulig  <martin@ximian.com>
13802
13803         * mono-debug.[ch]: New files.  This is the new debugging interface.
13804
13805         * mono-debug-debugger.[ch]: New files.  Moved all code which
13806         interacts with the Mono Debugger here.
13807
13808 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
13809
13810         * domain.c (mono_init): initialize mono_defaults.monitor_class
13811
13812 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
13813
13814         * reflection.c (method_encode_code): Add a spicy exception to help
13815         future compiler authors.
13816
13817 2003-04-21  Martin Baulig  <martin@ximian.com>
13818
13819         * icall.c
13820         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
13821         Make this work with relative pathnames; g_filename_to_uri() needs
13822         an absolute filename.
13823
13824 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
13825
13826         * icall.c: Track name changes in Object and ValueType.
13827
13828 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
13829
13830         * metadata.c (mono_type_stack_size): size should be a multiple of
13831         sizeof (gpointer)
13832
13833 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13834
13835         * gc.c:
13836         (internal_domain_finalize): moved into mono_domain_finalize. No need
13837         to create another thread because the finalizers will be run in the
13838         finalizer thread.
13839         
13840         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
13841         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
13842         to be run (MS does this too).
13843
13844 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
13845
13846         * object.c (mono_class_compute_gc_descriptor): Update comment.
13847
13848         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
13849
13850         * image.h: Add synchronized wrapper cache.
13851
13852         * image.c (do_mono_image_open): Initialize cache.
13853
13854         * reflection.c (create_dynamic_mono_image): Initialize cache.
13855
13856 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13857
13858         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
13859         ves_icall_System_Buffer_ByteLengthInternal.
13860
13861 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13862
13863         * reflection.c: setup klass->nested_in earlier. Allow
13864         a dash in the assembly name.
13865
13866 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
13867
13868         * metadata.c (mono_type_to_unmanaged): dont access
13869         type->data.klass for MONO_TYPE_OBJECT
13870         (mono_type_to_unmanaged): consider System.Delegate class
13871
13872 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
13873
13874         * class.c: just setup supertypes in the proper place instead of
13875         initializing the full element class for arrays.
13876
13877 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13878
13879         * class.c: ensure the element class of arrays is initialized.
13880         Setup the supertype info for array classes, too.
13881
13882 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
13883
13884         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
13885
13886 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13887
13888         * Makefile.am: re-added -m option when running cygpath. This way,
13889         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
13890         separator.
13891         * mono-config.c: same codepath for locating mono config file for WIN32
13892         and the rest.
13893         * assembly.c: if mono_assembly_setrootdir is called, don't override
13894         the value set.
13895
13896 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13897
13898         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
13899         MONO_ASSEMBLIES variable.
13900
13901 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
13902
13903         * icall.c: added Assembly::GetNamespaces() icall.
13904
13905 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13906
13907         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
13908
13909 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
13910
13911         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
13912         * object.c: fixed bug in the construction of vtable for proxies
13913
13914 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
13915
13916         * object.c (mono_array_new): Mark mono_array_new as an icall.
13917
13918 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13919
13920         * class.c: fixed test for public method when overriding interfaces.
13921         Closes bug #40970.
13922
13923 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13924
13925         * appdomain.h, domain.c: added mono_domain_foreach() to
13926         be able to access the currently loaded appdomains.
13927         * object.c: make string interning work across sppdomains.
13928         Mark some functions for use as icalls.
13929
13930 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
13931
13932         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
13933
13934         * reflection.h reflection.c: Allocate long living data using 
13935         GC_MALLOC_ATOMIC so the collector does not need to scan it.
13936
13937         * reflection.c: Double the allocation size in streams instead of
13938         increasing it, to prevent unneccesary copying on large assemblies.
13939         
13940         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
13941         creation if the assembly does not have the Run flag set.
13942
13943 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
13944
13945         * class.h: avoid the C++ keywords in header files (Jerome Laban
13946         spotted and fixed this).
13947
13948 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13949
13950         * object.c:
13951         (mono_unhandled_exception): fill in the arguments for the
13952         UnhandledException event. Only trigger that event for the default
13953         domain (as MS does).
13954
13955 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
13956
13957         * object.c: Improve typed allocation stuff based on suggestions from
13958         Paolo. Also turn it on if the GC library supports it.
13959
13960 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
13961
13962         * object.c object.h class.h: Added experimental typed allocation
13963         facility using the interfaces in gc_gcj.h.
13964
13965         * os/gc_wrapper.h: Added new include files.
13966         
13967 2003-04-03  Martin Baulig  <martin@ximian.com>
13968
13969         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
13970         which is not yet enabled by default.
13971
13972         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
13973         functions.
13974         (mono_gc_lock, mono_gc_unlock): New static functions.
13975
13976         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
13977         functions; stop/start the world for the garbage collector.  This
13978         is using the windows API; we need to complete the SuspendThread()/
13979         ResumeThread() implementation in the io-layer to make this work on Unix.
13980         (mono_gc_push_all_stacks): New public function; tells the garbage
13981         collector about the stack pointers from all managed threads.
13982
13983 2003-04-03  Martin Baulig  <martin@ximian.com>
13984
13985         * object.h (MonoThread): Added `gpointer stack_ptr'.
13986
13987         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
13988
13989 2003-04-03  Martin Baulig  <martin@ximian.com>
13990
13991         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
13992
13993 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
13994
13995         * reflection.c (typebuilder_setup_fields): Initialize field.first and
13996         field.last.
13997
13998 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
13999
14000         * loader.c (mono_lookup_internal_call): Report the corlib that is
14001         out of sync.
14002
14003 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
14004
14005         * icall.c (ves_icall_type_GetTypeCode): fixed check for
14006         System.DBNull (it's class not valuetype).
14007
14008 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14009
14010         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
14011         if the array method was already assigned a token (fixes bug#40646).
14012
14013 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
14014
14015         * reflection.c (mono_reflection_get_type): Attempt type resolve even
14016         if no assembly is given.
14017
14018 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
14019
14020         * metadata.h: Added the new tables.
14021
14022         * row-indexes.h: Added definitions for new tables.
14023
14024         * metadata.c: Add schemas for new tables, and add support for
14025         computing the sizes of them.
14026
14027         * class.c: Update for handling the new type cases.
14028
14029 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
14030
14031         * metadata.h (MONO_TYPE_IS_VOID): new macro
14032
14033 2003-03-31  Martin Baulig  <martin@ximian.com>
14034
14035         * threads.h (MonoThreadCallbacks): Added `thread_created'.
14036
14037         * threads.c (mono_thread_new_init): Call `thread_created' in the
14038         mono_thread_callbacks.
14039
14040 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
14041
14042         * loader.h: added marshalbyrefobject_class to mono_defaults
14043         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
14044         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
14045           generation of output parameters.
14046           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
14047         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
14048           contextbound and the target object belongs to the context of the caller.
14049         * object.h: added context and unwrapped_server variables in MonoRealProxy.
14050         * object.c: Implemented support for interfaces and abstract classes
14051           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
14052           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
14053
14054 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
14055
14056         * class.h class.c (mono_class_is_subclass_of): New function.
14057         
14058         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
14059         routines for most common case (calls from ArrayList::ToArray).
14060
14061         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
14062         routine so programs which call Environment::Exit() can be profiled.
14063
14064         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
14065         Added MONO_ARCH_SAVE_REGS.
14066
14067         * icall.c (ves_icall_type_is_subtype_of): Use new function.
14068
14069 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
14070
14071         * blob.h: Add a couple of new MonoType types definitions.
14072
14073         * tabledefs.h: Add a couple of new call convs.
14074
14075 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
14076
14077         * reflection.h (MonoReflectionDynamicAssembly): track changes in
14078         the layout of the class.
14079
14080         * reflection.c (alloc_table): double the size on overflow to avoid
14081         unnecessary copying.
14082
14083         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
14084         avoid filling out metadata tables and blobs. Also set mb->ilgen to
14085         null so it can be garbage collected.
14086         
14087 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
14088
14089         * reflection.c (mono_reflection_get_type): Return the resolved type
14090         only if it is in the assembly we searched.
14091
14092         * reflection.c (ensure_runtime_vtable): Initialize method slots.
14093
14094         * class.c (mono_class_setup_vtable): Set the slot of the overriding
14095         method.
14096
14097 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14098
14099         * appdomain.c:
14100         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
14101         the right one is 'file:///blah', but MS allows it.
14102         * assembly.c:
14103         (mono_assembly_open): allow 'file://blah'
14104
14105         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
14106
14107 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
14108
14109         * socket-io.c: fixes bug #40310.
14110
14111 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
14112
14113         * reflection.c (mono_reflection_parse_type): handle deeply nested
14114         types correctly.
14115
14116         * reflection.c (mono_image_create_token): Use unique token values
14117         since they will be put into a hash table.
14118
14119         * class.c (mono_class_setup_vtable): If a method occurs in more than
14120         one place in the vtable, and it gets overriden, then change the
14121         other occurances too.
14122
14123         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14124         object as return type.
14125
14126 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14127
14128         * icall.c: Deleted "ToString" implementation for double and float
14129         because they are full implemented in managed code.
14130
14131 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14132
14133         * reflection.c, reflection.h: implemented and exported functions
14134         to retrieve info about custom attributes.
14135
14136 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14137
14138         * appdomain.c: moved Uri handling to assembly.c
14139         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
14140         work when using a file Uri in *nix and windows.
14141
14142         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
14143         GetReferencedAssemblies.
14144
14145 2003-03-18  Dick Porter  <dick@ximian.com>
14146
14147         * icall.c: Rename a couple of internal calls
14148
14149         * threads.c: Set the thread state to Stopped when a thread exits.
14150         Fixes bug 39377.
14151
14152 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
14153
14154         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
14155         New icall.
14156
14157         * object.c (mono_class_vtable): fix warning.
14158
14159 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
14160
14161         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
14162
14163         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
14164         memory.
14165         (method_encode_clauses): Create exception info structures in the right
14166         order.
14167         (mono_reflection_setup_internal_class): Initialize supertypes field.
14168
14169         * class.c object.c: Handle interfaces which implement other interfaces 
14170         correctly.
14171
14172         * class.h class.c: Move the supertypes array initialization code into 
14173         a separate function so it can be used for dynamic types too. Also call
14174         it earlier, in mono_class_init(), since it can be used before the
14175         type is initialized.
14176
14177 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14178
14179         * Makefile.am:
14180         * assembly.c:
14181         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
14182
14183         * appdomain.c:
14184         * appdomain.h:
14185         * marshal.c:
14186         * object.c: remove warnings.
14187
14188 2003-03-13  Martin Baulig  <martin@ximian.com>
14189
14190         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
14191         (MonoDebugLexicalBlockEntry): New types.
14192
14193         * debug-mono-symfile.c
14194         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
14195
14196 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14197
14198         * process.c: ret can be any non-zero value accroding to MS doc.
14199
14200 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
14201
14202         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
14203         fixing a warning for a miss-used prototype, would have cause
14204         random memory corruption.
14205
14206 2003-03-07  Martin Baulig  <martin@ximian.com>
14207
14208         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
14209         getting really annoying ....
14210
14211 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
14212
14213         * reflection.c (fixup_method): added support for array methods.
14214
14215 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
14216
14217         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
14218         (pointed out by Michael Adams).
14219
14220 2003-03-04  Dick Porter  <dick@ximian.com>
14221
14222         * icall.c: Temporarily reverted the Double and Single ToString()
14223         change, because it broke nunit.
14224
14225 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
14226
14227         * object.h, threads.h: make include files compatible with C++
14228         (patch by Jerome Laban <jlaban@wanadoo.fr>).
14229
14230 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14231
14232         * icall.c: Erased ToString helper functions for Double and Single.
14233         Now, that implementations ar all in managed code (Double and Single
14234         Formatters).
14235
14236 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
14237
14238         * appdomain.c: Added method for initializing the default context of
14239         a domain. Added internal call for getting the default context.
14240         * appdomain.h: Added context variable in MonoDomain struct.
14241         * domain.c: mono_domain_set also sets the default context of the domain
14242         * icall.c: Mapped internal method InternalGetDefaultContext.
14243         * object.c: mono_object_get_virtual_method returns always a remoting
14244         wrapper if the object is a transparent proxy.
14245         mono_runtime_invoke_array: when creating an object by calling the
14246         constructor, if the created object is a proxy, then the constructor should
14247         be called using the a remoting wrapper.
14248
14249 2003-03-03  Dick Porter  <dick@ximian.com>
14250
14251         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
14252         variable so it compiles on solaris.  Problem spotted by
14253         Christopher Taylor <ct@cs.clemson.edu>
14254
14255 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14256
14257         * appdomain.c:
14258         (get_info_from_assembly_name): don't leak value.
14259
14260         * icall.c:
14261         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
14262         result.
14263
14264 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
14265
14266         * assembly.c: export mono_image_load_references ().
14267         * class.c: handle function pointers. mono_class_from_name() now
14268         supports nested type names directly.
14269
14270 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
14271
14272         * reflection.h reflection.c: Encode already created dynamic methods 
14273         and fields correctly as a DEF instead of a REF.
14274
14275         * reflection.c: Get rid of the force_ref argument to 
14276         mono_image_typedef_or_ref since it was wrong in the first place.
14277
14278         * string-icalls.c: add error checking to string constructors according
14279         to the MSDN docs.
14280
14281         * reflection.c: Emit types in the order their TypeBuilders were 
14282         created. Previously, a new table index was assigned to each type before
14283         the tables were emitted. This was wrong because the signature blob
14284         might already refer to a type by its original table index.
14285
14286 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
14287
14288         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
14289         change.
14290         
14291 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14292
14293         * Makefile.am: make assemblies dir have \ instead of / on windows.
14294
14295 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
14296
14297         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
14298         iterate over the NESTEDCLASS table using a linear search since the
14299         table is not guaranteed to be sorted by the secondary key.
14300
14301         * class.c (mono_class_create_from_typedef): fixed up call to
14302         mono_metadata_nesting_typedef.
14303         
14304 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
14305
14306         * marshal.c (mono_string_to_byvalstr): clear the memory as
14307         suggested by Jerome Laban <jlaban@wanadoo.fr>
14308
14309 2003-02-26  Dick Porter  <dick@ximian.com>
14310
14311         * process.c: Cope with padding in .rsrc blocks
14312
14313 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14314
14315         * metadata.h: reverted the filter_len change, it breaks reflection
14316         
14317 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14318
14319         * metadata.h: added a new field to store the filter_len
14320         
14321
14322 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14323
14324         * reflection.c: handle custom attributes for types and members
14325         created with Reflection.Emit (bug#38422).
14326
14327 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14328
14329         * reflection.c: define RTSpecialName automatically for constructors for
14330         compatibility with MS.NET.
14331
14332         * reflection.c (mono_reflection_create_runtime_class): initialize
14333         nested_in field of dynamically created classes.
14334
14335 2003-02-22  Martin Baulig  <martin@ximian.com>
14336
14337         * debug-mono-symfile.h: Incremented version number.
14338
14339 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14340
14341         * object.h icall.c process.c: fix warnings.
14342
14343 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14344
14345         * appdomain.h appdomain.c:
14346         (mono_domain_try_type_resolve): split the 
14347         name_or_tb argument into a name and a tb argument.
14348         (mono_domain_has_type_resolve): new function to check whenever the
14349         application has registered a TypeResolve event handler.
14350         
14351         * icall.c reflection.h reflection.c: move the type resolve logic into
14352         mono_reflection_get_type () so it will be invoked when 
14353         Assembly::GetType () is called.
14354
14355         * reflection.c:
14356         (mono_reflection_get_type): renamed to get_type_internal.
14357         (mono_reflection_get_type): fixed type name generation so it works 
14358         for nested types too.
14359         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14360         costly type name generation if there is no resolve event handler.
14361
14362 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14363
14364         * class.c, image.c: load exported types from file references.
14365
14366 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14367
14368         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14369           used to cache the managed methods used to create proxies and make 
14370           remote invocation of methods.
14371         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14372           to be remotely created.
14373         * object.c: Modified the method mono_class_vtable(). It now initializes 
14374           the remote flag of the vtable. Modified mono_object_new_specific(), 
14375           so now it checks the remote flag.
14376         * icall.c: Added a couple of internal methods, one for enabling instance 
14377           creation interception for a type, and one for creating objects bypassing
14378           the remote check.
14379
14380 2003-02-18  Martin Baulig  <martin@ximian.com>
14381
14382         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14383         New interncall to get a method's metadata token.
14384
14385         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14386         New interncall for the debugger.
14387
14388 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14389
14390         * class.c (mono_class_setup_vtable): allocate supertype array
14391
14392 2003-02-18  Martin Baulig  <martin@ximian.com>
14393
14394         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14395
14396 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14397
14398         * reflection.c:
14399         (assembly_name_to_aname): jump over unknown properties (i've found
14400         something like: 'type, assembly, version=xxx, custom=null, public...',
14401         so now will ignore custom=null and still get the rest of the values).
14402
14403 2003-02-17  Dick Porter  <dick@ximian.com>
14404
14405         * threads.c: Have Thread.Start() wait for a semaphore to signal
14406         that the thread has set up all its local data.  This fixes bug
14407         34323, where Abort() raced the new thread's TLS data.
14408
14409         Also removes the handle_store() call from start_wrapper, because
14410         threads are now always created suspended and there is no longer a
14411         race between the parent and child threads to store the info.
14412
14413 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14414
14415         * image.c: explain the #- heap issue in a message, hopefully
14416         avoiding FAQs on mono-list.
14417
14418 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14419
14420         * icall.c:
14421         (GetEntryAssembly): if the domain has not invoked
14422         AppDomain.ExecuteAssembly yet, return the assembly of the default
14423         AppDomain.
14424
14425 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14426
14427         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14428
14429 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14430
14431         * metadata.c, reflection.c: simple speedup to type hash
14432         and equals code.
14433
14434 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14435
14436         * image.c, image.h, class.c, assembly.c: move module loading
14437         to MonoImage. When loading metadata, consider alignemnet from
14438         the start of metadata, not from the metadata address in memory.
14439
14440 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14441
14442         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14443         AssemblyBuilder objects. Factored out custom attribute creation into
14444         a separate function.
14445         (create_custom_attr): new function to create custom attributes.
14446
14447 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14448
14449         * Makefile.am: Got tired of typing the full pathname to pedump.
14450         Until there is another option, am installing this.
14451
14452 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14453
14454         * class.c (class_compute_field_layout): always set field->parent 
14455         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14456
14457 2003-02-11  Dick Porter  <dick@ximian.com>
14458
14459         * threads-types.h:
14460         * monitor.c: Rewrote Monitor, making lock much faster and
14461         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14462         creates them as needed.
14463
14464         * exception.c: Added SynchronizationLockException
14465
14466         * threads.c: Deleted old Monitor implementation.  The new one is
14467         in a new file.
14468
14469 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14470
14471         * class.c: handled TypedReference type code. Set the correct size for
14472         class data. Setup interface_offsets for interface classes, too.
14473
14474 2003-02-09  Martin Baulig  <martin@ximian.com>
14475
14476         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14477
14478 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14479
14480         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14481         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14482         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14483         * verify.c: check for code that runs after the end of the method.
14484
14485 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14486
14487         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14488         "System.Math::Round2".
14489         * sysmath.h: Added Floor, Round and Round2 definitions.
14490         * sysmath.c: Modified certain functions that were not 100% compliant
14491         with MS.NET (math precision) and added the implementation of Floor,
14492         Round and Round2.
14493
14494 2003-02-07  Martin Baulig  <martin@ximian.com>
14495
14496         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
14497
14498 2003-02-07  Martin Baulig  <martin@ximian.com>
14499
14500         * debug-mono-symfile.c: Reflected latest symwriter changes.
14501         (mono_debug_create_mono_symbol_file): Removed.
14502         (mono_debug_open_mono_symbol_file): Take an argument which
14503         specifies whether to create a dynamic symbol file.
14504
14505 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
14506
14507         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
14508
14509 2003-02-05  Martin Baulig  <martin@ximian.com>
14510
14511         * reflection.c (mono_image_build_metadata): Make this public,
14512         protect it against being called multiple times, don't create
14513         resources and don't build the compressed metadata here.
14514         (mono_image_create_pefile): Do this here.
14515
14516         * icall.c
14517         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
14518
14519 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14520
14521         * socket-io.c: fixed bug #36322.
14522
14523 2003-02-06  Piers Haken <piersh@friskit.com>
14524
14525         * appdomain.[ch]:
14526         * class.h:
14527         * debug-mono-symfile.c:
14528         * icall.c:
14529         * loader.c:
14530         * mono-config.c:
14531         * monosn.c:
14532         * reflection.c:
14533         * socket-io.c: warning cleanups
14534
14535 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
14536
14537         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
14538         function. works like remoting invoke, but does a check for the Proxy first.
14539
14540 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
14541
14542         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
14543
14544 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
14545
14546         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
14547         array of pointers.
14548         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
14549         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
14550
14551         * object.c (mono_store_remote_field_new): used by the new jit
14552         instead of mono_store_remote_field
14553         (mono_load_remote_field_new): used by the new jit
14554         instead of mono_load_remote_field
14555
14556 2003-02-05  Patrik Torstensson
14557
14558         * appdomain.c: changed unload to take the domain id instead
14559         of domain
14560         
14561         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
14562
14563
14564 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14565
14566         * appdomain.c: don't look for assemblies in ApplicationBase if
14567         PrivateBinPathProbe is set.
14568
14569 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14570
14571         * object.c: make the first argument in main_args contain the absolute
14572         path to the assembly. Fixes bug #37511.
14573
14574 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14575
14576         * icall.c: get correct UTC offset for countries not using daylight
14577         time saving. Fixes bug #30030.
14578
14579 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14580
14581         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
14582         and 1 are the family).
14583
14584 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
14585
14586         * icall.c (ves_icall_InternalExecute): removed wrong assertion
14587
14588         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
14589
14590 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
14591
14592         * reflection.c: added support for SignatureHelper tokens, which is
14593         needed by the Calli opcode.
14594
14595         * reflection.h: track changes to SignatureHelper class.
14596
14597         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
14598
14599 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14600
14601         * appdomain.c: fixed loading assemblies from PrivateBinPath.
14602
14603 2003-02-03  Patrik Torstensson
14604         * appdomain.[c|h], domain.c : 
14605          - Added support for getting a domain via domain id
14606          - Support for setting and getting domain from System.AppDomain 
14607            (used in cross appdomain channel)
14608          - Added support for get/set for a MonoAppContext on a thread 
14609            (Context class in System.Runtime.Remoting.Contexts),
14610          - Removed hack in Get/SetData and ExecuteAssembly.
14611         
14612         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
14613         the managed world to get control when a proxy is created.
14614
14615         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
14616         
14617 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
14618
14619         * icall.c
14620         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14621         Populate the codebase field as well.
14622
14623 2003-02-02  Martin Baulig  <martin@ximian.com>
14624
14625         * debug-mono-symfile.c
14626         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
14627         (mono_debug_symfile_add_method): Allow interncalls.
14628
14629 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14630
14631         * icall.c: throw parse exception if strtod fails or the string is empty.
14632
14633 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
14634
14635         * marshal.c: handle object type separately from defined
14636         class types.
14637
14638 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
14639
14640         * marshal.c: handle NATIVE_LPSTR for strings when it's
14641         explicitly specified.
14642
14643 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
14644
14645         * reflection.c, reflection.h, icall.c: setup the reflection
14646         handle cache for ModuleBuilders and AssemblyBuilders.
14647
14648 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
14649
14650         * reflection.c (reflection_methodbuilder_to_mono_method): set
14651         pinvoke flag
14652
14653 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14654
14655         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
14656
14657 2003-01-29  Dick Porter  <dick@ximian.com>
14658
14659         * threads.c: No need for the fake_thread kludge now that Thread
14660         doesn't run a class constructor
14661         
14662 2003-01-29  Dick Porter  <dick@ximian.com>
14663
14664         * threads.c: Use g_direct_hash instead of the rather bogus
14665         g_int_hash
14666
14667 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
14668
14669         * marshal.c (mono_marshal_get_native_wrapper): add check for null
14670         (fix pinvoke12.exe)
14671         (mono_marshal_get_struct_to_ptr): generate valid IL code
14672         (mono_marshal_get_ptr_to_struct): generate valid IL code
14673         (*): correctly set sig->pinvoke, we need to memdup the signature
14674         to do that
14675
14676 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14677
14678         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
14679         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
14680
14681 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14682
14683         * profiler.c: provide more callers information.
14684
14685 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
14686
14687         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
14688
14689         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
14690
14691         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
14692
14693 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14694
14695         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
14696         exception instead of going into an infinite loop on dates which it 
14697         can't yet handle.
14698
14699         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
14700         out-of-range exception if needed.
14701
14702         * class.c (mono_class_setup_vtable): allow a virtual method to provide
14703         an implementation for an interface method and to override an inherited
14704         method at the same time. 
14705         Imagine a scenario when a virtual method is used to override a
14706         virtual abstract method in a parent class, and this same method 
14707         provides an implementation for an method inherited from an interface. 
14708         In this case, the interface resolution code will set im->slot, which 
14709         means that the virtual method override pass will skip this method 
14710         which means a pointer to the abstract method inherited from the parent
14711         will remain in the vtable of this non-abstract class.
14712
14713         * class.c: (mono_class_setup_vtable): continue search for a real 
14714         method if only an abstract method is found.     
14715
14716 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14717
14718         * reflection.c: add size to encoding for ByValStr and ByValArray
14719         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
14720
14721 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14722
14723         * class.c (mono_class_setup_vtable): pass the override info as an
14724         argument.
14725
14726         * class.c (mono_class_setup_vtable): set the slot of overriding methods
14727         correctly.
14728         
14729         * reflection.c (ensure_runtime_vtable); add support for method 
14730         overrides.
14731         
14732 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14733
14734         * reflection.c (resolution_scope_from_image): Hack to work to work with
14735         dynamic assemblies.
14736
14737         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
14738         added a 'force_ref' argument to force this function to allways return 
14739         a TypeRef. This is needed by mono_image_get_memberref_token ().
14740         
14741 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14742
14743         * reflection.c (mono_image_get_type_info): interfaces really don't have
14744         a parent.
14745
14746         * reflection.c (mono_image_basic_init): fill out missing fields of
14747         image structure.
14748
14749         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
14750         dynamic assemblies. This is required so dynamic assemblies show up in
14751         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
14752         Type::GetType() etc. This is consistent with MS behaviour.
14753
14754         * image.c image.h reflection.c: add newly created classes to the name 
14755         cache so mono_class_get () will find them.      
14756
14757 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14758
14759         First part of changes to get IKVM.NET running under mono.
14760         
14761         * appdomain.h, appdomain.c: added new function 
14762         mono_domain_try_type_resolve() which will emit TypeResolve events. 
14763         This function will call AppDomain::DoTypeResolve to do the actual work.
14764
14765         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
14766         moved existing code dealing with dynamic tokens to a new function 
14767         called mono_reflection_lookup_dynamic_token (). This function will 
14768         raise TypeResolve events when appropriate. Since reflection.c is not 
14769         part of libmetadata, a new hook function called 
14770         mono_lookup_dynamic_token() is added to class.c which will call this.
14771
14772         * assembly.h assembly.c: make the invoke_load_hook function public,
14773         so it can be called for dynamic assemblies.
14774
14775         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
14776
14777         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
14778         type isn't found.
14779
14780         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
14781         MonoGHashTable, since it contains pointers to objects which the GC 
14782         needs to track.
14783
14784         * assembly.c (search_loaded): remove unused variable.
14785         
14786 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
14787
14788         * object.c: fixed issue exposed by gcc-generated IL programs
14789         that use RVA data for pointers.
14790
14791 2003-01-25  Martin Baulig  <martin@ximian.com>
14792
14793         * threads.c (start_wrapper): Moved the initialization of
14794         `start_func' above the mono_new_thread_init() call to which we
14795         pass it as argument.
14796
14797 2003-01-24  Martin Baulig  <martin@ximian.com>
14798
14799         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
14800         the MonoThread pointer.
14801
14802 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
14803
14804         * icall.c: Rename `PowImpl' to Pow.
14805
14806 2003-01-23  Dick Porter  <dick@ximian.com>
14807
14808         * threads.c (start_wrapper): Create a Thread object if needed, so
14809         the Main() thread can do the class initialisation in a subthread
14810         that has been set up to allow managed code execution.
14811
14812         Pass the thread ID instead of the MonoThread pointer to the thread
14813         start and attach callbacks.  This change is required, because the
14814         jit thread start callback must be called _before_ the Thread
14815         object can be created.
14816         
14817         (mono_thread_init): Removed much object creation code that is no
14818         longer needed.  No managed code is called from here now.
14819
14820         * object.c (mono_runtime_exec_managed_code): Create a subthread
14821         for Main, and call back to the runtime to use it.
14822         Set the exit code when Main exits.
14823
14824         * gc.c: Make sure domain finalisation happens in a subthread.
14825         Re-enable threaded GC, fixing bug 31333 (again).
14826
14827         * environment.c: System.Environment internall calls (so far just
14828         ExitCode is here, the others are still in icall.c)
14829
14830         * appdomain.c (mono_runtime_cleanup): All threads running managed
14831         code should have finished before mono_runtime_cleanup() is
14832         reached, so no need to clean up threads.
14833
14834 2003-01-22  Martin Baulig  <martin@ximian.com>
14835
14836         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
14837         `gpointer func' arguments.      
14838         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
14839         but added `MonoThread *thread' argument.
14840         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
14841
14842         * threads.c (mono_new_thread_init): Added `gpointer func' argument
14843         and pass it to the mono_thread_start_cb callback.
14844         (mono_install_thread_callbacks): New public function to install a
14845         set of callbacks which are set by the debugger.
14846         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
14847
14848 2003-01-22  Martin Baulig  <martin@ximian.com>
14849
14850         * Makefile.am: Install debug-mono-symfile.h.
14851
14852 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
14853
14854         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
14855
14856 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
14857
14858         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
14859         * class.c (mono_ptr_class_get): correctly set access levels of pointers
14860         (mono_array_class_get): correctly set access levels of arrays
14861
14862 2003-01-20      Patrik Torstensson
14863         * image.h (MonoAssemblyName): changed major, minor, build, revision
14864         from signed to unsigned.
14865
14866 2003-01-20  sean kasun <skasun@azstarnet.com>
14867
14868         * reflection.c (load_cattr_value): Now this handles
14869         MONO_TYPE_SZARRAY.  Fixes bug #35629
14870
14871 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
14872
14873         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
14874         integer value
14875
14876 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14877
14878         * decimal.c: fixed bug #26056.
14879
14880 2003-01-17  Martin Baulig  <martin@ximian.com>
14881
14882         * gc.c: Raise an ExecutionEngineException instead of using g_error().
14883
14884 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14885
14886         * exception.[ch]:
14887         (mono_get_exception_type_initialization): new function.
14888
14889         * object.c: throw a TypeInitializationException when an exception is
14890         thrown invoking the class constructor.
14891
14892 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14893
14894         * reflection.c: fixed attribute reading.
14895
14896 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14897
14898         * icall.c:
14899         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
14900         provided, look for the type in the calling assembly and then in
14901         mscorlib; if the assembly name is provided, only try that one.
14902
14903 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
14904
14905         * object.c: register the vtable before there is a chance it's
14906         queried again recursively.
14907
14908 2003-01-13  Duncan Mak  <duncan@ximian.com>
14909
14910         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
14911         gc-internal.h. 
14912         
14913 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
14914
14915         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
14916
14917 2003-01-11  Martin Baulig  <martin@ximian.com>
14918
14919         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
14920         this to 20 for the release.
14921
14922 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
14923
14924         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
14925
14926         * loader.c (mono_method_get_marshal_info): bug fix
14927
14928         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
14929         structures with explicit layout
14930
14931 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
14932
14933         * profiler.c: made the output more readable (and sorted). 
14934         Added caller information for the allocation profiler.
14935
14936 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
14937
14938         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
14939
14940 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14941
14942         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
14943         to get value types.
14944         
14945 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
14946
14947         * object.c, profiler.h, profiler.c, profiler-private.h:
14948         Added object allocation profiler.
14949
14950 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
14951
14952         * reflection.h, reflection.c: handle global methods.
14953         Compress blob entries.
14954
14955 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
14956
14957         * marshal.c: fix compilation.
14958
14959 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
14960
14961         * loader.c (mono_method_get_marshal_info): impl.
14962
14963         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
14964
14965 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14966
14967         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
14968         for reference types.
14969
14970 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
14971
14972         * loader.c: fixed off by one error in loaded parameter names.
14973
14974 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
14975
14976         * marshal.c (mono_marshal_get_icall_wrapper): like
14977         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
14978         instead of a MonoMethod.
14979
14980 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14981
14982         * decimal.c: fixed bug #36537.
14983
14984 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
14985
14986         * marshal.c: throw a missing method exception if a
14987         P/Invoke method is not found.
14988
14989 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
14990
14991         * icall.c: allow a null this for constructors.
14992
14993 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
14994
14995         * icall.c: raise the proper exceptions if the arguments to the
14996         internal Invoke are incorrect.
14997
14998 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
14999
15000         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
15001
15002 2003-01-03  Martin Baulig  <martin@ximian.com>
15003
15004         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15005
15006 2002-12-31  Martin Baulig  <martin@ximian.com>
15007
15008         * debug-mono-symfile.c: Completely rewrote the type section.
15009         Instead of using individual malloc()ed fields, we use one big
15010         continuous memory area and offsets into this area.
15011         See the comments in the source code for details.
15012
15013 2002-12-30  Martin Baulig  <martin@ximian.com>
15014
15015         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
15016
15017 2002-12-30  Martin Baulig  <martin@ximian.com>
15018
15019         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
15020         line number table in this data blob instead of using an external
15021         pointer.
15022
15023 2002-12-28  Martin Baulig  <martin@ximian.com>
15024
15025         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15026
15027 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
15028
15029         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
15030         as a boxed return type.
15031
15032 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
15033
15034         * appdomain.c
15035         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
15036         g_build_filename to properly get separators on the filename created.
15037
15038         * object.h: Small change, introduce MonoMarshalByRefObject to
15039         track the layout of that structure in the C# universe as we make
15040         changes there.
15041
15042 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
15043
15044         * object.c: removed assert to allow static fields on interfaces.
15045         * loader.c: a TypeSpec may be used for any type, not just arrays.
15046
15047 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15048
15049         * class.c, class.h: added mono_class_array_element_size ().
15050         Ignore static methods in interfaces.
15051
15052 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15053
15054         * threads.c: fixed the build under cygwin.
15055
15056 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15057
15058         * reflection.c: handle nullref constants. Allocate keys for
15059         reflection handles with the GC.
15060
15061 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15062
15063         * threads.c, threads.h: added mono_thread_get_abort_signal()
15064         to get a suitable signal for thread abort.
15065
15066 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15067
15068         * metadata.c: fix handling of ExportedType table.
15069
15070 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15071
15072         * icall.c: added WriteWindowsDebugString internal call.
15073
15074 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15075
15076         * reflection.h: added fields to match C# implementation.
15077
15078 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15079
15080         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
15081
15082 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
15083
15084         * gc.h, gc-internal.h: Rename header for GC internal calls to
15085         gc-internal.h from gc.h as to not clash with Boehm GC having its
15086         header installed as <gc.h> in outside include paths.
15087         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
15088         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
15089
15090 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15091
15092         * icall.c: assign minor, build and revision in FillName.
15093
15094 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
15095
15096         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
15097         Added support for running code generated by Reflection.Emit.
15098
15099 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15100
15101         * appdomain.c: check for NULL argument in LoadFrom.
15102
15103 2002-12-10  Dick Porter  <dick@ximian.com>
15104
15105         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
15106
15107 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15108
15109         * appdomain.c: fix buglet when building exe file name.  Handle full
15110         assembly name (needed after latest changes to AssemblyName).
15111         * image.c:
15112         (mono_image_close): free some hashtables.
15113
15114 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
15115
15116         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
15117         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
15118         on some systems (redhat 7.3) 
15119
15120 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
15121
15122         * threads.c: delete the critical section of a sync block,
15123         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
15124
15125 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
15126
15127         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
15128
15129 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15130
15131         * appdomain.[ch]: handle the assembly preload event to try loading the
15132         assemblies using the paths we have in the current domain.
15133
15134         * assembly.[ch]: created an assembly preload hook that is called to try
15135         loading the assembly by other means that the ones provided here.
15136
15137         * domain.c: initialize the domain search path.
15138
15139         From now on, assemblies (TODO: except corlib and System) are loaded
15140         according to these rules when using mono_assembly_load ():
15141
15142                 1. It tries to load the assembly from the ApplicationBase
15143                 of the current domain appending .dll and .exe (TODO: have to
15144                 try loading from name/name.dll and name/name.exe).
15145
15146                 2. It tries the search path specified in PrivateBinPath for the
15147                 current domain (if any).
15148
15149                 3. Previous behavior.
15150
15151 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
15152
15153         * icall.c: implemented GetInterfaceMap() related icall.
15154         * domain.c, loader.h: load MethodInfo in mono_defaults.
15155
15156 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15157
15158         * gc.c: disable the finalizer thread for now, untill all the issues
15159         with it are resolved.
15160
15161 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15162
15163         * string-icalls.c: handle embedded nulls in string ctor when the
15164         length is specified.
15165
15166 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15167
15168         * class.c: look for explicit interface implementation in parent
15169         classes, too.
15170
15171 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
15172
15173         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
15174
15175 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15176
15177         * gc.c: protect handles with a critical section.
15178
15179 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15180
15181         * icall.c:
15182         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
15183         parameters. If no assembly specified, try getting the type from all
15184         the assemblies in the current domain, else, load the assembly and get
15185         the type from it.
15186
15187 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15188
15189         * marshal.c: applied patch from Aleksey Demakov that fixes
15190         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
15191
15192 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15193
15194         * icall.c: fixed get_location.
15195
15196 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
15197
15198         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
15199         declarations to make it work with older gcc. 
15200
15201         * loader.c (mono_get_method): set signature->pinvoke for native calls
15202
15203 2002-11-20  Dick Porter  <dick@ximian.com>
15204
15205         * threads.c (mono_thread_init): Set the main thread's handle
15206
15207 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15208
15209         * gc.c: allow compilation without GC support. Changed to match the
15210         mono coding style.
15211
15212 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15213
15214         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
15215
15216 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
15217
15218         * reflection.c: set a public key token on the core assemblies.
15219
15220 2002-11-18  Dick Porter  <dick@ximian.com>
15221
15222         * threads.c: Split out some thread initialisation so that other
15223         files can set the start callback function.
15224
15225         * gc.c: Run finalisers in a separate thread, to avoid stack
15226         overflow.  Fixes bug 31333.
15227
15228         * appdomain.c: Set up GC finalisation thread.
15229
15230         * reflection.c: 
15231         * object.c: 
15232         * domain.c: Use gc.h macros for GC_malloc
15233         
15234 2002-11-15  Dick Porter  <dick@ximian.com>
15235
15236         * threadpool.c: 
15237         * threads.c:
15238         * appdomain.c: Removed mono_runtime_init_with_attach(),
15239         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
15240         merging the extra parameter with the existing function.  Removed
15241         unneeded code in mono_thread_attach().
15242
15243 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
15244
15245         * image.c (mono_image_loaded_by_guid): a method to get loaded
15246         images by guid. 
15247         (load_metadata_ptrs): we store the guid as string.
15248
15249 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
15250
15251         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
15252
15253         * metadata.c (mono_guid_to_string): imported method form Zoltan
15254         Varga (slightly modified)
15255
15256         * assembly.c (mono_assembly_open): load precompiled code
15257
15258         * loader.h (MonoMethod): we store the method token for use in the
15259         aot compiler. 
15260
15261 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15262
15263         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
15264         the hook function called when an assembly is loaded.
15265         
15266         * domain.c: Modified file.
15267         (mono_domain_assembly_load): removed hash table insertion of assemblies.
15268
15269         Fixes bug #33196.
15270
15271 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
15272
15273         * reflection.c: Map PEFileKind to the value expected by the WinNT
15274         image loader. 
15275
15276 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15277
15278         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
15279         Read until the buffer is filled completely.
15280
15281 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15282
15283         * icall.c: implemented MonoType.InternalGetEvent ().
15284
15285 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15286
15287         * appdomain.c: implemented InitAppDomainSetup. Delayed
15288         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
15289         the entry_assembly.
15290
15291         * assembly.c: base_dir is now an absolute path ending with
15292         G_DIR_SEPARATOR.
15293
15294         * icall.c: modified get_location according to the above changes.
15295
15296         * object.c: init AppDomain.SetupInformation for the default domain after
15297         we have the entry assembly.
15298
15299         * domain.c: when unloading a domain, setup = NULL.
15300
15301 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
15302
15303         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
15304
15305 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
15306
15307         * object.h, object.c: introduced mono_object_get_virtual_method ()
15308         to lookup the method invoked on an object when a callvirt is done on
15309         a method.
15310         * icall.c: make MethodInfo::Invoke() always do a virtual call.
15311
15312 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15313
15314         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15315         current domain when loaded an assembly and failed to load it.
15316
15317         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15318
15319 2002-10-31  Dick Porter  <dick@ximian.com>
15320
15321         * icall.c: 
15322         * file-io.h: 
15323         * file-io.c: Return the error status in a parameter, as the
15324         GetLastError() value has long since been blown away if we try and
15325         look it up in a subsequent internal call invocation.  Delete the
15326         GetLastError() internal call, because it's useless.
15327
15328 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15329
15330         * class.[ch]: added cast_class to fix bug 29517
15331
15332 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15333
15334         * marshal.c: create valid IL code in the filter clause:
15335         the new JIT is less forgiving:-)
15336
15337 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15338
15339         * icall.c: removed get_property internal call.
15340
15341 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15342
15343         * appdomain.h domain.c: Added an ID to appdomains.
15344         
15345         * threads.c threads.h icall.c: Implement icall
15346         Thread:GetDomainID(), and remove unused icall 
15347         CurrentThreadDomain_internal.
15348
15349 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15350
15351         * icall.c: Don't recurse through the base types in GetConstructor.
15352         Fixes bug #32063. 
15353
15354 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15355
15356         * mempool.h, mempool.c: added mono_mempool_empty() and
15357         mono_mempool_stats().
15358
15359 2002-10-23  Dick Porter  <dick@ximian.com>
15360
15361         * file-io.c: 
15362         * file-io.h: 
15363         * icall.c: Added MonoIO.GetFileType internal call
15364
15365 2002-10-17  Dick Porter  <dick@ximian.com>
15366
15367         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15368         delegate semaphore before waiting for all threads to finish,
15369         because new threads can also call async delegates.  Fixes bug
15370         32004.
15371
15372         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15373         of 3 seconds, in case another async job is queued.  (This part is
15374         needed because the bug fix reintroduced the 3s exit lag.)  This
15375         makes the mono_runtime_shutdown flag superfluous.
15376
15377 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15378
15379         * reflection.c: include ehader size in method section headers.
15380         Really check for suplicated modules entries.
15381
15382 2002-10-17  Martin Baulig  <martin@gnome.org>
15383
15384         * debug-mono-symfile.c: Added back support for locals.
15385
15386 2002-10-14  Martin Baulig  <martin@gnome.org>
15387
15388         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15389         MONO_TYPE_VOID.
15390
15391 2002-10-14  Martin Baulig  <martin@gnome.org>
15392
15393         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15394         mono_class_get() instead of looking in the class cache. 
15395
15396 2002-10-13  Martin Baulig  <martin@gnome.org>
15397
15398         * debug-mono-symfile.c: Set version number to 28, include the
15399         signature in method names.
15400
15401 2002-10-13  Martin Baulig  <martin@gnome.org>
15402
15403         * debug-mono-symfile.h: Set version number to 27.
15404
15405 2002-10-11  Martin Baulig  <martin@gnome.org>
15406
15407         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15408
15409 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15410
15411         * metadata.c, metadata.h: added helper function to allocate signatures.
15412
15413 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15414
15415         * icall.c: added internal call to get the location of machine.config.
15416
15417 2002-10-08  Martin Baulig  <martin@gnome.org>
15418
15419         * debug-mono-symfile.c: Ignore classes with a pending init for the
15420         moment.
15421
15422 2002-10-03  Dick Porter  <dick@ximian.com>
15423
15424         * threads.c: Freebsd pthread_t is a pointer
15425
15426 2002-10-03  Dick Porter  <dick@ximian.com>
15427
15428         * socket-io.c: Implemented GetHostName_internal
15429
15430 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15431
15432         * mono-config.c:
15433         (mono_config_parse_file): don't leak the text.
15434
15435 2002-10-02  Martin Baulig  <martin@gnome.org>
15436
15437         * debug-mono-symfile.c: Added support for methods.
15438
15439 2002-10-01  Martin Baulig  <martin@gnome.org>
15440
15441         * debug-mono-symfile.c: Don't emit methods and line numbers for
15442         the dynamic symbol file, just write the type table.  We can easily
15443         have an external helper program which creates a symbol file for an
15444         IL file.        
15445
15446 2002-10-01  Dick Porter  <dick@ximian.com>
15447
15448         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15449         Only add the handle to the cleanup array when we're about to
15450         launch the thread.  Bug 31425 deadlocked when the test was run on
15451         mono under w32.
15452
15453 2002-10-01  Martin Baulig  <martin@gnome.org>
15454
15455         * debug-mono-symfile.c: Added support for properties.
15456
15457 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15458
15459         * reflection.c: unaligned store fix from Mark Crichton
15460         <crichton@gimp.org>.
15461
15462 2002-09-27  Martin Baulig  <martin@gnome.org>
15463
15464         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15465         New interncall.
15466
15467 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15468
15469         * assembly.h, assembly.c: use a sane API to hook into the assembly
15470         loading process instead of a useless special-purpouse hack
15471         (ngen needs a hook, too, for example).
15472
15473 2002-09-27  Dick Porter  <dick@ximian.com>
15474
15475         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15476         io-layer can set up some process handle info.  Not needed on w32,
15477         but doesn't hurt either.
15478
15479         * process.c: Pass the program name in the second parameter to
15480         CreateProcess, so the path is searched.  Include the working
15481         directory. Implemented process name, process enumeration, and some
15482         process detail internal calls.
15483         
15484         * icall.c: Added internal calls for process lookup, and some
15485         process details
15486
15487 2002-09-26  Martin Baulig  <martin@gnome.org>
15488
15489         * assembly.c (mono_install_open_assembly_hook): New global
15490         function to install a function to be invoked each time a new
15491         assembly is loaded.
15492         (mono_assembly_open): Run this callback function if set.
15493
15494         * debug-mono-symfile.c: Put back line numbers for the dynamic
15495         symbol file and also record the .il file as source file.  This
15496         allows us to install the temporary symbol file as `file.dbg' just
15497         like a compiler-generated one.
15498
15499 2002-09-26  Nick Zigarovich <nick@chemlab.org>
15500
15501         * Corrected typo in gc.c (BOHEM vs BOEHM).
15502
15503 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15504
15505         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
15506         GetProperties. Also avoid calling g_slist_length in GetProperties and
15507         GetMethods.
15508
15509 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15510
15511         * reflection.c: avoid unaligned stores (bug spotted by
15512         Mark Crichton  <crichton@gimp.org>).
15513
15514 2002-09-25  Martin Baulig  <martin@gnome.org>
15515
15516         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
15517         instead of guint64 for addresses and added prologue/epilogue info.
15518
15519 2002-09-25  Martin Baulig  <martin@gnome.org>
15520
15521         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
15522         store line number info.  For the dynamic symbol file, we only need
15523         to provide the JIT generated dynamic line number info for the dynamic
15524         symbol file.
15525
15526 2002-09-25  Martin Baulig  <martin@gnome.org>
15527
15528         * debug-mono-symfile.h: Incremented version number.
15529
15530 2002-09-24  Martin Baulig  <martin@gnome.org>
15531
15532         * class.c (mono_debugger_class_init_func): New global function
15533         pointer variable.
15534         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
15535         call it.
15536
15537         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
15538         function.  This is called via the mono_debugger_class_init_func
15539         hook to add all types to the dynamic type table.
15540         (ves_icall_MonoDebugger_GetType): New interncall to get a class
15541         from its metadata token.
15542
15543         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
15544         New interncall for the debugger.
15545
15546 2002-09-24  Nick Drochak <ndrochak@gol.com>
15547
15548         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
15549         before using it in case it is null.
15550         
15551 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
15552
15553         * metadata.c: allow custom modifiers in local var signatures
15554         (bug spotted by Zoltan Varga).
15555
15556 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
15557
15558         * class.c: deal with the <Module> class that may have a NULL vtable.
15559         Eliminate warnings.
15560
15561 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15562
15563         * image.c, image.h: more strong name helpers.
15564         * monosn.c: more work: convert pem keys to cryptoapi format.
15565
15566 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
15567
15568         * string-icalls.c: speedup IndexOf.
15569
15570 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15571
15572         * icall.c: updates from Zoltan.2.Varga@nokia.com.
15573
15574 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15575
15576         * icall.c: cleanup: use mono_object_domain ().
15577
15578 2002-09-23  Martin Baulig  <martin@gnome.org>
15579
15580         * debug-mono-symfile.c: Improved type support.
15581
15582 2002-09-22  Martin Baulig  <martin@gnome.org>
15583
15584         * debug-mono-symfile.c: Added support for reference types and strings.
15585
15586 2002-09-22  Martin Baulig  <martin@gnome.org>
15587
15588         * debug-mono-symfile.c: Started to work on the type table.
15589
15590 2002-09-21  Martin Baulig  <martin@gnome.org>
15591
15592         * debug-mono-symfile.c: Largely reworked the symbol table format.
15593         The symbol table is now incrementally updated each time a new
15594         method is added.  We're now also using our own magic and version
15595         so that you don't need to recompile all your classes if the
15596         dynamic table changes.
15597         (mono_debug_update_mono_symbol_file): Removed.
15598         (mono_debug_symfile_add_method): New function to add a method.
15599
15600 2002-09-21  Martin Baulig  <martin@gnome.org>
15601
15602         * icall.c
15603         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
15604         New interncall.
15605
15606         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
15607         New interncall to get a method from its metadata token.
15608
15609 2002-09-21  Martin Baulig  <martin@gnome.org>
15610
15611         * debug-mono-symfile.c: Create type table.
15612
15613 2002-09-20  Martin Baulig  <martin@gnome.org>
15614
15615         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
15616
15617 2002-09-20  Martin Baulig  <martin@gnome.org>
15618
15619         * debug-mono-symfile.c: Provide information about params and locals.
15620
15621 2002-09-20  Martin Baulig  <martin@gnome.org>
15622
15623         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
15624         New interncall.
15625
15626         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
15627         interncall to get a method from its metadata token.
15628
15629 2002-09-20  Martin Baulig  <martin@gnome.org>
15630
15631         * debug-mono-symfile.c: Added a few checks for method->header
15632         being non-NULL.  This should never happen, but for the moment
15633         let's use a g_warning() rather than a g_assert().
15634
15635 2002-09-19  Mark Crichton  <crichton@gimp.org>
15636
15637         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
15638         even if support for it isn't present.  Added an #ifdef to fix this.
15639
15640         * socket-io.c: Added checks back for Solaris support.
15641
15642 2002-09-19  Martin Baulig  <martin@gnome.org>
15643
15644         * debug-mono-symfile.c (read_string, write_string): Reflect latest
15645         changes in the symbol file format.
15646
15647 2002-09-18  Martin Baulig  <martin@gnome.org>
15648
15649         * debug-mono-symfile.c: Set version number to 21.
15650
15651 2002-09-18  Dick Porter  <dick@ximian.com>
15652
15653         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
15654         on netbsd.  Fixes bug 30051.
15655
15656 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15657
15658         * reflection.c:
15659         (set_version_from_string): little fix.
15660
15661 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15662
15663         * monosn.c, Makefile.am: added strong name utility.
15664         * reflection.h, reflection.c: implemented delayed signing,
15665         locale, version and hash id assembly attributes.
15666
15667 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
15668
15669         * loader.c, metadata.c: load param attributes in signatures.
15670
15671 2002-09-16  Martin Baulig  <martin@gnome.org>
15672
15673         * debug-mono-symfile.c: Added string table with all method names.
15674
15675 2002-09-14  Martin Baulig  <martin@gnome.org>
15676
15677         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
15678         fast method lookup.
15679
15680 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15681
15682         * reflection.c: record the public key token of referenced assemblies.
15683
15684 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
15685
15686         * image.c, image.h: added functions to get the strong name and the
15687         public key of an assembly.
15688         * pedump.c: use them.
15689
15690 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
15691
15692         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
15693
15694 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
15695
15696         * marshal.c (mono_marshal_get_managed_wrapper): Added
15697         MONO_TYPE_BOOLEAN 
15698
15699 2002-09-11  Martin Baulig  <martin@gnome.org>
15700
15701         * gc.c: Call GC_unregister_disappearing_link() on all links when
15702         finalizing them, this is necessary to aviod a crash in boehm's
15703         finalize handler.
15704
15705 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15706
15707         * gc.c: handle GetTarget for finalized objects spotted and fixed by
15708         nick@chemlab.org.
15709
15710 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
15711
15712         * icall.c: implemented MonoType::Module.
15713         * reflection.c, reflection.h: mono_module_get_object () from
15714         Tomi Pakarinen <tomi.pakarinen@welho.com>.
15715
15716 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
15717
15718         * icall.c: ignore overridden methods in GetMethods ().
15719         Fix for FieldInfo::SetValue().
15720         * object.c: handle float/double in runtime invoke.
15721
15722 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
15723
15724         * object.c: allow a constructor to be called again on an object.
15725
15726 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15727
15728         * class.h, class.c: move field layout code to it's own function and
15729         export it. Get an interface id earlier. Move fields in MonoClass
15730         so they are more cache friendly and align the bitfields.
15731         * loader.c: temporary handle get_param_names() for a runtime method.
15732         * reflection.c, reflection.h: more code to handle runtime creation of
15733         types.
15734
15735 2002-09-09  Martin Baulig  <martin@gnome.org>
15736
15737         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
15738         signature with the pinvoke field being set for the actual call.
15739
15740 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
15741
15742         * icall.c: removed some unused icalls. Start of map of glib charsets
15743         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
15744
15745 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
15746
15747         * debug-helpers.c: break infinite loop (found and fixed by
15748         Holger Arnold <harnold@gmx.de>).
15749
15750 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15751
15752         * icall.c: target may be null in create_delegate.
15753
15754 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15755
15756         * marshal.c: handle a boolean return type.
15757
15758 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15759
15760         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
15761
15762 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15763
15764         * gc.c: fix weakreferences.
15765
15766 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
15767
15768         * icall.c: added icall to get default codepage.
15769
15770 2002-09-03  Dick Porter  <dick@ximian.com>
15771
15772         * threads.h: 
15773         * threads.c: Use MonoThread instead of MonoObject where
15774         apropriate.
15775
15776         Store running thread objects in a hash table, so that we have all
15777         the info to hand when waiting for them to finish
15778         (means we don't need OpenThread() any more, so mingw builds should
15779         be fully functional again.)
15780
15781         * verify.c:
15782         * object.h: Added thread ID to MonoThread
15783
15784 2002-09-03  Martin Baulig  <martin@gnome.org>
15785
15786         * icall.c (System.Reflection.Assembly::get_location): New interncall.
15787
15788 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15789
15790         * icall.c: fixed leak in get_temp_path. Thanks lupus.
15791
15792 2002-09-03  Martin Baulig  <martin@gnome.org>
15793
15794         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
15795         argument to store the end address of the disassembled instruction.
15796
15797         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
15798         here from debug-symfile.h.
15799         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
15800         JIT into this struct.
15801         (MonoSymbolFile): Added `char *image_file' field.
15802         (MonoDebugGetMethodFunc): Removed.
15803         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
15804         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
15805         (mono_debug_find_method): New method.
15806
15807         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
15808         create a full symbol file.
15809         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
15810         and static symbol files.
15811         (mono_debug_find_method): The symbol file keeps an internal method hash,
15812         call this to get a MonoDebugMethodInfo from a MonoMethod.
15813
15814         * debug-symfile.[ch]: Removed.
15815
15816 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
15817
15818         * image.c (do_mono_image_open): Remove linker version check.
15819
15820 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
15821
15822         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
15823         wrappers for instance methods.
15824         
15825 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15826
15827         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
15828
15829 2002-08-28  Dick Porter  <dick@ximian.com>
15830
15831         * Makefile.am: Export HOST_CC for w32 builds
15832
15833 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15834
15835         * file-io.c process.c: MonoString are null terminated, no
15836         need for mono_string_to_utf16() anymore.
15837
15838 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
15839
15840         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
15841
15842 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
15843
15844         * icall.c, reflection.h: speedup System.MonoType.
15845
15846 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15847
15848         * reflection.c: allow null as the value of a string argument in
15849         custom attributes constructors.
15850
15851 2002-08-27  Martin Baulig  <martin@gnome.org>
15852
15853         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
15854         `trampoline_address' field.
15855
15856 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
15857
15858         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
15859         check (fixes bug #29486) 
15860
15861 2002-08-27  Martin Baulig  <martin@gnome.org>
15862
15863         * debug-mono-symfile.c: Changed the file format in a way that allows us
15864         open it read-only and to use a specially malloced area for all the
15865         dynamic data.  We can now also generate a symbol file on-the-fly if we're
15866         debugging IL code and there is no MCS generated symbol file for it.
15867
15868 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
15869
15870         * object.c: added a define for a good string and array
15871         creation speedup (not enabled by default because we need to deal with
15872         the synch stuff).
15873
15874 2002-08-26  Martin Baulig  <martin@gnome.org>
15875
15876         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
15877         function to create a dynamic symbol file.  This is used by the
15878         debugger to create a symbol file for IL code on-the-fly.
15879
15880 2002-08-26  Martin Baulig  <martin@gnome.org>
15881
15882         * loader.c (mono_lookup_pinvoke_call): Include the error message
15883         from g_module_error() in the error message.
15884
15885 2002-08-24  Martin Baulig  <martin@gnome.org>
15886
15887         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
15888         function to update the symbol file.  The symbol file is mmap()ed
15889         writable, but private.  This allows us to install the symbol file
15890         together with the assembly.
15891
15892 2002-08-24  Martin Baulig  <martin@gnome.org>
15893
15894         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
15895         but they can read the new symbol file format which mcs is now creating.
15896
15897         * debug-symfile.c (mono_debug_find_source_location): Moved to
15898         debug-mono-symfile.c; this is now operating on the new symbol file.
15899
15900 2002-08-23  Martin Baulig  <martin@gnome.org>
15901
15902         * debug-helpers.c (mono_method_desc_from_method): New function to get
15903         a MonoMethodDesc from a MonoMethod.
15904
15905 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15906
15907         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
15908         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
15909
15910 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
15911
15912         * string-icalls.[ch]: make helper methods static.
15913
15914 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15915
15916         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
15917         types to it and to SetValueInternal.
15918
15919         * object.c: Moved handle_enum label to its proper place. This was the
15920         f... bug! ;-)
15921
15922         This time i compiled mcs and gtk-sharp and they both work.
15923
15924 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15925
15926         * icall.c: reverted partially my previous patch until 
15927         object.c:set_value handles enums correcly.
15928
15929 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15930
15931         * icall.c:
15932         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
15933         (ves_icall_System_Environment_get_MachineName): removed warning when
15934         compiling under cygwin.
15935
15936 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
15937
15938         * object.c: fixed field_get_value() for reference types.
15939
15940 2002-08-22  Dick Porter  <dick@ximian.com>
15941
15942         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
15943         Don't free a buffer while it's still needed.  Patch from Jonathan
15944         Liger <Jonathan.liger@wanadoo.fr>
15945
15946 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
15947
15948         * icall.c (ves_icall_System_Environment_get_Platform): Add new
15949         internal call.
15950
15951 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
15952
15953         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
15954         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
15955
15956         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
15957         we call unmanaged code which throws exceptions.
15958
15959 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15960
15961         * appdomain.h: added per-domain entry_assembly.
15962         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
15963         arguments.
15964         * icall.c: Assembly::GetEntryAssembly icall.
15965         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
15966         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
15967
15968 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
15969
15970         * appdomain.h, gc.c: added mono_domain_finalize ().
15971
15972 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15973
15974         * object.c:
15975         (mono_print_unhandled_exception): changed g_warning by g_printerr
15976         because g_log has a 1024 characters limit (yeah, i got a big stack
15977         trace). Don't print exception name, that should be in ToString 
15978         returned string.
15979
15980 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15981
15982         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
15983         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
15984
15985 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15986
15987         * object.c:
15988         (mono_print_unhandled_exception): after previous commit, i realized
15989         that MS calls ToString on the exception. I changed this function to
15990         do that. This way we get stack_trace for free.
15991
15992 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15993
15994         * object.c:
15995         (mono_print_unhandled_exception): invoke Message property instead of
15996         getting 'message' field from Exception. Don't allocate memory for
15997         'trace' and 'message' if not needed.
15998
15999 2002-08-18  Dick Porter  <dick@ximian.com>
16000
16001         * unicode.c: Fix asserts to match Encoder.cs checks
16002
16003 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16004
16005         * marshal.c: fix unaligned store issue and a few wrong
16006         opcode argument types.
16007
16008 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16009
16010         * icall.c: added GetUninitializedObjectInternal internal call.
16011
16012 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
16013
16014         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
16015         to the right domain.
16016
16017 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
16018
16019         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
16020
16021         * class.c (class_compute_field_layout): set blittable to false for Strings
16022
16023         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
16024
16025 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16026
16027         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
16028         first chunk of code to create types at runtime. Code to
16029         handle ReflectedType/DeclaringType. Make reflection handles
16030         domain specific.
16031
16032 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16033
16034         * class.c: set correct name in arrays.
16035
16036 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
16037
16038         * appdomain.c (mono_domain_transfer_object): make it work with
16039         valuetypes. bug fixes.
16040
16041 2002-08-12  Dick Porter  <dick@ximian.com>
16042
16043         * object.h: Rename some parameters to avoid c++ keywords (Patch
16044         from Joseph Wenninger <kde@jowenn.at>)
16045
16046 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
16047
16048         * icall.c: added icall to implement Assembly.GetFile*.
16049
16050 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16051
16052         * reflection.h, reflection.c: code to embed managed resources.
16053
16054 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16055
16056         * class.c: move all the type size stuff into
16057         class_compute_field_layout().
16058
16059 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16060
16061         * class.c: ensure enums have always the correct instance size.
16062         * unicode.c: remove wrong assert.
16063
16064 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16065
16066         * assembly.c: fix mem corruption issue.
16067         * image.h, image.c: added mono_image_get_resource () to access
16068         managed resources.
16069         * icall.c: implemented Assembly.EntryPoint property and some
16070         Managed Resources related internalcalls.
16071
16072
16073 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16074
16075         * image.c, image.h: impemented mono_image_get_entry_point ().
16076         * appdomain.c: use mono_image_get_entry_point.
16077
16078 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16079
16080         * reflection.c: support the object type argument when loading
16081         custom attributes.
16082
16083 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
16084
16085         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
16086         String as return type.
16087
16088 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
16089
16090         * reflection.c: fix encoding of named args for custom attrs to match
16091         the ms implementation. Read them back when instantiating custom
16092         attributes.
16093
16094 2002-08-02  Radek Doulik  <rodo@ximian.com>
16095
16096         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
16097         by Dietmar as quick fix
16098         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
16099         16 as stack size, used on more places as quick fix before Dietmar
16100         will fix it properly
16101
16102 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16103
16104         * object.h, object.c: added accessors for fields and properties.
16105
16106 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16107
16108         * class.c, class.h: made mono_class_get_field_from_name ()
16109         loop on parent types.
16110         Added mono_class_get_property_from_name ().
16111
16112 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16113
16114         * class.c, class.h: move the code to setup the type vtable in its own
16115         function so that it can be reused also for types created at runtime.
16116         Eliminate the "class" identifier from the header file.
16117         * reflection.c: setup the vtable for enums so that we can create
16118         objects for use in SetConstant ().
16119
16120 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
16121
16122         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
16123         instead of the delegate itself as this pointer (bug #28383)
16124
16125 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
16126
16127         * marshal.c (mono_marshal_get_managed_wrapper): added return type
16128         conversions.
16129
16130 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16131
16132         * loader.c: don't set the pinvoke bit on icalls.
16133
16134 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
16135
16136         * debug-helpers.c (mono_method_full_name): only print a number to
16137         indicate wrapper type (so that the output is more readable in traces).
16138
16139 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
16140
16141         * class.c (mono_class_init): include method override patch from Paolo
16142
16143 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
16144
16145         * icall.c: fixed GetTypeCode().
16146
16147 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
16148
16149         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
16150         use real delegate invoke function to make it work with multicast
16151         delegates (fix bug# 28291).
16152
16153 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16154
16155         * object.c: load constant strings.
16156
16157 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16158
16159         * reflection.c: no magic numbers.
16160         * tabledefs.h: security action enum.
16161
16162 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16163
16164         * assembly.c: fix possible memory corruption.
16165
16166 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16167
16168         * reflection.h, reflection.c: added support for linking resources.
16169         * verify.c: check we have an updated corlib.
16170
16171 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
16172
16173         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
16174         string arrays.
16175         (mono_marshal_string_array): null terminate unmanaged string arrays.
16176         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
16177
16178 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16179
16180         * icall.c: Type.GetType () can now return also types from the
16181         calling assembly.
16182
16183 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16184
16185         * loader.h, loader.c: stack walking support.
16186         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
16187         GetCallingAssembly.
16188
16189 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
16190
16191         * marshal.c: added optimisations for blittable types 
16192
16193         * class.c (mono_array_class_get): do not set blittable attribute on arrays
16194         (mono_class_setup_mono_type): set blittable attribute for single
16195         and double.
16196
16197         * marshal.c (mono_string_utf8_to_builder): impl.
16198         (mono_string_builder_to_utf8): impl.
16199         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
16200
16201 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
16202
16203         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
16204         (mono_marshal_get_managed_wrapper): impl. byref types
16205
16206 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16207
16208         * icall.c:
16209         (search_method): don't display debug message. 
16210
16211 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16212
16213         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
16214
16215 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16216
16217         * appdomain.c: set the missing filename when throwing exception.
16218
16219 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16220
16221         * metadata.c (mono_type_size): code cleanup
16222         (mono_type_stack_size): removed some test code
16223
16224 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
16225
16226         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
16227         mono_get_exception_file_not_found now.
16228
16229         * exception.c (mono_exception_from_name_two_strings): New version
16230         that will call a constructor with two string arguments. 
16231         (mono_get_exception_file_not_found): New helper routine, used to
16232         report file-not-found errors.
16233
16234 2002-07-20  Dick Porter  <dick@ximian.com>
16235
16236         * process.h:
16237         * process.c: Pass file handles to CreateProcess
16238         
16239         * icall.c:
16240         * file-io.h:
16241         * file-io.c: Implemented CreatePipe
16242
16243 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16244
16245         * metadata.c (mono_get_param_info): set alignment for value types
16246
16247 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16248
16249         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
16250         Constify mono_domain_assembly_open().
16251         * loader.c: handle null namespace in icalls.
16252
16253 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16254
16255         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
16256         (emit_str_to_ptr_conv): marshal object as structs
16257
16258         * metadata.c (mono_type_to_unmanaged): marshal object as structs
16259
16260         * marshal.c (mono_marshal_get_runtime_invoke): support value types
16261
16262 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
16263
16264         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
16265         (mono_marshal_get_native_wrapper): we an now return value types
16266
16267 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16268
16269         * verify.c: more checks implemented.
16270
16271 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
16272
16273         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
16274         (fix bug #27695)
16275         (mono_marshal_get_native_wrapper): allow byref arguments
16276         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
16277         impl. PtrToStringXXX methods
16278         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
16279         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
16280         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
16281         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
16282         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
16283
16284 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16285
16286         * reflection.c: fix buglet in parsing an assembly name.
16287
16288 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16289
16290         * marshal.c (emit_ptr_to_str_conv): first impl.
16291
16292 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16293
16294         * object.c, class.h: cache the vtable in the class as suggested by
16295         vargaz@freemail.hu (Zoltan Varga).
16296
16297 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16298
16299         * class.h, loader.c: added mono_field_from_token().
16300         * verify.c: first cut of type checking code.
16301
16302 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16303
16304         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
16305
16306 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
16307
16308         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
16309         (fix bug #27782)
16310         (mono_marshal_get_remoting_invoke): impl.
16311         (mono_delegate_begin_invoke): impl.
16312         (mono_mb_emit_save_args): impl.
16313         (mono_delegate_end_invoke): impl.
16314         (mono_marshal_get_delegate_begin_invoke):
16315         (mono_marshal_get_delegate_end_invoke):
16316         (mono_marshal_get_delegate_invoke): generate a special name for
16317         those methods (including the signature) and associate them whith
16318         the delegate class. 
16319
16320 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16321
16322         * reflection.[ch]: 
16323         (mono_reflection_type_from_name): now it has a MonoImage parameter
16324         which is used as the default image to search the type in. If the image
16325         is NULL or getting the type from it fails, it defaults to corlib.
16326
16327         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16328         new parameter.
16329
16330 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16331
16332         * reflection.c: update the parameter table index.
16333
16334 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16335
16336         * domain.c: don't include the mark byte in the string hash.
16337
16338 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16339
16340         * icall.cs: icall for Type.GetTypeCode ().
16341         * verify: a couple of fixes and disabled local initialization checks.
16342
16343 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16344
16345         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16346
16347         * debug-helpers.c (mono_method_full_name): print the type of the
16348         runtime wrapper
16349
16350         * metadata.c (mono_signature_hash): a hash function for signatures
16351         (mono_signature_hash): better hash algorithm
16352
16353         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16354
16355         * debug-helpers.c (mono_method_full_name): this can now generate
16356         method names with signatures
16357
16358         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16359         method dont have this pointers.
16360
16361 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16362
16363         * reflection.c: fixup typebuilder tokens.
16364         * image.c: fix buglet.
16365         * marshal.h: remove whitespace.
16366         * metadata.h, metadata.c: reinstate code that was removed.
16367         * verify.c: handle catch directives and fix another couple of bugs.
16368
16369 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16370
16371         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16372         (mono_marshal_get_native_wrapper): make it comp. with the old code
16373         (mono_marshal_get_native_wrapper): support boolean
16374         (mono_marshal_get_managed_wrapper): support more types
16375
16376 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16377
16378         * class.c (class_compute_field_layout): compute class->blittable attribute.
16379
16380 2002-07-09  Dick Porter  <dick@ximian.com>
16381
16382         * threads.c: Make the thread cleaning up cope with threads that
16383         call ExitThread()
16384
16385 2002-07-08  Radek Doulik  <rodo@ximian.com>
16386
16387         * reflection.c (method_encode_code): use non-translated values to
16388         compute finally_start, this fixes exception handling on ppc, yay!
16389
16390         * decimal.h (struct signscale): fix endianess
16391
16392 2002-07-07  Radek Doulik  <rodo@ximian.com>
16393
16394         * reflection.c: swap box_val and not val
16395
16396 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16397
16398         * reflection.c, reflection.h: handle full assembly info in type name.
16399         Handle Type arguments when loading custom attributes.
16400         * icall.c: updated to use new mono_reflection_type_from_name () method.
16401
16402 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16403
16404         * loader.c:
16405         (method_from_memberref): also print assembly name when method not found.
16406
16407 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16408
16409         * icall.c:
16410         (ves_icall_TypeGetProperties): fixed bug #27473. 
16411
16412 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16413
16414         * reflection.c: display image name and token when cannot find the
16415         .ctor for an attribute.
16416
16417 2002-07-05  Martin Baulig  <martin@gnome.org>
16418
16419         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16420
16421 2002-07-04  Dick Porter  <dick@ximian.com>
16422
16423         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16424         compile on mingw.  This will cause mingw builds to not wait for
16425         subthreads to terminate after the main thread does.  I've lodged a
16426         bug with the mingw developers for them to wrap OpenThread().
16427
16428 2002-07-03  Dick Porter  <dick@ximian.com>
16429
16430         * threads.c: Store thread IDs instead of handles, because
16431         GetCurrentThread() returns a pseudohandle and therefore stores
16432         useless values.  mono_thread_cleanup() continues checking the
16433         array of threads until it is empty, to cope with subthreads
16434         spawning new threads after the main thread has finished.
16435
16436         * profiler.h:
16437         * profiler.c:
16438         * profiler-private.h: Pass the thread ID to thread profiler
16439         functions, instead of a handle
16440
16441 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16442
16443         * verify.c: fixes to make it more usable.
16444         * pedump.c: added --verify code to verify IL code in an assembly.
16445
16446 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16447
16448         * reflection.c: turn errors into warnings to allow compiling corlib.
16449
16450 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16451
16452         * reflection.c: add special cases to compile corlib.
16453
16454 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16455
16456         * reflection.c: handle properties with only a set method.
16457
16458 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16459
16460         * opcodes.h: add enum with opcodes in opval order.
16461
16462 2002-07-01  Dick Porter  <dick@ximian.com>
16463         
16464         * object.h:
16465         * object.c (mono_runtime_run_main): Removed unneeded argument
16466
16467 2002-06-28  Martin Baulig  <martin@gnome.org>
16468
16469         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16470
16471 2002-06-27  Dick Porter  <dick@ximian.com>
16472
16473         * threads.c: Store the handle in both the parent thread and in the
16474         subthread, to minimise the time between starting a new thread and
16475         storing its ID.
16476
16477 2002-06-26  Dick Porter  <dick@ximian.com>
16478
16479         * appdomain.c (mono_runtime_cleanup): Close the socket library
16480         after all the threads have finished, not before
16481
16482 2002-06-26  Martin Baulig  <martin@gnome.org>
16483
16484         * debug-symfile.c (mono_debug_find_source_location): Added
16485         `guint32 *line_number' argument.  If it's not NULL, store the line number
16486         there and return the file name without the line number.
16487
16488 2002-06-25  Dick Porter  <dick@ximian.com>
16489
16490         * icall.c:
16491         * process.h:
16492         * process.c: Process forking and other support functions
16493
16494 2002-06-25  Dick Porter  <dick@ximian.com>
16495
16496         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
16497         things dont happen when the image is closed.
16498         (mono_image_lookup_resource): Walk the resource section looking
16499         for a particular entry
16500
16501         * cil-coff.h: PE resource section decoding
16502
16503 2002-06-25  Dick Porter  <dick@ximian.com>
16504         
16505         * assembly.h:
16506         * assembly.c: 
16507         (mono_assembly_foreach): Accessor functions to walk the list of
16508         loaded assemblies
16509         (mono_assembly_set_main):
16510         (mono_assembly_get_main): Process methods need to know which
16511         assembly is the "main" one
16512
16513         * object.c (mono_runtime_run_main): Record the main assembly
16514
16515         * debug-helpers.c: Fix typo
16516
16517 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
16518
16519         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
16520         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
16521
16522 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16523
16524         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
16525
16526 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
16527
16528         * image.c (do_mono_image_open): Initialize reference count,
16529         otherwise we leak the MonoImage.
16530
16531 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16532
16533         * reflection.c: small tweak to handle self-hosting.
16534
16535 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16536
16537         * reflection.c: fix type name parse code.
16538
16539 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16540
16541         * reflection.c: break out of the loop.
16542         * image.c: special case corlib.
16543
16544 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16545
16546         * reflection.c: add all the custom attrs at the end to ensure the
16547         ctors have been properly initialized when the attributes are defined
16548         in the current assembly.
16549
16550 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16551
16552         * reflection.c: handle correctly multiple-nested types.
16553
16554 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16555
16556         * row-indexes.h: fix typos.
16557         * reflection.c: adjust for typos and fix method_def_or_ref
16558         encoding in MethodImpl table.
16559
16560 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16561
16562         * reflection.c: fix entry point patching (thanks Serge!).
16563
16564 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
16565
16566         * verify.c: add check for System.Exception
16567
16568 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16569
16570         * image.c, class.c: minifix for code just c&p'ed.
16571         * reflection.c: warning fix.
16572         * object.h, loader.h, domain.c: load also StringBuilder.
16573
16574 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16575
16576         * marshal.h, marshal.c: some support code to handle complex marshaling.
16577
16578 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16579
16580         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
16581         Better signatures with vtable error dump.
16582
16583 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
16584
16585         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
16586
16587 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
16588
16589         * icall.c (ves_icall_Type_GetField): impl.
16590
16591 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16592
16593         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
16594         to retrieve a marshal description blob for a field or param.
16595
16596 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16597
16598         * reflection.h, reflection.c: change order of nested type emission
16599         to avoid table corruption. The NestedTypes table is sorted.
16600         * icall.c: change order of GetConstructor results to workaround mcs bug.
16601
16602 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16603
16604         * reflection.h, reflection.c: handle field and param marshal
16605         information.
16606
16607 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16608
16609         * icall.c, marshal.c marshal.h: more Marshal class implementation.
16610
16611 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16612
16613         * reflection.c: fix call convention.
16614
16615 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16616
16617         * reflection.h, reflection.c: mono_image_get_memberref_token()
16618         takes a type instead of a class, now. Added
16619         mono_image_get_array_token() to create tokens for the special
16620         multi-dim array methods.
16621
16622 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16623
16624         * assembly.c: handle modules (no assembly table). Split
16625         loading references in its own function.
16626         * class.c: handle moduleref resolution scope.
16627         * image.c, image.h: cache module name in image.
16628
16629 2002-06-07  Martin Baulig  <martin@gnome.org>
16630
16631         * reflection.c (mono_image_get_type_info): Only add a class layout entry
16632         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
16633
16634 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16635
16636         * icall.c: more signature fixes that used uint instead of int.
16637
16638 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16639
16640         * reflection.c: fixed signature of field refs.
16641
16642 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16643
16644         * class.c, reflection.c: handle typerefs of nested types
16645         (both on read and when writing files).
16646
16647 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16648
16649         * icall.c: fix method signatures that tried to workaround the previous
16650         typo, d'oh!
16651
16652 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16653
16654         * debug-helpers.c: fix typo.
16655
16656 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16657
16658         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
16659         rewrote the PE/COFF writing code (our programs are understood by the
16660         ms runtime, now).
16661
16662 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16663
16664         * gc.c, gc.h, icall.c: weakreference support.
16665
16666 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16667
16668         * Makefile.am, mono-config.c: use $(sysconfdir).
16669
16670 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16671
16672         * icall.c: changed default precision of Double.ToString() to 15.
16673         Fixed memory leak. Unified with Single.ToString.
16674
16675 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16676
16677         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
16678
16679 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16680
16681         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
16682         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
16683         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
16684         and myself.
16685
16686 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16687
16688         * debug-symfile.c, sysmath.c: yet more compilation fixes.
16689
16690 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16691
16692         * reflection.c, socket-io.c: more compilation fixes.
16693
16694 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16695
16696         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
16697         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
16698         unicode.c: warning and compiler compatibility fixes.
16699
16700 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16701
16702         * class.h, metadata.c: fixed warnings/compilation errors.
16703
16704 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16705
16706         * Makefile.am, mono-config.c, mono-config.h: configuration file
16707         support routines.
16708         * loader.c, loader.h: make Dll mapping configurable at runtime in the
16709         config file. Export methods to insert and lookup mappings.
16710
16711 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16712
16713         * reflection.c: handle types and boxed objects in custom attr
16714         constructors.
16715
16716 2002-05-30  Martin Baulig  <martin@gnome.org>
16717
16718         * debug-symfile.c
16719         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
16720
16721 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
16722
16723         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
16724         to lookup the implmap row for a P/Invoke method.
16725         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
16726         P/Invoke method from the runtime on an as needed basis.
16727
16728 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
16729
16730         * metadata.c (mono_metadata_parse_signature): impl.
16731
16732 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16733
16734         * class.c: handle .pack directive.
16735
16736 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16737
16738         * object.c: initialize static fields with RVA data.
16739
16740 2002-05-25  Martin Baulig  <martin@gnome.org>
16741
16742         * debug-symfile.c
16743         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
16744
16745 2002-05-24  Martin Baulig  <martin@gnome.org>
16746
16747         * debug-symfile.c
16748         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
16749         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
16750         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
16751
16752 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16753
16754         * object.c: special case string ctros in invoke.
16755         * gc.c: silly whitespace changes.
16756
16757 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
16758
16759         * threadpool.[ch]: impl. a threadpool that can
16760         be used by mint and mono.
16761
16762 2002-05-22  Martin Baulig  <martin@gnome.org>
16763
16764         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
16765         The first argument is now a `MonoReflectionModuleBuilder *', the return
16766         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
16767         `methods' field to get the method builder.  The `token' argument is the
16768         unfixed token.
16769
16770         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
16771         invalid characters instead of g_assert_not_reached()ing.  This seems
16772         to be the behaviour of mscorlib.
16773
16774 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
16775
16776         * object.c (mono_runtime_invoke_array): applied patch from Rachel
16777         Hestilow to fix bug #25104
16778
16779 2002-05-21  Martin Baulig  <martin@gnome.org>
16780
16781         * debug-symfile.c (mono_debug_find_source_location): New function.
16782         Looks up an IL offset in the line number table and returns the source
16783         location as a string.
16784
16785 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16786
16787         * icall.c:
16788         (mono_double_ToStringImpl): changed %f by %g until we have something
16789         better.
16790
16791 2002-05-21  Nick Drochak  <ndrochak@gol.com>
16792
16793         * icall.c : Use different name for Math.Pow's icall.  Needed to check
16794         parameters first in C#.
16795
16796 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16797
16798         * icall.c, reflection.h: added icall to get info about an event.
16799
16800 2002-05-20  Radek Doulik  <rodo@ximian.com>
16801
16802         * object.c (mono_value_box): don't use memcpy for boxing on BIG
16803         endian
16804         (mono_value_box): don't use memcpy for small sizes on
16805         architectures with unaligned access
16806
16807 2002-05-20  Martin Baulig  <martin@gnome.org>
16808
16809         * reflection.c (mono_reflection_setup_internal_class): Don't crash
16810         if `tb->parent == NULL'.
16811         (mono_reflection_create_internal_class): New function.  This is
16812         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
16813         for enum types.
16814
16815         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
16816         New interncall.
16817
16818 2002-05-19  Martin Baulig  <martin@gnome.org>
16819
16820         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
16821         argument to get the length, don't default to the array length.
16822
16823 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
16824
16825         * assembly.c (mono_assembly_setrootdir): New function used to
16826         override the MONO_ASSEMBLIES directory.
16827
16828 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16829
16830         * icall.c: ValueType_GetHashCode() initialize local var.
16831
16832 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16833
16834         * reflection.c: sort custom attributes table.
16835
16836 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16837
16838         * reflection.c: support named args in custom attributes (write support).
16839
16840 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16841
16842         * reflection.c: fix finally position calculation.
16843
16844 2002-05-15  Radek Doulik  <rodo@ximian.com>
16845
16846         * reflection.c: fixed endianess at many places
16847
16848         * icall.c (ves_icall_InitializeArray): comment out debug msg
16849
16850 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
16851
16852         * object.c (mono_unhandled_exception): new function to handle
16853         unhandled exceptions.
16854         (mono_unhandled_exception): call the UnhandledException event.
16855         (mono_runtime_delegate_invoke): impl.
16856
16857 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
16858
16859         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
16860         returns the RVA, not the direct pointer to the data. Handle the case
16861         when the class size is fixed.
16862
16863 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16864
16865         * reflection.c: fix some endianess issues.
16866
16867 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
16868
16869         * object.c (mono_runtime_invoke): is now able to catch exceptions.
16870
16871         * threads.c (mono_thread_init): added a callback which is invoked
16872         at thread start.
16873
16874 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
16875         
16876         * icall.c: make GetHashCode return non-negative values.
16877
16878 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
16879
16880         * object.c, icall.c, gc.c: revert to address-based hashcode.
16881
16882 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
16883
16884         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
16885
16886 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16887
16888         * icall.c, class.c: special case <Module>.
16889
16890 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
16891
16892         * icall.c: fix bug in GetNow().
16893
16894 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
16895
16896         * object.c (mono_runtime_class_init): make sure that we call all
16897         static class constructors.
16898
16899 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16900
16901         * reflection.c: sort methodsemantics table.
16902
16903 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16904
16905         * reflection.h, reflection.c: honour init locals setting.
16906
16907 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
16908
16909         * icall.c: copied Double ToStringImpl for Single ToStringImpl
16910
16911 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
16912
16913         * reflection.c: support ContructorBuilders in attribute blob creation.
16914
16915 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16916
16917         * reflection.c: some changes to build a binary that can be run
16918         directly in windows.
16919
16920 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
16921
16922         * loader.c: print a big message when an icall can't be found.
16923
16924 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16925
16926         * string-icalls.c: fix bug 24248.
16927
16928 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16929
16930         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
16931         icall.c, reflection.h: separate assembly loading by pathname and by
16932         assembly name. Use the MONO_PATH env var to search for assemblies.
16933
16934 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16935
16936         * assembly.c, image.h: add some support for assemblies
16937         with multiple modules.
16938         * class.c, class.h: export mono_class_from_typeref().
16939         * loader.c: remove duplicated code and use mono_class_from_typeref(),
16940         instead.
16941
16942 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16943
16944         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
16945         documentation says (the ECMA one is correct).
16946
16947 2002-05-02  Dick Porter  <dick@ximian.com>
16948
16949         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
16950         Don't name the synchronisation mutex.
16951
16952 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
16953
16954         * rand.c
16955         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
16956         Make the prototypes match.
16957         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
16958         Same.
16959
16960         * icall.c
16961         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
16962         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
16963         all systems have tm.tm_zone, so use strftime() with %Z to print
16964         the timezone abreviation into a temp string.
16965
16966         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
16967         rather than mono_array_addr() on a MonoString on Big Endian
16968         machines.
16969
16970 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
16971
16972         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
16973         fix bug 24041
16974
16975 2002-04-30  Dick Porter  <dick@ximian.com>
16976
16977         * socket-io.c: Cope with SOCKET being an integer rather than a
16978         pointer now.
16979
16980         * threads.c: Added Thread_free_internal, to deal with thread
16981         handle cleanup.  Moved calls to handle_store() and handle_remove()
16982         to start_wrapper(), so each can only be called once.  Allocate
16983         synchronisation blocks with GC_malloc(), and use GC finalisation
16984         to close the handles.
16985
16986         * icall.c: added System.Threading.Thread::Thread_free_internal
16987
16988 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16989
16990         * icall.c: support Environment.Exit, CommandLineArgs().
16991
16992 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16993
16994         * object.c, object.h: added mono_runtime_run_main () and
16995         mono_runtime_get_main_args () for use in System.Environment.
16996
16997 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16998
16999         * gc.c: fix thinko, enable actual finalization since the jit is now
17000         fixed.
17001
17002 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17003
17004         * gc.c, object.c: take into account that an object may be offset wrt the address
17005         returned by GC_malloc().
17006
17007 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17008
17009         * image.c: handle files without entries in the assembly table (modules).
17010
17011 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
17012
17013         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
17014         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
17015         allowed to be null when it's System.Object class setup.
17016
17017 2002-04-27  Martin Baulig  <martin@gnome.org>
17018
17019         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
17020         if `tb->parent == NULL' rather than crashing.
17021
17022 2002-04-28  Nick Drochak  <ndrochak@gol.com>
17023
17024         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
17025         calling acos() where asin() should have been called.
17026
17027 2002-04-26  Martin Baulig  <martin@gnome.org>
17028
17029         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
17030         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
17031         there's a subdirectory called `System', but we don't want to read that
17032         subdirectory as an assembly.
17033
17034 2002-04-25  Martin Baulig  <martin@gnome.org>
17035
17036         * debug-symfile.c: Reflect latest MonoString changes.
17037
17038 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17039
17040         * rand.c, rand.h: instance method icalls need to have an explicit
17041         this pointer as first argument in the C implementation.
17042
17043 2002-04-25  Nick Drochak <ndrochak@gol.com>
17044
17045         * icall.c: Fix typo in map for GetNonZeroBytes
17046
17047 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17048
17049         * string-icalls.c : String does now passes unit tests without any 
17050         errors, the following changes has been made:
17051         
17052         Implemented replace methods.
17053         Renaming of methods to (try) follow the standard.
17054         Fixed compare ordinal
17055         Made all memory allocated directly to function instead of via icall function.
17056         Small performance fix in is_in_array function
17057                         
17058  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
17059
17060         c (mono_string_Internal_ctor_charp_int_int):
17061         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
17062         sindex < 0, throw ArgumentOutOfRangeException instead of
17063         ArgumentNullException.
17064
17065         Added new check for length == 0, however
17066         I need to make it return String.Empty from the C code.
17067         
17068         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
17069         that calculate the length for us here.
17070         
17071         (mono_string_Internal_ctor_sbytep_int_int): Replaced
17072         mono_string_new_utf16 with mono_string_new, since value is utf8.
17073
17074 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17075
17076         * object.c: register the object for finalization if needed.
17077         Allocate one more char in the string for the terminating 0 char.
17078
17079 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17080
17081         * class.c, class.h, image.c: check if a type implemenst a destructor.
17082         Use the proper key for array class lookups.
17083         * icall.c: register the icalls in the System.GC class.
17084         * gc.c, gc.h: GC-related functions and icalls.
17085
17086 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17087
17088         * icall.c:
17089         * socket-io.c:
17090         * unicode.c: free some strings gotten from mono_string_to_utf8 and
17091         changed a couple of free () by g_free ().
17092
17093         * decimal.c: one-liner in the comments for decimal2string ().
17094
17095 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17096
17097         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
17098
17099 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17100
17101         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
17102         * object.c (mono_runtime_invoke_array) : handle null in params
17103
17104 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17105
17106         * string-icalls.c: fixed bug in split (one off bug)
17107
17108 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17109
17110         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
17111         * icalls.c: added String::Equals as internal method
17112
17113 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17114
17115         * threads.c: fixed bug in the double interlocked functions
17116
17117 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
17118
17119         * threads.c: implemented all of the new interlocked icalls.
17120         * string-icalls.c: fix a bug in insert.
17121         * icalls.c: added the icalls for interlocked, removed old string functions.
17122         
17123 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17124
17125         * loader.c: fix off-by-one error when reading argument names.
17126
17127 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17128
17129         * profiler.c: win32 counter implementation (untested).
17130         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
17131         (the latter needs testing and more complete impl. from win32 folks).
17132
17133 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
17134
17135         * object.c: mono_array_new_full workaround mono_array_class_get
17136         problem.
17137
17138 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17139
17140         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
17141         * object.h (mono_string_chars): Changed casting type.
17142
17143 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17144
17145         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
17146                            method signatures to use gunichar2 instead of gint16.
17147
17148 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
17149
17150         * object.h, object.c: domain-specific versions of mono_object_new and
17151         mono_array_new.
17152
17153 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
17154
17155         * object.c: changed String layout
17156
17157         * string-icalls.c (mono_string_Internal_ctor_chara): added
17158         internal string constructors.
17159
17160 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
17161
17162         * threads.c: pass 'this' to the thread start routine.
17163
17164 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17165
17166         * string-icalls.c: fix IndexOf and LastIndexOf. Now
17167         InternalCompareStr don't call twice mono_string_cmp_char for the last
17168         character. Improved performance in mono_string_cmp_char.
17169
17170 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17171
17172         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
17173         code into its own library: libmonoruntime.
17174
17175 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
17176
17177         * object.h, object.c: changed array format so that szarrays do not
17178         require a bounds structure.
17179         * icall.c, appdomain.c: support for new szarray format.
17180
17181 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17182
17183         * metadata.c: compare also the retuns type when comparing signatures:
17184         we didn't do this as an optimization since really overloaded methods
17185         must differ also in the arguments, but this doesn't work with
17186         low-level IL code (or when using explicit conversion operators: see
17187         bug#23498 for an example).
17188
17189 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17190
17191         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
17192
17193 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17194
17195         * icall.c: make MonoType::GetElementType its own icall.
17196
17197 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17198
17199         * icall.c: remove MonoMethod_get_Name().
17200         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
17201         object.
17202
17203 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17204
17205         * string-icalls.c: optimized a few methods.
17206
17207 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17208
17209         * icall.c: added all new string internal calls
17210         * string-icalls.c: added, new string internal call implementation.
17211         * object.c: added mono_string_new_size for allocating a string a size
17212
17213 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
17214
17215         * object.c (mono_object_isinst): use the same code as in the
17216         optimized x86 version.
17217
17218 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17219
17220         * profiler.c: TSC-based timer code (faster and more accurate).
17221         Not hooked up in configure, yet (set USE_X86TSC to 1).
17222
17223 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
17224
17225         * profiler.c, profiler.h: track time spent compiling methods.
17226         * threads.c: track thread creation/destruction.
17227
17228 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
17229
17230         * profiler.c, profiler.h, profiler-private.h: profiling interface
17231         and sample implementation. Moved here so that it can be used also by
17232         the jit.
17233
17234 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
17235
17236         * reflection.c, reflection.h: keep types and other handles separate in
17237         the hash tables for referred tokens. Add guid for modules.
17238
17239 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17240
17241         * assembly.c: fix bugs found with valgrind.
17242         * metadata.h, metadata.c: added mono_metadata_guid_heap().
17243
17244 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
17245
17246         * threads: added icall support for getting current domain for
17247                    the thread.
17248  
17249 2002-04-13  Martin Baulig  <martin@gnome.org>
17250
17251         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
17252         (MonoDebugVarInfo): Added `index' field for register based addresses.
17253         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
17254         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
17255         `MonoDebugVarInfo *params' and `guint32 this_offset' with
17256         `MonoDebugVarInfo *this_var'.
17257
17258         * debug-symfile.c (relocate_variable): New static function to write
17259         a location description for a local variable or method parameter.
17260
17261 2002-04-12  Martin Baulig  <martin@gnome.org>
17262
17263         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
17264         stack offset and begin/end scope address of a local variable.
17265         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
17266         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
17267         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
17268
17269         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
17270         Added new relocation types for start/end scope of a local variable.
17271
17272 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17273
17274         * object.h: add mono_object_domain() macro.
17275         * reflection.c: handle typespecs.
17276         * icall.c: MonoMethod::get_Name() implementation.
17277
17278 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17279
17280         * icall.c: String::GetHashCode() icall implementation.
17281
17282 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17283
17284         * icall.c: String::IndexOfAny icall.
17285         * object.c, object.h: make array->max_length more useful.
17286         Intrduced mono_object_class() and mono_string_length() macros.
17287
17288 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17289
17290         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
17291         instead of g_unichar_isdigit.
17292
17293 2002-04-11  Nick Drochak  <ndrochak@gol.com>
17294
17295         * icall.c: Implement a simple Double.ToString().
17296
17297 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17298
17299         * appdomain.h: only io-layer.h is supposed to be included.
17300         * icall.c: explicitly import environ. Fix warning.
17301
17302 2002-04-10  Nick Drochak  <ndrochak@gol.com>
17303
17304         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
17305                 return true even if it's not Daylight Savings time.
17306                 Only return false for the case where the function isn't
17307                 implemented for a plaform (read Windows).
17308
17309 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17310
17311         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
17312         data with a mutex.
17313
17314 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17315
17316         * mempool.c (mono_mempool_alloc): only use g_malloc when
17317         absolutely necessary.
17318
17319 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17320
17321         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17322
17323         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17324         (mono_class_proxy_vtable): use domain mempool
17325
17326 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17327
17328         * appdomain.h, appdomain.c: split initialization that requires the
17329         execution engine support into mono_runtime_init().
17330
17331 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17332
17333         * class.c (mono_class_init): don't include vtable inside MonoClass
17334         to save some memory, gather some statistics.
17335         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17336
17337 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17338
17339         * icall.c: internalcall implementation for ValueType.Equals().
17340
17341 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17342
17343         * object.c (mono_message_init): moved 
17344         (mono_runtime_exec_main): new arch. independent impl.
17345         (mono_runtime_invoke_array): new method - like
17346         mono_runtime_invoke, but you can pass an array of objects.
17347         (mono_remoting_invoke): new arch. independent impl.
17348         (mono_message_invoke): new arch. independent impl.
17349         (mono_runtime_class_init): new arch. independent impl.
17350         (mono_runtime_object_init): new arch. independent impl.
17351
17352 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17353
17354         * metadata.c, object.c, reflection.c: documented the exported
17355         functions.
17356
17357 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17358
17359         * icall.c: simpler code to pass the assembly builder data to corlib.
17360         Implement GetNestedTypes() internalcall.
17361
17362 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17363
17364         * class.c: warn if a type can't be loaded.
17365
17366 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17367
17368         * image.h: typedef MonoImageOpenStatus
17369         * types.h: removed unused file
17370         
17371 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17372
17373         * icall.c: Enum_ToObject accepts enum value arguments.
17374
17375 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17376
17377         * class.c: move initialization of properties, events and nested
17378         classes, so that they happen for interfaces, too.
17379
17380 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17381
17382         * icall.c: cleanup some ugly casts in Array_SetValue*.
17383
17384 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17385
17386         * icall.c: the values array fro enums is of the correct type, now.
17387         Implement (correctly) getFullName instead of assQualifiedName for
17388         MonoType.
17389         * reflection.h, reflection.c: added mono_type_get_name ().
17390
17391 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17392
17393         * assembly.c, image.h: for each MonoImage, record from wich assembly
17394         it was loaded.
17395         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17396         Make Type.Assembly work.
17397
17398 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17399
17400         * debug-symfile.h: use char* instead of gpointer to avoid
17401         unnecessary casts.
17402
17403         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17404
17405         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17406         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17407
17408 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17409
17410         * icall.c (mono_message_init): impl. (code cleanup)
17411         (ves_icall_InternalExecute): impl. FieldGetter
17412
17413         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17414         defined we call all (non-static)methods through the vtable. 
17415
17416 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17417
17418         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17419         finalizer even though the memory is still referenced (and the chunk of
17420         memory is not freed).
17421
17422 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17423
17424         * assembly.c: fix brokeness.
17425
17426 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17427
17428         * class.c: kill some warnings. Check explicit interface method
17429         implementation also without considering the namespace.
17430         Load also literal strings in static class data.
17431
17432 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17433
17434         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17435         (default_assembly_name_resolver): Make the resolver take the
17436         "base" directory where the assembly was originally defined, so we
17437         can load DLLs that are in the same directory as the assembly that
17438         is being referenced.
17439
17440 2002-03-28  Dick Porter  <dick@ximian.com>
17441
17442         * file-io.h: 
17443         * file-io.c:
17444         * socket-io.c: 
17445         * unicode.h: 
17446         * unicode.c: Warning cleanups
17447
17448 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17449
17450         * object.h, reflection.h: use the correct type instead of MonoObject.
17451
17452 2002-03-28  Martin Baulig  <martin@gnome.org>
17453
17454         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17455         (mono_debug_update_symbol_file): Initialize classes if necessary.
17456
17457 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17458
17459         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17460         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17461
17462 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17463
17464         * assembly.h: fix function prototype.
17465         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17466         * mono-endian.h: use const cast.
17467
17468 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17469
17470         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17471
17472 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17473
17474         * loader.c: don't assert when a typeref can't be loaded, give
17475         a chance to the runtime to trow an exception instead.
17476         * loader.h: fix warning.
17477
17478 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17479
17480         * class.c (mono_class_proxy_vtable): added proxy support
17481
17482 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17483
17484         * icall.c: removed last of PAL calls, added System.Environment
17485         * file-io.h, file-io.c: MonoIO implementation
17486         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17487
17488 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17489
17490         * appdomain.c: do not use the byte marker in ldstr table lookup.
17491         * debug-helpers.c: allow two ':' to separate class and method name.
17492         * object.c: allocate arrays bounds with the GC, too.
17493         * verify: add a few more checks.
17494
17495 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
17496
17497         * reflection.c: output also literal strings. Allocate parameter data
17498         with GC_malloc() (thanks, Martin, for catching this!).
17499
17500 2002-03-26  Martin Baulig  <martin@gnome.org>
17501
17502         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
17503         include the `this' offset in the `param_offsets'.
17504
17505 2002-03-25  Martin Baulig  <martin@gnome.org>
17506
17507         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
17508         mono_debug_get_class() function to get the classes. Added new
17509         relocation types for arrays and strings.
17510         (mono_debug_get_class): New static function to search in all
17511         referenced assemblies for a metadata token.
17512
17513         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
17514
17515 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17516
17517         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
17518         hold gc-allocated objects. Make the string heap a stream like the
17519         others. Removed duplicated code when writing stream info.
17520         Added asserts to catch possible buffer overflows. Set the sorted map
17521         for tables that need sorting. Added some documentation.
17522
17523 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
17524
17525         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
17526         for interned strings and vtables.
17527
17528 2002-03-24  Martin Baulig  <martin@gnome.org>
17529
17530         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
17531         it in the array since it was created with g_slist_prepend().
17532
17533 2002-03-24  Martin Baulig  <martin@gnome.org>
17534
17535         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
17536         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
17537         (mono_debug_method_from_token): Renamed to
17538         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
17539         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
17540
17541         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
17542         relocation types.
17543
17544         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
17545
17546 2002-03-24  Martin Baulig  <martin@gnome.org>
17547
17548         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
17549         (mono_debug_method_from_token): New func.
17550
17551         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
17552         New interncall, calls mono_debug_local_type_from_signature().
17553         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
17554         calls mono_debug_method_from_token().
17555
17556 2002-03-23  Martin Baulig  <martin@gnome.org>
17557
17558         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
17559         specifies the number of bytes to be converted, not the array size.
17560         Return the number of chars, not the number of bytes.
17561         (ves_icall_iconv_get_chars): The `byteCount' argument
17562         specifies the number of bytes to be converted, not the array size.
17563
17564 2002-03-23  Martin Baulig  <martin@gnome.org>
17565
17566         * reflection.h (MonoReflectionSigHelper): New type.
17567
17568         * reflection.c (mono_reflection_sighelper_get_signature_local),
17569         (mono_reflection_sighelper_get_signature_local): New functions.
17570
17571         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
17572         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
17573         interncalls.
17574
17575 2002-03-23  Martin Baulig  <martin@gnome.org>
17576
17577         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
17578         is_writeable is set.
17579         (mono_raw_buffer_update): New function to write the modified map
17580         back to disk.
17581
17582         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
17583
17584         * debug-symfile.c (mono_debug_update_symbol_file): Call
17585         mono_raw_buffer_update() when done writing.
17586
17587 2002-03-23  Martin Baulig  <martin@gnome.org>
17588
17589         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
17590
17591         * debug-symfile.c: Added support for arguments and local variables.
17592
17593 2002-03-23  Dick Porter  <dick@ximian.com>
17594
17595         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
17596         protected by ifdefs, hence breaking the w32 build.
17597
17598 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17599
17600         * object.c: implement is_interned() the right way.
17601
17602 2002-03-21  Martin Baulig  <martin@gnome.org>
17603
17604         * debug-symfile.[ch]: New files to handle debugging information
17605         files. There's also support to dynamically update these symbol
17606         files to include machine dependent information.
17607
17608 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
17609
17610         * threads.c (mono_thread_create): new function to create thread
17611         from C
17612
17613 2002-03-20  Martin Baulig  <martin@gnome.org>
17614
17615         * icall.c (ves_icall_InternalInvoke): Create a new object if the
17616         method is a constructor.
17617         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
17618         points to ves_icall_InternalInvoke().
17619
17620 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
17621
17622         * file-io.c: Flush shouldn't throw exceptions.
17623
17624 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
17625
17626         * file-io.c: FileStream flush support; FileSetLength now
17627         restores file pointer.
17628
17629 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
17630
17631         * class.c: set image for pointer classes.
17632
17633 2002/03/19  Nick Drochak <ndrochak@gol.com>
17634
17635         * sysmath.c: Forgot one.
17636
17637 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
17638
17639         * sysmath.c: Avoid redefining existing names.
17640
17641 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
17642
17643         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
17644         handled by runtime as icall rather than dllimport from libm.so
17645         * file-io.c, file-io.h: fixed handle argument type.
17646
17647 2002-03-18  Dick Porter  <dick@ximian.com>
17648
17649         * reflection.c (mono_image_get_type_info): rename interface to
17650         iface, because of "#define interface struct" on windows.
17651
17652 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
17653
17654         * class.c, class.h: rename and export mono_ptr_class_get().
17655         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
17656         * reflection.c, reflection.h, icall.c: better/saner type name
17657         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
17658         method signatures.
17659
17660 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
17661
17662         * class.c (mono_class_init): removed hardcoded GHC_SLOT
17663
17664         * icall.c (ves_icall_InternalInvoke): impl.
17665
17666 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17667
17668         * reflection.c: output the interface map table, too.
17669
17670 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17671
17672         * class.c (class_compute_field_layout): separate computation of 
17673         static field layout
17674
17675 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
17676
17677         * icall.c: added System.Buffer support.
17678         * file-io.c: moved file icalls from PAL to FileStream.
17679
17680 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17681
17682         * icall.c (ves_icall_System_Object_GetHashCode): impl.
17683
17684 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
17685
17686         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
17687
17688 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17689
17690         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
17691
17692 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
17693
17694         * debug-helpers.{c,h}: moved here from monograph some useful functions
17695         to locate a method by name/signature in a class or image. Included
17696         also a small and flexible IL disassembler.
17697
17698 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17699
17700         * reflection.c: fixup tokens in methods with small header size, too.
17701
17702 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
17703
17704         * object.c (mono_string_to_utf8): remove assert(!error), instead
17705         print a warning. 
17706
17707 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
17708
17709         * icall.c: update to the new mono_Array_class_get interface.
17710
17711 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17712
17713         * appdomain.c, object.c: Boehm-GC enable.
17714         * icall.c: make get_data_chunk() support split data requests.
17715         Ensure a class is initialized in more cases. Return only the first
17716         property found in GetProperties() or the compiler gets confused. 
17717         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
17718         * reflection.h, reflection.c: add fixup mechanism for field and method
17719         tokens. Initialize assembly->typeref in a single place. Output
17720         properties after events. Support custom attributes for events, too.
17721         Typo fix for paramter custom attrs.
17722
17723 2002-03-07  Martin Baulig  <martin@gnome.org>
17724
17725         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
17726
17727 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
17728
17729         * class.c (mono_array_class_get): fix. for multi. dim. arrays
17730
17731 2002-03-06  Martin Baulig  <martin@gnome.org>
17732
17733         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
17734         non-zero lower bounds. See testcases #F10-#F13.
17735
17736 2002-03-05  Martin Baulig  <martin@gnome.org>
17737
17738         * exception.c (mono_get_exception_argument_out_of_range): New exception.
17739
17740         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
17741         ves_icall_System_Array_GetValue(), only calculate the absolute array position
17742         here.
17743         (ves_icall_System_Array_SetValue): Likewise.
17744         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
17745         as argument and does the actual work. This function is used when copying a
17746         multi-dimensional array.
17747         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
17748         now do all the widening conversions of value types.
17749         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
17750
17751 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17752
17753         * class.c: remove some magic numbers and use the smbolic names,
17754         instead. Added init_events() to load event info at class init time.
17755         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
17756         and mono_metadata_methods_from_event().
17757         * reflection.h, reflection.c: added support for writing out the evnets
17758         related information.
17759
17760 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17761
17762         * reflection.h, icall.c: use a different method (GetInterfaces)
17763         to gather interface info and add isbyref, isprimitive and
17764         ispointer to the ves_icall_get_type_info() return value.
17765
17766 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17767
17768         * class.h: stared adding support for events.
17769         * icall.c: split find_members implementation. Added debug icall to get
17770         the address of an object.
17771         * reflection.c: handle TypeBuilders in mono_type_get_object().
17772
17773 2002-03-01  Martin Baulig  <martin@gnome.org>
17774
17775         * icall.c (ves_icall_System_Array_GetLength): This must throw an
17776         ArgumentOutOfRangeException(), not an ArgumentException().
17777         (ves_icall_System_Array_GetLowerBound): Likewise.
17778         (ves_icall_System_Array_GetValue): Improved argument checking.
17779         (ves_icall_System_Array_SetValue): Improved argument checking.
17780
17781 2002-03-01  Martin Baulig  <martin@gnome.org>
17782
17783         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
17784         called with invalid arguments rather than just dying with g_assert().
17785         (ves_icall_System_Array_SetValue): Likewise.
17786         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
17787         raise a NotImplementedException instead.
17788         (ves_icall_System_Array_GetLength): Added argument checking.
17789         (ves_icall_System_Array_GetLowerBound): Added argument checking.
17790
17791 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
17792
17793         * object.h (mono_assert): new macros mono_assert and
17794         mono_assert_not_reached
17795
17796 2002-02-28  Martin Baulig  <martin@gnome.org>
17797
17798         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
17799         and "System::String::IsInterned" to "System::String::_IsInterned".
17800
17801 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
17802
17803         * icall.c: remove hacks for typebuilder. Added icall to create a
17804         modified type from a tybebuilder.
17805         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
17806         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
17807         to create a backing MonoClass for a TypeBuilder.
17808
17809 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17810
17811         * class.c, class.h: more refactoring of class init.
17812         Export mono_class_setup_mono_type() and mono_class_setup_parent().
17813
17814 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
17815
17816         * marshal.c, marshal.h: start of marshaling interface.
17817
17818 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
17819
17820         * icall.c: fix order in assembly qualified name icall.
17821
17822 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
17823
17824         * class.c: do not free str, since we store it in the hash table.
17825         * reflection.h: add label field to MonoILExceptionInfo.
17826         * reflection.c: handle references to more than one assembly. Handle
17827         case when there isn't a module created in the assembly.
17828
17829 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17830
17831         * class.c: Fix typo. Start refactoring of class init code.
17832
17833 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17834
17835         * appdomain.c: exit with 1 on error.
17836         * class.c: we already have the name in MonoClassField.
17837         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
17838         MonoStreamHeader instead of an offset of image->raw_metadata.
17839
17840 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
17841
17842         * appdomain.c (mono_init): Be even more descriptive about the error.
17843
17844 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
17845
17846         * appdomain.c: give the user an informative message when corlib can't
17847         be loaded.
17848
17849 2002-02-26  Martin Baulig  <martin@gnome.org>
17850
17851         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
17852         New icall to get the time zone data.
17853
17854 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17855
17856         * reflection.c: set virtual and raw size of section correctly.
17857         * threads.c: transfer domain information to newly created threads.
17858
17859 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
17860
17861         * class.c: when instancing a class in a domain, load the default
17862         vaules for static fields from the constant table. Fix System.Enum to
17863         not be an enum.
17864         * icall.c: implement Object::GetType() internalcall. Implemented
17865         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
17866         Fixed checking of binding flags in find_members().
17867         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
17868         * reflection.c: handle enumerations when writing to the constant
17869         table. Use a different object cache for types.
17870
17871
17872 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
17873
17874         * object.c (mono_object_isinst): fix for arrays
17875
17876         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
17877
17878 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
17879
17880         * object.c: don't use mprotect ()  and fix intern pool hash table
17881         lookup for big endian systems.
17882
17883 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17884
17885         * icall.c: change type_is_subtype_of () signature.
17886
17887 2002-02-21  Mark Crichton  <crichton@gimp.org>
17888
17889         * rand.c, rand.h: Added random number generator for
17890         System.Security.Cryptography classes.
17891
17892         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
17893
17894         * icall.c: Added System.Security.Cryptography calls.
17895
17896 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
17897
17898         * class.c, icall.c, metadata.c: better support for pointer types.
17899         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
17900         * reflection.c: Add support for getting custom attrs for properties
17901         and simplify some code.
17902
17903 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17904
17905         * icall.c: change getToken () and add custom attribute GetBlob()helper
17906         method.
17907         * reflection.h: add custom attrs array to the reflection builder structures.
17908         * reflection.c: encode and emit custom attributes for all the relevant
17909         reflection objects. Cache fieldref and methodref tokens. Change
17910         mono_image_create_token() interface to take a MonoDynamicAssembly.
17911         More complete custom attributes decoder. Load custom attributes for
17912         Assembly, Field, Method and Constructor objects, too. Make the
17913         returned array an Attribute[] one, not object[]. Added
17914         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
17915         custom attribute constructor.
17916
17917 2002-02-20  Dick Porter  <dick@ximian.com>
17918
17919         * icall.c:
17920         * rawbuffer.c:
17921         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
17922         problem code out for now).
17923
17924 2002-02-19  Radek Doulik  <rodo@ximian.com>
17925
17926         * object.c (mono_ldstr): use hash table to avoid multiple swapping
17927
17928 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
17929
17930         * icall.c: register the GetCustomAttributes method.
17931         * object.c, object.h: add mono_string_new_len ().
17932         * reflection.h, reflection.c: added mono_runtime_invoke(),
17933         mono_install_runtime_invoke(). Added
17934         mono_reflection_get_custom_attrs () to load custom attributes and
17935         create the attribute objects.
17936
17937 2002-02-19  Dick Porter  <dick@ximian.com>
17938         * threads-dummy-types.c:
17939         * threads-dummy-types.h:
17940         * threads-dummy.c:
17941         * threads-dummy.h:
17942         * threads-pthread-types.c:
17943         * threads-pthread-types.h:
17944         * threads-pthread.c:
17945         * threads-pthread.h:  Deleted obsolete files
17946
17947 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
17948
17949         * class.c (mono_class_vtable): runtime init the class when we
17950         allocate static class data.
17951
17952         * icall.c (ves_icall_System_Array_SetValue): check for null values.
17953
17954         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
17955         and String - but we will need generic marshalling support in the
17956         future. 
17957         (mono_init): set the domain name in a ms compatible way
17958
17959         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
17960         String[].
17961
17962 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
17963
17964         * object.c (mono_array_clone): use alloca() instead of g_malloc  
17965         for sizes
17966
17967         * appdomain.c (mono_domain_unload): impl.
17968
17969 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
17970
17971         * appdomain.c, object.c: fix intern pool implementation.
17972         * class.c: fix alignment code.
17973
17974 2002-02-16  Radek Doulik  <rodo@ximian.com>
17975
17976         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
17977         and s2 > s1, just copy lower bytes to be compatible with little
17978         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
17979         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
17980
17981         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
17982         force big_endian to be 1 for big endian machines 
17983         (ves_icall_iconv_new_decoder): ditto
17984
17985 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
17986
17987         * socket-io.c (convert_sockopt_level_and_name): If the system
17988         doesn't define SOL_IP or SOL_TCP, get them by hand using
17989         getprotobyname() and caching the values (because this could be a
17990         slow operation).
17991         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
17992         Use the appropriate struct when the system does support it. Ie,
17993         not all systems have struct ip_mreqn so use struct ip_mreq when
17994         appropriate.
17995
17996 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
17997
17998         * reflection.c: handle finally clauses.
17999
18000 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
18001
18002         * socket-io.c: use g_snprintf() instead of snprintf.
18003
18004 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18005
18006         * reflection.c (mono_param_get_objects): Cast second argument to
18007         mono_method_get_param_names to a const char** to silence the
18008         compiler warning.
18009
18010         * appdomain.c (mono_domain_assembly_open): Put parens around the
18011         truth statement in the for-loop.
18012
18013         * unicode.c (iconv_convert): Got rid of a compiler warning about
18014         int i being unused when the system has a new iconv.
18015         (iconv_get_length): Same.
18016
18017         * image.c (load_class_names): Cast the second argument to
18018         g_hash_table_insert() to char* to hush compiler warnings about the
18019         arg being a const.
18020         (mono_image_open): Same here.
18021
18022         * socket-io.c: Don't conditionally include sys/filio.h or
18023         sys/sockio.h here anymore since we now get them from
18024         io-layer/io-layer.h
18025         (inet_pton): If the system doesn't support inet_aton, implement
18026         using inet_addr and also #define INADDR_NONE if it isn't defined
18027         by the system.
18028
18029 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18030
18031         * metadata.c, metadata.h: added function to get packing and size info
18032         of a typedef.
18033         * reflection.h, reflection.c: handle field RVA data. Save info about
18034         the table layout if needed. Assign typedef indexes to all the types
18035         before dumping the info about them to avoid forward reference problems.
18036
18037 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
18038
18039         * socket-io.c (convert_sockopt_level_and_name): ifdef
18040         SO_ACCEPTCONN because it is not defined on my system (old debian)
18041
18042 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * opcode.c: use stddef.h to get NULL.
18045
18046 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18047
18048         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
18049         for FIONBIO, FIONREAD and SIOCATMARK.
18050         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
18051         define INADDR_NONE and besides, inet_addr() is deprecated and
18052         should not be used. Use inet_pton() instead - it also has the
18053         added bonus that it can easily handle IPv6 addresses as well.
18054         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
18055
18056 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18057
18058         * decimal.c: remove _MSC_VER conditional.
18059
18060 2002-02-13  Dick Porter  <dick@ximian.com>
18061
18062         * socket-io.c: 
18063         * icall.c: Internal calls for Blocking, Select, Shutdown,
18064         GetSocketOption and SetSocketOption
18065
18066 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18067
18068         * assembly.cs: better resolver: use it instead of some kludgy
18069         code.
18070
18071 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
18072
18073         * reflection.c: the best way to speed-up the compiler is to avoid
18074         infinite loops.
18075
18076 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
18077
18078         * class.c (mono_class_vtable): changed the object layout
18079         (obj->vtable->class). 
18080         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
18081
18082 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18083
18084         * assembly.c: look for assemblies in the assembly dir, too.
18085
18086 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18087
18088         * class.c: fix thinko in mono_class_from_type().
18089
18090 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18091
18092         * exception.h, exception.c: added TypeLoadException.
18093         * object.h, object.c: added mono_array_clone ().
18094         * icall.c: handle throwOnError in AssemblyGetType().
18095         Added Array.Clone().
18096         * opcode.h, opcode.c: use a single value for the opcode val.
18097         Compile fix for non-gcc compilers.
18098
18099 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
18100
18101         * opcodes.c, opcodes.h: export interesting info about opcodes.
18102
18103 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
18104
18105         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
18106         icalls. 
18107
18108         * class.c (class_compute_field_layout): set element_class for enums
18109         (mono_class_create_from_typedef): set element_class for normal classes
18110
18111         * icall.c (ves_icall_System_Enum_get_value): impl.
18112
18113         * class.c (mono_class_create_from_typedef): do not set valuetype
18114         flag for System.ValueType and System.Enum
18115
18116 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
18117
18118         * unicode.c (iconv_convert): fix big endian problem.
18119
18120 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18121
18122         * class.c: add asserts if we are ever going to scribble over memory.
18123         * socket-io.c: not all systems have AF_IRDA defined.
18124
18125 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
18126
18127         * class.c (class_compute_field_layout): do not consider static
18128         fields to compute alignment
18129
18130 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
18131
18132         * appdomain.c (mono_appdomain_get): impl.
18133         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
18134
18135 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18136
18137         * icall.c: ignore "file://" prefix when loading an assembly.
18138
18139 2002-01-23  Dick Porter  <dick@ximian.com>
18140
18141         * socket-io.c:
18142         * icall.c:
18143         * Makefile.am: Added socket support
18144
18145 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18146
18147         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
18148         code back.  This should return the assemblies that are loaded by
18149         the runtime on behalf of an application domain. 
18150
18151         The current implementation is still broken, it just returns every
18152         assembly loaded, but until we get real applications domain this
18153         will do.
18154
18155 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
18156
18157         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
18158         AppDomain object.
18159
18160 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18161
18162         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
18163         the mono_class_from_name lookup.
18164         (ves_icall_get_parameter_info): ditto.
18165         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
18166         method.
18167         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
18168
18169 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18170
18171         * class.c: load also nested classes on class init.
18172         System.ValueType instance methods gets passed boxed
18173         values, unless methods in derived classed that get a pointer to the
18174         data.
18175         * icall.c: use better name parsing code in GetType().
18176         * image.c, image.h: add mono_image_loaded ().
18177         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
18178         * reflection.c, reflection.h: added mono_reflection_parse_type().
18179
18180 2002-01-22  Veronica De Santis <veron78@interfree.it>
18181
18182         * icall.c : Added mapping of internal calls for Manual and Auto reset events
18183         * threads.c : Added the implementation of internal calls for events
18184         * threads.h : Added prototypes of internal calls for events
18185         
18186 2002-01-21  Radek Doulik  <rodo@ximian.com>
18187
18188         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
18189
18190 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
18191
18192         * class.c (mono_class_init): set min_align to 1 (instead of 0)
18193         (mono_class_value_size): use min_align
18194
18195 2002-01-20  Dick Porter  <dick@ximian.com>
18196
18197         * threads.h:
18198         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
18199         so it compiles on w32.
18200
18201 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
18202
18203         * metadata.c (mono_type_stack_size): impl.
18204
18205         * class.c (mono_class_get_field): impl. memberref token
18206
18207 2002-01-16 Veronica De Santis <veron78@@interfree.it>
18208
18209         * icall.h : Added the internal calls mapping for CreateMutex_internal
18210                     and ReleaseMutex_internal.
18211         * threads.h : Added the prototype of mutexes internal calls.
18212         * threads.c : Added the implementations of mutexes internal calls.
18213
18214 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18215
18216         * metaparse.h: removed unused file.
18217         * reflection.c, reflection.h: added stream_data_align () function 
18218         to align data in streams and keep stream aligned. Add support for
18219         exception support in method headers.
18220
18221 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
18222
18223         * unicode.c: make iconv_convert () return the number of bytess written
18224         in the output buffer.
18225
18226 2002-01-15  Dick Porter  <dick@ximian.com>
18227         * threads.c: Make the runtime's idea of infinite timeouts coincide
18228         with the class library's
18229
18230         Fix a particularly egregious bug in mono_thread_cleanup(). That
18231         code was so utterly bogus it must have been written on a Monday.
18232
18233 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18234
18235         * reflection.h: add subtypes field to TypeBuilder.
18236         * reflection.c: encode constants for literal fields.
18237         Handle subtypes. Fix user string token (and add a zero byte)
18238         at the end.
18239         
18240 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
18241
18242         * class.c (mono_class_init): bug fix: assign slot numbers for
18243         abstract methods.
18244
18245 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18246
18247         * reflection.c: don't try to output a code RVA for abstract methods.
18248         Small fixes for method header format. Output parameter info to the
18249         ParamDef table. Save method overriding info to MethodImpl table.
18250         Fix property support. Allow typedef.extends to be a type in the
18251         building assembly.
18252         * verify.c: fix off-by-one error.
18253
18254 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
18255
18256         * class.c: fix mono_class_from_mono_type () for szarray types.
18257         Remove unused cache check in mono_class_from_type_spec().
18258         * icall.c: *type_from_name () functions handle simple arrays and byref.
18259         * reflection.c: handle byref and szarray types. Handle methods without
18260         body (gets P/Invoke compilation working). Handle types and fields in
18261         get_token ().
18262         * reflection.h: add rank to MonoTypeInfo.
18263
18264 2002-01-10  Dick Porter  <dick@ximian.com>
18265
18266         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
18267         internal calls
18268
18269 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18270
18271         * icall.c: initialize class in type_from_handle ().
18272         Loop also in parent classes for get_method ().
18273         * reflection.c: properly encode class and valuetype types.
18274         Start on encoding TypeBuilder types. Handle fieldrefs.
18275         Use correct length when registering a user string.
18276         Handle ConstructorBuilder and MonoMethod in get_token ().
18277         Make mono_type_get_object () aware of cached types.
18278         * object.c: back out change to mono_string_new ().
18279
18280 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
18281         * object.c: mono_string_new should return a NULL when the string 
18282         passed in is NULL -- not try to deference it.
18283         
18284 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18285
18286         * icall.c: hack to make IsSubType work for TypeBuilders.
18287         * reflection.c: emit constructors before methods.
18288         Retrieve param names in mono_param_get_objects().
18289
18290 2002/01/05  Nick Drochak  <ndrochak@gol.com>
18291
18292         * Makefile.am: fix list of headers and sources so automake 1.5
18293         doesn't complain. Removed \# at end of list.
18294
18295 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18296
18297         * reflection.c: get token for a method ref. Set return type of
18298         constructor to void.
18299         * loader.c: debug message.
18300         * class.c: typo fix.
18301
18302 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
18303
18304         * icall.c: fix array init with rank > 1. FindMembers
18305         loops in parent class as well.
18306         * image.c: do not insert nested types in name cache.
18307         * reflection.c: warning fix.
18308         * reflection.h: add override method (for interface impl).
18309
18310 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
18311
18312         * metadata.c: fix customattr decoding.
18313
18314 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18315
18316         * rawbuffer.cs: Added native Win32 implementation, avoids using
18317         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18318
18319 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18320
18321         * class.c: make the low-level routines handle the cache.
18322
18323 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18324
18325         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18326
18327 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18328
18329         * class.c: fix mono_array_element_size() for objects.
18330         * class.h, class.c: add properties to MonoClass and load them
18331         at init time.
18332         * icall.c: check with isinst() when assigning a value to an array
18333         instead of requiring the classes to match exactly.
18334         Implemented icall for System.Type::GetType().
18335         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18336         enums. Handle bindingflags when looking for methods and fields.
18337         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18338         and mono_metadata_methods_from_property().
18339         * reflection.h, reflection.c: added structures for propreties,
18340         parameters and enums. Implemented mono_property_get_object() and
18341         mono_param_get_objects().
18342
18343 2001-12-18  Dick Porter  <dick@ximian.com>
18344
18345         * file-io.c: Use mono_string_to_utf16() instead of
18346         mono_string_chars()
18347
18348         * object.c: Added mono_string_to_utf16(), which copies the non
18349         NULL-terminated MonoString into a new double-null-terminated
18350         buffer.
18351
18352 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18353
18354         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18355
18356 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18357
18358         * file-io.c: raise exceptions if handle is invalid.
18359
18360 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18361
18362         * assembly.c: yet another check for mscorlib.
18363         * class.c, class.h: load nesting info for classes.
18364         * icall.c: many new functions to support the Reflection classes.
18365         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18366         * reflection.h, reflection.c: mono_image_create_token(),
18367         mono_assembly_get_object(), mono_type_get_object(),
18368         mono_method_get_object(), mono_field_get_object(): methods to return
18369         objects that parallel the C representation of assemblies, types,
18370         methods, fields.
18371
18372 2001-12-11  Dick Porter  <dick@ximian.com>
18373
18374         * icall.c:
18375         * file-io.c: Internal calls for file IO.
18376
18377 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18378
18379         * tabledefs.h: missing FileAttributes.
18380         * verify.h, verify.c: use is_valid_string () to simplify and check for
18381         valid strings more correctly. Fix warnings and speeling.
18382         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18383         Check code: branches, maxstack, method calls.
18384
18385 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18386
18387         * object.c (mono_object_allocate): removed static, so that the jit
18388         can allocate value types.
18389
18390         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18391
18392 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18393
18394         * class.c: init enum types right away and register the
18395         token->MonoClass map in mono_class_create_from_typedef ().
18396         * verify.h, verify.c: first cut of the verifier.
18397         * pedump.c: add --verify switch to verify metadata tables.
18398         * tabledefs.h: add some missing enums.
18399
18400 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18401
18402         * class.c (mono_install_runtime_class_init): impl.
18403         (mono_class_init): renamed mono_class_metadata_init to
18404         mono_class_init, also removed the metadata_inited flag
18405
18406         * object.c (mono_object_isinst): use faster algorithm
18407
18408 2001-11-30  Radek Doulik  <rodo@ximian.com>
18409
18410         * mono-endian.h: reverted last change
18411         added function prototypes
18412
18413         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18414         add mono-endian.c back
18415
18416         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18417         for unaligned access, I've mistaked it with endianess. I am
18418         sorry.
18419         (mono_read16): fix reverted endianess
18420         (mono_read64): ditto
18421         (mono_read32): ditto
18422
18423 2001-11-30  Dick Porter  <dick@ximian.com>
18424
18425         * exception.c: Implement mono_exception_from_name()
18426
18427 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18428
18429         * metadata.h, metadata.c: remove params_size and locals_size and their
18430         calculation from the metadata code: they are only usefult to the
18431         interp.
18432
18433 2001-11-29  Radek Doulik  <rodo@ximian.com>
18434
18435         * object.c (mono_ldstr): swap bytes here, it's probably not the
18436         best place, but works for me now, I'll redo it once I know mono
18437         better, also note that I add PROT_WRITE and don't reset back, also
18438         note that it's only affects big endians, so x86 should be OK
18439
18440         * mono-endian.h (read16): use just glib macros for both endians
18441
18442         * mono-endian.c: removed as glib macros are used in in
18443         mono-endian.h so we don't need to care about endianess for read
18444         macros as glib does that for us already
18445
18446 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18447
18448         * class.h, class.h: take minimum alignment into consideration so
18449         that the fields of a class remain aligned also when in an array.
18450
18451 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18452
18453         * loader.h, loader.c: add mono_method_get_param_names().
18454         * class.c: 0-init class fields.
18455
18456 2001-11-26  Dick Porter  <dick@ximian.com>
18457
18458         * icall.c:
18459         * threads-types.h:
18460         * threads.c: New file that handles System.Threading on all platforms
18461
18462         * object.c: 
18463         * object.h: Remove the synchronisation struct from MonoObject,
18464         replace it with a pointer that gets initialised on demand
18465
18466         * Makefile.am: Replace all the system-specific threading code with
18467         a single file that uses the new wrapper library
18468
18469 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18470
18471         * class.c, class.h: add mono_install_trampoline() so that the runtime
18472         can register a function to create a trampoline: removes the ugly
18473         requirement that a runtime needed to export arch_create_jit_trampoline.
18474         * object.h, object.c: added mono_install_handler() so that the runtime
18475         can install an handler for exceptions generated in C code (with
18476         mono_raise_exception()). Added C struct for System.Delegate.
18477         * pedump.c: removed arch_create_jit_trampoline.
18478         * reflection.c: some cleanups to allow registering user strings and
18479         later getting a token for methodrefs and fieldrefs before the assembly
18480         is built.
18481         * row-indexes.h: updates and fixes from the new ECMA specs.
18482
18483 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18484
18485         * class.h, class.c: add enum_basetype field to MonoClass.
18486         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18487         to get index in the constant table reated to a field, param or
18488         property.
18489         * reflection.h, reflection.c: handle constructors. Set public-key and
18490         version number of the built assembly to 0.
18491         * row-indexes.h: update from new ECMA spec.
18492
18493 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18494
18495         * class.h, class.c: add a max_interface_id to MonoClass.
18496         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
18497         since it's used to do that. Added mono_type_type_from_obj().
18498         Make GetType() return NULL instead of segfaulting if the type was not
18499         found. Handle simple arrays in assQualifiedName.
18500         * object.h: add a struct to represent an Exception.
18501         * reflection.c: output call convention in method signature.
18502         Add code to support P/Invoke methods and fixed offsets for fields.
18503
18504 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
18505
18506         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
18507         the value.
18508         * icall.c: use mono_array_addr instead of array->vector: fixes the
18509         reflection image writing.
18510         * reflection.c: init call convention byte to 0 in method signature.
18511         Encode the property signature. Don't output property-related methods
18512         twice. Really process the properties for a type (don't cast a field to
18513         a property, my mom always told me that).
18514         Fix 64 bit issues in pointer alignment in a different and more
18515         readable way.
18516
18517 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
18518
18519         * loader.h: Removed type class from MonoDefaults, added monotype
18520
18521         * loader.c: Loaded MonoType, removed loading of Type
18522
18523         * icall.c (my_mono_new_object): Now returns a System.MonoType,
18524         and fills in System.Type._impl with a RuntimeTypeHandle rather
18525         than the actual MonoClass *
18526
18527         (ves_icall_type_from_handle): change from type_class to
18528         monotype_class
18529
18530         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
18531         implemented
18532
18533         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
18534         implemented
18535
18536         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
18537
18538         (ves_icall_System_Reflection_Assembly_GetType): implemented
18539
18540         (ves_icall_System_MonoType_assQualifiedName): implemented
18541
18542         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
18543
18544 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
18545
18546         * assembly.c (mono_assembly_open): Implement a cache for the
18547         assemblies. 
18548
18549         (mono_assembly_close): only destroy the assembly when the last
18550         reference is gone.
18551         
18552 2001-11-09  Dick Porter  <dick@ximian.com>
18553
18554         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
18555
18556 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
18557
18558         * class.c (mono_class_metadata_init): bug fix: compute the right slot
18559
18560 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18561
18562         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
18563         from Martin Weindel.
18564         * object.h: add mono_string_chars ().
18565
18566 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
18567
18568         * reflection.c (build_compressed_metadata): Eliminates warnings
18569         and uses 64-bit clean code.
18570
18571         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
18572         (mono_type_equal): Change signature to eliminate warnings.
18573
18574 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18575
18576         * icall.c, loader.c: remove the internalcall array constructors.
18577         Changes to match the new MonoArray structure.
18578         * object.h, object.c: an array object doesn't allocate an extra
18579         vector. Add mono_array_new_full () to create jagged arrays easily.
18580
18581 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18582
18583         * metadata.h, metadata.c: add mono_metadata_field_info () to
18584         retreive all the info about a field from vairous tables.
18585         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
18586         * class.h, class.c: augment MonoClassField with more info.
18587         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
18588         policy and load a field's RVA if needed.
18589
18590 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
18591
18592         * class.c (mono_class_metadata_init): create a trampoline for all
18593         virtual functions instead of actually compiling them.
18594
18595 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
18596
18597         * class.h, class.c: include name in MonoClassField.
18598         * class.c: fix fundamental type of System.Object and System.String.
18599         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
18600         tokens in ldtoken.
18601         * icall.c: remove internalcalls for the Reflection stuff that is now
18602         done in C# code.
18603         * loader.c: mono_field_from_memberref () implementation.
18604         * mono-endian.c: thinko (s/struct/union/g).
18605         * object.c, object.h: make the mono_string_* prototypes actually use
18606         MonoString instead of MonoObject.
18607         * reflection.c, reflection.h: updates for changes in the reflection
18608         code in corlib: we use C structures that map to the actual C# classes.
18609         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
18610         fat method header if needed and use the info from the ILGenerator for
18611         methods. Handle fields in types. Misc fixes.
18612
18613 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
18614
18615         * class.c (mono_class_metadata_init): bug fix: always allocate
18616         space for static class data
18617
18618 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
18619
18620         * class.c (mono_compute_relative_numbering): use relative
18621         numbering to support fast runtime type checks.
18622
18623 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
18624
18625         * class.c (mono_class_create_from_typeref): added debugging output
18626         to print class name when MonoDummy is returned instead of real class
18627
18628 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
18629
18630         * class.c (mono_class_metadata_init): interface offset table now
18631         contains pointers into the vtable - this is more efficient for the jit
18632
18633 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
18634
18635         * class.c (mono_class_metadata_init): use a temporary vtable (the
18636         old algorithm only worked for the interpreter, but not for the jit)
18637
18638 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
18639
18640         * loader.c (method_from_memberref): use mono_class_get to get the
18641         class of an array instead of using System.Array directly.
18642         (mono_get_method): also add MEMBERREF methods to the method cache
18643         which usefull for arrays.
18644
18645 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
18646
18647         * pedump.c (arch_compile_method): added to compute vtable entry
18648
18649         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
18650         number of interfaces.
18651         
18652         * class.h: merged MonoArrayClass into MonoClass
18653
18654         * class.c (mono_class_create_from_typedef): compute the vtable size and
18655         allocate space to include the vtable inside MonoClass
18656         (mono_class_metadata_init): initialize the vtable
18657
18658 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
18659
18660         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
18661         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
18662         * image.c: endian fixes by Laurent Rioux.
18663         * object.h, object.c: rename MonoStringObject to MonoString and
18664         MonoArrayObject to MonoArray. Change some function names to conform to
18665         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
18666         guint16* as first argument, so don't use char*.
18667         Provide macros to do the interesting things on arrays in a portable way.
18668         * threads-pthread.c: updates for the API changes and #include <sched.h>
18669         (required for sched_yield()).
18670         * icall.c: updates for the API changes above.
18671         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
18672         platforms that need them.
18673
18674 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18675
18676         * class.c: set the correct type for all the fundamental
18677         type when loading the class.
18678
18679 2001-10-05  Dick Porter  <dick@ximian.com>
18680
18681         * threads-pthread.c (pthread_mutex_timedlock): Simple
18682         compatibility version for C libraries that lack this call.
18683
18684 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18685
18686         * class.c: MonoTypes stored in MonoClass are stored as
18687         fundamental MonoTypes when the class represents a
18688         fundamental type (System.Int32, ...).
18689         The TypeHandle return by ldtoken is a MonoType*.
18690         * icall.c: ves_icall_get_data_chunk () write out all the
18691         PE/COFF stuff. Implement ves_icall_define_method (),
18692         ves_icall_set_method_body (), ves_icall_type_from_handle ().
18693         * image.c: properly skip unknown streams.
18694         * loader.h, loader.c: add type_class to mono_defaults.
18695         * metadata.c, metadata.h: export compute_size () as
18696         mono_metadata_compute_size () with a better interface.
18697         Typo and C&P fixes.
18698         * pedump.c: don't try to print the entry point RVA if there is no entry point.
18699         * reflection.c, reflection.h: many cleanups, fixes, output method
18700         signatures and headers, typedef and typeref info, compress the metadata
18701         tables, output all the heap streams, cli header etc.
18702         * row-indexes.h: typo fixes.
18703
18704 2001-10-04  Dick Porter  <dick@ximian.com>
18705
18706         * object.h: Add a synchronisation mutex struct to MonoObject
18707
18708         * object.c (mono_new_object): Initialise the object
18709         synchronisation mutexes
18710
18711         * icall.c: System.Threading.Monitor internal calls
18712         
18713         * threads-pthread.h:
18714         * threads-pthread.c: System.Threading.Monitor internal calls
18715
18716         * threads-types.h: New file, includes the system-specific thread
18717         structures
18718         
18719         * threads-pthread-types.h:
18720         * threads-pthread-types.c: New files, handle pthread-specific
18721         synchronisation types
18722
18723         * threads-dummy-types.h: 
18724         * threads-dummy-types.c: New files of dummy support for
18725         thread-specific types
18726
18727         * metadata.c:
18728         * image.c:
18729         * pedump.c: include mono-endian.h not endian.h
18730         
18731         * Makefile.am: More threads files.
18732         Name mono-endian.h not endian.h
18733
18734 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
18735
18736         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
18737         stuff and implement a few more bits.
18738         * icall.c: a field needs to be dereferenced twice. Do not use the same
18739         name for two variables in the same scope.
18740         * image.c, image.h: cleanups.
18741
18742 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
18743
18744         * class.c (mono_class_metadata_init): bug fix: compute the right size
18745
18746 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
18747
18748         * icall.c: implemented some of the Reflection internalcalls.
18749         * image.c, image.h: start writing out the PE/COFF image.
18750         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
18751         that does the reverse than decode_blob_size ().
18752         * object.c: use mono_metadata_encode_value (). Move here
18753         temporary implementation of mono_string_to_utf8 ().
18754         * rawbuffer.c: make malloc_map static.
18755
18756 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18757
18758         * metadata.c: fix type comparison for arrays.
18759         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
18760         Added a couple of new classes to monodefaults.
18761         * icall.c: added a couple of Reflection-related internalcalls.
18762         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
18763         Added a byval_arg MonoType to MonoClass.
18764
18765 2001-09-28  Dick Porter  <dick@ximian.com>
18766
18767         * icall.c:
18768         * threads-pthread.h: 
18769         * threads-pthread.c: Implemented internal calls for
18770         LocalDataStoreSlot operations.  Applied mutexes around all shared
18771         data.  Reworked the thread creation and Start() operations to
18772         avoid a race condition.
18773         
18774         * threads-dummy.h:
18775         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
18776
18777 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
18778
18779         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
18780
18781 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
18782
18783         * class.c, loader.c: warn and return NULL instead of erroring out.
18784         * icall.c: added System.AppDomain::getCurDomain().
18785         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
18786
18787 2001-09-25  Dick Porter  <dick@ximian.com>
18788
18789         * threads-pthread.h:
18790         * threads-pthread.c: Implemented timed thread joining and added
18791         System.Threading.Thread::Join_internal internal call
18792
18793         * icall.c: Added System.Threading.Thread::Join_internal internal call
18794
18795         * threads-dummy.h:
18796         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
18797
18798 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
18799
18800         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
18801         mono_string_intern () to implement the semantics of the ldstr opcode
18802         and the interning of System.Strings.
18803         * icall.c: provide hooks to make String::IsIntern and String::Intern
18804         internalcalls.
18805
18806 2001-09-23  Dick Porter  <dick@ximian.com>
18807
18808         * threads-dummy.c: 
18809         * threads-dummy.h: New files of dummy threading routines
18810
18811         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
18812         support code based on system specifics
18813
18814         Rename PTHREAD_LIBS to THREAD_LIBS
18815         
18816 2001-09-23  Dick Porter  <dick@ximian.com>
18817
18818         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
18819         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
18820         internal calls.
18821         (mono_thread_init): Set up a Thread object instance to return when
18822         the main thread calls Thread.CurrentThread
18823         (mono_thread_cleanup): Wait for all subthreads to exit
18824
18825         * icall.c: New internal calls for System.Threading.Thread::Sleep
18826         (including Schedule) and CurrentThread
18827
18828         * threads.h: New file, to insulate thread-specific stuff from the
18829         rest of the code
18830
18831 2001-09-21  Dick Porter  <dick@ximian.com>
18832
18833         * threads-pthread.h: 
18834         * threads-pthread.c: New file, for handling pthreads-style
18835         threading support.  Start() now starts a new thread and executes
18836         the ThreadStart delegate instance.
18837
18838         * icall.c: Added the internalcall for
18839         System.Threading.Thread::Start_internal
18840
18841         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
18842
18843 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
18844
18845         * loader.c: work around the different signatures for delegates
18846         constructors csc generates in compiled code vs the ones compiled in mscorlib.
18847
18848 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
18849
18850         * class.h, class.c: add mono_class_get_field_from_name ().
18851         * *: Fix C comments and other ANSI C issues.
18852
18853 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
18854
18855         * endian.h, assembly.c: fix some endianness issues.
18856
18857 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
18858
18859         * loader.h, load.c: add delegate_class to mono_defaults.
18860         Handle runtime provided methods in mono_get_method ().
18861
18862 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
18863
18864         * loader.c (mono_get_method): use pinvoke for internal call
18865
18866         * icall.c: use pinvoke for internal call
18867
18868         * loader.c (method_from_memberref): set the method name
18869
18870 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
18871
18872         * metadata.c: help the compiler generate better code for
18873         mono_class_from_mono_type ().
18874
18875 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
18876
18877         * class.c (mono_class_metadata_init): delayed computing of the
18878         class size to mono_class_metadata_init ()
18879
18880 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
18881
18882         * class.c, class.h: add an interfaces member to MonoClass.
18883         * image.c, image.h: add assembly_name field to MonoImage
18884         from the assembly table.
18885         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
18886
18887 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
18888
18889         * class.c: Handle Array in mono_class_from_mono_type ().
18890         * metadata.c, pedump.c: some endian fixes.
18891
18892 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18893
18894         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
18895         * metadata.c: fix small problem introduced with the latest commit.
18896
18897 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
18898
18899         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
18900         We don't need a MonoMetadata pointer anymore to compare signatures in
18901         mono_metadata_signature_equal (), update callers.
18902         Reduced memory usage an number of allocations for MonoMethodHeader and
18903         MonoMethodSignature.
18904
18905 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
18906
18907         * metadata.c: added compare for szarray.
18908
18909 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
18910
18911         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
18912         and add a couple more types to it and mono_defaults. Give an hint on
18913         classes that need implementing in our corlib and are referenced
18914         in mscorlib.
18915
18916 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
18917
18918         * class.h, class.c: keep track if a class is also an Enum.
18919         * loader.c: Implement a couple more types for use in libffi
18920         marshalling. Gives better diagnostics when failing to dlopen
18921         a library. Set method->klass for P/Invoke methods, too.
18922
18923 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
18924
18925         * class.c, class.h: add a MonoType this_arg to MonoClass that
18926         represents a pointer to an object of the class' type that
18927         can be used by the interpreter and later the type cache.
18928         Add best guess alignment info for valuetype objects.
18929
18930 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
18931
18932         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
18933         into MonoType: one less level of indirection and allocation and
18934         simplifies quite a bit of code. Added cache for MonoTypes that are
18935         used frequently, so that we don't need to allocate them all the time.
18936
18937 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
18938
18939         * class.c (mono_class_create_from_typedef): System.Enum is also a
18940         value type, although it does not derive from System.ValueType
18941         (maybe a bug in the ms compiler?)
18942
18943         * metadata.c (mono_type_size): return the right size for value types
18944
18945         * loader.c (mono_get_method): only initialize method header if not abstract
18946
18947         * class.c (mono_class_from_mono_type): use mono_default values. 
18948
18949 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
18950
18951         * *: use MonoClass pointers instead of <type_tokens>
18952         
18953         * class.h: new flag: metadata_inited.
18954
18955         * class.c (mono_class_metadata_init): impl.
18956         (mono_class_instance_size): impl.
18957         (mono_class_data_size): impl.
18958
18959 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18960
18961         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
18962         MonoClass now has the name and name_space fields. 
18963         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
18964         mono_get_method () takes and optional MonoClass as argument.
18965         Removed mono_typedef_from_name() and added mono_class_token_from_name()
18966         instead that takes advantage of a map from class names to typedef
18967         tokens in MonoImage.
18968
18969 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
18970
18971         * metadata.c: zero is not a valid alignment boundary.
18972         Merge MONO_TYPE_VOID in default decoding code.
18973
18974 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
18975
18976         * image.h: merged MonoMetadata into MonoImage
18977
18978         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
18979         identify the type of elements.
18980
18981 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
18982
18983         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
18984         * cil-coff.h: split MonoMSDOSHeader and add size info.
18985         * image.c: add some consistency checks.
18986         * metadata.c: fix row size computation: one programmer
18987         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
18988         add explanation for the locator routine.
18989         Fix decoding of size in method header.
18990         
18991 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
18992
18993         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
18994         (g_concat_dir_and_file): Bring g_concat_dir_and_file
18995         function from gnome-libs.  This uses the right path separator
18996         based on the OS, and also works around a bug in some systems where
18997         a double slash is not allowed. 
18998         (default_assembly_name_resolver): Use g_concat_dir_and_file
18999         (mono_assembly_open): ditto.
19000
19001 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
19002
19003         * metadata.c (mono_metadata_signature_equal): impl.
19004
19005         * *: void is now a realy MonoType (instead of using NULL)
19006         
19007         * metadata.c (do_mono_metadata_parse_type): use
19008         mono_metadata_parse_type to parse void value.
19009
19010 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
19011
19012         * metadata.c, metadata.h: in the signature and method header store
19013         only the space required for holding the loca vars and incoming arguments.
19014
19015 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
19016
19017         * metadata.c (do_mono_metadata_parse_type): treat void like any
19018         other type (instead of assigning NULL);
19019
19020 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
19021
19022         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
19023
19024 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
19025
19026         * image.c (do_mono_image_open): added a cache for arrays.
19027
19028 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19029
19030         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
19031         decode a single column from a row in a metadata table and changes
19032         to take advantage of it in the typedef locator (gives a nice speed up).
19033         Store offset info for function params.
19034
19035 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
19036
19037         * image.h (MONO_IMAGE_IS_CORLIB): removed 
19038
19039 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
19040
19041         * assembly.c: how could mono_assembly_close () had ever worked?
19042         * metadata.c, metadata.h: provide offset info for local vars.
19043         Implement mono_type_size () to take care of alignment as well
19044         as size (it was mono_field_type_size in cli/class.c before).
19045
19046 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
19047
19048         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
19049
19050         * assembly.h (CORLIB_NAME): set to corlib.dll
19051
19052         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
19053
19054 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19055
19056         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
19057         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
19058         tokentype.h: massive namespace cleanup.
19059
19060 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19061
19062         * metadata.h, metadata.c: decode exception clauses when parsing method header.
19063
19064 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
19065
19066         * metadata.c (mono_metadata_free_type): added check for type !=
19067         NULL (void) before calling mono_metadata_free_type()
19068
19069 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
19070
19071         * metadata.h, row_indexes.h: added header with enumerations to use
19072         to index in the columns from tables in metadata and to decode coded
19073         tokens: we should start using this instead of embedding magic numbers
19074         all over the code.
19075
19076 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
19077
19078         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
19079         Move metadata_t info from cli_image_info_t to MonoImage, where
19080         it's easily accessible. Changed all the uses accordingly.
19081         Added the method and class caches to MonoImage.
19082         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
19083         and mono_metadata_decode_value () signature to be more consistent
19084         with the other parse functions (and simplify code). Taken advantage
19085         of zero-length array allocation with GCC. Removed reduntant (and
19086         wrong) MonoFieldType struct and use MonoParam instead. Changed
19087         mono_metadata_parse_field_type () to use common code for parsing.
19088         Added mono_metadata_typedef_from_field () and
19089         mono_metadata_typedef_from_method () to lookup a typedef index from a
19090         field or method token.
19091         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
19092
19093 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
19094
19095         * metadata.c (mono_metadata_parse_field_type): Implement. 
19096         (do_mono_metadata_parse_type): Split engine from
19097         mono_metadata_parse_type, so that we can create smaller structures
19098         for things that just have one pointer to the MonoType (look at
19099         the MonoFieldType)
19100
19101 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
19102
19103         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
19104         as Jan Gray found out, it is incorrect. 
19105
19106 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
19107
19108         * assembly.c: Implement asssembly loading.  This loads an image
19109         and loads all the referenced assemblies.  Come to think of it, we
19110         could always do lazy loading of the assemblies. 
19111
19112         * image.c (mono_image_open): Keep loaded images in a hashtable.
19113
19114         * image.h (MonoImage): Add reference count.
19115
19116 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
19117
19118         * assembly.c (mono_assembly_open): Keep track of the file name in
19119         case the assembly has no ASSEMBLY table.
19120
19121         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
19122         from get.c here.
19123
19124 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
19125
19126         * metadata.c, metadata.h: decode local vars in method header
19127         parse function. Change callers accordingly.
19128
19129 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
19130
19131         * metadata.h, cil-coff.h: protect against multiple inclusion.
19132         Added some new structures to hold information decoded from metadata:
19133         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
19134         and relevant decoding/free functions.
19135         * metadata.c: implement decoding functions. Add warning for out of bounds
19136         index in mono_metadata_locate(). Implement mono_get_method () to retreive
19137         all the info about a method signature and invocation. Remove check on
19138         uninitialized local var in parse_mh() and fix memory leak.
19139
19140 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
19141
19142         * metadata.h: More macros.
19143
19144         * tokentype.h: New file.
19145
19146 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
19147
19148         * assembly.c: added a consistency check and initialize
19149         some structures with g_new0().
19150         * metadata.c: fixed a couple more bugs in table size computation
19151         and add other checks for out-of bound access to metadata.
19152
19153 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
19154
19155         * metatada.c: fix bugs computing table sizes. Spew a
19156         warning when index in string heap is out of bounds.
19157
19158 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
19159
19160         * metadata.h: Add a couple of macros to manipulate tokens. 
19161
19162 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19163
19164         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
19165         cli_section_tables).
19166
19167 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
19168
19169         * metadata.c (mono_metadata_user_string): New function, provides
19170         access to the UserString heap. 
19171
19172 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
19173
19174         * metadata.c: Add inline documentation.
19175
19176 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
19177
19178         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
19179         files. 
19180
19181 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
19182
19183         * typeattr.h: New file, TypeAttribute flags. 
19184
19185 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
19186
19187         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
19188         mono_assembly_ensure_section): Section loading code.
19189         (load_section_tables): Load the sections.
19190
19191         * mono/metadata/metadata.c (mono_metadata_locate_token,
19192         mono_metadata_locate): Functions to locate the information
19193         definition given a token or a table and an index.
19194         (mono_metadata_compute_table_bases): New.
19195         (compute_size): New function to compute the sizes of the various
19196         tables.
19197
19198         * mono/metadata/metadata.h: Finish listing the different index
19199         types. 
19200
19201         * mono/metadata/pedump.c: Improve to dump new information.
19202
19203 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
19204
19205         * mono/metadata/metadata.c: Entered all the tables matching
19206         Beta2. 
19207
19208         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
19209
19210
19211