c43fc7a2b3c8feb87818b23dbb59e5ddc822d66b
[mono.git] / mono / metadata / ChangeLog
1
2 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
3
4         * gc.c: cope with the target object of a GC handle being NULL
5         (bug #78877).
6
7 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
8
9         * class.c: recursively check parent's explicit implementations
10         of interface methods (fixes bug #79125).
11
12 2006-08-19  Miguel de Icaza  <miguel@novell.com>
13
14         * filewatcher.c: Avoid warnings when building, do not redefine
15         constants that are defined.
16
17         Remove warnings.
18
19 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20
21         * image.c: don't fail when the link points to an absolute path.
22
23 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
24
25         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
26         Fix CID #3.
27
28 2006-08-17  Miguel de Icaza  <miguel@novell.com>
29
30         * image.c (full_path): A new method used to obtain the actual path
31         of an assembly even in the presence of symbolic links.  
32
33         This is necessary for the case where we are running a binary that
34         has been GACed, but we are using the "published" path name
35         ($prefix/mono/1.0/blah.exe) which happens to point to the real
36         file in the GAC.
37
38         This was the source of the failure for the `xsp' command with the
39         recent AppDomain changes, as far as the runtime was concerned,
40         there were two different assemblies: $prefix/mono/1.0/blah.exe and
41         $prefix/mono/gac/blah/version/blah.exe.
42
43         (do_mono_image_open): use full path
44
45 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
46
47         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
48
49 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
50
51         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
52         domain_id is supplied. Fix CID #241 and corlib's unit tests.
53
54 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
55
56         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
57         small structures. Fixes #78990.
58
59 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
60
61         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
62
63         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
64
65 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
66
67         * appdomain.c:
68         * marshal.c: don't load all the assemblies from a domain into newly
69         created ones. The new domains might have different rules and load
70         assemblies from different locations. Fixes bug #76757.
71
72         Patch by Lluis. Conflicts resolved by Brian Crowell.
73
74 2006-08-16  Alp Toker  <alp@atoker.com>
75
76         * socket-io.c: First half of the fix for #79084.
77         Set sa_size to the length of the content, not that of the struct.
78         Don't add NULL suffix to the content, this should be done in
79         managed code if needed.
80
81 2006-08-14  Raja R Harinath  <rharinath@novell.com>
82
83         Fix part of #79012
84         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
85         mono_metadata_parse_type returns NULL.
86
87 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
88
89         * normalization-tables.h : new file for string normalization data.
90         * locales.c, locales.h, icall.c :
91           added load_normalization_resource() for string normalization,
92           and icall as well.
93         * Makefile.am : added normalization-tables.h to the sources.
94
95 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
96
97         * marshal.c: Add more helper functions to reduce code duplication and use them
98         everywhere.
99
100 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
101
102         * marshal.c: Fix non-x86 stdcall warnings.
103         
104         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
105         them everywhere.
106
107 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
108
109         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
110         type check on multi-dimensional arrays. Fixes #79000.
111
112 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
113
114         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
115         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
116         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
117         * class-internals.h: add is_com_object to class structure.
118         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
119         null checks to COM object marshalling. Fix .ctor call on RCW.
120         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
121         
122         All code is contributed under the MIT/X11 license.
123
124 2006-08-09  Dick Porter  <dick@ximian.com>
125
126         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
127         racing mono_monitor_allocator_lock() somewhere, so don't delete
128         the critical section for now.  Found by running and exiting
129         monodevelop.
130
131 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
132
133         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
134         (ves_icall_System_ComObject_FindInterface): Ditto.
135         (ves_icall_System_ComObject_CacheInterface): Ditto.
136
137         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
138         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
139
140 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
141
142         * threadpool.c: treat pipes from process asynchronous reads as sockets
143         when reading from them, so we get select/poll or epoll to wait for
144         data.
145
146 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
147
148         * loader.c: Fix a typo (CID #233) in the null check.
149
150 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
151
152         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
153         Hopefully fixes #78949.
154         
155         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
156         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
157         bytes. Fixes #78972.
158
159 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
160
161         * filewatcher.c: we need to set errno here.
162
163 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
164
165         * filewatcher.c: let Win32Exception get the error value.
166
167 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
168
169         * filewatcher.c: translate errno into win32 errors for Win32Exception
170         to know what happened.
171
172 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
173
174         * threadpool.c: Fix more warnings.
175
176         * assembly.c (search_loaded): Fix warnings.
177
178         * threadpool.c (mono_thread_pool_finish): Fix warnings.
179         (mono_async_invoke): Ditto.
180
181 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
182
183         * object.c (mono_remote_class_vtable): Need to create proxy vtable
184         entries for __ComObject type in addition to ComImport types.
185         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
186         about hash table.
187         
188         All code is contributed under the MIT/X11 license.
189
190 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
191
192         * image.c: avoid tentative loading of modulerefs that contain
193         no metadata (P/Invoke library names).
194
195 2006-07-28  Dick Porter  <dick@ximian.com>
196
197         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
198         mono_loader_lock() somewhere, so don't delete the critical section
199         for now.  Found by running and exiting monodevelop.
200
201 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
202
203         * filewatcher.c: define the inotify syscalls when we're building on
204         linux and have sys/syscall.h. The build system might not have support
205         for inotify but the target system might have it.
206
207 2006-07-26  Miguel de Icaza  <miguel@novell.com>
208
209         * domain.c: Documentation updates.
210
211         * loader.c (mono_free_method): Do not release the method
212         information if we are being profiled, as profilers will use this
213         information at shut down to present some data to the user.
214
215         This is needed so that the profiler does not crash, as the
216         profiler tends to keep MonoMethods around, and they might become
217         invalid if we free these.
218
219         (mono_get_method_constrained): Return the original CIL stream
220         method as well, so verification can be performed against it.
221
222 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
223
224         * filewatcher.[ch]: support for inotify file system watcher.
225         * icall.c: add new internal calls for the inotify file system watcher.
226
227 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
228
229         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
230         #78888.
231
232 2006-07-20  Dick Porter  <dick@ximian.com>
233
234         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
235         warning.
236
237 2006-07-20  Dick Porter  <dick@ximian.com>
238
239         * threads.c (start_wrapper): Do the thread cleanup while we still
240         hold a reference to its object.  Fixes bug 78123.
241
242 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
243
244         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
245         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
246           "managed-to-managed".
247         * icall.c: Redirect string constructors that take sbyte* to
248           ves_icall_System_String_ctor_RedirectToCreateString.
249         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
250           to CreateString () methods with matching signature.
251         * reflection.c: Use original security informations for
252           MONO_WRAPPER_MANAGED_TO_MANAGED.
253         * security-manager.c: Use original security informations for
254           MONO_WRAPPER_MANAGED_TO_MANAGED.
255         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
256           that is a placeholder and only its address should be used.
257         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
258           that is a placeholder and only its address should be used.
259
260 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
261
262         Begin implementing COM Interop.
263         * appdomain.c: Increment corlib version.
264         * class.c: Set ComImport classes' parent to __ComObject.
265         * loader.c: Mark cominterop methods as such.
266         * domain.c: Add __ComObject class to MonoDefaults structure.
267         * image.c: Add 2 hashtables to the image for COM Interop related methods
268         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
269         using the mempool allocator
270         
271         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
272         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
273         declaration for mono_metadata_type_dup_mp.
274         
275         * debug-helpers.c: Added strings for two additional wrapper types
276         * object.c: Create proxy objects for ComImport classes
277         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
278         and added __ComObject class to MonoDefaults structure.
279         
280         * object-internals.h: Finish MonoRealProxy definition, and add definition of
281         MonoComInteropProxy and MonoComObject.
282         
283         * marshal.c: Added support for COM Interop
284         (signature_cominterop): Converts managed signature to corresponding
285         unmanaged COM signature.
286         (cominterop_get_function_pointer): gets unmanaged function pointer via
287         COM object vtable
288         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
289         (cominterop_get_method_interface): returns interface type that method is defined on
290         (mono_mb_emit_cominterop_call): emits native call to function pointer
291         gotten from vtable
292         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
293         that matches signature of unmanaged function.
294         (cominterop_get_native_wrapper): wrapper around adjusted method call.
295         (cominterop_get_invoke): forwards call from proxy to __ComObject
296         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
297         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
298         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
299         
300         * marshal.h: Added Marshal icall declarations.
301         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
302         so we can access them in finalizer
303         
304 2006-07-14  Dick Porter  <dick@ximian.com>
305
306         * object.c (mono_type_initialization_cleanup): Fix a race
307         condition by temporarily commenting out the critical section
308         deletion.
309
310 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
311
312         * reflection.c (create_custom_attr): Fix some warnings.
313         (create_custom_attr_data): Ditto.
314         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
315         types. Fixes #78855.
316
317 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
318
319         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
320
321         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
322
323 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
324
325         * reflection.c (resolve_object): Add support for DynamicMethod.
326
327         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
328         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
329
330 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
331
332         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
333         don't leak GPtrArray's pdata has we have no use (nor free) for it.
334
335 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
336
337         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
338         Fixes #77888.
339
340 2006-06-30  Raja R Harinath  <rharinath@novell.com>
341
342         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
343         slightly: remove a shadow local variable.
344
345 2006-06-29  Raja R Harinath  <rharinath@novell.com>
346
347         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
348         definition that introduces the virtual function slot.
349         Also fix Coverity #105.
350
351 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
352
353         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
354         for dynamic assemblies. Fixes #78724.
355
356 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
357
358         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
359         Fixes #78722.
360
361 2006-06-21  Martin Baulig  <martin@ximian.com>
362
363         * reflection.c
364         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
365         fixes #76484.
366
367 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
368
369         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
370
371 2006-06-20  Raja R Harinath  <rharinath@novell.com>
372
373         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
374         nor TYPEREFs.
375         * class.c (mono_class_create_from_typespec): Add 'context' argument.
376         Inflate result if necessary.
377         (mono_class_get_full): Remove old version.  Rename from
378         'mono_class_get' and add 'context' argument.  Pass it to
379         ..._create_from_typespec.
380         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
381         (mono_ldtoken): Revert change below.
382
383 2006-06-20  Martin Baulig  <martin@ximian.com>
384
385         * class.c (mono_ldtoken): Don't pass the generic context to
386         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
387
388 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
389
390         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
391         and later freeing it. Fixes #78638.
392
393 2006-06-15  Miguel de Icaza  <miguel@novell.com>
394
395         * icall.c (mono_class_get_throw): Revert over-zealous error
396         throwing, the caller for mono_class_get_throw will cope with
397         errors when classes are not properly initialized already.
398
399         The code still copes with loader exceptions though.
400
401         Fixes the regression in reftype1 and reftype3 from the CAS tests.
402         
403 2006-06-14  Miguel de Icaza  <miguel@novell.com>
404
405         Fixes the `make run1' version of RuntimeAbort (to be commited,
406         source is in Bugzilla).
407         
408         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
409         FALSE on class loading failure instead of returning true.
410
411         * class.c (mono_class_create_from_typedef): It is possible for
412         mono_metadata_interfaces_from_typedef_full to fail if a class is
413         not found, cope with this.
414         
415
416 2006-06-14  Dick Porter  <dick@ximian.com>
417
418         * socket-io.c: 
419         * process.c: Fix a bunch of signed/unsigned warnings from gcc
420         4.1.1
421
422 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
423
424         * culture-info-table.h : oops, forgot to make it nsync with r61548.
425
426 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
427
428         * icall.c: Another fix for building mono in Visual Studio.
429
430 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
431
432         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
433         
434 2006-06-09  Martin Baulig  <martin@ximian.com>
435
436         * debug-mono-symfile.c: Put this back and really fix it this
437         time. Sorry for all the trouble.
438
439 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
440
441         * icall.c (mono_class_get_throw): Fix a warning.
442         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
443         ReflectionTypeLoadException if needed. Fixes #78606.
444
445         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
446         (mono_class_init): Ditto.
447
448         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
449         ref_only exceptions.
450         (mono_loader_clear_error): Make this work even if there is no error.
451
452 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
453
454         * object-internals.h marshal.c marshal.h icall.c: Implement method 
455         Marshal.GetComSlotForMethodInfo using internal call.
456
457 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
458
459         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
460         a function for signalling it.
461
462         * class.c (mono_class_from_typeref): Use the new kind of loader error when
463         a referenced assembly is not found.
464
465         * loader.c (mono_loader_error_prepare_exception): Add support for 
466         LOADER_ERROR_ASSEMBLY. Fix formatting.
467
468 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
469
470         * domain.c appdomain.c class-internals.h marshal.c: Add support 
471         for VARIANT marshalling on windows and increment corlib version
472         since Variant struct was added.
473
474 2006-06-03  Miguel de Icaza  <miguel@novell.com>
475
476         * debug-mono-symfile.c: Revert Martin's previous patch which broke
477         stack trace line information:
478
479         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
480         (Martin) when looking up B which is between A and C, return A not C.
481
482         Bug is #78573.
483
484         Thanks to Alexander Olk for tracking this down.
485
486 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
487
488         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
489         
490         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
491         avoid clobbering its value.
492         (mono_string_to_lpstr): Fix a warning on windows.
493
494 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
495
496         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
497
498         * reflection.c loader.c: Removed references to 'dummy' flag.
499
500         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
501
502         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
503         it gets GC tracking.
504
505         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
506         GC tracking.
507         
508         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
509
510         * marshal.c threadpool.c: Update callers of mono_async_result_new.
511
512         * appdomain.c: Bump corlib version.
513
514 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
515
516         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
517         CEE_STIND_REF when working with object references.
518
519 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
520
521         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
522         Fixes #78539.
523
524 2006-05-30  Miguel de Icaza  <miguel@novell.com>
525
526         * loader.c (method_from_memberref): Fix argument value for
527         mono_loader_set_error_method_load (I was passing the MonoClass
528         instead of the class name char *).
529
530 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
531
532         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
533         CEE_STIND_REF when working with object references.
534
535 2006-05-30  Martin Baulig  <martin@ximian.com>
536
537         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
538         mono_method_full_name() change and replace the ':' with a '.'
539         here.
540
541 2006-05-30  Martin Baulig  <martin@ximian.com>
542
543         * debug-mono-symfile.c
544         (mono_debug_symfile_lookup_location): Fix the algorithm:
545         when looking up B which is between A and C, return A not C.
546
547 2006-05-29  Martin Baulig  <martin@ximian.com>
548
549         * mono-debug.h
550         (MonoDebugMethodInfo): Make the typedef public.
551         (MonoDebugSourceLocation): New public struct.
552
553         * mono-debug.c
554         (mono_debug_source_location_from_address): Removed.
555         (mono_debug_source_location_from_il_offset): Removed.
556         (mono_debug_il_offset_from_address): Removed.
557         (mono_debug_address_from_il_offset): Removed.
558         (mono_debug_lookup_method): New public function.
559         (mono_debug_lookup_source_location): New public function; replaces
560         the old mono_debug_source_location_from_*() functions; see the
561         inline documentation.
562         (mono_debug_free_source_location): New public function.
563         (mono_debug_print_stack_frame): New public function; see the
564         inline documentation.
565
566         * debug-mono-symfile.c
567         (mono_debug_find_source_location): Renamed into
568         mono_debug_symfile_lookup_location(); only take a
569         `MonoDebugMethodInfo *' and an `offset' argument; added inline
570         documentation.
571         (mono_debug_find_method): Renamed into
572         mono_debug_symfile_lookup_method().
573
574 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
575
576         * assembly.c (mono_assembly_open_full): Dont overwrite the status
577         returned by mono_image_open_full ().
578
579         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
580         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
581         #78517.
582
583         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
584         #78518.
585
586 2006-05-27  Miguel de Icaza  <miguel@novell.com>
587
588         * class.c (mono_class_from_typeref): handle missing images
589         earlier, deals with bug #78418.   Refactor code; 
590
591         Fix a warning introduced in my previous commit (some stale code
592         from before I revisited my patch).
593
594         * class.c (mono_class_create_from_typedef): On failure, remove the
595         class from the MonoImage->class_cache as the class is not
596         initialized;   Fixes the leak pointed out by Paolo.
597
598 2006-05-25  Dick Porter  <dick@ximian.com>
599
600         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
601         DeleteCriticalSections until I figure out which one may still be
602         sometimes locked when mono_thread_cleanup is called.
603
604 2006-05-24  Dick Porter  <dick@ximian.com>
605
606         * threads.c (mono_thread_cleanup): Move the threading cleanup out
607         of mono_thread_manage and back into its own function, so it can be
608         called after the finalizer thread has finished.
609
610         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
611
612 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
613
614         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
615         Fixes #78495.
616
617         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
618         with non-blittable elements.
619         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
620
621 2006-05-24  Martin Baulig  <martin@ximian.com>
622
623         * mono-debug-debugger.h (MonoDebuggerEvent): Added
624         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
625
626         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
627         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
628         `mono_debugger_event_handler' to NULL.
629
630 2006-05-24  Martin Baulig  <martin@ximian.com>
631
632         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
633
634 2006-05-24  Martin Baulig  <martin@ximian.com>
635
636         * mono-debug-debugger.h
637         (mono_debugger_create_notification_function): Added
638         `MonoCodeManager *' argument.
639
640 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
641
642         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
643
644 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
645
646         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
647         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
648         implementation.
649
650 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
651
652         * icall.c: precise GC support: objects can't be stored in unmanaged
653         memory anymore, even if they are kept alive by other references: since
654         they can move the GC needs to be able to always find them.
655
656 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
657
658         * object.c: precise GC support for static fields. Support
659         for moving GCs: write barriers and pinned allocation for interned
660         strings.
661
662 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
663
664         * domain.c, domain-internals.h: precise GC support for the MonoDomain
665         structure.
666
667 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
668
669         * class.c, gc.c: sgen and precise GC updates.
670
671 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
672
673         * marshal.h, marshal.c: added write barrier wrapper and precise type
674         fixes.
675
676 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
677
678         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
679         support.
680
681 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
682
683         * reflection.c: precise and sgen GC updates.
684
685 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
686
687         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
688
689 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
690
691         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
692
693 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
694
695         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
696         MONO_TYPE_OBJECT. Fixes #78462.
697
698 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
699
700         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
701         and blittable types.
702
703 2006-05-17  Miguel de Icaza  <miguel@novell.com>
704
705         * class.c (mono_class_get_exception_for_failure): Implement parts
706         of a TODO: if the loader error is set (instead of the class
707         error), we return a Loader exception that can be properly thrown
708         elsewhere.
709
710         This was exposed by some Winforms 2.0 code that I tried to run
711         (Atsushi pointed me to it).
712
713 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
714
715         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
716         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
717         
718         * marshal.c (emit_marshal_vtype): Add limited support for 
719         UnmanagedType.LPStruct. Fixes #78427.
720
721         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
722         Applied a patch from kangaroo to fix #77523.
723
724 2006-05-17  Martin Baulig  <martin@ximian.com>
725
726         * threads.c
727         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
728         (debugger_thread_created): Removed.
729         (debugger_thread_exited): Removed.
730
731 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
732
733         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
734
735         * object-internals.h (MonoReflectionResource): Sync with managed version.
736
737 2006-05-12  Wade Berrier <wberrier@novell.com>
738
739         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
740
741 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
742
743         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
744         functions try to allocate from the image mempool.
745
746 2006-05-12  Dick Porter  <dick@ximian.com>
747
748         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
749
750 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
751
752         * object.c: The FieldGetter and FieldSetter methods require the full
753         name of the class, not only the name. Fixes bug #78277.
754
755 2006-05-11  Miguel de Icaza  <miguel@novell.com>
756
757         * loader.c (method_from_memberref): Do not pass the NULL klass to
758         mono_loader_set_error_() methods.  Pass the non-NULL value
759         (class). 
760
761 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
762
763         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
764         (mono_assembly_close): Null out assembly->image->references after freeing it.
765
766         * image.c (mono_image_close): Free image->references.
767         
768         * reflection.c (mono_image_basic_init): Fix a small memory leak.
769
770 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
771
772         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
773         before checking if it's NULL (g_assert).
774
775 2006-05-10  Martin Baulig  <martin@ximian.com>
776
777         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
778         I thought I already killed that two months ago, but now it somehow reappeared.
779
780 2006-05-10  Martin Baulig  <martin@ximian.com>
781
782         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
783
784 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
785
786         * reflection.c: Allocate memory for dynamically created methods in the image
787         mempools.
788
789 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
790
791         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
792         don't use the ad pointer before checking if it's NULL (g_assert).
793
794 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
795
796         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
797         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
798
799         * marshal.c: Allocate all signatures from mempools.
800
801         * marshal.c: Allocate some more signatures from mempools.
802
803 2006-05-09  Miguel de Icaza  <miguel@novell.com>
804
805         * object.c (mono_load_remote_field): The code used to provide a
806         temporary variable for returning results if the user did not
807         provide a result pointer.  But our temporary variable was allocted
808         on the satck.
809
810         Fix calling code to always pass a result area.   Coverity ID 103.
811
812 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
813
814         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
815         value, not the old. Fixes #78312.
816         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
817
818         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
819         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
820         per-image cache.
821
822         * assembly.c (mono_assembly_close): Free image->references.
823
824         * assembly.c (mono_assembly_names_equal): Fix a warning.
825         (mono_assemblies_cleanup): Cleanup more global data.
826
827         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
828
829         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
830         ptr_cache and image->modules.
831
832         * image.c (mono_image_init): Allocate array_cache lazily.
833         
834 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
835
836         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
837         behavior was changed recently and has bad side effects.
838
839 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
840
841         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
842         
843         * assembly.c (mono_assembly_close): Remove a debug printf.
844
845         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
846
847         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
848         to also allow for temporary references between mono_image_open ()/close ().
849
850         * domain.c (get_runtimes_from_exe): Add a FIXME.        
851
852 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
853
854         * marshal.c: Fix support for dynamic methods.
855
856         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
857
858         * marshal.c (mono_marshal_cleanup): New cleanup function.
859
860         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
861         image mempools.
862
863         * class.c (mono_class_init): Fix leaking class->nested_classes.
864
865         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
866
867         * image.c (mono_image_init): Initialize the new cashes.
868
869         * image.c (mono_image_close): Destroy the new cashes.
870
871         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
872
873         * mempool.c (mono_mempool_strdup): New helper function.
874
875         * class-internals.h: Add prototype for mono_loader_unlock ().
876
877         * domain.c (mono_jit_info_table_find): Fix a warning.
878         (mono_debugger_check_runtime_version): Ditto.
879
880         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
881         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
882         functions to these modules.
883
884         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
885         metadata modules.
886         
887         * marshal.c (mono_free_bstr): Fix a warning.
888
889         * assembly.c (mono_assembly_open_full): Fix another small leak.
890
891         * object.c: Fix some unload leaks in the remoting code.
892
893         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
894         function.
895
896         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
897
898         * reflection.c: Fix some unload leaks in dynamic assemblies.
899
900 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
901
902         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
903         * marshal.h: Add BSTR support on Win32
904         * icall.c: Add BSTR icalls
905         * metadata.h: Add BSTR enums
906
907 2006-04-28  Miguel de Icaza  <miguel@novell.com>
908
909         Work to catch the crash from #76795 and turn it into an
910         exception.   As I stubbed out pieces of the VisualBasic support,
911         I found a number of places where the code was failing and I added
912         checks to those places. 
913         
914         * metadata.c (do_mono_metadata_parse_generic_class): Make this
915         function return a status code.  If we fail to parse the signature
916         from mono_metadata_parse_generic_inst, return FALSE.
917
918         * loader.c (mono_get_method_from_token): If we fail to load the
919         method (mono_class_get) return NULL.   
920
921         * (method_from_memberref): Return NULL if we are unable to parse
922         the method signature
923
924         (mono_loader_error_prepare_exception): Since we now use the
925         loader_error flag internally to stop processing, and obtaining
926         exceptions that might be thrown will walk this code path the
927         proper way of going from a MonoLoaderError into a
928         MonoException was convoluted.   This new routine encapsulates the
929         process of turning the error into an exception and *clearing* the
930         error afterwards.
931         
932 2006-04-27  Miguel de Icaza  <miguel@novell.com>
933
934         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
935         with missing assemblies), and to cope with:
936
937                 * Missing fieldref from a non-existing assembly.
938                 * Missing methodref from a non-existing assembly.
939
940         The first batch of work to address *some* of the issues from 76661.
941         
942         * object.c (mono_class_create_runtime_vtable): If we fail to
943         initialize the class raise the exception here. 
944
945         * metadata.c (mono_class_get_overrides_full): If any methods fail
946         to load return the failure to the caller.
947
948         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
949         flagging assemblies that failed to load.   
950
951         Do not crash if we are unable to load the assembly.
952
953         (mono_assembly_close): Do nothing with REFERENCE_MISSING
954         assemblies. 
955
956         * loader.c (mono_loader_set_error_type_load): Change the
957         convention to always pass unallocated strings, so we make our own
958         copies (I know our own code had duplicated strings before, but
959         this keeps the normal conventions).
960         (method_from_memberref): Call mono_loader_set_error_method_load
961         for all possible failures of loading the class. 
962         Remove assert, turn into a loader error.
963
964         (mono_loader_error_to_exception): Move this routine from mini
965         (mini_loader_error_to_exception) there was no need to have that in
966         mini. 
967
968         * class.c (mono_class_from_typeref): If we were not able to load
969         the assembly with mono_assembly_load_reference, call the
970         mono_loader_set_error_type_load to register the problem.
971
972         (mono_class_setup_fields): If we fail to load the type from
973         mono_metadata_parse_type_full, call mono_class_set_failure and
974         break from the loop.
975
976         If class->exception_type is set, we do not layout the fields as
977         that might crash the runtime, and instead return (from breaking
978         from the previous loop).
979
980         (mono_class_setup_vtable): This now returns a boolean indicating
981         whether the table was properly setup.   The decision is driven by
982         mono_class_get_overrides_full which might run into non-existing
983         methods. 
984         
985         (mono_class_init): Returns TRUE on success or FALSE if there was a
986         problem in loading the type (incorrect assemblies, missing
987         assemblies, methods, etc).
988
989         When we call mono_class_setup_fields we also check for a potential
990         error inside this call (either a class exception or a general
991         loader exception).
992
993         (mono_class_create_from_typedef): If the parent fails to load
994         (calling mono_class_get_full) return NULL.
995         
996         ** Important **
997
998         calls to mono_metadata_parse_type_full should be checked
999         everywhere and set the mono_class_set_failure
1000         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
1001
1002         The current patch checks the places where my manually constructed
1003         tests show the errors are showing up, but we should do it
1004         everywhere. 
1005
1006         ** Important2 **
1007
1008         mono_class_init return values should be tested everywhere, like
1009         the previous case this is something that we should audit
1010         everywhere and not only on the cases exposed by the tests I
1011         created. 
1012
1013 2006-04-26  Miguel de Icaza  <miguel@novell.com>
1014
1015         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
1016         boolean parameter and instead pass the information on `options'
1017         parameter (FileOptions).
1018
1019         * icall.c: Register the new signature for MonoIO.Open.
1020
1021         * debug-helpers.c (dis_one): Trying to understand how coverity
1022         works.  Fix Run 5, item 78.
1023
1024 2006-04-26  Dick Porter  <dick@ximian.com>
1025
1026         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
1027         dereference.
1028
1029 2006-04-25  Martin Baulig  <martin@ximian.com>
1030
1031         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
1032
1033         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
1034         debugger_thread_created().
1035         (debugger_gc_push_all_stacks): Don't handle the main thread in any
1036         special way.
1037         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
1038         (mono_debugger_finalize_threads): New function; undo the effects
1039         of mono_debugger_init_threads().
1040         (mono_debugger_create_all_threads): Removed.
1041
1042 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
1043
1044         * image.c (mono_image_close): Tidy up trace messages.
1045
1046         * assembly.c (mono_assembly_close): Ditto.
1047
1048         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
1049         no longer references an already freed assembly. Fixes #78168.
1050
1051 2006-04-21  Dick Porter  <dick@ximian.com>
1052
1053         * threads.c (mono_thread_detach): Fix reference counting when
1054         detaching threads.
1055
1056 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
1057
1058         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
1059         #78155.
1060
1061 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
1062
1063         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
1064         (mono_type_to_stind): Ditto.
1065
1066         * marshal.c: Use the new helper functions to simplify code.
1067
1068         * image.c (mono_image_close): Add some code for help debug assembly unloading
1069         problems.
1070
1071         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
1072         image mempool.
1073
1074         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
1075         assembly was already loaded in another appdomain. Fixes #78083.
1076
1077 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
1078
1079         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
1080         referenced assemblies.
1081         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
1082
1083         * domain.c (mono_domain_free): Add a trace message.
1084
1085         * appdomain.c (add_assemblies_to_domain): Ditto.        
1086
1087         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
1088         field.  
1089
1090 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1091
1092         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
1093
1094 2006-04-12  Martin Baulig  <martin@ximian.com>
1095
1096         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
1097         `USE_INCLUDED_LIBGC'.   
1098
1099 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1100
1101         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
1102         the patch contains ../ and a small directory name later. Hopefully fixes
1103         #78035.
1104
1105 2006-04-10  Martin Baulig  <martin@ximian.com>
1106
1107         Clean up the debugger's thread-handling code.
1108
1109         The debugger's thread-handling code has been moved from
1110         ../mini/debug-debugger.c to threads.c.  We now iterate directly
1111         over the `threads' hash, keep track of exiting threads and also
1112         use proper locking.
1113
1114         We can now debug XSP and XSP based applications with the debugger.
1115
1116         * object-internals.h (MonoThread): Added `gpointer end_stack'.
1117
1118         * threads.h
1119         (MonoThreadCallbacks): Removed; this was only used by the debugger.
1120         (mono_install_thread_callbacks): Likewise.      
1121
1122         * threads.c (mono_thread_callbacks): Removed.
1123         (debugger_thread_created, debugger_thread_exited): New static functions.
1124         (start_wrapper): Call debugger_thread_created().
1125         (thread_cleanup): Call debugger_thread_exited().
1126         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
1127         (mono_debugger_init_threads): New public function.
1128         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
1129         iterate directly over the `threads' hash and also use proper locking.
1130
1131         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
1132
1133         * mono-debug-debugger.h
1134         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
1135
1136 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
1137
1138         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
1139         argument type=array. Fixes #78057.
1140
1141 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
1142
1143         * culture-info-table.h : regenerated. Fixed bug #69652.
1144
1145 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
1146
1147         * loader.c metadata.c: Reapply a variant r59116.
1148         
1149         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
1150
1151         * class.c (mono_class_setup_interface_offsets): New internal function.
1152
1153         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
1154         interfaces too. Fixes #77398.
1155
1156         * reflection.c (encode_cattr_value): Add support for 
1157         parameter type=object, argument type=array.
1158         (load_cattr_value): Ditto. Fixes #77916.
1159
1160         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
1161         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
1162
1163         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
1164         a byval char array and CharSet is Ansi.
1165
1166         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
1167
1168 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
1169
1170         * metadata.c: Add some locking comments.
1171         
1172         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
1173         mempool.
1174         (mono_metadata_free_method_signature): Don't free the signature itself.
1175
1176         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
1177
1178         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
1179         reference the same MonoImage.
1180         (mono_assembly_load_from_full): Add an assert.
1181
1182 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
1183
1184         * image.c (mono_image_close): Don't put the image we are about to free into the
1185         loaded_images_guid_hash.
1186
1187         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
1188         to reduce code duplication.
1189
1190         * marshal.c: Register the native functions called by this module as icalls, to
1191         somewhat centralize the creation of MonoMethodSignature's.
1192
1193         * loader.c (mono_method_signature): Add a cache for method signatures.
1194
1195         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
1196         the parameter attributes of a method.
1197         (mono_metadata_parse_method_signature_full): Refactored the computation of
1198         parameter attributes into a separate function. Also avoid one allocation in
1199         most cases.
1200
1201         * assembly.c (mono_assembly_close): Ditto.
1202
1203         * image.c (mono_image_close): Log trace messages with INFO level.
1204
1205         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
1206
1207         * image.c reflection.c: Correct reference counting of image modules.
1208         
1209         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
1210         of this function from the image mempool.
1211         
1212         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
1213         to allow more cached types to be used.
1214
1215         * mono-debug.c (mono_debug_add_method): Appled patch from
1216         David S. Miller  <davem@sunset.davemloft.net>: Access 
1217         minfo->lexical_blocks[] entry elements using read32().
1218
1219 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
1220
1221         * loader.c (mono_free_method): No longer free the method header for non-dynamic
1222         methods as it is allocated from the mempool.
1223
1224         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
1225         image mempool.
1226
1227         * metadata-internals.h: Add comments describing the reference counting scheme
1228         used for MonoImage and MonoAssembly.
1229
1230         * image.c assembly.c reflection.c: Rework reference counting of images and 
1231         assemblies so they are freed when the runtime is shut down. Free some 
1232         additional memory structures when an image is unloaded.
1233         
1234 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
1235
1236         * class.c loader.c reflection.c: Allocate more data structures in
1237         the image mempool.
1238
1239 2006-03-31  Miguel de Icaza  <miguel@novell.com>
1240
1241         * icall.c
1242         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
1243         build on pre glib 2.4 systems.
1244
1245 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
1246
1247         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
1248
1249         * icall.c: Fix some warnings.
1250
1251 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
1252
1253         * culture-info-table.h : regenerated.
1254
1255 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
1256
1257         * threads.c, object-internals.h, verify.c: changed the culture caching
1258         code to use a normal MonoArray for storage so the GC can keep track of
1259         them easily. Fixed bits of the cache logic, too and simplified the
1260         code.
1261
1262 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
1263
1264         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
1265         thread for non-Boehm GCs.
1266
1267 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1268
1269         * domain.c, object.c, domain-internals.h: reduce the amount of memory
1270         needed to keep track of the data for static fields.
1271
1272 2006-03-29  Raja R Harinath  <rharinath@novell.com>
1273
1274         Fix #75172
1275         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
1276         for interface classes.  Use 'num_methods' instead.
1277         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
1278         before using '->vtable_size' field.
1279
1280 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1281
1282         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
1283         doesn't contain managed pointers, so use a normal hashtable.
1284
1285 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1286
1287         * reflection.c, class-internals.h, domain.c: fixed handling of types
1288         used as values for objects in custom attributes (bug #77915):
1289
1290 2006-03-24  Martin Baulig  <martin@ximian.com>
1291
1292         * class.c (mono_class_setup_fields): Added support for generic
1293         instances; fixes #77580.
1294
1295 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1296
1297         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
1298
1299 2006-03-24  Dick Porter  <dick@ximian.com>
1300
1301         * file-io.c (get_file_attributes): More stat macro breakage.
1302         Fixes bug 77759.
1303
1304 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
1305
1306         * profiler.c: added the file=filename option in the default profiler
1307         to output the profile data to filename.
1308
1309 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1310
1311         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
1312         bug #77877.
1313
1314 2006-03-22  Martin Baulig  <martin@ximian.com>
1315
1316         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
1317         allocated `MonoClassField *' in `fb->handle'.
1318
1319 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1320
1321         * class.c, image.c, metadata-internals.h: implemented new mechanism to
1322         allocate interface ID to save memory and allow better ID reuse on
1323         appdomain unload. setup_generic_vtable () removal from Martin.
1324
1325 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1326
1327         * object.h, appdomain.c, domain.c, exception.c, icall.c,
1328         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
1329         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
1330         write barriers for reference stores with managed objects accessed with
1331         C structures in the runtime and in embedding programs.
1332
1333 2006-03-20  Raja R Harinath  <rharinath@novell.com>
1334
1335         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
1336         'interface_id' and 'max_interface_id' fields of MonoClasses
1337         representing open generic types.
1338
1339 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
1340
1341         * object.h, object.c, icall.c: added functions to deal with
1342         storing valuetypes that contain references in managed objects.
1343         * reflection.c, string-icalls.c, threads.c, marshal.c: small
1344         fixes and comments around uses of mono_array_addr ().
1345
1346 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
1347
1348         * object.h, icall.c, monitor.c: object.GetHashCode ()
1349         implementation that supports the moving garbage collector.
1350
1351 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
1352
1353         * icall.c, threads-types.h, threads.c: implemented finalizer for
1354         LocalDataStoreSlot.
1355
1356 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1357
1358         * metadata.c (mono_type_size): Add a fixme.
1359         (mono_type_stack_size): Ditto.
1360
1361         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
1362         'type_forwarders' field.
1363
1364         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
1365         attribute from net 2.0.
1366
1367         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
1368         from class.c.
1369
1370         * class.c (mono_class_setup_fields): Fix a warning.
1371         
1372         * class.c (mono_class_from_name): Add support for assemblyref entries
1373         in the EXPORTEDTYPE table.
1374
1375         * reflection.c: Add support for handling type forwarders under net 2.0.
1376
1377         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
1378         
1379 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
1380
1381         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
1382         overwriting entries in ModuleBuild->types, also clean up the code
1383         a little. Fixes #77774.
1384
1385 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
1386
1387         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
1388         load friend assembly info when present.
1389
1390 2006-03-14  Raja R Harinath  <rharinath@novell.com>
1391
1392         Fix crasher on gtest-158.cs.
1393         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
1394         the return value if the MonoClass we want is yet in an
1395         inconsistent state.
1396         * class.c (mono_class_create_from_typedef): Add an comment
1397         explaining an order dependency between mono_class_setup_parent and
1398         mono_class_setup_mono_type.
1399
1400 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
1401
1402         * class.c: documentation updates and events bug fix.
1403
1404 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1405
1406         * class.c: some cleanup, locking fixes.
1407
1408 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
1409
1410         * class.c: fix the generics code to setup nested
1411         type info to the instantiated type (bug #77770).
1412
1413 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1414
1415         * marshal.c: fixed a few type correctness issues.
1416
1417 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1418
1419         * loader.c: the Set/Get/Addrtess array methods should be public.
1420
1421 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
1422
1423         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
1424         
1425         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
1426         info->wrapper.
1427
1428 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
1429
1430         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
1431
1432         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
1433
1434         * mempool.c (mono_mempool_alloc): Speed this up a bit.
1435         (mono_mempool_alloc0): Ditto.
1436
1437 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1438
1439         * socket-io.c:
1440         (create_object_from_sockaddr): it was allocating 4 extra bytes
1441         for the AF_UNIX data. Fixes bug #77747.
1442
1443 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
1444
1445         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
1446
1447 2006-03-09  Dick Porter  <dick@ximian.com>
1448
1449         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
1450         Fixes bug 76966 again.
1451
1452 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
1453
1454         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
1455         names from r57532
1456         * appdomain.c: Bumped corlib version to 48 (due to r57532)
1457
1458 2006-03-07  Martin Baulig  <martin@ximian.com>
1459
1460         * object.c
1461         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
1462
1463 2006-03-07  Martin Baulig  <martin@ximian.com>
1464
1465         * class.c
1466         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
1467         regression introduced in r56970; see gtest-252.cs.
1468
1469         * loader.c (mono_get_method_constrained): Correctly handle generic
1470         methods; see gtest-253.cs.
1471
1472 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
1473
1474         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
1475
1476 2006-03-04  Martin Baulig  <martin@ximian.com>
1477
1478         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
1479         compute the parent type at runtime, just like we're already doing
1480         it for interfaces.
1481
1482         * reflection.c
1483         (mono_reflection_bind_generic_parameters): Don't compute the
1484         parent type anymore.
1485
1486         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
1487
1488 2006-03-04  Martin Baulig  <martin@ximian.com>
1489
1490         * mono-debug-debugger.h
1491         (mono_debugger_create_notification_function): Allocate memory at
1492         runtime and return a pointer to it.
1493
1494 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1495
1496         * assembly.c: Fix windows build.
1497         
1498         * assembly.c: Fix build.
1499
1500         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1501
1502         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1503         
1504 2006-03-03  Dick Porter  <dick@ximian.com>
1505
1506         * process.c
1507         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1508         Check parameters before dereferencing them.  Fixes Aaron's part of
1509         bug 77393.
1510
1511 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1512
1513         Fix performance regression.
1514         * loader.c (find_method_in_class): Add 'from_class' argument.
1515         Rename 'klass' argument to 'in_class'.  The signature is compared
1516         against the method in 'in_class', and the corresponding method is
1517         returned from 'from_class'.
1518         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1519         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1520         type definition and generic instantiation in parallel.
1521         (mono_get_method_constrained): Update to changes.
1522
1523 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1524
1525         * threads.c: make sure the domain is correct, too when doing
1526         mono_thread_attach ().
1527
1528 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1529
1530         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1531         windows. Fixes #77683.
1532
1533 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1534
1535         * object.h, *: introduced specific way to set elements of an array
1536         of references to be used as write barrier. Still need to audit the
1537         uses of mono_array_addr.
1538
1539 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1540
1541         * object-internals.h: New field to cache the assmebly name, patch
1542         from Tambet Ingo (tambet@ximian.com)
1543
1544 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1545
1546         * decimal.h, class-internals.h, metadata-internals.h,
1547         file-io.h: mark a few function declarations as internal, to
1548         reduce the number of PLT entries.
1549
1550 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1551
1552         * file-io.c: fix typo in warning message.
1553
1554 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1555
1556         * loader.c: on unix, lookup the "*A" version of a function
1557         if charset is auto as a second option before failing.
1558
1559 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1560
1561         * class.h (mono_class_inflate_generic_method): Revert to two
1562         argument version.
1563         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1564         (mono_class_inflate_generic_method_full): Add.
1565         * class.c (mono_class_inflate_generic_method_full): Rename from
1566         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1567         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1568         * loader.c, reflection.c: Update to changes.
1569
1570 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1571
1572         * icall.c: const fixes and small improvements.
1573
1574 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1575
1576         * threadpool.c: for asynchronous connect(), enable the same workaround
1577         for BSD 6 as for the Mac. Fixes bug #77637.
1578
1579 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1580
1581         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1582         formatted classes. Fixes #77524.
1583
1584 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1585
1586         * class.c (inflate_generic_type): Add a couple more
1587         micro-optimizations.
1588         (inflate_generic_context): Don't use the 'gmethod' from
1589         'inflate_with'.
1590         (mono_class_inflate_generic_method): If the method has generic
1591         parameters, but the passed-in context doesn't have a 'gmethod',
1592         create one.  Use the possibly simplified generic instantiation
1593         from the declaring class instead of the one passed in.
1594
1595 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1596
1597         Make generic method signature and method header handling lazy.
1598         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1599         (inflate_generic_header): Likewise.
1600         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1601         parameter to avoid inflating types.
1602         (mono_get_inflated_method): Empty out.
1603         * class.h (mono_class_inflate_generic_method): Update to changes.
1604         * loader.c (mono_get_method_from_token): Don't parse signature for
1605         generic methods, nor methods of generic classes.
1606         (mono_method_signature): Rename from 'mono_method_signature'.
1607         Inflate signature on demand.
1608         (mono_method_get_header): Inflate method header on demand.
1609         * reflection.c: Update to changes.
1610
1611 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1612
1613         * metadata.c (mono_metadata_inflate_generic_inst): If the
1614         instantiation is closed, don't bother expanding it in the new
1615         context.
1616         * class.c (inflate_generic_class): If the generic instantiation
1617         doesn't change after inflation, return the argument itself.
1618         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1619         Add bounds checks.
1620         (inflate_generic_context): If neither the generic class nor the
1621         generic method instantiations change, return the original context.
1622         * reflection.c (mono_method_get_object): Do
1623         'mono_get_inflated_method' before accessing the ->klass field.
1624         (inflate_mono_method): Don't create a MonoGenericMethod unless
1625         necessary.
1626         (inflate_method): Don't pass a constructed type as the declaring
1627         type of a methodbuilder.
1628
1629 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1630
1631         * object.c: fix memory overwrite.
1632
1633 2006-02-22  Dick Porter  <dick@ximian.com>
1634
1635         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1636         it doesn't work any more.
1637         (mono_threads_request_thread_dump): Fix unused variable warnings.
1638
1639 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1640
1641         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1642         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1643         the public header file.
1644
1645 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1646
1647         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1648
1649 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1650
1651         * class-internals.h, object.c: reduce the size of MonoVTable
1652         and store the interface_offsets array at negative offsets.
1653
1654 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1655
1656         * metadata.c: tweak table descriptors data structures to reduce
1657         size and runtime relocations.
1658
1659 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1660
1661         * marshal.c: fix some types and opcodes to be type-safe
1662         in marshaling wrappers.
1663
1664 2006-02-21  Ankit Jain  <jankit@novell.com>
1665
1666         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1667
1668 2006-02-21  Raja R Harinath  <rharinath@novell.com>
1669
1670         * metadata.c (get_constraints): Relax debugging checks for monodis.
1671
1672 2006-02-21  Ankit Jain  <jankit@novell.com>
1673
1674         * metadata.c (mono_metadata_load_generic_params): Move the code
1675         checking for ambiguous generic params from here to mono/dis/get.c
1676         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
1677
1678 2006-02-21  Raja R Harinath  <harinath@gmail.com>
1679
1680         Fix assertion triggered when compiling nemerle.
1681         * class.c (mono_get_shared_generic_inst): Rename from
1682         get_shared_inst and make non-static.
1683         * loader.c (mono_get_shared_generic_method): New.  Used to create
1684         the MonoGenericContext-equivalent of a MonoGenericContainer.
1685         (mono_get_method_from_token): Initialize the 'context' field of
1686         the created MonoGenericContainer.
1687         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
1688         * metadata.c (get_constraints): Add sanity check.
1689         * class-internals.h: Add new internal methods.
1690
1691         * reflection.c (verify_safe_for_managed_space): New sanity check.
1692         Currently checks that owner-less generic parameters aren't allowed
1693         in managed space.
1694         (mono_type_get_object): Use it.
1695         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
1696         that are now in mono_type_get_object.
1697         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
1698
1699 2006-02-19  Raja R Harinath  <harinath@gmail.com>
1700
1701         * metadata.c (mono_type_create_from_typespec): Rename from
1702         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
1703         argument and caching of types in the generic container.
1704         (unwrap_arrays, find_generic_param): Remove.
1705         * metadata-internals.h: Update.
1706         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
1707
1708 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
1709
1710         * class.c (mono_class_get_exception_for_failure): Fix a warning.
1711
1712         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
1713         return values. Fixes #77581.
1714
1715         * class.c (mono_fnptr_class_get): Switch name and name_space.
1716
1717         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
1718         classes and add support for [In, Out] attributes.
1719         (mono_marshal_free_asany): Ditto. Fixes #77524.
1720
1721 2006-02-18  Raja R Harinath  <harinath@gmail.com>
1722
1723         * class.c (mono_class_from_generic_parameter): Make more robust to
1724         incomplete MonoGenericContainers from monodis.
1725
1726 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1727
1728         * class-internals.h: added some more exception types.
1729         * class.c, metadata.c: added a few checks to handle missing
1730         types.
1731
1732 2006-02-17  Raja R Harinath  <rharinath@novell.com>
1733
1734         Use owner-less generic-params some more.
1735         * class.c (my_mono_class_from_generic_parameter): Remove.
1736         (mono_class_from_generic_parameter): Handle null image,
1737         param->name and param->owner.
1738         (mono_class_from_mono_type): Update.
1739         (mono_class_create_from_typespec): Remove 'container' parameter.
1740         If that parameter is non-null, the result is always inflated by
1741         'mono_class_get_full' anyway.
1742         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
1743         parameter.
1744         (mono_class_get_full): Update.
1745
1746         * class.c (inflate_generic_type) [GENERICINST]: If the generic
1747         instance is not open, don't bother inflating.
1748         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
1749         parse metadata for inflated classes.
1750         (_mono_class_get): Change GenericContext* parameter to
1751         GenericContainer*.
1752         (mono_class_create_from_typespec): Likewise.  Simplify, and
1753         implement trivially.  All the cases are handled in
1754         mono_class_from_mono_type.  Don't inflate returned class.
1755         (mono_class_get_full): Delegate GENERICINST optimization to
1756         inflate_generic_type.
1757         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
1758
1759 2006-02-16  Dick Porter  <dick@ximian.com>
1760
1761         * socket-io.c (create_object_from_sockaddr): Fix typo.
1762         (create_sockaddr_from_object): Check array lengths before
1763         potentially accessing items off the end.
1764         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
1765         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
1766         (ves_icall_System_Net_Sockets_Socket_Send_internal)
1767         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
1768         length checks to avoid wraparound overflows.
1769         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
1770         contents of the array of sockets
1771         (hostent_to_IPHostEntry2)
1772         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
1773         Check return value of inet_ntop ().
1774         (addrinfo_to_IPHostEntry): Fix typo
1775
1776 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1777
1778         Type metadata parsing doesn't use generic-instantiation information.
1779         * metadata.c (mono_metadata_parse_array_full): Change
1780         MonoGenericContext* parameter to MonoGenericContainer*.
1781         (mono_metadata_parse_type_full): Likewise.
1782         (mono_type_create_from_typespec_full): Likewise.
1783         (mono_metadata_parse_mh_full): Likewise.
1784         (mono_metadata_parse_generic_inst): Likewise.
1785         (do_mono_metadata_parse_generic_class): Likewise.
1786         (do_mono_metadata_parse_type): Likewise.
1787         * metadata-internals.h: Update to changes.
1788         * class.c (mono_class_find_enum_basetype): Likewise.
1789         (mono_class_setup_fields): Likewise.
1790         (mono_class_create_from_typespec): Likewise.
1791         * loader.c (method_from_methodspec): Likewise.
1792         (mono_get_method_from_token): Likewise.
1793         (mono_method_get_header): Likewise.
1794
1795 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1796
1797         * marshal.c: handle additional GENERICINST case (patch from
1798         Thong Nguyen <tum@veridicus.com>).
1799         Fix a few cases where LDIND_I/STIND_I was used for references.
1800
1801 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1802
1803         * reflection.c (mono_reflection_get_token): Remove unused variable.
1804
1805 2006-02-16  Martin Baulig  <martin@ximian.com>
1806
1807         * reflection.c (mono_reflection_get_token): Add support for fields
1808         in instantiated generic types.
1809
1810         * icall.c
1811         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
1812
1813 2006-02-15  Martin Baulig  <martin@ximian.com>
1814
1815         * icall.c
1816         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
1817         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
1818         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
1819         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
1820
1821 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1822
1823         * class.c, metadata.c, metadata.h, object.c, icall.c,
1824         marshal.c: changed mono_type_get_underlying_type () to do
1825         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
1826         Fixed handling of instantiated generic valuetypes (bug #75479).
1827
1828 2006-02-15  Raja R Harinath  <rharinath@novell.com>
1829
1830         * metadata.c (mono_metadata_decode_signed_value): Simplify.
1831         Delegate to mono_metadata_decode_value, and work on the returned value.
1832
1833         * icall.c (ves_icall_MonoType_GetGenericArguments):
1834         Add consistency check here too.
1835         
1836 2006-02-15  Ankit Jain  <jankit@novell.com>
1837
1838         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
1839         char/short etc.
1840
1841 2006-02-15  Ankit Jain  <jankit@novell.com>
1842
1843         * metadata.c (mono_metadata_decode_signed_value): New function to decode
1844         signed values, used only for representing lower bounds of arrays.
1845         (mono_metadata_parse_array_full): Use new
1846         mono_metadata_decode_signed_value to decode lower bounds.
1847
1848 2006-02-14  Martin Baulig  <martin@ximian.com>
1849
1850         * reflection.c
1851         (mono_reflection_get_token): Support "MonoGenericMethod" and
1852         "MonoGenericCMethod" and allow generic instances / methods.
1853
1854 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
1855
1856         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
1857         to obtain the terminal size using an ioctl.
1858
1859         * object.c (mono_nullable_init): Revert this as nullable reference
1860         types are not valid.
1861         (mono_nullable_box): Ditto.
1862
1863 2006-02-09  Dick Porter  <dick@ximian.com>
1864
1865         * threads.c (mono_thread_detach): Drop a reference to the thread
1866         we're detaching.
1867
1868 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
1869
1870         * object.c (mono_nullable_init): Handle nullable reference types.
1871         (mono_nullable_box): Ditto. Fixes #77446.
1872
1873 2006-02-07  Martin Baulig  <martin@ximian.com>
1874
1875         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
1876
1877 2006-02-07  Ankit Jain  <jankit@novell.com>
1878
1879         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
1880         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
1881         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
1882         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
1883         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
1884         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
1885
1886 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
1887
1888         * class.c (mono_class_create_generic): Set type_token as well.
1889
1890         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
1891         compatible with MS.
1892
1893 2006-02-02  Martin Baulig  <martin@ximian.com>
1894
1895         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
1896         has never been used so far.
1897
1898 2006-02-02  Martin Baulig  <martin@ximian.com>
1899
1900         * mono-debug-debugger.h: Changed comment at the top of this file;
1901         the header is not installed, but it's safe to #include it from
1902         within the JIT.
1903
1904         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
1905         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
1906
1907 2006-02-02  Martin Baulig  <martin@ximian.com>
1908
1909         * mono-debug.h
1910         (MonoSymbolTable): Removed the `metadata_info' field.
1911
1912         * mono-debug.c
1913         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
1914
1915         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1916         (mono_debugger_add_builtin_types): Removed.
1917         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
1918         (mono_debugger_create_notification_function): We now operate on a
1919         pre-allocated area; take a `gpointer' and return `void'.
1920
1921         * mono-debug-debugger.c
1922         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
1923         (mono_debugger_add_builtin_types): Removed.
1924
1925 2006-02-02  Martin Baulig  <martin@ximian.com>
1926
1927         * threads.c (mono_debugger_create_all_threads): New public method.
1928
1929 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1930
1931         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
1932         breaks on several platforms.
1933
1934 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
1935
1936         * assembly.c: the VS.NET build doesn't supply default values for
1937         MONO_ASSEMBLIES and MONO_CFG_DIR.
1938
1939 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
1940
1941         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
1942         helper function.
1943
1944         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
1945
1946         * loader.c (method_from_memberref): Fix a warning.
1947
1948         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
1949
1950         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
1951         with explicit layout. Fixes #77433.
1952
1953 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
1954
1955         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
1956         max_interface_id is initialized before using it. Fixes #77398.
1957         (ves_icall_Type_GetInterfaces): Ditto.
1958
1959 2006-01-30  Raja R Harinath  <rharinath@novell.com>
1960
1961         * metadata.c (mono_metadata_parse_method_signature_full): Don't
1962         allocate memory for parameter attributes when parsing memberref
1963         signatures.
1964         * loader.c (mono_loader_set_error_method_load): Don't warn.
1965         (method_from_memberref): Ensure MissingMethodException gets thrown
1966         if method is not found.  Make warning more informative.
1967
1968 2006-01-29  Raja R Harinath  <harinath@gmail.com>
1969
1970         Fix #77397
1971         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
1972         return true if is byref.
1973         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
1974         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
1975         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
1976
1977 2006-01-27  Raja R Harinath  <rharinath@novell.com>
1978
1979         Fix tests/find-method.2.il
1980         * loader.c (find_method, find_method_in_class): Remove is_inflated
1981         argument.  Revert 2006-01-18 change.
1982         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
1983         is generic, search for method in its generic definition.
1984         * class.c (mono_class_setup_vtable_general): Print generic
1985         arguments of generic types in debugging printf.
1986
1987 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
1988
1989         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
1990
1991         * threads.c (mono_threads_request_thread_dump): New helper function.
1992
1993 2006-01-25  Raja R Harinath  <rharinath@novell.com>
1994
1995         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
1996
1997 2006-01-25  Ankit Jain  <jankit@novell.com>
1998
1999         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
2000         move definition to ..
2001         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
2002         
2003 2006-01-25  Ankit Jain  <jankit@novell.com>
2004             Raja R Harinath  <rharinath@novell.com>
2005
2006         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
2007         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
2008         as necessary.
2009
2010 2006-01-25  Martin Baulig  <martin@ximian.com>
2011
2012         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
2013         `MonoDebuggerThread' into debug-debugger.c.
2014
2015 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
2016
2017         * profiler.c: fix printing of data.
2018
2019 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
2020
2021         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
2022           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
2023
2024 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2025
2026         * object.c: fix deadlock related to string interning.
2027
2028 2006-01-23  Martin Baulig  <martin@ximian.com>
2029
2030         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2031
2032         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
2033
2034 2006-01-23  Martin Baulig  <martin@ximian.com>
2035
2036         * mono-debug.h: Moved the prototypes of some functions which are
2037         used by the JIT here from mono-debug-debugger.h.
2038
2039 2006-01-21  Martin Baulig  <martin@ximian.com>
2040
2041         * Makefile.am: Don't install mono-debug-debugger.h.
2042
2043 2006-01-21  Martin Baulig  <martin@ximian.com>
2044
2045         * mono-debug-debugger.h: Enforce the private status of this header
2046         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
2047         Moved some stuff from mono-debugger-jit-wrapper.h here.
2048
2049 2006-01-20  Raja R Harinath  <rharinath@novell.com>
2050
2051         * class.c (mono_class_from_typeref): Add a sanity test to help
2052         catch lack of assembly load/search hooks.
2053
2054 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
2055
2056         * marshal.c (emit_struct_conv): Relax the fields with same offset
2057         check even more. Fixes #77230.
2058
2059 2006-01-18  Martin Baulig  <martin@ximian.com>
2060
2061         * loader.c (find_method_in_class): Added `gboolean is_inflated'
2062         argument; if false, we compare the uninstantiated signatures.
2063         (method_from_memberref): Compare the uninstantiated signatures;
2064         fixes #76417.
2065
2066 2006-01-18  Robert Jordan  <robertj@gmx.net>
2067
2068         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
2069         Clear the weak link. Fixes bug #77170.
2070
2071         * gc.c (mono_gchandle_free):
2072         Reflect *-gc.c changes (tiny optimization).
2073
2074 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
2075
2076         * metadata.c (mono_metadata_signature_dup): Applied patch from
2077         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
2078         Fixes #77288.
2079
2080 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
2081
2082         * marshal.c (emit_struct_conv): Allow fields with the same offset when
2083         marshalling from native to managed code. Fixes #77230.
2084
2085 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2086
2087         * threadpool.c: fix problem (Mac only) when more than one asynchronous
2088         connect. Fixes bug #77020.
2089
2090 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2091
2092         * class.c: fixed id assignement for nested interfaces (bug #77275).
2093         Added also better info for --print-vtable debugging.
2094
2095 2006-01-12  Martin Baulig  <martin@ximian.com>
2096
2097         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
2098         interfaces on-the-fly; fixes #76625.
2099
2100         * class-internals.h
2101         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
2102         don't need that anymore.
2103
2104 2006-01-12  Miguel de Icaza  <miguel@novell.com>
2105
2106         * socket-io.c
2107         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2108         To avoid initing the nested_classes when not needed I turned the
2109         PeerCredData as a toplevel internal class, as it has to be shared
2110         anyways. 
2111
2112         Fixes the CASA issue.
2113
2114 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
2115
2116         * domain.c: Accessors for MonoJitInfo
2117
2118         * profiler-private.h: Add jitinfo to the end jit hook
2119
2120         * profiler.[ch]: Define new hooks, called after jitting which give
2121         the MonoJitInfo that was compiled
2122
2123 2006-01-10  Martin Baulig  <martin@ximian.com>
2124
2125         * class.c (mono_class_setup_events): Add support for generic
2126         classes; fixes #76440.
2127
2128 2006-01-06  Raja R Harinath  <rharinath@novell.com>
2129
2130         Fix #77160.
2131         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
2132         on passed-in method.
2133
2134 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2135
2136         * object.c (mono_runtime_invoke_array): Add Nullable support.
2137
2138         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
2139
2140 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
2141
2142         * file-io.c: Don't consider sockets as directory and avoid an endless
2143         loop. Fix bug #76966.
2144
2145 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2146
2147         * object.c (mono_nullable_init): New helper function.
2148         (mono_nullable_box): Ditto.
2149
2150         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
2151
2152         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
2153
2154         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
2155         
2156 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
2157
2158         * class.c (mono_class_is_assignable_from): Make T assignable to 
2159         Nullable<T>.
2160
2161 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
2162
2163         * appdomain.c: Bump corlib version to 46.
2164         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
2165         serialization purpose) and changed ves_icall_System_Reflection_
2166         Assembly_get_code_base signature to accept a boolean (to escape, or 
2167         not, the assembly code base).
2168
2169 2005-12-23  Dick Porter  <dick@ximian.com>
2170
2171         * icall.c: 
2172         * threads-types.h: 
2173         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
2174         CreateEvent icall now returns "created" boolean parameter.
2175
2176 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
2177
2178         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
2179         #76967.
2180
2181         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
2182         when attr_klass is an interface. Fixes #77045.
2183
2184 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
2185
2186         * marshal.c (emit_struct_conv): Fix previous patch.
2187         
2188         * marshal.c (emit_struct_conv): Add a check for fields with the same
2189         offset.
2190
2191 2005-12-20  Raja R Harinath  <rharinath@novell.com>
2192
2193         Fix regression in Mono.C5.
2194         * class.c (mono_class_create_generic): If 'klass' is an interface
2195         set up the interface offsets.
2196         (mono_class_is_assignable_from): Don't throw away generic arguments.
2197
2198 2005-12-19  Raja R Harinath  <rharinath@novell.com>
2199
2200         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
2201         type parameters.
2202
2203 2005-12-15  Raja R Harinath  <rharinath@novell.com>
2204
2205         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
2206         dead store.
2207         (do_mono_metadata_parse_generic_class): Don't pass the current
2208         generic context when parsing the type being instantiated: it
2209         cannot use it, anyway.
2210
2211         * loader.c (method_from_memberref): Don't inflate a signature if
2212         it doesn't contain any type parameters.
2213
2214 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2215
2216         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
2217
2218 2005-12-14  Martin Baulig  <martin@ximian.com>
2219
2220         * class.c
2221         (mono_type_get_name_recurse): Don't return null for type
2222         parameters and open generic classes.
2223         (mono_class_setup_methods): Don't exclude generic instances.
2224         (mono_get_unique_iid): Use different IDs for different
2225         instantiations of the same generic type.
2226         (mono_class_setup_vtable): Only use setup_generic_vtable() for
2227         open generic instances; create a normal vtable for closed generic
2228         instances.
2229         (mono_class_setup_vtable_general): We're now also called for
2230         closed generic instances.
2231
2232         * reflection.c
2233         (mono_reflection_bind_generic_parameters): Correctly use
2234         mono_metadata_lookup_generic_inst() everywhere.
2235
2236 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
2237
2238         * object.c (mono_class_create_runtime_vtable): Call 
2239         mono_class_setup_vtable ().
2240
2241         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
2242         function.
2243         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
2244         #76959.
2245
2246         * loader.c (mono_loader_set_error_type_load): Print the type load
2247         warnings to the console so they are more visible to the user.
2248         (mono_loader_set_error_method_load): Ditto.
2249
2250         * reflection.c (ensure_runtime_vtable): Revert the last change as it
2251         is still broken.
2252         
2253         * reflection.c (ensure_runtime_vtable): Fix build.
2254
2255         * reflection.c (ensure_runtime_vtable): Disable an optimization which
2256         doesn't work in all cases.
2257
2258 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
2259
2260         * object.c (mono_array_new_full): Treat a single dimensional array
2261         with 0 lower bounds as an szarray. Fixes #76973.
2262
2263         * reflection.c (custom_attr_visible): Really fix this.
2264
2265 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
2266
2267         * reflection.c (custom_attr_visible): Allow nested public attributes
2268         as well.
2269
2270         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
2271         interface check.
2272
2273 2005-12-12  Raja R Harinath  <harinath@gmail.com>
2274
2275         * class.c (set_generic_param_owner): Delete.
2276         (mono_class_create_from_typedef): Don't set ->owner field of
2277         generic parameters to "param containers" of enclosing classes.
2278         * reflection.c (mono_reflection_initialize_generic_parameter):
2279         Likewise.
2280
2281 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
2282
2283         * reflection.c (custom_attr_visible): Fix build.
2284
2285 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
2286
2287         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
2288         private attributes.
2289         
2290         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
2291         handling of null parameter defaults.
2292
2293 2005-12-09  Raja R Harinath  <rharinath@novell.com>
2294
2295         * class.c (mono_class_from_generic_parameter): Don't set
2296         klass->generic_container.
2297         (my_mono_class_from_generic_parameter): Likewise.
2298
2299 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2300
2301         * reflection.c (load_public_key): Fix a warning.
2302         (method_encode_code): Fix unaligned accesses.
2303
2304 2005-12-07  Martin Baulig  <martin@ximian.com>
2305
2306         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
2307
2308         * reflection.c
2309         (write_generic_param_entry): Encode our custom attrs.
2310
2311         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
2312
2313 2005-12-07  Martin Baulig  <martin@ximian.com>
2314
2315         * reflection.c (encode_new_constraint): Removed; we don't use the
2316         `NewConstraintAttribute' anymore.
2317
2318 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2319
2320         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
2321         not fire a TypeResolve event when Assembly.GetType () is called.
2322
2323 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2324
2325         Beginning of support for nullable types in the runtime. Parts of
2326         this patch are from Martin.
2327
2328         * appdomain.c (MONO_CORLIB_VERSION): Bump
2329
2330         * domain.c (mono_init_internal): get the nullable type
2331
2332         * class.c (mono_class_is_nullable): New method
2333         (mono_class_get_nullable_param): New mehod
2334         (mono_class_create_generic): In types T? set cast_class to T
2335
2336         * class-internals.h (MonoDefaults): new nullable default class
2337         (mono_class_get_nullable_param, mono_class_get_nullable_param):
2338         new methods.
2339
2340 2005-12-05  Raja R Harinath  <rharinath@novell.com>
2341
2342         * metadata.c (select_container): New.  Refactor code to select the
2343         appropriate GenericContainer given the type of generic parameter
2344         we are looking for.
2345         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
2346         not a MonoGenericContext.  Use select_container.  Update parameters.
2347         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
2348         and MONO_TYPE_MVAR.
2349         (unwrap_arrays): Remove duplicate tests.
2350         (find_generic_param): Rename from 'has_same_context'.  Now walks a
2351         generic instantiated class to find any arguments that are generic
2352         parameters.
2353         (mono_type_create_from_typespec_full): Use find_generic_param to
2354         avoid evicting some generic instantiations from the typespec
2355         cache.
2356
2357 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
2358
2359         * reflection.c: fixed writing of doubles on ARM FPA.
2360
2361 2005-12-02  Robert Jordan  <robertj@gmx.net>
2362
2363         * icall.c: Fixed EventInfo.ReflectedType (#76829).
2364
2365 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2366
2367         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
2368         least on SUSE 10 they are not the same (on debian, they are just the
2369         same thing).
2370
2371 2005-12-01  Raja R Harinath  <rharinath@novell.com>
2372
2373         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
2374         DeclaringType for VARs and MVARs.
2375         * class.c (set_generic_param_owner): Fix initialization of owner
2376         fields.
2377
2378 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2379
2380         * icall.c: fixed Enum.ToObject() to correctly convert the values.
2381
2382 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2383
2384         * threadpool.c: workaround for a bug that shows up on the Mac:
2385         select()+connect() on a blocking socket is not like it should
2386         be, so we proceed to connect() in that case, wasting the I/O
2387         threadpool thread until connect succeedes. Fixes bug #75436.
2388
2389 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2390
2391         * threadpool.c: fix typo when setting file descriptor states.
2392
2393 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2394
2395         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
2396         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2397         create a temporary signature container.
2398         (mono_metadata_parse_generic_param): Update to changes.
2399         (mono_type_create_from_typespec_full): Update to changes.
2400         * loader.c (method_from_memberref): Don't use a
2401         MonoGenericContainer while parsing a memberref signature.
2402         (method_from_methodspec): Remove dead-store of the 'container'
2403         variable.  It's overwritten before use.
2404
2405         * metadata.c (mono_type_create_from_typespec_full): Make debugging
2406         checks tighter.
2407         (mono_metadata_parse_generic_param): Likewise.
2408         * loader.c (find_method_in_class): Does not need a
2409         MonoGenericContainer.  Use 'mono_method_signature' rather than
2410         'mono_method_signature_full'.
2411         (find_method, mono_get_method_constrained, method_from_memberref):
2412         Update to changes.
2413
2414         * metadata.c (mono_type_create_from_typespec_full): Ensure that
2415         owner-less generic-parameters are never evicted from the typespec
2416         cache.
2417
2418         * loader.c (method_from_memberref): Don't use the current context
2419         when parsing signatures.
2420         (method_from_methodspec, mono_get_method_from_token): Update to changes.
2421
2422         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
2423         side-effects in g_assert.
2424         * loader.c (mono_get_method_from_token): Resolve klass earlier so
2425         that we don't potentially lose information.
2426
2427 2005-11-26  Dick Porter  <dick@ximian.com>
2428
2429         * icall.c:
2430         * threads.c: icalls to implement basic (ie, not named)
2431         System.Threading.Semaphore.
2432
2433 2005-11-24  Dick Porter  <dick@ximian.com>
2434
2435         * process.c
2436         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2437         Use GetProcessId() if it's available.
2438
2439 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
2440
2441         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
2442
2443 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2444             Ankit Jain  <jankit@novell.com>
2445
2446         * loader.c (mono_get_method_from_token): Initialize 'method' field
2447         of all generic parameters before parsing the signature.  Remove
2448         code that "fixed"-up MVAR references.
2449
2450 2005-11-23  Ankit Jain  <jankit@novell.com>
2451
2452         * metadata.c (mono_metadata_has_generic_params):
2453         (mono_metadata_load_generic_param_constraints):
2454         (mono_metadata_load_generic_params): Move duplicate code ...
2455         (mono_metadata_get_generic_param_row): ... here. Returns the
2456         first row-id in GenericParam table for a given owner (token).
2457         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
2458         prototype.
2459
2460 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2461             Ankit Jain  <jankit@novell.com>
2462
2463         * metadata.c (mono_metadata_class_equal): Pass signature_only when
2464         comparing VARs too.
2465         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
2466         type->data.generic_param only if the type is an MVAR.
2467         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
2468         leak owner-less VARs and MVARs into managed space.
2469
2470 2005-11-21  Martin Baulig  <martin@ximian.com>
2471
2472         * class-internals.h
2473         (MonoMethod): Moved the `generic_container' here from
2474         `MonoMethodNormal' since we now also need it for
2475         `MonoMethodPInvoke';
2476         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
2477         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
2478         an union containing both `MonoMethodNormal' and
2479         `MonoMethodPInvoke'.
2480
2481         * loader.c
2482         (mono_get_method_from_token): Allow implementing generic methods
2483         as interncalls.
2484
2485         * threads.c
2486         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
2487         icall.
2488
2489 2005-11-17  Dick Porter  <dick@ximian.com>
2490
2491         * icall.c: 
2492         * process.h: 
2493         * process.c: Split the Process Start_internal icall into
2494         ShellExecuteEx_internal and CreateProcess_internal, which are
2495         called depending on whether UseShellExecute is true.  Fixes bug
2496         76670.
2497
2498         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2499
2500 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2501
2502         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2503         'msize' parameters, use the information in 'mspec' instead.
2504         (emit_object_to_ptr_conv): Ditto.
2505
2506         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2507         fields out of order. Fixes #76733.
2508
2509 2005-11-17  Ankit Jain  <jankit@novell.com>
2510
2511         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2512
2513 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2514
2515         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2516           bug #76575.
2517
2518 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2519
2520         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2521         for types with non-auto layout. Fixes #76717.
2522
2523 2005-11-16  Ankit Jain  <jankit@novell.com>
2524
2525         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2526         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2527         if generic_context is null.
2528           (mono_metadata_generic_param_equal): param->owner can be null.
2529           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2530         null.
2531
2532 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2533
2534         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2535         the correct value.
2536
2537 2005-11-15  Martin Baulig  <martin@ximian.com>
2538
2539         * object.c (set_value): Use mono_class_from_mono_type() instead of
2540         the hack for generic instances; fixes #76136.
2541
2542 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2543
2544         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2545         fields.
2546
2547         * image.c (load_metadata_ptrs): Initialize the new fields.
2548
2549         * reflection.c (create_dynamic_mono_image): Ditto.
2550
2551         * reflection.c (build_compressed_metadata): Use the new fields.
2552
2553         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2554         icall.
2555
2556         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2557         icall.
2558         
2559 2005-11-15  Ankit Jain  <jankit@novell.com>
2560             Raja R Harinath  <harinath@gmail.com>
2561
2562         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2563         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2564         new per-generic_container cache if the cached MonoType's context matches
2565         the current context.
2566           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2567         to the expected context.
2568           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2569
2570 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2571
2572         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2573         we changed the signature of an icall.
2574         * icall.c: Modify to mono_double_ParseImpl return true/false 
2575         depending on the success, instead of throwing the exception. This will
2576         help us in Double.TryParse methods.
2577         
2578 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2579
2580         * marshal.c (emit_marshal_object): Throw an exception when
2581         marshalling 'object' instead of crashing. Fixes #76696.
2582
2583 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2584
2585         * class-internals.h: Add prototype for mono_type_get_full_name ().
2586
2587 2005-11-11  Dick Porter  <dick@ximian.com>
2588
2589         * threads.c (mono_thread_manage): Make sure the main thread has
2590         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2591
2592 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2593
2594         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2595         console about the missing type.
2596         (mono_loader_set_error_method_load): Ditto.
2597
2598 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2599
2600         * mono-config.c (mono_get_config_dir): Set the system defaults if
2601         none is specified.
2602
2603         * assembly.c (mono_set_dirs): New API entry point to set the
2604         assembly and the config directory in one call
2605
2606 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2607
2608         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2609         the ftnptr was created from a delegate in a domain other than the
2610         current domain. Fixes #75377.
2611
2612         * exception.h exception.c: Add mono_get_exception_not_supported ().
2613
2614 2005-11-08  Martin Baulig  <martin@ximian.com>
2615
2616         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2617
2618 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2619
2620         * security-manager.h: Added definitions to deal with strongname key 
2621         pairs bigger (and smaller) than 1024 bits.
2622         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2623         adjust wrt the public key length being used.
2624
2625 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2626
2627         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2628           Windows build (r51396-51397).
2629
2630 2005-11-03  Martin Baulig  <martin@ximian.com>
2631
2632         * class.c (mono_class_setup_vtable_general): Also add generic
2633         methods to the vtable; fixes #76581.
2634
2635 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2636
2637         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2638         sure that we lookup GetString method from the System.Text.Encoding
2639         class, not the derived class or we get an empty method.
2640
2641         Fixed class #76612.
2642
2643 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2644
2645         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2646         if it has been previously set (embedders). 
2647
2648         Make mono_set_rootdir available also on Unix.
2649
2650 005-10-24  Robert Jordan  <robertj@gmx.net>
2651
2652         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2653
2654 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2655
2656         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2657         only calls which are made to native code use this flag.
2658
2659         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2660
2661 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2662
2663         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2664         Add support for FieldBuilders.
2665
2666 2005-10-29  Martin Baulig  <martin@ximian.com>
2667
2668         * mono-debug.c
2669         (mono_debug_using_mono_debugger): New public method; returns
2670         whether we're running inside the debugger.
2671
2672 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
2673
2674         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
2675         for Method/Constructor/FieldBuilders.
2676
2677 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2678
2679         * reflection.c (module_add_cattrs): Save custom attributes for global methods
2680         and fields as well.
2681
2682 2005-10-26  Martin Baulig  <martin@ximian.com>
2683
2684         * mono-debug-debugger.c
2685         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
2686
2687 2005-10-24  Raja R Harinath  <harinath@gmail.com>
2688
2689         * icall.c (base64_to_byte_array): Don't pass an out-of-range
2690         integer to isspace.
2691
2692 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2693
2694         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
2695         when passing valuetypes byref. Fixes #76502.
2696
2697 2005-10-19  Jackson Harper  <jackson@ximian.com>
2698
2699         * profiler.c: Don't put a . in front of types that are not in a
2700         namespace.
2701
2702 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
2703
2704         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
2705
2706 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
2707
2708         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
2709         #76436.
2710         (mono_marshal_get_ldflda_wrapper): Fix a warning.
2711
2712 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2713
2714         * assembly.c metadata-internals.h icall.c: Define an additional
2715         parameter for mono_assembly_name_parse_full, so we can avoid creating
2716         S.R.AssemblyName.Version when no version info wasn't passed.
2717         
2718 2005-10-09  Miguel de Icaza  <miguel@novell.com>
2719
2720         * class.c (mono_type_get_full_name): Reimplement method that was
2721         removed. 
2722
2723         * image.c: Some docs
2724
2725 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
2726
2727         * profiler.c (output_newobj_profile): Fix printing of Total memory
2728         on x86.
2729
2730 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2731
2732         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
2733
2734 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
2735
2736         * threads.c: remove debug output.
2737
2738 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2739
2740         * threads.c (mono_thread_manage): Fix crashes if more than 64
2741         threads need to be aborted. Hopefully fixes #75899.
2742
2743         * assembly.c (mono_stringify_assembly_name): New helper function.
2744
2745         * class.c: Use mono_stringify_assembly_name instead of the similar
2746         static function.
2747
2748         * assembly.h assembly.c: Add support for calling a postload search 
2749         hook if an assembly cannot be loaded.
2750
2751         * appdomain.c: Register new search hooks which call the AssemblyResolve
2752         events in AppDomain. Fixes #75231
2753
2754 2005-10-07  Martin Baulig  <martin@ximian.com>
2755
2756         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
2757         methods without debug info.
2758
2759 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
2760
2761         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
2762         wrappers.
2763
2764 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2765
2766         * file-io.c: now that we return symlinks, use lstat and, when the file
2767         is a symbolic link, stat, to get the file attributes. Also avoid the
2768         conversion to/from utf16/external.
2769
2770 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
2771
2772         * class.c (mono_class_layout_fields): Compute klass->has_references
2773         correctly if an embedded valuetype is not yet initialized. Fixes
2774         #76331.
2775
2776 2005-10-04  Martin Baulig  <martin@ximian.com>
2777
2778         * metadata.c
2779         (mono_metadata_load_generic_param_constraints): New public
2780         function; splitted the constraints loading out from
2781         mono_metadata_load_generic_params().
2782
2783         * class.c (mono_class_create_from_typedef): Call
2784         mono_metadata_load_generic_param_constraints() after setting up
2785         the type and creating our parent; fixes #75329.
2786
2787 2005-10-04  Martin Baulig  <martin@ximian.com>
2788
2789         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
2790         non-dynamic parent classes.
2791
2792 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2793
2794         * file-io.c : win32 build fix (ETXTBSY seems not found).
2795
2796 2005-10-04  Martin Baulig  <martin@ximian.com>
2797
2798         * reflection.c
2799         (mono_image_get_methodspec_token): Make the cache actually work;
2800         fixes #75974.
2801
2802 2005-10-04  Martin Baulig  <martin@ximian.com>
2803
2804         * class.c (mono_class_name_from_token): Removed the unneccessary
2805         `MonoGenericContext *' argument.
2806
2807 2005-10-04  Martin Baulig  <martin@ximian.com>
2808
2809         * loader.c
2810         (method_from_methodspec): Make the caching work again; fixes the
2811         performance regression from #76262.
2812
2813 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2814
2815         * file-io.c:
2816         * file-io.h:
2817         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
2818         GetFileSystemEntries that performs the same work but without going
2819         into io-layer, locking, etc.
2820
2821 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
2822
2823         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
2824         ThreadState_Stopped as well. Fixes #76047.
2825
2826 2005-09-29  Martin Baulig  <martin@ximian.com>
2827
2828         * class.c
2829         (inflate_generic_context): If the new context has a `gmethod', set
2830         its `container' that that gmethod's `container'.
2831
2832         * metadata.c
2833         (mono_metadata_parse_generic_param): Simplify things;
2834         `generic_container = generic_context->container;' is just fine.
2835
2836         * loader.c (method_from_methodspec): Code cleanups.
2837
2838 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
2839
2840         * decimal.c: fix warning (and let gcc generate correct
2841         code on ARM with optimizations).
2842
2843 2005-09-28  Martin Baulig  <martin@ximian.com>
2844
2845         * loader.c
2846         (method_from_memberref): Added `MonoGenericContext *class_context'
2847         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
2848         (method_from_methodspec): If we're a memberref, use the enclosing
2849         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
2850
2851 2005-09-28  Martin Baulig  <martin@ximian.com>
2852
2853         * object.c (mono_runtime_invoke_array): Added support for
2854         MONO_TYPE_GENERICINST; fixes #75917.
2855
2856 2005-09-27  Martin Baulig  <martin@ximian.com>
2857
2858         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
2859         `k->byval_arg.type' to determine the actual type.
2860
2861         * loader.c (method_from_methodspec): Removed some hacks.
2862
2863 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
2864
2865         * class-internals.h (mono_field_is_deleted): Do the test for
2866         rtspecialname before we check the actual name of the field. This
2867         prevents us from dereferencing a pointer into the string table,
2868         saving us from accessing a few pages
2869
2870         * *.c: Replace the use of {Enter,Leave}CriticalSection with
2871         macros. This will allow a deadlock debugger to easily be plugged
2872         in.
2873
2874 2005-09-27  Martin Baulig  <martin@ximian.com>
2875
2876         * loader.c (method_from_methodspec): Create a "signature"
2877         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
2878
2879 2005-09-27  Martin Baulig  <martin@ximian.com>
2880
2881         * class.c
2882         (inflate_generic_class): Correctly set the new context's
2883         container.
2884
2885         * loader.c
2886         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
2887         instead of a `MonoGenericContext *'.
2888         (mono_method_signature_full): Take a `MonoGenericContainer *'
2889         instead of a `MonoGenericContext *'.
2890
2891         * metadata.c
2892         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
2893         instead of a `MonoGenericContext *'.
2894         (mono_metadata_parse_method_signature_full): Likewise.
2895
2896 2005-09-26  Martin Baulig  <martin@ximian.com>
2897
2898         * class.c
2899         (mono_class_from_generic_parameter): Set `klass->generic_container'
2900         (mono_class_from_generic_parameter): Likewise.
2901         (mono_bounded_array_class_get): We inherit the generic container
2902         from the element class.
2903
2904         * loader.c
2905         (find_method, find_method_in_class): Take a `MonoGenericContext *'
2906         argument rather than computing it here.
2907         (method_from_memberref): Correctly set the generic context before
2908         parsing the signature.  Fixes #75681.
2909
2910 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
2911
2912         * object.c (mono_class_has_special_static_fields): Fix warnings.
2913
2914 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2915
2916         * assembly.c: Add parse_public_key function, to
2917         par the public keys. Also added mono_assembly_name_parse_full,
2918         to define it the parsed key should be freed or not.
2919         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
2920         to parse a long format assembly name.
2921         * metadata-internals.h: Keep mono_assembly_name_parse_full as
2922         private, since calling it to preserve the key requires
2923         freeing it manually.
2924         
2925 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2926
2927         * locales.c : removed HAVE_ICU part.
2928
2929 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
2930
2931         * object.c (mono_class_create_runtime_vtable): Avoid calling 
2932         field_is_special_static if the klass has no special static fields.
2933
2934         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
2935         (MonoCachedClassInfo): Likewise.
2936
2937         * object.c (mono_class_has_special_static_fields): New helper function.
2938
2939 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2940
2941         * class.c (mono_class_create_from_typedef): Don't call 
2942         interfaces_from_typedef_full for enums.
2943         (mono_class_create_from_typedef): Compute the base types of enums directly
2944         without calling mono_class_setup_fields ().
2945         (mono_class_find_enum_basetype): New helper function.
2946
2947         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
2948         one place inside the string heap.
2949         
2950 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
2951
2952         * class.c: locking fixes, code cleanups, some docs added.
2953         Allocate some data structures in the image mempool.
2954
2955 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2956
2957         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2958         the example code.
2959         
2960 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
2961
2962         * class-internals.h, class.c, reflection.c: reduce memory taken by
2963         MonoClass.
2964
2965 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
2966
2967         * metadata.c, metadata.h, loader.h: documentation updates, code and
2968         API cleanups.
2969
2970 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2971
2972         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2973         the example code.
2974
2975         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
2976         page faults caused by the runtime while reading metadata.
2977
2978 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2979
2980         * socket-io.c: the field names were changed 3 months ago and no one
2981         realized until bug #76077 got filed!
2982
2983 2005-09-20  Martin Baulig  <martin@ximian.com>
2984
2985         * icall.c (assembly_icalls): Removed some unused debugger icalls.
2986
2987 2005-09-20  Martin Baulig  <martin@ximian.com>
2988
2989         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
2990         write the rank into the class entry.
2991
2992 2005-09-20  Martin Baulig  <martin@ximian.com>
2993
2994         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
2995
2996 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
2997
2998         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2999
3000         * icall.c (custom_attrs_defined_internal): New icall.
3001
3002         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
3003         function.
3004         (mono_custom_attrs_construct_by_type): New helper function.
3005
3006 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
3007
3008         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
3009         terminate the resulting string. Fixes #76123.
3010
3011 2005-09-16  Martin Baulig  <martin@ximian.com>
3012
3013         * mono-debug.c
3014         (mono_debug_add_method): Ignore inflated methods for the moment.
3015
3016 2005-09-14  Martin Baulig  <martin@ximian.com>
3017
3018         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
3019
3020 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
3021
3022         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
3023         return a success/failure indication.
3024         (mono_metadata_interfaces_from_typedef_full): Ditto.
3025         (get_constraints): Ditto.
3026
3027 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
3028
3029         * marshal.c (emit_marshal_array): Fix handling of null arrays.
3030         
3031         * marshal.c (emit_marshal_array): Add support for returning string
3032         arrays from delegates. Fixes #76063.
3033
3034         * marshal.c: Use the emit_ldloc/stloc macros where possible.
3035
3036 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3037
3038         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
3039         icall.
3040
3041 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
3042
3043         * reflection.c icall.c: Fix after mono_get_exception_type_load
3044         signature change.
3045
3046         * assembly.c (mono_assembly_get_assemblyref): New helper function.
3047         (mono_assembly_load_reference): Use the new helper.
3048
3049         * class-internals.h (MonoLoaderError): New structure containing 
3050         information about type loading errors.
3051
3052         * class-internals.h loader.c: Add APIs to store per-thread loader
3053         error information.
3054
3055         * loader.c class.c: Set the loader error if needed.
3056
3057         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
3058
3059 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
3060
3061         * decimal.c: fixed to handle the broken ARM fp format.
3062
3063 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
3064
3065         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
3066         broken.
3067
3068 2005-09-06  Martin Baulig  <martin@ximian.com>
3069
3070         * domain.c (supported_runtimes): Added v2.0.50727.
3071
3072 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
3073
3074         * culture-info.h: reduce the size of some structures.
3075
3076 2005-09-05  Martin Baulig  <martin@ximian.com>
3077
3078         Reflect latest API changes in the August CTP.
3079
3080         * icall.c
3081         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
3082         ("MonoType.HasGenericArguments"): Removed.
3083         ("MonoMethod.BindGenericParameters"): Renamed to
3084         "MakeGenericMethod".
3085         ("MethodBuilder.BindGenericParameters"): Renamed to
3086         "MakeGenericMethod".    
3087
3088 2005-09-05  Martin Baulig  <martin@ximian.com>
3089
3090         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
3091
3092 2005-09-05  Martin Baulig  <martin@ximian.com>
3093
3094         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3095
3096         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
3097         generic_container is non-NULL.
3098
3099 2005-09-05  Martin Baulig  <martin@ximian.com>
3100
3101         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3102
3103         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
3104
3105 2005-08-29  Michal Moskal  <malekith@nemerle.org>
3106
3107         * reflection.c (encode_locals,
3108         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
3109         for large generic types.
3110
3111 2005-09-05  Martin Baulig  <martin@ximian.com>
3112
3113         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3114
3115         * class.c (mono_dup_array_type): New public method.
3116         (mono_metadata_signature_deep_dup): New public method.
3117         (dup_type): Correctly duplicate array and function types.
3118
3119 2005-09-05  Martin Baulig  <martin@ximian.com>
3120
3121         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3122
3123         * reflection.c (get_default_param_value_blobs): Handle generic types
3124         and generic methods.
3125
3126 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
3127
3128         * class.c: Fixed error reporting (method/class were inversed) for 
3129         inheritance demands.
3130         * security-manager.c|h: Added the AppDomain when calling the managed
3131         System.Security.SecurityManager.InheritanceDemand method.
3132
3133 2005-09-01  Raja R Harinath  <rharinath@novell.com>
3134
3135         * reflection.c (encode_marshal_blob): 'marshaltype' and
3136         'marshaltyperef' are alternate sources for the custom marshaler
3137         name.
3138
3139 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
3140
3141         * class.c: fix creation of array classes with rank == 1
3142         (patch by Ankit Jain <jankit@novell.com>).
3143
3144 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
3145
3146         * object.c: fix check for creating the bound data for arrays vs
3147         szarrays.
3148
3149 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3150
3151         * object.c: configuration file name is now based on the executable name,
3152         not the image name. Fixes bug #75931.
3153
3154 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
3155
3156         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
3157         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
3158
3159 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
3160
3161         * rand.c: Use wincrypt.h instead of WinCrypt.h.
3162
3163 2005-08-24  Ankit Jain  <jankit@novell.com>
3164             Raja R Harinath  <rharinath@novell.com>
3165
3166         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
3167           called by it recursively.
3168           (mono_class_init): Remove special case in pending_init handling, since it's
3169           superseded by the fix to mono_class_from_typeref.
3170
3171 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3172
3173         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
3174         BROKEN_THREAD_START stuff.
3175
3176 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
3177
3178         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
3179         trampoline.
3180
3181         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
3182         
3183         * object.c (mono_delegate_ctor): Replace the original function address with
3184         a delegate trampoline.
3185
3186 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
3187
3188         * icall.c: add boolean argument to base64_to_byte_array and 
3189         InternalFromBase64String to control whether a whitespace-only string
3190         is allowed (or should casue a FormatException to be thrown). We need
3191         this as the behavior has changed between MS.NET 1.x and 2.0, and we
3192         to match the MS behaviour in both profiles.
3193         * appdomain.c: Bump corlib version.
3194
3195 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3196
3197         This patch implements a big portion of publisher policy
3198         support, used to bind assembly versions and redirect
3199         one assembly from version A to version B.
3200
3201         * assembly.c:
3202         New GSList loaded_assembly_bindings, for storing the cached
3203         assembly bindings.
3204         (assembly_binding_maps_name): New static function for checking if a 
3205         assembly binding information maps an assembly name.
3206         (mono_assembly_binding_info_free): New function for freeing
3207         assembly binding information resources.
3208         (get_publisher_policy_info): New static function for retrieving 
3209         assembly binding information from a MonoImage.
3210         (compare_versions): New static function for comparing an assembly
3211         binding information data and the version of an assembly name.
3212         (check_policy_versions): New static function for checking if an
3213         assembly binding info mapping an assembly name is valid for it.
3214         (mono_assembly_load_publisher_policy): New static function for
3215         loading the 'policy.major.minor.MyAssembly' image for an assembly
3216         with an assembly name 'aname'.
3217         (mono_assembly_bind_version): New static function for updating
3218         assembly redirection.
3219         (mono_assembly_apply_binding): New static function for applying
3220         assembly binding.
3221         (search_binding_loaded): New static function for searching 
3222         loaded assembly binding infos in the cache domain.
3223         (mono_assembly_load_full): Don't apply assembly binding for
3224         reflection only assemblies.
3225
3226         * metadata-internals.h: Add MonoAssemblyBindingInfo,
3227         which contains information about assembly binding. Also
3228         declare signature for mono_config_parse_publisher_policy ()
3229         function, used to retrieve pub policy info.
3230         
3231         * mono-config.c:
3232         (publisher_policy_start): New static function used to parse publisher 
3233         policy config files.
3234         (publisher_policy_parser): New static MonoParseHandler containing 
3235         the functions used when parsing config files.
3236         (mono_config_parse_publisher_policy): New function for parsing
3237         publisher policy files.
3238         
3239 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3240
3241         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
3242
3243         * marshal.c (mono_delegate_free_ftnptr): Ditto.
3244
3245         * object.c (mono_get_addr_from_ftnptr): New helper function.
3246
3247         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
3248
3249         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3250
3251 2005-08-19  Dick Porter  <dick@ximian.com>
3252
3253         * threads.c, threads.h, appdomain.c, appdomain.h,
3254         profiler-private.h, monitor.c, object.c, object-internals.h,
3255         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
3256         store the thread ID, so it can hold a 64 bit value if needed.
3257
3258 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3259
3260         * reflection.c (mono_reflection_create_dynamic_method): Store the
3261         handle class into the method references as well so ldtoken works in
3262         dynamic methods.
3263
3264         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
3265         types.
3266
3267 2005-08-19  Ankit Jain <jankit@novell.com>
3268
3269         Fix #75847.
3270         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
3271           here rather than using the method signature of a arbitrary function
3272           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
3273           two arguments.
3274           Hack done with Harinath.
3275
3276 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3277
3278         * threadpool.c: disable printing stack traces when we get a exception
3279         in a threadpool thread. I need to do more testing to figure out which
3280         cases actually print this. Fixes bug #75828.
3281
3282 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3283
3284         * icall.c: there might be ignored whitespace after the last '='. This
3285         fixes length computation and bug #75840.
3286
3287 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
3288
3289         * assembly.c (mono_assembly_load_full): Consider .exe extension as
3290         well. Fixes #75809.
3291
3292         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
3293         #75784.
3294         
3295         * reflection.c (create_custom_attr_data): Ditto.
3296
3297 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
3298
3299         * locales.c, culture-info.h : removed RegionLCIDMap.
3300         * culture-info-tables.h : regenerated.
3301
3302 2005-08-16  Martin Baulig  <martin@ximian.com>
3303
3304         * class.c (mono_type_get_name_recurse): Small fix.
3305
3306 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3307
3308         * locales.c : indentation fixie.
3309
3310 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
3311
3312         * object-internals.h,
3313           locales.h,
3314           locales.c,
3315           culture-info.h,
3316           icall.c : added RegionInfo table support.
3317         * culture-info-table.h : regenerated for region support.
3318
3319 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
3320
3321         * reflection.c (resolve_object): handle all kinds of MonoMethod
3322         including generic ones
3323
3324 2005-08-12  Ankit Jain <jankit@novell.com>
3325
3326         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
3327           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
3328
3329 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
3330
3331         * process.c: Don't close a thread handle when it's NULL. This is a
3332         workaround for bug #75733.
3333
3334 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3335
3336         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
3337
3338 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
3339
3340         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
3341
3342 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3343
3344         * threadpool.c: if a work item in the thread pool has a callback that
3345         catches a exception, don't propagate it after invoking the callback.
3346         Fixes bug #75336.
3347
3348 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3349
3350         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
3351
3352         * class-internals.h (MonoCachedClassInfo): Add some new fields.
3353
3354         * class.c (mono_class_init): Load field info lazily in the AOT case.    
3355
3356         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
3357
3358 2005-08-03  Ankit Jain  <jankit@novell.com>
3359
3360         Fix #75683.
3361         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
3362           PInvoke calling convention is 0.
3363
3364 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
3365
3366         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
3367         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
3368
3369 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
3370
3371         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
3372         to handle threads not started by the GC (patch by Michael Meeks
3373         <michael.meeks@novell.com>).
3374
3375 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
3376
3377         * reflection.c: Make buffer used in emitting types larger for some
3378         big generic types (patch by Michal Moskal).
3379
3380 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3381
3382         * mono-debug.c: Fix some (not all) alignment problems.
3383
3384 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3385
3386         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
3387         Invoke mono_image_load_from_data_full passing the refonly
3388         parameter.
3389
3390         * assembly.c
3391         (mono_assembly_open_from_bundle): Add the refonly argument, 
3392         in order to pass it to other methods it calls to.
3393         (do_mono_assembly_open): Add the refonly argument, in order 
3394         to pass it to other methods it calls to.
3395         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
3396         the refonly parameter to it.
3397
3398         * image.c: Add loaded_images_refonly_hash and
3399         loaded_images_refonly_guid_hash to cache the reflection
3400         only loaded images.
3401         (mono_images_init): Initialize the hash tables used for
3402         caching the reflection only images.
3403         (load_modules): Invoke mono_image_open_full passing the refonly
3404         parameter to load the modules the correct way.
3405         (build_guid_table): Add the refonly argument, to re-build the 
3406         correct hash table.
3407         (do_mono_image_open): Added the refonly argument, in order to
3408         define it for the loaded image.
3409         (mono_image_loaded_full): New function, which receives an
3410         additional parameter to look for the image in the refonly or
3411         non-refonly section.
3412         (mono_image_loaded): Updated, using mono_image_loaded_full.
3413         (mono_image_loaded_by_guid_full): The same case that happens
3414         with mono_image_loaded_full.
3415         (mono_image_loaded_by_guid): Likewise.
3416         (register_image): Use the ref_only variable inside MonoImage
3417         to decide in which hash table store the current image.
3418         (mono_image_open_from_data_full): Rename
3419         mono_image_open_from_data to mono_image_open_from_data_full,
3420         adding the refonly argument, to define the ref_only variable 
3421         inside MonoImage.
3422         (mono_image_open_from_data): Return 
3423         mono_image_open_from_data_full.
3424         (mono_image_open_full): Rename mono_image_open to
3425         mono_image_open_full, receiving the new refonly argument,
3426         to pass it to inner methods.
3427         (mono_pe_file_open): Update this function, to open
3428         a MonoImage as a non-refonly image.
3429         (mono_image_close): Use the refonly variable inside
3430         MonoImage to remove the image from the correct caches.
3431
3432         * image.h: Add the signatures of mono_image_open_full,
3433         mono_image_open_from_data_full, mono_image_loaded_full,
3434         mono_image_loaded_by_guid_full.
3435
3436         * metadata-internals.h: Add the ref_only field to 
3437         MonoImage.
3438         
3439 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3440
3441         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
3442         Fix the last behavior, which used to load the assemblies and
3443         extract MonoReflectionAssemblyName information, instead of
3444         extract it from the metadata tables. Needed for Reflection
3445         Only assemblies.
3446         
3447 2005-07-29  Martin Baulig  <martin@ximian.com>
3448
3449         * mono-debug-debugger.c
3450         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
3451         not initialized.
3452
3453         * mono-debug.c
3454         (mono_debug_address_from_il_offset): Check whether we have
3455         debugging support before attempting to take the lock.
3456         (mono_debug_source_location_from_address): Likewise.
3457         (mono_debug_source_location_from_il_offset): Likewise.
3458         (mono_debug_il_offset_from_address): Likewise.
3459         (mono_debug_address_from_il_offset): Likewise.
3460
3461 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
3462
3463         * class.c (mono_class_from_name_case): Add support for dynamic images.
3464         Fixes #75650.
3465
3466         * object.c (mono_class_compute_gc_descriptor): Add a workaround
3467         for #75479.
3468
3469 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3470         
3471         * reflection.c (mono_method_get_object): Fix warning.
3472
3473 2005-07-28  Martin Baulig  <martin@ximian.com>
3474
3475         * mono-debug.c
3476         (mono_debug_add_wrapper): Also write the wrapper type.
3477
3478 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3479
3480         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
3481         
3482         * class.c (mono_class_init): Avoid reading nested classes if the AOT
3483         data indicates the class has none.
3484
3485 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
3486
3487         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
3488         loader lock with the debugger lock. Prevents deadlocks for beagle.
3489
3490         Beagle can now run on an smp box for a weekend without any
3491         issues. Woohoo!
3492
3493 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3494
3495         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3496         in a module. Fixes #75629.
3497
3498 2005-07-26  Martin Baulig  <martin@ximian.com>
3499
3500         * mono-debug.c (mono_debug_add_wrapper): New static method.
3501         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3502         interncall or a wrapper.
3503
3504         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3505         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3506         (MONO_DEBUGGER_VERSION): Bump to 51.
3507
3508         * mono-debug-debugger.c
3509         (mono_debugger_add_type): Removed this empty function.
3510         (mono_debugger_add_method): Likewise.
3511
3512 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3513
3514         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3515         before accessing method->slot.
3516
3517 2005-07-21  Jb Evain  <jbevain@gmail.com>
3518
3519         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3520         Fixes #75010.
3521
3522 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3523
3524         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3525         #75587.
3526
3527 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3528
3529         * image.h image.c: Add mono_image_get_guid () API function.
3530
3531 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3532
3533         There were issues when multiple threads tried to load
3534         assemblies. A deadlock was created between assemblies_mutex and
3535         mono_domain_assemblies_lock. This fixes the issue by making the
3536         assembly ref counting be lock free. See bug 75586.
3537         
3538         * image.c (mono_image_close): The add ref function here was using
3539         Interlocked operations while the unref was using a mutex and a
3540         --. I don't think this was ever a bug that would be exposed in a
3541         non-pendantic way (ie, by an embedder doing a ref on one thread
3542         and an unref on another), but for the sake of correctness, this is
3543         now Interlocked.
3544
3545         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3546         (mono_assembly_load_reference): Call mono_assembly_addref rather
3547         than touching the refcount ourselves.
3548         (mono_assembly_close): Use InterlockedDecrement to unref the
3549         assembly. Don't acquire the lock unless it is actually needed.
3550
3551 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3552
3553         * class.c (mono_class_layout_fields): Fix calculation of has_references
3554         for generic types.
3555
3556 2005-07-12  Martin Baulig  <martin@ximian.com>
3557
3558         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3559
3560         * metadata.c
3561         (mono_type_hash): Provide better hashing for generic instances.
3562         (mono_generic_inst_hash): Improve hashing.
3563         (mono_generic_class_hash): Likewise.
3564
3565         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3566         generic instances.
3567
3568 2005-07-12  Martin Baulig  <martin@ximian.com>
3569
3570         * reflection.c (mono_reflection_create_runtime_class): Remove the
3571         hack for generic type definitions and non-`Run' assemblies.
3572         (mono_reflection_bind_generic_parameters): Also use
3573         `klass->wastypebuilder' to check for TypeBuilders.
3574
3575 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3576
3577         * class.c (mono_class_layout_fields): Fix calculation of has_references
3578         for generic types.
3579
3580         * class.c (inflate_generic_class): Fix a leak.
3581         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3582         for generic types.
3583
3584 2005-07-11  Martin Baulig  <martin@ximian.com>
3585
3586         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3587         on error.
3588
3589 2005-07-11  Martin Baulig  <martin@ximian.com>
3590
3591         * loader.c (find_method): Also lookup in
3592         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3593
3594 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3595
3596         * appdomain.c (mono_domain_unload): Don't free the error message
3597         before passing it to mono_get_exception_...
3598
3599         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3600         
3601 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3602
3603         * threads.c: try to better guess an available RT signal (bug #75387).
3604
3605 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3606
3607         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3608         and CACHE_OBJECT.
3609
3610 2005-07-07  Martin Baulig  <martin@ximian.com>
3611
3612         * class.c (mono_type_get_name_full): Return NULL for
3613         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3614         fixes #75408.
3615
3616 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3617
3618         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3619         exit the appdomain as well being aborted.
3620
3621         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3622         change back to the root domain after calling managed code. This enables
3623         appdomains using threadpools to be unloaded.
3624
3625 2005-07-07  Martin Baulig  <martin@ximian.com>
3626
3627         * class-internals.h
3628         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3629         into `MonoDynamicGenericClass' since we only need it for dynamic
3630         types.
3631
3632         * reflection.c (mono_class_bind_generic_parameters): We don't need
3633         to compute the `parent' here.
3634
3635 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3636
3637         * culture-info-table.h : regenerated.
3638
3639 2005-07-06  Martin Baulig  <martin@ximian.com>
3640
3641         * icall.c
3642         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3643
3644         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3645
3646 2005-07-06  Martin Baulig  <martin@ximian.com>
3647
3648         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3649         we're doing a signature-only comparision; fixes #74945.
3650
3651 2005-07-06  Martin Baulig  <martin@ximian.com>
3652
3653         * class-internals.h (MonoGenericClass): Moved some things out into
3654         a new `MonoInflatedGenericClass' type.  
3655         (MonoInflatedGenericClass): New type; the `klass' of a
3656         `MonoGenericClass' is now computed lazyly in
3657         mono_get_inflated_generic_class().      
3658
3659         * class.c (mono_get_inflated_generic_class): New public function.
3660         (mono_class_inflate_generic_method): Removed the unused
3661         `MonoClass *' argument.
3662         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3663         all the methods.
3664         (mono_class_create_generic): Make this static and merge it with
3665         mono_class_create_generic_2(); we're now called automatically from
3666         mono_get_inflated_generic_class().
3667
3668         * loader.c (mono_method_signature): Call
3669         mono_get_inflated_method() here.
3670
3671 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
3672
3673         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
3674         type of fields with RVA.
3675
3676         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
3677         for this pseudo class.
3678         (my_mono_class_from_generic_parameter): Likewise.
3679         (mono_class_init): Allow interfaces to have cctors.
3680
3681 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3682
3683         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
3684         lazily for AOT methods.
3685
3686 2005-07-05  Martin Baulig  <martin@ximian.com>
3687
3688         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
3689         returns FALSE for a successful match, not TRUE.
3690
3691 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3692
3693         * loader.c (mono_method_get_index): Optimize this a bit.
3694
3695 2005-07-04  Martin Baulig  <martin@ximian.com>
3696
3697         * class.c
3698         (class_compute_field_layout): Move the check for generic type
3699         definitions into mono_class_layout_fields().  Fixes #74684.
3700         (mono_class_from_generic_parameter): Correctly compute
3701         `klass->parent'; fixes #75457.
3702
3703         * reflection.c (register_assembly, register_module): Make sure
3704         `domain->rejobject_hash' is already created.
3705
3706 2005-07-02  Martin Baulig  <martin@ximian.com>
3707
3708         * class-internals.h
3709         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
3710         `MonoDynamicGenericClass'.      
3711
3712 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
3713
3714         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
3715         returned by a field getter is null, since null is a valid value.
3716
3717 2005-07-01  Martin Baulig  <martin@ximian.com>
3718
3719         * reflection.c (mono_reflection_generic_class_initialize): Update
3720         the `dgclass->fields [i].parent' to the correct class.
3721         (mono_image_get_fieldref_token): Use the declaring type, not the
3722         reflected type.
3723
3724 2005-07-01  Martin Baulig  <martin@ximian.com>
3725
3726         * loader.c (find_method): Also look in the interfaces; fixes #75429.
3727
3728 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
3729
3730         * threads.c (thread_cleanup): assert that thread != NULL
3731         (wait_for_tids_or_state_change): We were using the wrong variable
3732         when accessing wait->threads. `i' was always out of the bounds of
3733         the array.
3734
3735 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3736
3737         * loader.c: map user32 and kernel32 to libMonoSupportW
3738
3739 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
3740
3741         * appdomain.c (unload_thread_main): Mark this as WINAPI.
3742
3743 2005-06-28  Martin Baulig  <martin@ximian.com>
3744
3745         * loader.c (method_from_methodspec): Fix #75334.
3746
3747 2005-06-28  Martin Baulig  <martin@ximian.com>
3748
3749         Fix #74953 - Arrays now implement the generic IList<T> interface
3750         on the 2.0 platform.
3751
3752         * class-internals.h (MonoDefaults): Added `generic_array_class'.
3753
3754         * reflection.c (mono_class_bind_generic_parameters): New public
3755         function; similar to mono_reflection_bind_generic_parameters(),
3756         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
3757
3758         * domain.c (mono_init_internal): Try to initialize.
3759         `mono_defaults.generic_array_class' here; this'll only succeed if
3760         we're using the 2.0 corlib.
3761
3762         * icall.c
3763         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
3764         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
3765         (mono_lookup_internal_call): Added support for nested classes.
3766
3767         * loader.c
3768         (mono_get_method_from_token): Set `result->signature->pinvoke' if
3769         we're an interncall and have generic arguments.
3770
3771         * class.c
3772         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
3773         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
3774         instance of System.Array.InternalArray<T> for arrays, so they
3775         implement the generic IList<T> interface.
3776
3777 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
3778
3779         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
3780         (chastamar@yahoo.com). Fixes #75374.    
3781
3782 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
3783
3784         * culture-info-table.h: regenerated.
3785
3786 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3787
3788         * icall.c: handle spaces correctly for base64 strings.
3789
3790 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
3791
3792         * *.c: Kill some warnings.
3793
3794 2005-06-23  Duncan Mak  <duncan@novell.com>
3795
3796         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
3797         that this builds on Solaris 10 (x86).
3798
3799 2005-06-23  Martin Baulig  <martin@ximian.com>
3800
3801         * class.c
3802         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
3803         generic type definitions.
3804
3805 2005-06-23  Martin Baulig  <martin@ximian.com>
3806
3807         Fix #75331.
3808
3809         * metadata.c (mono_class_get_overrides): Renamed to
3810         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
3811         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
3812         pass it to mono_get_method_full().
3813
3814 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
3815
3816         * reflection.c (mono_reflection_create_runtime_class): take the
3817         mono_domain_lock in this method. Prevents deadlocks
3818
3819 2005-06-22  Martin Baulig  <martin@ximian.com>
3820
3821         * loader.c (method_from_methodspec): Fix #75330.
3822
3823 2005-06-22  Martin Baulig  <martin@ximian.com>
3824
3825         * reflection.c (type_get_qualified_name): Use
3826         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
3827         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
3828         argument; use it if we don't have an assembly name.
3829
3830 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
3831
3832         * object.c: In mono_message_init, set "copy out" flag for in
3833         parameters with the [Out] flag.
3834
3835 2005-06-21  Martin Baulig  <martin@ximian.com>
3836
3837         * class.c
3838         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
3839         and MONO_TYPE_PTR.
3840
3841 2005-06-21  Martin Baulig  <martin@ximian.com>
3842
3843         * class.c (mono_class_init): Don't initialize `class->fields' for
3844         generic instances since they're initialized again in
3845         compute_field_layout(). 
3846         (compute_field_layout): Set the field's `generic_info' here; fix
3847         #75320. 
3848
3849 2005-06-21  Martin Baulig  <martin@ximian.com>
3850
3851         * class-internals.h
3852         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
3853
3854         * metadata.c (mono_metadata_generic_method_equal): Also
3855         distinguish the `generic_class'; fixes #75334.
3856
3857 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3858
3859         * domain.c:
3860         * appdomain.c:
3861         * domain-internals.h:
3862         * reflection.c: 'domain_assemblies' field is now protected by its own
3863         lock. Don't call into managed code to run the AssemblyLoad event if we
3864         now there are no registered delegates for it.
3865
3866 2005-06-20  Martin Baulig  <martin@ximian.com>
3867
3868         * class.c (mono_class_is_assignable_from): Use a custom version of
3869         mono_class_has_parent() to make things work for generic instances;
3870         fix #75300.
3871
3872 2005-06-20  Martin Baulig  <martin@ximian.com>
3873
3874         * loader.c (method_from_methodspec): Apply a patch from
3875         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
3876
3877 2005-06-20  Martin Baulig  <martin@ximian.com>
3878
3879         * class.c (mono_class_init): Reverted Zoltan's last change; it
3880         breaks generics.
3881
3882 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
3883
3884         * threads.c (wait_for_tids_or_state_change): Add missing locking.
3885
3886 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3887
3888         * socket-io.c: fix the index in the socket array for writable/error
3889         sockets. Fixes bug #75306.
3890
3891 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
3892
3893         * class.c (mono_class_init): Allow interfaces to have static ctors.
3894
3895 2005-06-17  Martin Baulig  <martin@ximian.com>
3896
3897         * loader.c (method_from_methodspec): Use `context->container' when
3898         parsing the `gmethod->inst'.
3899
3900 2005-06-17  Martin Baulig  <martin@ximian.com>
3901
3902         * class.c (mono_type_get_name_recurse): Don't add the assembly
3903         name for type arguments.
3904
3905 2005-06-15  Martin Baulig  <martin@ximian.com>
3906
3907         * reflection.c (mono_image_get_inflated_method_token): Encode
3908         correct klass; fixes #75260.
3909
3910 2005-06-13 Michal Moskal <malekith@nemerle.org>
3911
3912         * icall.c: Make GetCorrespondingMethod/Constructor take
3913         MonoReflectionMethod method not MonoMethod. Removed
3914         MonoType.GetCorrespondingField, and make
3915         MonoGenericType.GetCorrespondingField take name not
3916         MonoClassField.
3917
3918 2005-06-13  Michal Moskal <malekith@nemerle.org>
3919
3920         * reflection.c (field_encode_signature, encode_locals):
3921          Make sizes of buffers for types larger (for big generic types).
3922          (create_generic_typespec,
3923          mono_reflection_sighelper_get_signature_local,
3924          mono_reflection_sighelper_get_signature_field):
3925          Add asserts for too small buffers.
3926
3927 2005-06-15  Martin Baulig  <martin@ximian.com>
3928
3929         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
3930         if our parent is not a dynamic type.
3931
3932 2005-06-15  Martin Baulig  <martin@ximian.com>
3933
3934         * class-internals.h (MonoTypeNameFormat): New enum.
3935
3936         * class.c
3937         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
3938         (mono_type_get_full_name): Removed.
3939         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
3940         argument instead of the boolean's.
3941
3942         * icall.c (ves_icall_System_MonoType_getFullName):
3943         Added `gboolean assembly_qualified'.    
3944
3945         * reflection.h
3946         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
3947
3948         * reflection.c (mono_reflection_parse_type): Parse the new type
3949         name format.
3950
3951 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3952
3953         * icall.c: no need to convert from utf16 to utf8 and then back again
3954         after the call to GetLogicalDrives.
3955
3956 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3957
3958         * icall.c: frombase64. Fix problems exposed by new tests.
3959
3960 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3961
3962         * icall.c: added internal calls for converting char [] and strings in
3963         base64 into byte [].
3964
3965 2005-06-10  Martin Baulig  <martin@ximian.com>
3966
3967         * class.c (mono_class_create_generic_2): Read the nested classes
3968         from the metadata rather than from `gklass->nested_classes' since
3969         `gklass' might not be initialized yet.
3970
3971 2005-06-09  Duncan Mak  <duncan@novell.com>
3972
3973         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
3974         all public headers. Fixes #74919.
3975
3976 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
3977
3978         * domain.c: The key for proxy_vtable_hash is now a pointer
3979         array. Added new GHashFunc and GCompareFunc functions for this.
3980
3981         * class.h: The list of interfaces in MonoRemoteClass is known in
3982         advance and can't grow (we create a new MonoRemoteClass if needed),
3983         so now the interface array can be allocated together with
3984         MonoRemoteClass.
3985         
3986         * object.c: Added a new method create_remote_class_key.
3987         Fixed mono_remote_class so it does not depend on
3988         mono_upgrade_remote_class.
3989         Removed extend_interface_array.
3990         Added new method clone_remote_class(), which makes a copy of a remote
3991         class and adds a new interface or class to it.
3992         mono_upgrade_remote_class() now creates a new remote class (or gets
3993         it from the cache) if an vtable upgrade is needed. In this way
3994         we make sure that other objects sharing the same remote class
3995         don't get the new vtable with unwanted interfaces.
3996         
3997         * object-internals.h:
3998         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
3999         
4000         * marshal.c: Track changes in mono_upgrade_remote_class().
4001
4002 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
4003         * icall.c: Add runtime methods for obtaining members of inflated
4004         class, which were created from supplied non-inflated members. It
4005         is used in internal Get{Method,Constructor,Field} methods in
4006         System.Type
4007
4008 2005-06-09  Martin Baulig  <martin@ximian.com>
4009
4010         * reflection.c
4011         (mono_reflection_bind_generic_method_parameters): Fix #75169.
4012
4013 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4014         * reflection.c (mono_image_basic_init): Define
4015         Version in MonoDynamicAssembly. 
4016         
4017 2005-06-08  Martin Baulig  <martin@ximian.com>
4018
4019         Fix #75136.
4020
4021         * loader.c
4022         (mono_method_signature_full): New public method; takes a
4023         `MonoGenericContext *'.
4024         (find_method): Use mono_method_signature_full() and pass the
4025         klass'es context to it.
4026
4027         * class.c (mono_class_is_inflated_method): Use
4028         mono_method_signature_full() and pass the context to it.
4029
4030 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
4031
4032         * object.c: add proper locking in mono_remote_class_vtable(),
4033         fixes possible memory corruption.
4034
4035 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
4036
4037         * marshal.c (mono_remoting_marshal_init): set
4038         initialized after initialization.
4039
4040 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4041
4042         * locales.c : hush.
4043
4044 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
4045
4046         * object.c (extend_interface_array): fix really silly
4047         memory corrupting / comparison bug.
4048
4049 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4050
4051         * reflection.c: Functions added to support the creation
4052         of CustomAttributeData, which includes Attribute data
4053         used by ReflectionOnly methods.
4054
4055         * reflection.h:  mono_reflection_get_custom_attrs_data and
4056          mono_custom_attrs_data_construct added (functions exposed).
4057
4058          * icall.c: Added mono_reflection_get_custom_attrs_data
4059          as icall.
4060         
4061 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
4062
4063         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
4064         lupus's request.
4065
4066 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
4067
4068         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
4069
4070         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
4071         dynamic DllImportAttribute.
4072
4073         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
4074         dynamic DllImportAttribute.
4075
4076         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
4077         Fixes #75162.
4078
4079 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4080
4081         * threads.c: avoid segfault when an unstarted thread is aborted.
4082
4083 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
4084
4085         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
4086         Returns the name and version of the runtime for reporting.
4087
4088 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4089
4090         * appdomain.c: bump corlib version.
4091         * object-internals.h: new field in MonoReflectionAssembly.
4092
4093 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4094
4095         * object-internals.h: Carlos forgot to add this field.
4096
4097 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4098
4099         * icall.c: Added create_version to create instances
4100         of Version of MonoReflectionAssemblyName. This change helps
4101         the AssemblyName tests to keep running fine.
4102         
4103 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
4104   
4105         * object.c (mono_method_return_message_restore): A somehow less
4106         intrusive fix for #75138.
4107
4108 2005-06-03  Raja R Harinath  <rharinath@novell.com>
4109
4110         * object.c (mono_method_return_message_restore): Fix computation
4111         of expected number of out args.
4112
4113 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4114
4115         * reflection.c (mono_image_get_method_info): Fix the case when the
4116         charset is empty.
4117
4118 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
4119
4120         * object.c: Added missing null check in
4121           mono_method_return_message_restore.
4122
4123 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4124
4125         * reflection.c (mono_image_get_method_info): Handle the case when
4126         dllentry is empty.
4127
4128 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
4129
4130         * object.c: When creating the vtable for a proxy, take into account
4131         all inherited interfaces, not only the ones registered in
4132         iclass->interfaces. This fixs bug #74996.
4133         Also, in mono_method_return_message_restore, verify that the array
4134         of out args has the expected lengh.
4135
4136 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4137
4138         * socket-io.c: update the timeout in Poll when the call is interrupte.
4139
4140 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4141
4142         * socket-io.c: support abort/suspend in Select_internal after last
4143         change.
4144
4145 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4146
4147         * threadpool.c: remove warning.
4148
4149 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4150
4151         * icall.c:
4152         * socket-io.[ch]: Select_internal uses poll() now when available, thus
4153         removing the 1024 limit from select(). Runtime part of the fix for
4154         bug #71203.
4155
4156 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4157
4158         * socket-io.c: when resolving the addresses for the same
4159         host returned by gethostname(), get the local IPs from the interface
4160         list. Loopback addresses are discarded if the are interfaces up with
4161         non-loopback ones. Fixes bug #63265.
4162
4163 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
4164
4165         * appdomain.c, verify.c, object-internals.h, reflection.c:
4166         bumped corlib number to 36, and added new extra_flags field
4167         to ReflectionMethodBuilder and friends.  Fixes #75060.
4168
4169 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
4170
4171         * gc.c: register a new weak link only if the object is non-null
4172         (fixes bug#75047).
4173
4174 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4175
4176         * culture-info.h : short time pattern too.
4177
4178 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4179
4180         * culture-info.h : expand long time pattern string length.
4181
4182 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4183
4184         * culture-info-table.h : update (more French date format; #72788).
4185
4186 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
4187
4188         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
4189         the method is static. Fixes #75029.
4190
4191 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
4192
4193         * reflection.c: Update the table_idx field of method builders after
4194         saving the module, since it can change. This is a workaround for
4195         bug #74914. 
4196
4197 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4198
4199         * culture-info-table.h : update (additional French date format).
4200
4201 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4202
4203         * icall.c (ves_icall_type_Equals): Revert last change.
4204         
4205         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
4206
4207         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
4208
4209 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
4210
4211         * class-internals.h: Added executioncontext_class field to 
4212         MonoDefaults structure.
4213         * domain.c: Cache System.Threading.ExecutionContext class in 
4214         mono_defaults.
4215         * object.c: Capture the ExecutionContext for asynchroneous calls in
4216          mono_async_result_new.
4217         * object-internals.h: Added execution_context and original_context 
4218         fields to MonoAsyncResult. Added execution_context to MonoThread.
4219         * security-manager.c|.h: Added mono_get_context_capture_method to 
4220         return the capture method (if required by the security manager or by
4221         the framework version used).
4222         * threadpool.c: Apply capture (if present) ExecutionContext in 
4223         mono_async_invoke and revert to original context after it completes.
4224
4225 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
4226
4227         * culture-info-table.h : updated (real hacky solution for zh-CHT).
4228
4229 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
4230
4231         * culture-info-table.h : zh-CHT related workaround.
4232
4233 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4234
4235         * marshal.c (emit_marshal_custom): Add some error checking and call the
4236         methods in the ICustomMarshaler interface. Fixes #74875.
4237         
4238         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
4239         native->managed wrappers.
4240
4241 2005-05-12  Martin Baulig  <martin@ximian.com>
4242
4243         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
4244         here and use the loader lock.
4245
4246         * mono-debug.c: Properly lock when the debugger is not attached.
4247         (mono_debug_init): Release the initial lock if we're not running
4248         in the debugger.
4249
4250 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4251
4252         * marshal.c (emit_marshal_custom): Pass through NULL values without
4253         calling the custom marshalling routines.
4254
4255         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
4256         conversion in structures. Fixes #74882.
4257
4258 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
4259
4260         * culture-info-table.h : zh-* cultures were missing.
4261
4262 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
4263
4264         * threads.c: Added a new event background_change_event which is signaled
4265         when a thread changes its background mode.
4266         Moved here several checks previously done in managed code. The checks
4267         require the thread lock, and using the thread lock in managed code
4268         can result in deadlocks.
4269         Merged Start_internal and Thread_internal into a single method. Now 
4270         Thread_internal does all work of creating and starting a thread.
4271         Added icalls for setting and getting the state of the object. Moved from
4272         managed code to avoid locking there.
4273         Added wait_for_tids_or_state_change() which is called instad of
4274         wait_for_tids when waiting for non-backround threads to end. This method
4275         will return if one of the threads ends or the background_change_event
4276         is signaled.
4277         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
4278         the background mode. This method signals the background_change_event
4279         event.
4280         * icall.c:
4281         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
4282         removed Start_internal.
4283         
4284 2005-05-11  Martin Baulig  <martin@ximian.com>
4285
4286         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
4287         to order of some fields to get proper alignment on 64-bit machines.
4288
4289 2005-05-11  Martin Baulig  <martin@ximian.com>
4290
4291         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
4292         changes as they're broken and completely fuck up the debugger.
4293
4294         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
4295
4296 2005-05-10  Martin Baulig  <martin@ximian.com>
4297
4298         * reflection.c (mono_reflection_generic_class_initialize): Don't
4299         call mono_class_setup_parent() here.
4300
4301 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4302
4303         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
4304         send/receive timeout use an integer in milliseconds. We were using a
4305         struct timeval.
4306
4307 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4308
4309         * locales.c:
4310         (internal_get_cultures): reserve the first slot of the array for the
4311         InvariantCulture, which will be filled in managed code.
4312
4313 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
4314
4315         * reflection.c (mono_image_fill_module_table): Initialize the
4316         GENERATION field as well.
4317
4318 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4319
4320         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
4321         Monitor.Enter on the object.
4322
4323 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4324
4325         * threads.c: Enable the wait for running threads when exiting.
4326         * icall.c: Suspend all threads before exiting.
4327
4328 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4329
4330         * assembly.c (mono_assembly_load_reference): Fix warning.
4331
4332 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4333
4334         * threadpool.c: changed the default number of threads per cpu. From now
4335         on, the default will be 20 + (5 * number of cpus) instead of 50.
4336
4337 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
4338
4339         * loader.c (mono_method_get_signature_full): Add locking here.
4340
4341 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
4342
4343         * appdomain.c: Moved methods for parsing and freeing assembly
4344         names to assembly.c.
4345         * assembly.c, domain-internals.h: Created public methods for parsing
4346         assembly names. Fixed mono_assembly_load_with_partial_name:
4347         it now finds the best match, taking into account the version,
4348         token and culture specified in the partial name. Also return
4349         the latest version if no version information is specified.
4350
4351 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
4352
4353         * threadpool.c: replace check for SocketAsyncCall class.
4354
4355 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4356
4357         * threadpool-internals.h:
4358         * Makefile.am: added threadpool-internals.h
4359
4360         * threadpool.c: call mono_unhandled_exception on exceptions not handled
4361         that happen in threadpool threads (tested on MS).
4362         (mono_thread_pool_remove_socket): new function that dispatch any pending
4363         AIO call on a socket that is closing. By now only epoll really needs it,
4364         as select/poll wake up when the socket closes.
4365
4366
4367         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
4368
4369 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
4370
4371         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
4372
4373 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
4374
4375         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
4376
4377 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
4378
4379         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
4380         has an abort request, convert it into a suspend request.
4381
4382 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
4383
4384         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
4385         warning for the usage of `UnmanagedFunctionPointerAttribute' which
4386         is not supported yet.
4387
4388 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4389
4390         * image.c: register assemblies loaded from data (bundles) in the loaded
4391         assemblies hash. Fixes bug #74772.
4392
4393 2005-04-29  Martin Baulig  <martin@ximian.com>
4394
4395         * class.c (mono_type_get_name_recurse): Update to the new naming
4396         schema from the latest .NET 2.x beta2.
4397         (mono_class_setup_vtable_general): If we're a generic instance,
4398         copy the vtable from our generic type definition and inflate all
4399         the methods in it.
4400
4401         * loader.c (find_method): Update to the new naming schema from the
4402         latest .NET 2.x beta2.
4403
4404 2005-04-29  Raja R Harinath  <harinath@gmail.com>
4405
4406         * class.c (mono_class_init): Add a mono_loader_unlock to the
4407         #74734 fix.
4408
4409 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4410
4411         * icall.c (ves_icall_System_Environment_Exit): Remove the 
4412         suspend_all_other_threads () call for the time being, since it can hang.
4413
4414         * threads.c (mono_thread_manage): Similarly, disable the waiting for
4415         the background threads to exit, since it can also hang.
4416
4417         * class.c (mono_class_init): Applied patch from Ankit Jain 
4418         (radical@gmail.com). Avoid pending init errors when a field refers
4419         to a nested class using a typeref. Fixes #74734.
4420
4421         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
4422         this for dynamic modules.
4423
4424 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4425
4426         * threads.c: don't wait for threads that are in the process of aborting
4427         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
4428         and waiting for background threads to finish. This makes xsp and
4429         mod-mono-server exit without random length delays and/or hangs.
4430
4431 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4432
4433         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
4434
4435 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
4436
4437         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
4438         dynamic types to prevent infinite loops. Fixes #74727.
4439
4440         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
4441         ..._is_assignable_to.
4442
4443 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
4444
4445         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
4446
4447 2005-04-25  Martin Baulig  <martin@ximian.com>
4448
4449         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
4450
4451         * domain.c
4452         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
4453
4454         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
4455
4456         * reflection.c (build_compressed_metadata): Set metadata header
4457         version to 2.0.
4458
4459 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4460
4461         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
4462         number into an integral and a decimal part. Fixes #70473.
4463
4464         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
4465
4466 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
4467
4468         * culture-info-table.h : reflected the latest locale-builder output.
4469
4470 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4471
4472         * threadpool.c: check for SuspendRequested too when deciding if
4473         mono_thread_interruption_checkpoint should be called.
4474
4475 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4476
4477         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
4478         * threads.c: remove interruption_mutex and use Interlocked instead. When
4479         suspending all the threads, wait for all the suspended events at once.
4480         If we're shutting down and get an APC that is going to be queued,
4481         call mono_thread_execute_interruption immediately, as the thread might
4482         be sleeping on a pthread condition or mutex.
4483
4484         * icall.c: call mono_runtime_set_shutting_down before suspending the
4485         threads.
4486
4487         Fixes bug #74693. And now xsp is happier when exiting.
4488
4489 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4490
4491         * loader.c (mono_stack_walk): Fix #74690.
4492
4493 2005-04-22  Martin Baulig  <martin@ximian.com>
4494
4495         * mono-debug.h (MonoDebugMethodJitInfo): Added
4496         `MonoDebugMethodJitInfo *jit'.
4497
4498         * mono-debug.c (mono_debug_read_method): Cache the
4499         MonoDebugMethodJitInfo in `address->jit'.
4500         (mono_debug_free_method_jit_info): New public method.
4501
4502 2005-04-22  Martin Baulig  <martin@ximian.com>
4503
4504         * class.c (mono_class_is_assignable_from): Disallow
4505         type parameter -> interface.
4506
4507 2005-04-21  Dick Porter  <dick@ximian.com>
4508
4509         * threads.c (mono_thread_create): Turn an assertion into an error.
4510
4511 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4512
4513         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4514         
4515         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4516         Fix some gcc 4.0 warnings.
4517
4518 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4519
4520         * file-io.c: fix alt dir separator char on unix systems
4521         and cleanup (fixes bug #71214).
4522
4523 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4524
4525         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4526         a call to a remote domain, since the method may be an
4527         interface method in the client domain. This fixes bug #74192.
4528
4529 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4530
4531         * threadpool.c: recv/send are now performed before going back to managed
4532         code to save one transition.
4533
4534 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4535
4536         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4537
4538         * metadata/threadpool.c: removed hack to workaround the bug above.
4539
4540         Fixes bug #74618.
4541
4542 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4543
4544         * reflection.c reflection.h: Fix handling of parameter defaults in
4545         dynamic methods. Also fixes handling of parameter attributes.
4546         Fixes #74609.
4547
4548         * mono-debug.c (mono_debug_close_image): Fix warning.
4549
4550 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4551
4552         * socket-io.h: replaced old unused field with new 'blocking'.
4553         * threadpool.c: restore socket blocking state on windows(tm).
4554
4555 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4556
4557         * icall.c: don't return the codebase in the AssemblyName[] returned by
4558         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4559         * object-internals.h: Removed FIXME (fields were presents) and fixed
4560         versioncompat declaration.
4561
4562 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4563
4564         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4565         not closed, so don't cleanup when it happens.
4566
4567 2005-04-13  Chris Toshok  <toshok@ximian.com>
4568
4569         * mono-debug-debugger.h: change prototype for
4570         mono_debugger_lookup_type.
4571
4572         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4573         this function, although it should probably be named
4574         mono_debugger_init_type.
4575
4576 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4577
4578         * threadpool.c: fix non-AIO case.
4579
4580 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4581
4582         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4583         the built-in profiler to measure just JIT compilation times.
4584
4585 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4586
4587         * threadpool.c: the epollfd might be closed by another thread at
4588         any time, so ignore EBADF at treat it as a "we're closing" sign.
4589
4590 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4591
4592         * threadpool.c: release the semaphores with a count equals to the number
4593         of working threads in both IO and regular pools. Fixed typo that messed
4594         up the count of IO pool threads. Don't initialize the pipe handles if
4595         we're using epoll.
4596
4597 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4598
4599         * threadpool.c: some systems don't like a NULL when deleting the socket
4600         from epoll.
4601
4602 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4603
4604         * threadpool.c: fix semaphore allocation.
4605
4606 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4607
4608         * threadpool.c: added epoll() based implementation for asynchronous IO
4609         that is used instead of the default poll() when available.
4610         It can be disabled by setting MONO_DISABLE_AIO.
4611
4612 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4613
4614         * threadpool.c: windows needs 'closesocket' and instead of returning
4615         0 when the stream is closed while in select, it returns -1. Fixes bug
4616         #74573.
4617
4618 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4619
4620         * class.c (class_compute_field_layout): Fix the regression caused by
4621         the previous try.
4622
4623 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4624
4625         * threadpool.c: separate pool for socket async. IO.
4626         * threadpool.h: mono_max_worker_threads is not a global any more.
4627
4628 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4629
4630         * class.c (class_compute_field_layout): Fix #74549.
4631
4632 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4633
4634         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4635         use 2 connected sockets instead.
4636
4637 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4638
4639         * mono-config.c: Add new entry point for mkbundle
4640         mono_config_parse_memory. 
4641
4642 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4643
4644         * threadpool.c: removed another unused function.
4645
4646 2005-04-08  Ankit Jain  <radical@corewars.org>
4647
4648         * reflection.c (get_default_param_value_blobs): Add 'types'
4649         parameter to get the types encoded in the constant table.
4650         (mono_param_get_objects): Use the type from the constant table,
4651         not the type of the parameter, when creating default values.
4652         Handle null default values correctly.
4653
4654 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4655
4656         * file-io.c:
4657         * file-io.h:
4658         * threadpool.c:
4659         * threadpool.h:
4660         * icall.c:
4661         * socket-io.c: removed dead code for async IO.
4662
4663 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4664
4665         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4666
4667         * threadpool.c: intercept socket async. calls and pass them to a thread
4668         that is polling and dispatching the job items to the threadpool as
4669         socket become ready. Fixes bugs #71217, #71933.
4670
4671         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
4672         between char and short/ushort arrays.
4673
4674         * socket-io.c: remove dead code.
4675
4676 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4677
4678         * locales.c,
4679           icall.c : removed InternalToUpper_Comp() and
4680           InternalToLower_Comp().
4681
4682 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4683
4684         * char-conversions.h : The tables were incorrectly generated. Should
4685           be generated against invariant culture.
4686
4687 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4688
4689         * object.c (mono_runtime_invoke_array): Fix return value when 
4690         passing pre-created valuetype objects to ctors.
4691
4692         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
4693         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
4694         Fixes #74338.
4695
4696 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
4697
4698         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
4699         only used with --security and hides the wrong corlib version error.
4700
4701 2005-03-30  Joshua Tauberer  <tauberer@for.net>
4702
4703         * class.c: Changed mono_class_name_from_token so that types
4704         outside of a namespace don't have an initial period.  Improved
4705         the g_warning message used in _mono_class_get when loading
4706         fails.
4707         * assembly.c: In mono_assembly_load_reference, when an assembly
4708         can't be found, "No such file or directory" is misleading and
4709         unhelpful because a few paths were checked for the presence of
4710         the assembly.  When that happens (ENOENT), display a nicer
4711         message indicating the directories that were searched.  In all
4712         cases, the warning is made easier to read for non-hackers.
4713
4714 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
4715
4716         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
4717         project/solution.
4718         * appdomain.h|domain.c: Removed inline from functions.
4719         * appdomain.c: Reduced warnings when compiling on windows.
4720         * icall.c: Fixed output_debug declaration to gunichar2*.
4721         * mono-config.c: Reduced warnings when compiling on windows.
4722         * rand.c: Added missing "windows.h". Added missing return value.
4723         * rawbuffer.c: Added missing winsock2.h for windows.
4724         * sysmath.h: Added mono-compiler.h header to allow/ease 
4725         compilation with non-GCC compilers.
4726         * threads.c: Fixed declarations to compile with VS.NET C compiler.
4727         Removed cast warnings.
4728
4729         Adapted from the work of J Lothian (for VC6).
4730
4731 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4732
4733         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
4734         from default_path.
4735
4736 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
4737
4738         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
4739         the 2.0 profile.
4740
4741 2005-03-27  Raja R Harinath  <harinath@gmail.com>
4742
4743         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
4744         has to be in $(exec_prefix).  $(prefix) is for arch-independent
4745         stuff, and it would probably use $(prefix)/share rather than
4746         $(prefix)/lib.
4747
4748 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4749
4750         * console-io.c: added 2 includes that might be missing.
4751
4752 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4753
4754         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
4755         profile.
4756
4757         * reflection.c (create_custom_attr): Allocate the params array using
4758         alloca so it gets GC tracking.
4759
4760 2005-03-23  Chris Toshok  <toshok@ximian.com>
4761
4762         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
4763         out some spew.
4764
4765 2005-03-24  Raja R Harinath  <rharinath@novell.com>
4766
4767         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
4768         changes to pick up any changes in prefix, etc.
4769
4770 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4771
4772         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
4773         
4774         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
4775         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
4776
4777 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4778
4779         * class-internals.h object-internals.h class.c reflection.c: Extend the
4780         mono_lookup_dynamic_token () function to return the class of the
4781         token as well. 
4782
4783         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
4784         well. Fixes #73848.
4785
4786 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
4787
4788         * security-manager.c: Skip inheritance checks for intra-corlib
4789         class inheritance and method overrides. This skips a lot of checks
4790         and (anyway) permissions cannot work until corlib is loaded.
4791
4792 2005-03-23  Martin Baulig  <martin@ximian.com>
4793
4794         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
4795         MONO_TYPE_GENERICINST.  
4796
4797 2005-03-23  Martin Baulig  <martin@ximian.com>
4798
4799         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
4800
4801 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4802
4803         * class.c: added locking comments to some functions.
4804         Cache the interface offsets arrays (saves about 20 KB
4805         of runtime memory in a typical app).
4806         Reduce the time overhead in mono_class_setup_supertypes ().
4807
4808 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
4809
4810         * icall.c: speedup and fix leaks in GetMethodsByName and
4811         GetPropertiesByName.
4812
4813 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
4814
4815         * reflection.c: some locking fixes.
4816
4817 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
4818
4819         * metadata.c: added missing break in case statement.
4820
4821 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
4822
4823         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4824         typedbyref return values. Fixes #73941.
4825
4826 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
4827
4828         * security-manager.c|h: Added demandunmanaged method and 
4829         suppressunmanagedcodesecurity class to MonoSecurityManager.
4830         Renamed aptc class to allowpartiallytrustedcallers.
4831
4832 2005-03-17  Martin Baulig  <martin@ximian.com>
4833
4834         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
4835
4836 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4837
4838         * file-io.c: disabled file async. IO using aio_*. It uses the
4839         threadpool now. Workaround for bug #73718.
4840
4841 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
4842
4843         * assembly.h, mono-config.c: added code to deal with bundled configs
4844         for bundled assemblies.
4845
4846 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
4847
4848         * *.c, private.h: cleanup, removing old private.h header file.
4849
4850 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
4851
4852         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
4853         and throw_on_unmappable_char attributes.
4854
4855 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
4856
4857         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
4858         _ProcessName_internal.
4859
4860 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
4861
4862         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
4863         #73631.
4864
4865         * icall.c threads.c threads-types.h: Remove slothash icalls as they
4866         are no longer used.
4867
4868 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
4869
4870         * object.c (compute_class_bitmap): Add support for generics. Fixes
4871         #73527.
4872
4873 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4874
4875         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
4876
4877 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4878
4879         * filewatcher.c: commented out the code for windows watcher, as we don't
4880         use it (we use the managed implementation instead).
4881
4882 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4883
4884         * object-internals.h (MonoThread): Remove 'unused1' field.
4885
4886         * appdomain.c: Bump corlib version.
4887
4888         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
4889
4890         * reflection.c (mono_reflection_create_runtime_class): Remove the
4891         AssemblyBuilder.Save optimization since it causes too many problems.
4892
4893 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
4894
4895         * exception.c|h: Added mono_get_exception_reflection_type_load to
4896         create a ReflectionTypeLoadException object.
4897         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
4898         to return NULL is a InheritanceDemand fails during reflection. Updated
4899         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
4900         ReflectionTypeLoadException if an InheritanceDemand fails during 
4901         reflection. Added icall mapping for GetLinkDemandSecurity.
4902         * security-manager.c|h: Added ves_icall_System_Security_
4903         SecurityManager_GetLinkDemandSecurity internal call to return the
4904         class and methods permissions set for a LinkDemand. Removed unused
4905         fields in MonoSecurityManager.
4906
4907 2005-03-10  Martin Baulig  <martin@ximian.com>
4908
4909         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
4910         it's a generic instance.
4911
4912 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
4913
4914         * reflection.c (mono_get_object_from_blob): Applied patch from
4915         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
4916
4917         * class.c (mono_class_is_assignable_from): Another try at fixing 
4918         #73469 without breaking anything.
4919
4920 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
4921
4922         * class.c: (mono_class_is_assignable_from): Revert the last changes
4923         since they don't work with generics.
4924         
4925         * class.c (mono_class_is_assignable_from): Fix build bustage.
4926
4927         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
4928         the managed IsAssignableFrom method. Fixes #73469.
4929
4930         * reflection.c (mono_reflection_call_is_assignable_from): New helper
4931         function.
4932
4933 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
4934
4935         * object.c (mono_load_remote_field_new): Fix returning uninitialized
4936         memory when the remoting callback does not sets the out arguments.
4937         Fixes #73007.
4938
4939         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
4940         by mistake.
4941
4942         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
4943
4944         * object-internals.h (MonoStackFrame): Sync with managed object layout.
4945
4946         * appdomain.c: Bump corlib version.
4947
4948 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
4949
4950         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
4951         function.
4952
4953         * threads.c (mono_thread_attach): Detect threads which are not started
4954         by the GC pthread wrappers.
4955
4956 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
4957
4958         * icall.c: Added new icall for RNG.
4959         * rand.c|h: Added new icall to open the RNG. This allows to share a 
4960         single handle on Linux to access /dev/urandom and fix #73183.
4961
4962 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
4963
4964         * object.c: setting the new vtable in a transparent proxy object must
4965         not change the GC descriptor.
4966
4967 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
4968
4969         * object.c: fixed compilation without GCJ support.
4970         * reflection.c: for runtime-created types ensure klass->has_references
4971         is correct (bug #73215).
4972
4973 2005-03-02  Martin Baulig  <martin@ximian.com>
4974
4975         * class.c (mono_class_is_assignable_from): Make this work if
4976         `oklass' is a generic instance; fixes #72831.
4977
4978 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
4979
4980         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
4981         with hasthis set.
4982         
4983         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
4984
4985         * marshal.c: Reorganize native->managed marshalling code to also use
4986         the emit_marshal_... functions.
4987
4988 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
4989
4990         * object.c: typed allocs have issues with bitmap sizes > 30,
4991         so check for max_set >= 30.
4992
4993 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
4994
4995         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
4996         managed code. Fixes #73012.
4997
4998         * metadata.h (MonoMarshalSpec): Add elem_mult field.
4999
5000         * metadata.c reflection.c: Load/Emit elem_mult as well.
5001         
5002         * metadata.h (MonoMarshalSpec): Add comment.
5003
5004         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
5005
5006         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
5007         num_elem to -1 if not given.
5008
5009         * object-internals.h (MonoReflectionMarshal): Add has_size field.
5010
5011         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
5012         given values.
5013
5014 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
5015
5016         * null-gc.c (mono_gc_free_fixed): Was not compilable.
5017
5018 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
5019
5020         * reflection.c (encode_marshal_blob): Encode param_num field as well.
5021
5022         * object-internals.h (MonoReflectionMarshal): Add param_num field.
5023
5024 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5025
5026         * object.c: generalized the reference bitmap creation
5027         and added hooks for the new GC.
5028         * class-internals.c: removed the gc_bitmap field from MonoClass.
5029
5030 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5031
5032         * domain.c: help the compiler to produce better code
5033         in mono_jit_info_table_find ().
5034
5035 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5036
5037         * object.c: make all allocations look typed.
5038
5039 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5040
5041         * socket-io.c: load Mono.Posix if it's not loaded already
5042         (fixes bug#73033).
5043
5044 2005-02-24  Martin Baulig  <martin@ximian.com>
5045
5046         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
5047         * reflection.c (dup_type): Likewise.
5048
5049 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
5050
5051         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
5052         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
5053
5054 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5055
5056         * domain.c, threads.c, object-internals.h: make the critical thread
5057         local vars use the fast access mode (even when we're compiled in
5058         a lib). Provide accessors to be used by the jit during codegen.
5059
5060 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5061
5062         * appdomain.c: Changed hook functios behavior to include
5063         support for the reflection only assemblies. Some icalls were changed
5064         to support the mentioned assemblies too. Signatures of static methods
5065         try_assembly_resolve and real_load now have an additional parameter:
5066         refonly.
5067
5068         * assembly.c: General changes to mono_assembly_ methods to support
5069         reflection only api. Functions mono_assembly_open, mono_assembly_load,
5070         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
5071         suffix, to support an additional gbool parameter to specify whether
5072         the assembli is reflection only or not. Created some new hook functions 
5073         to add support for reflection only assemblies. Signatures of static 
5074         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
5075         have now an additional parameter: refonly.
5076
5077         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
5078         indicating whether the assembly is reflection only or not.
5079
5080         * exception.c: Add mono_get_exception_invalid_operation.
5081
5082         * icall.c: Throw an InvalidOperationException when trying to invoke
5083         a property/method/event, or trying to set/get the value of a field.
5084         Also add an icall to retrieve the ref_only flag to the
5085         MonoReflectionAssembly.
5086
5087 2005-02-23  Chris Toshok  <toshok@ximian.com>
5088
5089         Part of fix for #72827.
5090         * mono-debug.c (mono_debug_add_method): add lexical block data to
5091         the info we write.  Kind of a hack at the moment - we copy the
5092         lexical block info from the MonoDebugMethodInfo to the
5093         MonoDebugMethodJitInfo here, before writing it.
5094         (mono_debug_read_method): read the lexical block info.
5095
5096         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
5097
5098         * debug-mono-symfile.h: add lexical block support.
5099
5100         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
5101         support.
5102
5103 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5104
5105         * loader.c (mono_lookup_pinvoke_call): Fix warning.
5106
5107         * object.c (mono_runtime_free_method): Call mono_free_method () and
5108         put the TODOs there.
5109
5110         * loader.c (mono_free_method): Free up most memory allocated for 
5111         dynamic methods.
5112
5113 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5114
5115         * reflection.c: properly flag a Type argument to a
5116         named custom attr value (bug #72248).
5117
5118 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5119
5120         * reflection.c: reduce code duplication in named custom
5121         attribute encoding.
5122
5123 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
5124
5125         * reflection.c: properly encode custom attrs of type object
5126         (bug #72649).
5127
5128 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5129
5130         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
5131
5132 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
5133
5134         * socket-io.c: load System.dll if it's not loaded already
5135         (bug #72850 and #70477).
5136
5137 2005-02-21  Martin Baulig  <martin@ximian.com>
5138
5139         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5140         generic instances.
5141
5142 2005-02-21  Martin Baulig  <martin@ximian.com>
5143
5144         * reflection.c (mono_image_build_metadata): We also need to
5145         "fixup" the MethodImpl table after we computed the final method
5146         indices.  Call fixup_methodimpl() to do that.
5147         (fixup_methodimpl): New private method.
5148
5149 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5150
5151         * assembly.c: special case mscorlib.dll (bug#72536),
5152         patch from Carlos Alberto Cortez.
5153
5154 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
5155
5156         * threads-types.h threads.c: Fix build bustage.
5157
5158         * threads.c: Use a union for long<->double conversions.
5159
5160         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
5161         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
5162
5163         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
5164         containing the checkpoint call with NOT_TAKEN.
5165         
5166         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
5167         checkpoint before pushing the arguments, so they won't have to be
5168         spilled to stack.
5169
5170 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5171
5172         * domain.c, assembly.c, domain-internals.h: make some data
5173         const and relocation-free.
5174
5175 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
5176
5177         * object.c, appdomain.c, class-internals.h: introduce the
5178         MonoClassRuntimeInfo structure to hold the info needed to
5179         use a class at runtime. Made mono_class_vtable() lock-free
5180         for all the appdomains.
5181
5182 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
5183
5184         * metadata-internals.h, image.c: introduce a per-image mempool to
5185         be used for memory that has the same lifetime as the image.
5186
5187 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
5188
5189         * domain.c: In mono_init_internal(), instead of selecting the first
5190         runtime version supported by an executable, get a list of all
5191         supported versions and select the one for which an mscorlib exists
5192         (since even if the runtime supports a given version, it doesn't mean
5193         that the framework for that version is installed).
5194         Modified get_runtimes_from_exe to support this behavior.
5195         In supported_runtimes, added information about additional system
5196         assembly versions.
5197         
5198         * assembly.c: Added support for more than one system assembly version
5199         per runtime version. Updated the assembly list.
5200         In mono_assembly_remap_version, removed the initial version check,
5201         since we don't know to which version we need to compare until we
5202         get the version set on which the assembly is based.
5203         Moved the code for loading corlib into the new method
5204         mono_assembly_load_corlib(), so it can be used by the initialization
5205         code.
5206         
5207         * domain-internals.h: Updated data structures and added declaration
5208         for mono_assembly_load_corlib.
5209
5210 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5211
5212         * reflection.c (resolve_object): Fix the creation of the signature in 
5213         the SignatureHelper case.
5214
5215         * assembly.c (mono_assembly_remap_version): Fix binary search.
5216         
5217 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
5218  
5219         * class.c: Added inheritance check when a method is overloaded (from a
5220         virtual method or when implementing an interface) and when a class is
5221         inherited. Added functions to set a failure for a class and to 
5222         retreive the exception from a failure.
5223         * class-internals.h: Added fields to MonoClass to keep the exception
5224         information status for inheritance (or other exceptions) to be thrown
5225         later (i.e. not at load time).
5226         * object.c: Throw the inheritance SecurityException when a type is to 
5227         be created with either class or method inheritance violations.
5228         * reflection.c|h: Fix when getting declsec from a class. Removed 
5229         unrequired code for class. Improved sanity in parameter naming.
5230         * security-manager.c|h: Added functions to check for class and method
5231         inheritance.
5232
5233 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5234
5235         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
5236         and has_finalize in dynamic types as well.
5237
5238 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
5239
5240         * culture-info-table.h : fixed currency format for en-GB (and so on).
5241
5242 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
5243
5244         * gc.c: ensure the GC handles never have 0 as a value.
5245
5246 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5247
5248         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
5249         a pointer to a struct to unmanaged code. Fixes #72625.
5250
5251 2005-02-16  Martin Baulig  <martin@ximian.com>
5252
5253         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
5254
5255 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5256
5257         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
5258
5259 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5260
5261         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
5262
5263         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
5264         UnmanagedFunctionPointerAttribute, use it for determining calling convention
5265         etc. Fixes #71471.
5266
5267         * reflection.c (mono_custom_attrs_get_attr): New helper function.
5268
5269         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
5270
5271 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
5272
5273         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
5274         changes to make the current context a field in MonoThread.
5275
5276 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5277
5278         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
5279         the last change.
5280         
5281         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
5282         extracted from mono_marshal_get_native_wrapper.
5283
5284         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
5285         to create wrappers around native functions.
5286
5287         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
5288         delegates for arbitrary function pointers. Fixes #71472.
5289
5290 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5291
5292         * threads.c: cleaned up the code a little.
5293
5294 2005-02-15  Martin Baulig  <martin@ximian.com>
5295
5296         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
5297         the data table.
5298
5299         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
5300         allocate larger chunks if needed.
5301
5302 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5303
5304         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
5305         in by mistake.
5306
5307 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
5308
5309         * domain.c: keep the domains in an array and ensure the domain ids
5310         are kept small, so they can be used as indexes to domain-specific data
5311         with a small memory overhead.
5312
5313 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5314
5315         * icall.c: Handle byref types in Type icalls. Fixes #72544.
5316
5317 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
5318
5319         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
5320
5321 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
5322
5323         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
5324
5325         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
5326         values.
5327
5328         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
5329         
5330 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
5331
5332         * domain-internals.h: add the hashtable here.
5333
5334         * class-internals.h: Remove `info' from MonoMethod
5335
5336         * domain.c: Add a new hashtable, jit_trampoline_hash
5337
5338 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5339
5340         * object.c: don't set the value of static fields
5341         (fixes bug#72494).
5342
5343 2005-02-11  Martin Baulig  <martin@ximian.com>
5344
5345         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
5346         (mono_debug_add_method): Silently ignore the method if it's too big.
5347         (mono_debug_add_type): Likewise.
5348
5349 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
5350
5351         * threads.c, appdomain.c: remove #ifdefs from the code.
5352
5353 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
5354
5355         * metadata-internals.h: Added flags to MonoAssembly to cache the most
5356         common security informations. This allows us to stay in unmanaged code
5357         when doing LinkDemand and it's special cases (except for the first 
5358         time for initialization). The flags a very much used with --security.
5359         * reflection.c|h: Added code to get declarative security attributes 
5360         for LinkDemand and InheritanceDemand. This required to refactor the
5361         existing code for Demand.
5362         * security-manager.c|h: Added new method fields for the special cases
5363         of LinkDemand.
5364
5365 2005-02-10  Martin Baulig  <martin@ximian.com>
5366
5367         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
5368         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
5369
5370 2005-02-10  Martin Baulig  <martin@ximian.com>
5371
5372         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
5373         debugging code; this is almost a complete rewrite.
5374
5375         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
5376
5377 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5378
5379         * domain.c, object.h: expose mono_string_equal () and 
5380         mono_string_hash ().
5381         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
5382         it's implemented in managed code.
5383
5384 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5385
5386         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
5387         lo leak objects between appdomains.
5388
5389 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5390
5391         * assembly.c: old compilers compilation fix from 
5392         robertj@gmx.net (Robert Jordan).
5393
5394 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
5395
5396         * class-internals.h: Little reminder for the future.
5397
5398         * debug-helpers.c: Fix up wrapper_type_names
5399
5400 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5401
5402         * image.c, metadata-internals.h: when loading an image from a file,
5403         mmap all of it and use the same codepaths as when using a
5404         in-memory image: the code is simpler and we use less memory
5405         (both writable and readonly).
5406
5407 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5408
5409         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
5410         API to alloc runtime data structures that need to be tracked by the
5411         GC and contain pointers.
5412         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
5413         make the code more readable and eventually use a different GC.
5414
5415 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
5416
5417         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
5418         for out arguments.
5419         
5420 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
5421
5422         * object.c: In release_type_locks(), don't release the cctor lock
5423         if it has already been released. This fixes a crash in the
5424         thread5 test.
5425
5426 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5427
5428         * gc.c, marshal.c, icall.c: register a delegate for finalization
5429         only when the native function pointer has been allocated for it.
5430
5431 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5432
5433         * object.c: cleaned up some code, allocate objects that are
5434         pointer free with the atomic malloc variant. Allocate memory
5435         for static data from the mempool if it's pointer-free.
5436         Allocate the bounds array at the end of the array data, when needed.
5437         * object-internals.h, object.h: move a private function in a private
5438         header.
5439         * class.c: handle missing case in tracking references in fields.
5440
5441 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5442
5443         * class.c, class-internals.h: keep track if a type has
5444         reference fields in either the instance or static fields.
5445
5446 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
5447
5448         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
5449         and renamed to MonoRuntimeInfo. Added fields to store the expected
5450         framework assembly version. Changed mono_get_framework_version and
5451         mono_get_runtime_version for a single mono_get_runtime_info method.
5452         
5453         * assembly.c: Added method to remap system assembly versions to the
5454         current executing runtime version. Removed old mapping code.
5455         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
5456         
5457         * icall.c, reflection.c: Track api changes.
5458
5459 2005-02-06  Miguel de Icaza  <miguel@novell.com>
5460
5461         * loader.c (method_from_memberref): Improve error reporting,
5462         produce the class name instead of the typeref/typedef index. 
5463
5464 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
5465
5466         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
5467
5468 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5469
5470         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
5471         stdcall and charset name mangling.  Reorganize the code and add
5472         some tracing stuff.
5473
5474 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5475
5476         * monodiet.c: More iters!
5477
5478         * marshal.c: Iter usage.
5479
5480         * icall.c: Iter usage.
5481
5482         * object.c: Use iters.
5483
5484         * debug-helpers.c: More iters
5485
5486 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5487
5488         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
5489         under win32.
5490
5491 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5492
5493         * mono-debug-debugger.c: use iters
5494
5495         * class.c, class-internals.h: mono_class_setup_events is static
5496         now
5497
5498         * All callers: use iters
5499
5500 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5501
5502         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5503         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5504
5505 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5506
5507         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5508
5509         * marshal.h: Add prototypes for ldfld/stfld_remote.
5510
5511         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5512         this is called during startup.
5513         
5514 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5515
5516         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5517         MonoThreadsSync struct private in monitor.c. Changed the way
5518         MonoThreadsSync is allocated so it's faster and there is no
5519         need to keep track of it with a finalizer and it uses less memory.
5520         This also finally allows us to allocate mono objects as ptrfree when
5521         there are no reference fields.
5522
5523 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5524
5525         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5526         disappearing link to the GC interface and use them to simplify
5527         the gchandles code.
5528
5529 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5530
5531         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5532         stfld_remote which call mono_load/store_field_new. This allows methods
5533         calling ldfld/stfld wrappers to be AOTed.
5534
5535         * console-io.c: Include sys/filio.h under solaris.
5536         
5537         * console-io.c: Include curses.h if needed correctly.
5538
5539 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5540         
5541         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5542         method->klass as well.
5543
5544         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5545
5546         * class.c (mono_class_init): Switch on lazy initialization of 
5547         methods.
5548
5549         * class.c (mono_class_get_finalizer): Handle the case when the 
5550         finalizer is inherited.
5551
5552 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5553
5554         * console-io.c: <curses.h> is needed by term.h on solaris.
5555
5556 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5557
5558         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5559         mono_class_setup_properties where possible. Remove this ftn from
5560         the header file, and make it static.
5561
5562 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5563
5564         * loader.c: Add missing setup_... call.
5565
5566         * class.c: Add missing setup_... calls.
5567
5568         * class.c (mono_class_init): Switch on lazy initialization of 
5569         the generic vtable.
5570         
5571         * class.c (mono_class_init): Fix generics broken by the recent changes.
5572
5573         * monodiet.c (handle_type): Add missing setup_... calls.
5574
5575         * class.c: Back out garbage in previous patch.
5576         
5577         * class.c: Add missing setup_... calls.
5578
5579         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5580         mono_class_setup_methods () if possible.
5581
5582         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5583
5584         * class-internals.h (MonoCachedClassInfo): New structure.
5585
5586         * class.c: Initialize properties and events fields of MonoClass lazily.
5587
5588         * class.c: Add infrastructure for lazily initializing the methods and
5589         vtable fields of MonoClass. Not yet used.
5590
5591         * class.c (mono_class_get_finalizer): New helper function.
5592
5593         * class.c: Add infrastructure for loading some class related data from
5594         an AOT file.
5595
5596         * object.c: Add infrastructure for initializing the vtable from data
5597         in the AOT file.
5598
5599         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5600
5601         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5602         appropriate initialization function before accessing parts of the
5603         MonoClass structure.
5604
5605         * marshal.c: Fix warnings.
5606         
5607         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5608
5609         * mono-debug-debugger.c (get_exception_message): Use 
5610         mono_class_get_method_from_name_flags ().
5611
5612 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5613
5614         * reflection.c, appdomain.c: Replace a few manual searches that
5615         Zoltan missed. (Paolo approved this part of my initial patch).
5616
5617 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5618
5619         * profiler.c: disable recording statistical events at report time.
5620
5621 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5622
5623         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5624         to byteswap arrays of enum values, too (bug #72080).
5625
5626 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5627
5628         * appdomain.c (set_domain_search_path): Allow this to be called if
5629         domain->setup is not yet set.
5630
5631         * loader.c (mono_method_get_index): New helper function.
5632
5633         * loader.c reflection.c: Use mono_method_get_index ().
5634
5635         * class.c (mono_class_get_method_from_name_flags): New helper method.
5636
5637         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5638         this.
5639
5640         * class.c (mono_class_get_cctor): New helper method.
5641
5642         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5643         mono_class_get_method () to look up methods.
5644
5645 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5646
5647         * console-io.c: Fix the build, this should work on Windows.
5648
5649 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5650
5651         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5652         be set to null to keep things valid
5653
5654 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5655
5656         * icall.c: added Console 2.0 icalls.
5657         * Makefile.am: added console-io.[ch]
5658         * console-io.[ch]: internal calls for Console 2.0 API.
5659
5660 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5661
5662         * class.c: make sure we consider all the interfaces
5663         when calculating max_interface_id (bug found by
5664         Jeroen Frijters running ikvm).
5665
5666 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5667
5668         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
5669         valuetype fields to null.
5670
5671         * object.c (set_value): Ditto. Fixes #71669.    
5672
5673 2005-01-31  Martin Baulig  <martin@ximian.com>
5674
5675         * metadata.c (mono_metadata_has_generic_params): New public
5676         function; checks whether something is a generic method.
5677
5678 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
5679
5680         * appdomain.c: fix infinite recursion when adding assemblies.
5681
5682 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
5683
5684         * object.c: Fix small typo to return all items for Environment.
5685         GetCommandLineArgs.
5686
5687 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5688
5689         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5690         reflection.c: more domain and assembly-unload related fixes
5691         and memory leaks plugs.
5692
5693 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
5694
5695         * 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.
5696
5697 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
5698
5699         * loader.c (mono_method_signature): Make this method lazy
5700         (mono_get_method_from_token): Don't computate the signature here.
5701
5702         Doing this saves quite a bit of memory. I got 90 kb on starting up
5703         monodoc. It should also save some disk reads on startup.
5704
5705         * *: MonoMethod->signature might be NULL now. You *MUST* use
5706         mono_method_signature.
5707
5708 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
5709
5710         * object.c (mono_runtime_get_main_args): Return an array from the
5711         current domain here. Fixes #71938.
5712
5713 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
5714
5715         * monitor.c: formatting changes to comply with the
5716         mono coding style and remove #ifdefs from the code.
5717
5718 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5719
5720         * metadata.c, private.h: remove some unneeded data
5721         and use a more compact representation for table schemas.
5722
5723 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
5724
5725         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
5726         to get a better distribution in hash tables.
5727         * *.c: use mono_aligned_addr_hash() where appropriate.
5728         * assembly.c: make var static.
5729
5730 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
5731
5732         * domain-internals.h: Put MonoJitInfo on a diet.
5733
5734         * domain.c: Fix a warning.
5735
5736 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5737
5738         * gc.c: rework the gc handles code to reuse handles
5739         when freed.
5740
5741 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5742
5743         * domain.c: fixed long standing bug in mono_string_equal() which
5744         was brought to light with the ldstr changes.
5745
5746 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
5747
5748         * reflection.c: Remove warning by adding missing include for marshal.h
5749
5750 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5751
5752         * domain.c, object.c: change the ldstr_table to hold
5753         MonoString* as keys: makes the runtime isinterned lookup
5754         faster and simplifies memory management.
5755
5756 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
5757  
5758         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
5759         possible to add imperative security checks before calling the icall.
5760         * reflection.c: Return security attributes on the original MonoMethod
5761         (and not the wrapped one). This fix permissions on icalls.
5762
5763 2005-01-25  Dick Porter  <dick@ximian.com>
5764
5765         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
5766         the check for mktime() support actually test the mktime() return
5767         value.  "Fixes" bug 71682, though the output is still different to
5768         MS.
5769
5770 2005-01-25  Martin Baulig  <martin@ximian.com>
5771
5772         * class.c (mono_class_is_assignable_from): Make this work for
5773         generic instances.
5774
5775 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
5776
5777         * marshal.c (mono_string_utf8_to_builder)
5778         (mono_string_builder_to_utf16): We might not have ownership of the
5779         string. In thise case, we need to create a new buffer.
5780
5781         * object-internals.h (mono_stringbuilder_capacity): sb->str might
5782         be null, in which case, use the default capacity.
5783
5784 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5785
5786         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
5787         GC events to the profiler.
5788
5789 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5790
5791         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
5792         if you don't want the GC to run.
5793
5794 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
5795
5796         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
5797         start providing a GC API and keeping different implementations in
5798         their own file.
5799         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
5800
5801 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
5802
5803         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
5804         mmap rather than allocating a huge buffer.
5805         (mono_debug_close_mono_symbol_file): Free the buffer allocated
5806         above.
5807
5808 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
5809
5810         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
5811         and CheckExecutionRights.
5812         * reflection.c|h: Keep the index of the declarative security to be 
5813         used, instead of the pointer, when AOT compiler is used. Also add 
5814         class initialization when requesting demands.
5815         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
5816         CheckExecutionRights. Both properties are now FALSE by default, and
5817         unmodifiable, unless the --security option is used.
5818
5819 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5820
5821         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
5822         reflection.c: properly refcount images and assemblies, many leaks fixed.
5823
5824 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5825
5826         * threadpool.c: increase the timeout for threads in the thread pool to
5827         10s.  Fixes bug #67159.
5828
5829 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5830
5831         * class-internals.h: Sun's compiler insists on explicit
5832         signed on bit fields to handle then correctly.
5833
5834 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
5835
5836         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
5837         Make the size of the array fit only the number of invalid path
5838         chars that we have.
5839
5840         * class.c (_mono_class_get): Improve the error reporting when a
5841         class referenced is not found, to assist debugging. 
5842
5843 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
5844
5845         * threads.c: fix off-by-one error.
5846         * domain.c: free data allocated in the domain.
5847
5848 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5849
5850         * reflection.c (mono_method_body_get_object): Fill out exception info
5851         as well.
5852
5853         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
5854         structure.
5855         
5856 2005-01-19  Martin Baulig  <martin@ximian.com>
5857
5858         * loader.c (mono_get_method_constrained): Make this work again.
5859
5860 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5861
5862         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
5863         guint16 to match the managed side.
5864
5865         * reflection.c (mono_reflection_body_get_object): Fill out local
5866         variables array.
5867
5868         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
5869         as well.
5870
5871         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
5872         'local_var_sig_token'.
5873
5874 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
5875
5876         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
5877         System.Drawing.
5878
5879         * reflection.c (mono_method_body_get_object): Handle abstract and
5880         runtime methods.
5881
5882 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
5883
5884         * marshal.c, loader.c, class-internals.h, reflection.c:
5885         store the emthod data for a wrapper in an array instead of a list.
5886
5887 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
5888
5889         * marshal.c: change the code to allocate memory more
5890         conservatively for method wrappers.
5891
5892 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
5893
5894         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
5895         fields from MonoClass to the marshal info structure where they belong.
5896
5897 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5898
5899         * class.c, object.c, class-internals.h, marshal.c: rearrange
5900         some fields and tweak some types to lower memory usage.
5901
5902 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
5903
5904         * threads.c (signal_thread_state_change): Handle the case when the
5905         target thread is the current thread.
5906
5907         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
5908
5909         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
5910         emit_ptr_to_object_conv. 
5911
5912         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
5913         marshalling. Fixes #71352.
5914
5915 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5916
5917         * metadata.h, blob.h: move table enum to blob.h so it can be included
5918         in any header.
5919         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
5920         cut the size of MonoImage/MonoDynamicImage.
5921
5922 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
5923
5924         * profiler.c (mono_profiler_install_simple): Fix default arguments.
5925
5926 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5927
5928         * reflection.c, reflection.h, icall.c: add a function to check
5929         if an attribute type is defined for a metadata object.
5930
5931 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
5932
5933         * object-internals.h: Added some needed fields from StringBuilder class.
5934         * marshal.c: Set the maxCapacity when creating a StringBuilder.
5935
5936 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
5937
5938         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
5939         threads before shutting down the runtime.
5940
5941         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
5942
5943 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5944
5945         * object-internal.h, threads.c: implement stacksize and 
5946         parameterized thread start functionality (requires
5947         matching corlib). Marked broken code for later removal.
5948
5949 2005-01-12  Martin Baulig  <martin@ximian.com>
5950
5951         * class-internals.h (MonoGenericClass): Moved the `initialized'
5952         flag to MonoDynamicGenericClass, removed `init_pending'.
5953         (MonoGenericInst): Added `is_reference' flag.
5954
5955 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
5956
5957         * reflection.c (mono_image_create_pefile): Only set the pe_offset
5958         inside the MSDOS header. Fixes #71201.
5959
5960         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
5961         gc thread.
5962         (mono_domain_finalize): Ditto.
5963
5964 2005-01-12  Martin Baulig  <martin@ximian.com>
5965
5966         * class.c (mono_get_shared_generic_class): Use the cache for
5967         non-dynamic generic classes.
5968
5969         * class-internals.h (mono_class_create_generic_2): Removed
5970         function prototype, this function is now static inside class.c.
5971
5972         * class.c (mono_class_create_generic_2): Made this static, only
5973         call it from mono_class_init() and mono_class_setup_parent().
5974         (collect_implemented_interfaces_aux): Call mono_class_init() on
5975         the interfaces we collect.
5976         (mono_class_setup_vtable): Call mono_class_init (class->parent).
5977
5978 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
5979
5980         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
5981         it a real thread handle.
5982
5983         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
5984         MonoJitExceptionInfo, since each catch clause needs its own variable.
5985         
5986 2005-01-11  Dick Porter  <dick@ximian.com>
5987
5988         * image.c (mono_pe_file_open): New variant on mono_image_open()
5989         that does not set up the CLI metadata; used for FileVersionInfo so
5990         it can get the data for windows binaries too.
5991         
5992         * process.c (process_read_string_block): Don't read off the end of
5993         the StringTable block.
5994
5995         These both fix bug 70766.
5996
5997 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
5998
5999         * gc.c: set some fields to NULL at GC cleanup time.
6000         * threads.c: if we quit the main thread, call exit ().
6001
6002 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6003
6004         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
6005
6006 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
6007
6008         * threads.h, threads.c, object.c: added accessor and settor for
6009         main_thread. Handle it specially when exiting from it: wait
6010         for other foreground threads to exit.
6011
6012 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
6013
6014         * process.c, verify.c: remove some bloat.
6015
6016 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
6017
6018         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
6019         the calling convention to cdecl under win32.
6020
6021 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
6022
6023         * object.c (mono_object_get_size): New function to get the size of
6024         an object instance.
6025
6026         * profiler.c (simple_allocation): Use above.
6027
6028 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
6029
6030         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
6031         ves_icall_System_AppDomain_getRootDomain (as it's not required to
6032         get an appdomain by it's id and we can't assume the root's id is 0).
6033         * domain-internals.h: Change the function prototype to match.
6034         * icall.c: Change the icall table for AppDomain.
6035
6036 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
6037
6038         * locales.c (string_invariant_compare_char): Only compute
6039         GUnicodeTypes in the case where we need them.  Test for ordinality
6040         first and return if so.
6041
6042         From the commit:
6043
6044                 /*
6045                  * FIXME: here we must use the information from c1type and c2type
6046                  * to find out the proper collation, even on the InvariantCulture, the
6047                  * sorting is not done by computing the unicode values, but their
6048                  * actual sort order.
6049                  */
6050
6051 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6052
6053         * loader.c: for P/Invoke methods, allow the "Internal" shared
6054         library name to refer to the calling process symbol namespace.
6055
6056 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
6057
6058         * Makefile.am: Add the security manager to the build.
6059         * security-manager.c|h: New. Initialization of the security manager.
6060
6061 2005-01-07  Dick Porter  <dick@ximian.com>
6062
6063         * threads.c: 
6064         * monitor.c: Update thread state during Monitor and WaitHandle
6065         waits.  Fixes bug 71031.
6066
6067 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
6068
6069         * reflection.c (property_encode_signature): Correctly handle when the
6070         property has no methods.
6071
6072 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
6073
6074         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
6075         
6076         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
6077         fields from mb, not rmb. Fixes #71017.
6078
6079         * marshal.c (emit_ptr_to_str_conv): Add support for 
6080         ByValTStr -> string conversion. Fixes #71015.
6081
6082         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
6083
6084         * mempool.c (mono_mempool_contains_addr): New helper function.
6085
6086 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6087
6088         * metadata.c (mono_metadata_compute_size): Fix size calculation of
6089         HasSematics encoded fields.
6090         
6091         * metadata.c (mono_type_to_unmanaged): Improve error message for 
6092         invalid string marshalling.
6093
6094         * metadata.c: Fix warnings.
6095         
6096 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6097
6098         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
6099         profiler support.
6100
6101 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6102
6103         * domain.c object.c domain-internals.h: Revert part of r38077 since the
6104         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
6105         tests.
6106
6107 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
6108
6109         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
6110         so methods containing these can be AOTed.
6111
6112 2005-01-03  Martin Baulig  <martin@ximian.com>
6113
6114         * loader.c (find_method): Removed the hack for generic instances.
6115         (method_from_memberref): If our parent is a generic instance, pass
6116         its generic type definition to find_method() and then inflate the
6117         method.
6118         (mono_get_method_constrained): Pass the generic type definition to
6119         find_method() and inflate the method later.
6120
6121         * class-internals.h (MonoStats): Added `generic_class_count'.
6122
6123         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
6124         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
6125
6126         * reflection.c (mono_custom_attrs_from_params): Don't ignore
6127         generic type definitions.
6128
6129 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
6130
6131         * loader.c icall.c: Fix warnings.
6132
6133 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
6134
6135         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
6136         blittable types. Fixes #70864.
6137
6138 2004-12-29  Martin Baulig  <martin@ximian.com>
6139
6140         * icall.c
6141         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
6142
6143         * reflection.c (mono_method_get_object): Create a
6144         "System.Reflection.MonoGenericMethod" for inflated methods; don't
6145         call mono_get_inflated_method().
6146
6147         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
6148
6149 2004-12-27  Martin Baulig  <martin@ximian.com>
6150
6151         * class-internals.h (MonoMethod): Added `is_inflated' flag.
6152         (MonoMethodInflated): Added `inflated' field.
6153
6154         * class.c (mono_class_inflate_generic_method): Don't really
6155         inflate the method here; just set the `is_inflated' flag in the
6156         MonoMethod.
6157         (mono_class_get_inflated_method): Actually inflate the method here
6158         if it's not already inflated; we use the MonoMethodInflated's new
6159         `inflated' field as a cache.
6160
6161 2004-12-26  Martin Baulig  <martin@ximian.com>
6162
6163         * class.c
6164         (inflate_generic_class): Moved some code out of inflate_generic_type().
6165         (mono_class_inflate_generic_method): If we're already inflated,
6166         inflate the context and use the declaring method; ie. make sure
6167         the declaring method of an inflated method is always the generic
6168         method definition.
6169         (mono_class_create_from_typedef): Create
6170         `class->generic_container->context->gclass'.
6171
6172 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
6173
6174         * metadata-internals.h, marshal.c, reflection.c: More
6175         MonoGHashTable->GHashTable.
6176
6177         * domain-internals.h, class.c: Change MonoGHashTable's into
6178         GHashTables for some cases where no gc stuff is used
6179
6180         All users: update apis
6181
6182 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
6183
6184         * metadata.c (builtin_types): Make this `const'. Makes this get
6185         put into the shareable section.
6186         (mono_metadata_init): Casts to make gcc happy.
6187
6188 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
6189
6190         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
6191
6192 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
6193
6194         * icall.c: Added an internal call to retrieve the position and length
6195         of assembly-level declarative security attributes (RequestMinimum, 
6196         RequestOptional and RequestRefuse). This is used by the Assembly class
6197         to re-create the corresponding permission sets.
6198
6199 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
6200
6201         * marshal.c: fix the stelemref wrapper to be type correct
6202         (and faster).
6203
6204 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
6205
6206         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
6207         to do key & 0x7fffffff. Hashtable already does this. It just
6208         results in longer code.
6209
6210 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
6211
6212         * appdomain.c: Bump corlib version.
6213         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
6214         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6215         * reflection.c|h: Add functions to get declarative security infos
6216         (blob position and length) for assemblies, classes and methods.
6217
6218 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
6219
6220         * reflection.c: sort the constant table (bug #70693).
6221
6222 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
6223
6224         * object-internals.h, threads.c, domain.c: add accessors for
6225         the MonoThread and MonoDomain tls keys.
6226
6227 2004-12-18  Martin Baulig  <martin@ximian.com>
6228
6229         * class.c (inflate_generic_type): If we're inflating a generic
6230         instance, set `ngclass->context->container = context->container';
6231         ie. the container we inflated into.
6232
6233         * metadata.c (mono_metadata_parse_generic_param): Reflect above
6234         inflate_generic_type() changes.
6235
6236 2004-12-17  Martin Baulig  <martin@ximian.com>
6237
6238         * class-internals.h
6239         (MonoGenericClass): Replaced `MonoType *generic_type' with
6240         `MonoClass *generic_class'.  Removed `dynamic_info'; if
6241         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
6242         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
6243
6244 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
6245
6246         * exception.c (mono_exception_from_token): New helper function.
6247
6248 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
6249
6250         * assembly.c (mono_assembly_load_with_partial_name): Call 
6251         mono_assembly_loaded before invoking the preload hooks. Fixes
6252         #70564.
6253
6254         * object-internals.h (MonoThread): Change culture_info and 
6255         ui_culture_info into an array.
6256
6257         * threads.c: Cache culture info objects from more than one appdomain.
6258
6259         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
6260         current UI culture.
6261
6262 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
6263
6264         * threads.h threads.c appdomain.c: Clear the culture_info field of
6265         all threads during unloading if they point to an object in the dying
6266         appdomain.
6267
6268 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
6269
6270         * culture-info.h (TextInfoEntry): New struct
6271         * object-internals.h: sync with managed
6272         * locales.c: fill the `text_info_data' field
6273         * culture-info-tables.h: update
6274
6275 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
6276
6277         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
6278         collector.
6279
6280 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
6281
6282         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
6283         (ves_icall_ModuleBuilder_getMethodToken): Ditto
6284
6285 2004-12-12  Martin Baulig  <martin@ximian.com>
6286
6287         * mono-debug-debugger.c (write_type): If we're an enum and the
6288         builtin types have already been initialized, call mono_class_init().
6289
6290 2004-12-11  Martin Baulig  <martin@ximian.com>
6291
6292         * metadata.c (mono_metadata_load_generic_params): Added
6293         `MonoGenericContainer *parent_container' argument; automatically
6294         compute `container->is_method'; pass the correct owner to
6295         get_constraints().      
6296
6297         * reflection.c (compare_genericparam): Sort the GenericParam table
6298         according to increasing owners. 
6299
6300 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
6301
6302         * profiler.c: allow disabling the default profiler.
6303
6304 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
6305
6306         * decimal.c, icall.c: allow disabling System.Decimal support.
6307
6308 2004-12-09  Marek Safar <marek.safar@seznam.cz>
6309
6310         * reflection.c: Add support for null attribute arguments.
6311
6312 2004-12-09  Martin Baulig  <martin@ximian.com>
6313
6314         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
6315         names to get rid of compiler warnings.
6316
6317 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6318
6319         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
6320         mono_marshal_load_type_info (). Fixes #69625.
6321         (mono_marshal_get_ptr_to_struct): Likewise.
6322
6323 2004-12-08  Martin Baulig  <martin@ximian.com>
6324
6325         * mono-debug.h: Bumped version number to 47.
6326
6327         * mono-debug-debugger.c
6328         (mono_debugger_event_handler, mono_debugger_event): Take two
6329         guint64 arguments insteed of a gpointer and a guint32.  
6330
6331 2004-12-08  Martin Baulig  <martin@ximian.com>
6332
6333         * debug-mono-symfile.h
6334         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
6335         `address' to `native_offset'.
6336
6337 2004-12-08  Martin Baulig  <martin@ximian.com>
6338
6339         * class.c (mono_class_create_from_typespec): Only inflate if we
6340         either have `context->gclass' or `context->gmethod'.
6341
6342 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6343
6344         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
6345
6346         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
6347
6348         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
6349
6350         * reflection.c (mono_assembly_get_object): Remove the workaround put
6351         in for the release.
6352         
6353         * appdomain.c: Use the corlib_internal field from MonoAssembly.
6354
6355         * appdomain.c: Bump corlib version.
6356
6357         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
6358         be visible in other appdomains.
6359
6360 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
6361
6362         * threads.c: Interlocked inc and dec for longs were messed up,
6363         use a KISS based impl for this. Fixes 70234
6364
6365 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
6366
6367         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
6368
6369 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6370
6371         * icall.c: fix to follow policy not to allow struct
6372         arguments in icalls.
6373
6374 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6375
6376         * process.c: make the patch that handles spaces in file paths work
6377         on mono/windows too.
6378
6379 2004-12-06  Martin Baulig  <martin@ximian.com>
6380
6381         * class.c (mono_class_create_generic): Call
6382         mono_class_setup_supertypes() if we're dynamic.
6383         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
6384
6385 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
6386
6387         * object-internals.h: Add new fields to MonoThread.
6388
6389         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6390
6391         * icall.c threads-types.h threads.c: Add new icalls.
6392
6393         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
6394
6395         * object-internals.h (MonoReflectionAssembly): Sync object layout with
6396         managed side.
6397
6398         * appdomain.c: Bump corlib version.
6399
6400         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
6401         internal assemblies. Fixes #69181.
6402
6403 2004-12-05  Martin Baulig  <martin@ximian.com>
6404
6405         * class.c (mono_class_inflate_generic_signature): Make this a
6406         no-op if `context' is NULL or we don't have any type parameters;
6407         also copy `sentinelpos'.        
6408
6409 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
6410
6411         * image.c: Add unbox_wrapper_cache.
6412
6413         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
6414
6415         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
6416         function generator.
6417         
6418         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
6419         Fixes #70173.
6420
6421         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
6422         
6423 2004-12-04  Martin Baulig  <martin@ximian.com>
6424
6425         * loader.c (mono_method_get_signature_full): New public function;
6426         like mono_method_get_signature(), but with an additional
6427         `MonoGenericContext *' argument.
6428
6429         * class.c (mono_class_inflate_generic_signature): Formerly known
6430         as inflate_generic_signature(); make this public.
6431
6432 2004-12-04  Martin Baulig  <martin@ximian.com>
6433
6434         * metadata.c
6435         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
6436         instead of a `MonoGenericContainer *'.  
6437         (mono_metadata_parse_array_full): Likewise.
6438         (mono_metadata_parse_signature_full): Likewise.
6439         (mono_metadata_parse_method_signature_full): Likewise.
6440         (mono_metadata_parse_generic_inst): Likewise.
6441         (mono_metadata_parse_generic_param): Likewise.
6442         (mono_metadata_parse_mh_full): Likewise.
6443         (mono_type_create_from_typespec_full): Likewise.
6444
6445 2004-12-03  Martin Baulig  <martin@ximian.com>
6446
6447         * class-internals.h (MonoGenericContainer): Replaced the
6448         `MonoGenericContext * pointer with a `MonoGenericContext'
6449         structure and made it the first element.
6450
6451 2004-12-03  Martin Baulig  <martin@ximian.com>
6452
6453         * class.c
6454         (inflate_generic_type): Set the `context->container' when creating
6455         a new MonoGenericContext.
6456         (mono_class_inflate_generic_method): Likewise.
6457         (mono_class_create_from_typespec): Just use `context->container'
6458         to get the container.
6459
6460         * loader.c (method_from_methodspec): Set `context->parent' from
6461         `context->container' - and if that's a method container, use its
6462         parent.  Also set the `context->container' when creating a new
6463         MonoGenericContext.
6464         (mono_get_method_from_token): Use just `context->container' to get
6465         the container.
6466
6467         * metadata.c (do_mono_metadata_parse_generic_class): Also set
6468         `gclass->context->container'.
6469
6470         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
6471         the `context->container' when creating a new MonoGenericContext.
6472
6473 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
6474
6475         * reflection.c (compare_genericparam): Sort params with identical
6476         owner by their number. Fixes gen-111 on sparc.
6477
6478 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6479
6480         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
6481         around the domain changes.
6482
6483         * appdomain.c (mono_domain_unload): Handle the case when the thread
6484         calling Unload is itself being aborted during unloading. Fixes #70022.
6485
6486         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
6487
6488         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
6489         checkpoint_func as an icall so it gets a wrapper.
6490         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
6491         in the cross-appdomain wrappers too.
6492
6493         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6494
6495         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6496
6497         * reflection.c: Fix some memory leaks.
6498         
6499 2004-12-02  Martin Baulig  <martin@ximian.com>
6500
6501         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6502
6503         * metadata.c (generic_class_cache): New static hashtable.
6504         (mono_metadata_lookup_generic_class): New public method.
6505
6506 2004-12-02  Martin Baulig  <martin@ximian.com>
6507
6508         * class.c (mono_class_create_from_typedef): Call
6509         mono_class_setup_parent() and mono_class_create_mono_type() before
6510         parsing the interfaces.
6511
6512 2004-12-02  Martin Baulig  <martin@ximian.com>
6513
6514         * metadata.c (generic_inst_cache): New static hashtable.
6515         (mono_metadata_lookup_generic_inst): New public function.
6516         (mono_metadata_inflate_generic_inst): New public function.
6517         (mono_metadata_parse_generic_inst): New public function.
6518         (do_mono_metadata_parse_generic_class): Use the new
6519         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6520         since this'll also use the cache.
6521
6522         * reflection.c (mono_reflection_bind_generic_method_parameters):
6523         Use mono_metadata_lookup_generic_inst() to use the new cache.
6524
6525         * class.c (inflate_mono_type): Use
6526         mono_metadata_inflate_generic_inst() to inflate a generic
6527         instance; this'll also use the new cache.
6528
6529         * loader.c (method_from_methodspec): Use
6530         mono_metadata_parse_generic_inst() and
6531         mono_metadata_inflate_generic_inst() rather than parsing it
6532         manually, so we can use the new cache.
6533
6534 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6535
6536         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6537         the wait times out.
6538
6539 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6540
6541         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6542         iter->args based on whether parameters are passed in registers (i.e.
6543         MONO_ARCH_REGPARMS is defined)
6544
6545 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6546
6547         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6548         the exception message. Fixes #70070.
6549         (method_from_methodspec): Fix warnings.
6550
6551 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6552
6553         * process.c: (complete_path) return the path quoted
6554
6555 2004-12-01  Martin Baulig  <martin@ximian.com>
6556
6557         * class-internals.h (MonoGenericInst): New structure.
6558         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6559         `is_open' with `MonoGenericInst *inst'.
6560         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6561         `is_open' with `MonoGenericInst *inst'.
6562
6563 2004-11-30  Martin Baulig  <martin@ximian.com>
6564
6565         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6566
6567         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6568         to `generic_class_cache'.
6569
6570         * metadata.c
6571         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6572         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6573         (mono_generic_inst_is_valuetype): Renamed to
6574         mono_generic_class_is_valuetype().
6575
6576         * class-internals.h
6577         (MonoGenericInst): Renamed to MonoGenericClass.
6578         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6579         (MonoClass): Renamed `generic_inst' to `generic_class'.
6580         (MonoGenericContext): Renamed `ginst' to `gclass'.
6581
6582         * object-internals.h
6583         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6584
6585         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6586         mono_reflection_generic_class_initialize().
6587
6588         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6589         now known as "System.Reflection.MonoGenericClass".
6590         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6591
6592 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6593
6594         * class-internals.h: Added a flag field to MonoClass to cache the
6595         declarative security attributes actions associated with the class.
6596         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6597         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6598         applicable to the JITted method.
6599         * reflection.c|h: Added functions to extract (as flags) which security
6600         actions are available (declaratively) for a method, class or assembly.
6601         * metadata.c|h: Added functions to search the declarative security
6602         table in the metadata.
6603         
6604 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6605
6606         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6607         EXPORTEDTYPES are already in the class name cache, so there is no
6608         need to add extra code here to look at them. Just removes a bit of
6609         cruft.
6610
6611         (ves_icall_System_Environment_get_TickCount): No need for #if
6612         WINDOWS. We already have the code in io-layer.
6613
6614 2004-11-28  Martin Baulig  <martin@ximian.com>
6615
6616         * loader.c
6617         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6618         Fixes gen-112.cs.
6619
6620 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6621
6622         * assembly.c (do_mono_assembly_open): Instead of having a
6623         conditional WITH_BUNDLE, incorporate support for bundles here, by
6624         having a global `bundles' variable holding a pointer to the actual
6625         bundles. 
6626
6627         (mono_register_bundled_assemblies): New API call used by the
6628         bundle code. 
6629
6630         See mkbundle.1 for details.
6631         
6632 2004-11-27  Martin Baulig  <martin@ximian.com>
6633
6634         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6635         the vtable for generic methods.
6636
6637 2004-11-26  Martin Baulig  <martin@ximian.com>
6638
6639         * metadata.c
6640         (mono_metadata_generic_method_hash): New public function.
6641         (mono_metadata_generic_method_equal): Likewise.
6642
6643         * class-internals.h
6644         (MonoGenericContainer): Added `GHashTable *method_hash'.
6645
6646         * reflection.c (ReflectionMethodBuilder): Added
6647         `MonoGenericContainer *generic_container'.
6648         (reflection_methodbuilder_to_mono_method): Don't create a new
6649         MonoGenericContainer each time we're called.
6650         (mono_reflection_bind_generic_method_parameters): Use
6651         `container->method_hash' to cache the results so we don't create a
6652         different method if we're called several times with the same
6653         arguments.
6654
6655         * loader.c (method_from_methodspec): Use the new
6656         `container->method_hash' here, too.
6657
6658 2004-11-26  Martin Baulig  <martin@ximian.com>
6659
6660         * class.c (inflate_generic_signature): Correctly compute
6661         `res->has_type_parameters'.
6662         (mono_class_vtable): Use the `has_type_parameters' flag to
6663         determine whether we're a generic method.
6664
6665         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6666
6667 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6668
6669         * object.c (mono_runtime_run_main): Fix a small memory leak.
6670
6671 2004-11-25  Martin Baulig  <martin@ximian.com>
6672
6673         * class.c (set_generic_param_owner): Fixed the loop.
6674
6675 2004-11-25  Martin Baulig  <martin@ximian.com>
6676
6677         * object.c (mono_class_vtable): Don't create any JIT wrappers for
6678         generic methods.
6679
6680 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
6681
6682         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
6683         names. Fixes #69787.
6684
6685 2004-11-24  Martin Baulig  <martin@ximian.com>
6686
6687         * class.c (mono_class_create_generic_2): If we don't have a
6688         `ginst->parent', inflate `gklass->parent' to get our parent.
6689
6690 2004-11-24  Martin Baulig  <martin@ximian.com>
6691
6692         * reflection.c (compare_genericparam): Correctly sort the
6693         GenericParam table; fixes #69779.
6694
6695 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
6696
6697         * reflection.c: When writing a PE file, don't create a huge
6698         buffer in memory. Just write the arrays we have to the file.
6699         This reduces memory usage.
6700
6701         * metadata-internals.h: MonoDynamicStream pefile is no longer used
6702         globally.
6703
6704 2004-11-17  Martin Baulig  <martin@ximian.com>
6705
6706         * class.c (mono_class_init): Don't setup `class->parent' for
6707         dynamic instances; moved this to mono_class_generic_2().
6708         (mono_class_create_generic): Also set `klass->inited' for dynamic
6709         generic instances.
6710         (mono_class_create_generic_2): Don't do anything for dynamic
6711         generic instances.  Set `klass->parent' here and also call
6712         mono_class_setup_parent() here. 
6713
6714         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
6715         `MonoType *parent' argument; set `ginst->parent' before calling
6716         mono_class_create_generic_2(), so we set the correct parent.
6717
6718 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
6719
6720         * reflection.c: allow getting attributes from ModuleBuilder
6721         (used by ikvm).
6722
6723 2004-11-17  Martin Baulig  <martin@ximian.com>
6724
6725         * class.c (mono_class_create_from_typedef): If a type parameter is
6726         inherited from an outer class, set its owner to that class.
6727
6728 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
6729
6730         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
6731           for (int*) written size. This fixes bug #69592.
6732
6733 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
6734
6735         * icall.c: Added IsAuthenticodePresnet internal call.
6736         * image.c|h: New function that check a MonoImage for an Authenticode
6737         signature in the certificate PE data directory.
6738         * security.c|h: New internal call to ask the runtime if an 
6739         Authenticode signature seems referenced in the PE header.
6740
6741 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
6742
6743         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
6744
6745         * reflection.c (mono_image_create_pefile): Free the assembly streams
6746         after writing out the assembly file.
6747
6748         * object.c (mono_runtime_run_main): Fix small memory leak.
6749
6750         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
6751         property access modifiers. Fixes #69389.
6752
6753 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
6754
6755         * domain.c, object.c, object-internals.h, domain-internals.h,
6756         object.h, marshal.c: keep dynamic code info per domain.
6757
6758 2004-11-15  Martin Baulig  <martin@ximian.com>
6759
6760         * class.c (mono_type_get_name_recurse): Put type arguments in
6761         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
6762         see bug #68387.
6763
6764 2004-11-15  Martin Baulig  <martin@ximian.com>
6765
6766         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
6767         (mono_class_setup_vtable): When computing `the_cname' for a
6768         generic instance, don't include the namespace since we'd otherwise
6769         add it twice.
6770
6771 2004-11-15  Martin Baulig  <martin@ximian.com>
6772
6773         * class.c (mono_class_create_generic): Changed return type to void.
6774         (mono_class_create_generic_2): New public function; setup
6775         `class->method', `class->field' and `class->interfaces' here
6776         instead of in mono_class_init().
6777
6778         * class.h (mono_class_create_generic): Moved to class-internals.h.
6779
6780 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
6781
6782         * reflection.c (mono_image_create_pefile): take a file HANDLE.
6783         rather than writing to memory, write to this file. Right now,
6784         we are just writting into a buffer, and copying that. However
6785         we can avoid the buffer later.
6786
6787         (mono_dynamic_stream_reset): new function
6788
6789         * icall.c, object-internals.h: update for the above.
6790
6791 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
6792
6793         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
6794         have been using gc'd memory. First it is slower, unlikely
6795         the comment in the source code said, secondly, it increases
6796         our footprint to do it in the gc.
6797
6798         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
6799         the method so that it does not have to copy to managed code.
6800
6801 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
6802
6803         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
6804
6805 2004-11-12  Martin Baulig  <martin@localhost>
6806
6807         * reflection.c (mono_image_create_token): Allow generic method
6808         definitions here, since they may appear in an `.override'; see
6809         gen-98/gen-99 for an example.
6810
6811 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
6812
6813         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
6814         #69365.
6815
6816         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
6817         descriptive.
6818
6819 2004-11-11  Martin Baulig  <martin@ximian.com>
6820
6821         * class.c (mono_class_setup_vtable): In an explicit interface
6822         implementation, the method name now includes the arity.
6823
6824 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
6825
6826         * object.c (mono_array_full_copy): Fix warning.
6827
6828 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
6829
6830         * appdomain.c: Removed look_for_method_by_name(). Use the new method
6831         mono_class_get_method_from_name() instead.
6832         
6833         * class-internals.h: Added two new types of wrappers. 
6834         Added MonoRemotingTarget enum. Added new trampoline function type, which
6835         takes an additional MonoRemotingTarget value as parameter, so it is
6836         possible to request a trampoline for a specific target.
6837         
6838         * class.c: Added new mono_class_get_method_from_name() method.
6839         
6840         * class.h: In MonoRemoteClass, we can have now to vtables, one for
6841         general remoting sinks and one specific for cross domain calls.
6842         
6843         * debug-helpers.c: Added new wrapper names.
6844         
6845         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
6846         of a remote class.
6847         
6848         * image.c: Porperly delete value objects form the remoting invoke hashtable.
6849         
6850         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
6851         with several other methods (mono_marshal_get_xappdomain_dispatch,
6852         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
6853         and others) can generate a fast remoting wrapper for cross domain calls.
6854         More information can be found in docs/remoting.
6855         Other changes: Removed mono_find_method_by_name, and used
6856         mono_class_get_method_from_name instead.
6857         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
6858         is stored in the remoting invoke hashtable.
6859         
6860         * marshal.h: published the new method for getting the xdomain wrapper,
6861         and also added a method for getting the adequate wrapper for a given
6862         method and target.
6863         
6864         * object-internals.h, object.c: Added a couple of methods for capying and
6865         cloning arrays.
6866         Modified mono_install_remoting_trampoline, which takes the new remoting
6867         trampoline that has a remoting target as parameter.
6868         mono_class_proxy_vtable now also takes a remoting target as parameter, and
6869         will return the most suitable vtable for the target.
6870         Added mono_remote_class_vtable, which returns the vtable of a remote class
6871         (which can be the normal remoting vtable or the xdomain vtable).
6872         
6873         * threads.c: the xdomain invoke and dispatch wrappers must also be
6874         protected against interruptions.
6875
6876 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6877
6878         * icall.c: use memmove in BlockCopyInternal when the source and
6879         destination arrays are the same.
6880
6881 2004-11-09  Martin Baulig  <martin@ximian.com>
6882
6883         * class-internals.h (MonoGenericContainer): Removed `method' and
6884         `signature', replaced them with `is_method' and `is_signature'
6885         flags.  Added `context'.
6886
6887         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
6888         instead of a `MonoGenericContainer *'.
6889
6890         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
6891         for dynamic type parameters.
6892         (mono_metadata_load_generic_params): Setup `container->context'.
6893
6894         * reflection.c (mono_reflection_setup_generic_class): Setup
6895         `tb->generic_container->context'.
6896         (do_mono_reflection_bind_generic_parameters): Use
6897         mono_class_inflate_generic_type() to correctly inflate types,
6898         rather than using our own hack just for MONO_TYPE_VAR.
6899
6900 2004-11-09  Martin Baulig  <martin@ximian.com>
6901
6902         * class.c (mono_class_inflate_generic_method): Small fix; don't
6903         crash here.
6904
6905         * icall.c
6906         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
6907         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
6908         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
6909         (ves_icall_Type_BindGenericParameters): Likewise.
6910         (ves_icall_Type_get_IsGenericInstance): Likewise.
6911         (ves_icall_Type_GetGenericParameterPosition): Likewise.
6912         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
6913         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6914         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6915
6916 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
6917
6918         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
6919         assembly versions and public key tokens. Fixes #69113.
6920
6921 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
6922
6923         * metadata.c: fix bug introduced with the type cache changes
6924         on 2004-11-06.
6925
6926 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
6927
6928         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
6929         the MonoClass pointer instead of the token in exception clauses.
6930         * reflection.c: updates for the above and make the code not depend
6931         on the structure of MonoExceptionClause.
6932
6933 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
6934
6935         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
6936         Add support for dynamic assemblies. Fixes #69114.
6937
6938         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
6939
6940 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
6941
6942         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
6943         since most only those methods use it. the code member of
6944         MonoMethodPInvoke was dead, so that can be removed too. Also,
6945         remove inline_count (again, not used), and move slot so that it
6946         can share bits with some other flags. This saves 8 bytes in the
6947         structure and gives us about 50 kb back for mcs helloworld.cs
6948
6949         * *.[ch]: Do naming changes for the above.
6950
6951         * loader.c (mono_method_get_header): Lazily init the header
6952         on first access.
6953         (mono_get_method_from_token): don't init the header here
6954         (mono_free_method): the header may never be allocated
6955
6956         Overall, this saves 150 kb of unmanaged allocations
6957         for mcs helloworld.cs. That accounts for 10% of the unmanaged
6958         memory at runtime.
6959         
6960         * loader.c, loader.h (mono_method_get_header): new accessor.
6961
6962         * *.[ch]: use the above method. Prepares us to lazily load
6963         the header.
6964
6965         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
6966         three warnings, which are actual bugs (see 69206).
6967
6968         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
6969         unused. Saves a cool 4 bytes / method.
6970
6971 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
6972
6973         * metadata.c (builtin_types): Add types for System.Object here.
6974         (mono_metadata_parse_type_full): Cache MonoType*'s that are
6975         for a class or valuetype from klass->this_arg or klass->byval_arg.
6976
6977         On mcs for a hello world, this gets us down from 21836 MonoType's
6978         to 14560.
6979
6980         (mono_metadata_free_type): Account for the above change.
6981
6982 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
6983
6984         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
6985         exception instead of asserting if name is null.
6986         (ves_icall_System_AppDomain_GetData): Ditto.
6987
6988 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
6989
6990         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
6991         EnumBuilder.
6992
6993         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
6994         Return NULL when the domain does not have entry_assembly set.
6995
6996         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
6997         Add a 'resource_modules' argument.
6998         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
6999
7000         * reflection.c (mono_reflection_create_runtime_class): Move setting
7001         of wastypebuilder here, so mono_get_type_object () returns a MonoType
7002         for enums too.
7003
7004         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
7005         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
7006         Throw an ArgumentNullException if 'ptr' is null.
7007
7008         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
7009         assemblies here. Fixes #69020.
7010
7011 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
7012
7013         * reflection.c (build_compressed_metadata): Fix the previous patch for
7014         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
7015         the stack.
7016
7017 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
7018
7019         * assembly.c (mono_assembly_names_equal): Allow a match if one of
7020         the cultures is false. Fixes #69090.
7021
7022         * reflection.c (build_compressed_metadata): Fix invalid memory read 
7023         detected by valgrind.
7024         
7025         * reflection.c (mono_reflection_get_type): Avoid triggering a 
7026         TypeResolve multiple times for the same type. Fixes #65577.
7027
7028 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
7029
7030         * marshal.c: Avoid using ldftn to call managed functions. It is
7031         much slower than just a call.
7032
7033         * reflection.c (mono_module_get_object): free the basename we
7034         allocate here from glib.
7035         
7036         * reflection.c (ensure_runtime_vtable): make sure to free
7037         overrides.  Also, we were allocating an array of MonoMethod not an
7038         array of MonoMethod*.
7039
7040         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
7041
7042         * image.c (mono_image_close): free image->guid here.
7043
7044 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
7045
7046         * reflection.c: Fix some spec conformance issues with the PE file
7047         structures so mcs compiled apps run on the Net 2.0 beta.
7048
7049 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
7050
7051         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
7052         Implement this. Fixes #67264.
7053
7054         * debug-helpers.h debug-helpers.c marshal.c: Move 
7055         mono_find_method_by_name to debug-helpers.c.
7056
7057 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
7058
7059         * object.c (mono_release_type_locks): type_initialization_hash is
7060         a GHashTable.
7061
7062         * reflection.c object.c object-internals.h: Fix warnings.
7063
7064         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
7065         without accessors. Fixes #61561.
7066
7067         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
7068         application base from the root domain if not set. Fixes #65641.
7069         (mono_runtime_init): Fix warning.
7070
7071 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7072
7073         * appdomain.c: call mono_thread_pool_init.
7074         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
7075         of worker threads based on the number of CPUs and the environment
7076         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
7077         for non-windows (windows) systems.
7078
7079 2004-10-27  Chris Toshok  <toshok@ximian.com>
7080
7081         * mono-debug-debugger.c (write_class): don't call mono_class_init
7082         here, as even with the check for (!klass->init_pending), we get
7083         into a situation where we're hitting cycles in class
7084         initialization.  Fixes #68816.
7085
7086 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
7087
7088         * image.c: Avoid overwriting values in the loaded_images_hash when an
7089         assembly is loaded multiple times. Fixes #61152.
7090
7091         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
7092         so multiple satellite assemblies for the same name can be loaded.
7093         Fixes #68259.
7094
7095         * mono_domain_assembly_preload: Actually return the loaded assembly, 
7096         not NULL.
7097
7098         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
7099         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
7100
7101         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
7102         pending finalizers are not invoked after the appdomain has been 
7103         unloaded. Fixes #67862.
7104
7105 2004-10-22  Martin Baulig  <martin@ximian.com>
7106
7107         * mono-debug-debugger.c
7108         (mono_debugger_runtime_invoke): Don't box valuetypes.
7109
7110 2004-10-22  Chris Toshok  <toshok@ximian.com>
7111
7112         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
7113         don't hide private methods.
7114
7115 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
7116
7117         * icall.c: Allows the runtime to "share" (when known) the public key
7118         token of an assembly. This avoid the need to recalculate the token 
7119         (from the public key) in managed code.
7120
7121 2004-10-21  Chris Toshok  <toshok@ximian.com>
7122
7123         * debug-helpers.c (append_class_name): argh, revert last patch.
7124         
7125 2004-10-21  Chris Toshok  <toshok@ximian.com>
7126
7127         * debug-helpers.c (append_class_name): use '+' as the delimiter,
7128         not '/', so that it matches what the debugger uses to look up
7129         methods.
7130
7131 2004-10-21  Martin Baulig  <martin@ximian.com>
7132
7133         * mono-debug-debugger.c (mono_debugger_throw_exception): New
7134         public method; this is called each time an exception is thrown and
7135         allows the debugger to use exception catch points.
7136
7137 2004-10-21  Martin Baulig  <martin@ximian.com>
7138
7139         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
7140         the stack pointer and the exception object in some struct and pass
7141         that to the debugger.
7142
7143 2004-10-21  Chris Toshok  <toshok@ximian.com>
7144
7145         * mono-debug-debugger.c (do_write_class): add instance/static
7146         event support.  We don't expose "raise" or "other" yet.
7147         (event_is_static): new method.
7148
7149 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
7150
7151         * mono-debug-debugger.c
7152         (mono_debugger_handle_exception): Remove
7153         bogus return value for fussy compilers.
7154
7155 2004-10-20  Martin Baulig  <martin@ximian.com>
7156
7157         * mono-debug-debugger.c
7158         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
7159         (mono_debugger_handled_exception): Likewise.
7160
7161 2004-10-20  Martin Baulig  <martin@ximian.com>
7162
7163         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7164         MONO_DEBUGGER_EVENT_EXCEPTION.
7165
7166         * mono-debug-debugger.c (mono_debugger_handle_exception): New
7167         public function to send the debugger a notification for an
7168         exception and inform it about a catch/finally clause.
7169
7170 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
7171
7172         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
7173         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
7174         fix 2.95 build. 
7175
7176         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
7177
7178 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
7179
7180         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
7181         marshalled as [In,Out]. Fixes #58325.
7182
7183 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
7184
7185         * reflection.c (mono_method_body_get_object): Implement some fields.
7186
7187 2004-10-12  Martin Baulig  <martin@ximian.com>
7188
7189         * reflection.c (mono_reflection_bind_generic_parameters): Small
7190         fix, correctly retrieve our parent from a generic instance.
7191
7192 2004-10-12  Martin Baulig  <martin@ximian.com>
7193
7194         * metadata.c (mono_metadata_generic_param_equal): We always have
7195         an owner.
7196
7197         * class.c
7198         (mono_class_from_generic_parameter): We need to have an owner.
7199         (my_mono_class_from_generic_parameter): Likewise.
7200
7201         * reflection.c (mono_reflection_setup_generic_class): Renamed to
7202         mono_reflection_create_generic_class() and added a new
7203         mono_reflection_setup_generic_class().  
7204         (mono_reflection_initialize_generic_param): If we're a nested
7205         generic type and inherited from the containing class, set our
7206         owner to the outer class.
7207
7208 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
7209
7210         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
7211
7212         * reflection.c (mono_method_body_get_object): New function to create
7213         a MethodBody object.
7214
7215         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
7216
7217 2004-10-11  Martin Baulig  <martin@ximian.com>
7218
7219         * metadata.c (_mono_metadata_type_equal): Renamed to
7220         do_mono_metadata_type_equal() and made static.
7221
7222 2004-10-11  Martin Baulig  <martin@ximian.com>
7223
7224         * appdomain.c: Bump corlib version number to 28.
7225
7226 2004-10-10  Martin Baulig  <martin@ximian.com>
7227
7228         * class-internals.h
7229         (MonoGenericInst): Added `MonoGenericContainer *container'.
7230         (MonoGenericMethod): Likewise.
7231         (MonoGenericContext): Likewise.
7232         (MonoGenericParam): Added `MonoGenericContainer *owner'.
7233
7234         * metadata.c
7235         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
7236         (do_mono_metadata_parse_generic_inst): Likewise.
7237         (mono_metadata_parse_type_full): New public method.  This is the actual
7238         mono_metadata_parse_type() implementation - with an additional
7239         `MonoGenericContainer *' argument.
7240         (mono_metadata_parse_array_full): Likewise.
7241         (mono_metadata_parse_signature_full): Likewise.
7242         (mono_metadata_parse_method_signature_full): Likewise.
7243         (mono_metadata_parse_mh_full): Likewise.
7244         (mono_type_create_from_typespec): Likewise.
7245         (mono_metadata_interfaces_from_typedef_full): New public method;
7246         this is similar to the other _full() methods, but we take a
7247         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
7248         (mono_metadata_parse_generic_param): Take an additional
7249         `MonoGenericContainer *' argument and lookup the MonoGenericParam
7250         from that container.
7251         (mono_metadata_generic_param_equal): New static method to compare
7252         two type parameters.
7253         (_mono_metadata_type_equal): New static method; takes an
7254         additional `gboolean signature_only' argument - if true, we don't
7255         compare the owners of generic parameters.
7256         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
7257         with a TRUE argument - do a signature-only comparision.
7258
7259         * loader.c: Use the new _full() methods and pass the
7260         MonoGenericContainer to them.
7261
7262         * object-internals.h (MonoReflectionTypeBuilder): Added
7263         `MonoGenericContainer *generic_container' field.
7264         (MonoReflectionMethodBuilder): Likewise.
7265
7266 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
7267
7268         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
7269         case initial images of dynamic assemblies.
7270
7271         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
7272
7273         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
7274
7275         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
7276         length of event->other array.
7277         (typebuilder_setup_events): Ditto.
7278
7279         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
7280         'assembly_by_name' and add an 'assemblies' list.
7281
7282         * assembly.h assembly.c: Add a new search hook for determining whenever
7283         an assembly is already loaded. Use this instead of searching in the
7284         loaded_assemblies list.
7285
7286         * domain.c appdomain.c: Implement the new search hook so loaded 
7287         assemblies are now scoped by appdomain. Fixes #67727.
7288
7289 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
7290
7291         * threads.c (mono_thread_attach): Initialize synch_lock field so
7292         mono_thread_detach works again.
7293
7294         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
7295         'lib' too. Fixes #63130.
7296
7297 2004-10-06  Jackson Harper  <jackson@ximian.com>
7298
7299         * culture-info-tables.h: regenerated.
7300
7301 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
7302
7303         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
7304         implemented by other interfaces in the result. Fixes #65764.
7305         
7306         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7307         Handle unloadable modules without crashing.
7308
7309         * image.c (load_modules): Revert the previous patch since modules must
7310         have a fixed index inside the array.
7311         
7312         * image.c (load_modules): Don't include native modules in the modules
7313         array.
7314
7315 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
7316
7317         * reflection.h: Add param_defaults field.
7318
7319         * reflection.c: Add support for parameter defaults in dynamic methods.
7320         Fixes #64595.
7321
7322         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
7323         an empty string when a type has no namespace. Fixes #64230.
7324
7325 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
7326
7327         * tabledefs.h: Added "internal" security actions to support non-CAS
7328         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
7329         Note: they do not seems to be used anymore in 2.0 (new metadata format)
7330
7331 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7332
7333         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
7334         constructor of abstract class. Fixes #61689.
7335
7336 2004-10-04  Martin Baulig  <martin@ximian.com>
7337
7338         * class-internals.h (MonoGenericContainer): New type.
7339         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
7340         `MonoGenericContainer *generic_container'.
7341         (MonoClass): Replaced `gen_params' and `num_gen_params' with
7342         `MonoGenericContainer *generic_container'.
7343
7344         * metadata.c (mono_metadata_load_generic_params): Return a
7345         `MonoGenericContainer *' instead of a `MonoGenericParam *';
7346         removed the `num' argument.
7347
7348 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
7349
7350         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
7351         for dynamic images.
7352
7353         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
7354         machine fields.
7355
7356         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
7357
7358         * reflection.c: Save pe_kind and machine values into the generated
7359         image file.
7360
7361         * appdomain.c: Bump corlib version number.
7362
7363         * object-internals.h: Reorganize layout of LocalBuilder.
7364
7365         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
7366         New helper function.
7367
7368         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
7369         created MonoType for dynamic types. Fixes #66180.
7370
7371 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
7372
7373         * threadpool.c: the ares hashtable needs a critical section around it.
7374         this prevents some nasty segfaults
7375
7376 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
7377
7378         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
7379         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
7380         bug 67324).
7381         
7382 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7383
7384         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
7385         
7386 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
7387
7388         * image.c: Always canonicalize image file names, to avoid loading
7389         the same assembly twice when referenced using a relative path.
7390
7391 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7392
7393         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
7394
7395         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
7396
7397         * marshal.c: Fix warnings.
7398
7399 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
7400
7401         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
7402         attempting to marshal the delegate_trampoline as the method_addr.
7403         This patch has a static hashtable of marshalled delegates so that 
7404         we can map delegate_trampoline addresses back to delegates.  This
7405         allows a delegate passed to managed code to be passed back into native
7406         code.  Fixes #67039
7407
7408 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7409
7410         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
7411
7412         * reflection.c (method_encode_code): Align method headers properly.
7413         Fixes #66025.
7414
7415 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7416
7417         * marshal.c: In the runtime invoke wrapper, reset the abort
7418         exception if it is cached. This avoids the automatic rethrowal of 
7419         the exception after the catch of the wrapper. Also check for pending
7420         interruptions before calling the managed method. This is done using
7421         the new method emit_thread_force_interrupt_checkpoint, since the
7422         normal checkpoint method is ignored when running the invoke wrapper.
7423         * object.c: If the abort exception is rethrown, set the abort_exc
7424         field of the thread, so it will be rethrown aftere every catch.
7425         * threadpool.c: Only run an interruption checkpoint if what has been
7426         requested is a stop of the thread (aborts will be ignored).
7427         * threads.c: By default, a thread will now never be interrumped while
7428         running the runtime invoke wrapper (this ensures that runtime_invoke
7429         will always return to the caller if an exception pointer is provided).
7430         There is a new special method mono_thread_force_interruption_checkpoint()
7431         to force an interruption checkpoint even if running a protected
7432         wrapper, which is used by the same runtime invoke wrapper to do a check
7433         at a safe point.
7434
7435 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7436
7437         * object.c, object-internals.h: Implemented mono_release_type_locks,
7438         which releases the cctor locks held by a thread.
7439         * threads.c, threads.h: In thread_cleanup, release cctor locks held
7440         by a thread. Added mono_thread_exit() method to be used to safely stop
7441         a thread.
7442
7443 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7444
7445         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7446         Move null check before dereference.  Avoid indexing beyond the end
7447         of the 'modules' array.
7448
7449 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7450
7451         * metadata-internals.h (MonoImage): Add module_count field.
7452         * image.c (load_modules): Set image->module_count.
7453         (mono_image_load_file_for_image): Use image->module_count.
7454         * reflection.c (mono_image_load_module): Append to image->modules array 
7455         of dynamic assembly.
7456         (mono_module_get_object): Fix loop to actually increment index.
7457         Use image->module_count.
7458         * assembly.c (mono_assembly_load_references): Use image->module_count.
7459         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7460         Likewise.
7461
7462 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7463
7464         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
7465         Avoid assert on generic types.
7466
7467 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
7468
7469         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
7470
7471         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
7472
7473         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
7474         function to convert a MarshalSpec structure to its managed counterpart.
7475
7476         * reflection.c: Fix warnings.
7477         
7478         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
7479         field.
7480
7481         * icall.c (mono_create_icall_signature): Fix build.
7482
7483 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
7484
7485         * icall.c: Add MakePointType icall.
7486
7487         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
7488         warnings.
7489
7490 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7491
7492         * threadpool.c: reuse allocated slots in the queue.
7493
7494 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7495
7496         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7497
7498         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7499
7500         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7501         previous change.
7502
7503         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7504         ThrowOnUnmappableChar.
7505
7506         * icall.c (ves_icall_Type_GetPacking): New icall.
7507
7508 2004-09-24  Martin Baulig  <martin@ximian.com>
7509
7510         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7511
7512 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7513
7514         * appdomain.c:
7515         (mono_domain_set): allow setting a domain that is being unloaded.
7516         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7517         being unloaded.
7518
7519 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7520
7521         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7522         the GetCustomAttributes icall.
7523
7524 2004-09-23  Martin Baulig  <martin@ximian.com>
7525
7526         * object-internals.h (MonoReflectionGenericParam): Replaced
7527         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7528         with `guint32 attrs'.
7529
7530 2004-09-23  Martin Baulig  <martin@ximian.com>
7531
7532         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7533
7534 2004-09-23  Martin Baulig  <martin@ximian.com>
7535
7536         * object-internals.h (GenericParameterAttributes): New enum.
7537
7538 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7539
7540         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7541         
7542         * class.c (init_events): Fill out event->other field.
7543
7544         * class.c: Fix warnings.
7545
7546         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7547
7548 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7549
7550         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7551         walk which doesn't supply the IL offset.
7552
7553 2004-09-22  Martin Baulig  <martin@ximian.com>
7554
7555         * reflection.c (mono_reflection_setup_internal_class): If we're
7556         System.ValueType, System.Object or System.Enum, set
7557         `klass->instance_size' and create the vtable.
7558         (mono_reflection_create_internal_class): If we're an enum type,
7559         get the base class from our current corlib.
7560
7561 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7562
7563         * reflection.h (MonoResolveTokenError): New type.
7564
7565         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7566         icall.
7567
7568         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7569
7570 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7571
7572         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7573         Support also calling constructors, but only for already allocated objects.
7574
7575 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7576
7577         * reflection.c (type_get_qualified_name): If the klass is null
7578         return the typename to avoid a NullRefEx.
7579         (encode_cattr_value): Get the qualified name of the boxed type,
7580         not the underlying enumtype.  Fixes #62984.
7581
7582 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7583
7584         * marshal.c: Fix problems with previous checkin.
7585
7586 2004-09-21    <vargaz@freemail.hu>
7587
7588         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7589         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7590
7591         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7592
7593 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7594
7595         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7596         should only return a type for pointers, arrays, and passbyref types.
7597         Fixes bug #63841.
7598
7599 2004-09-21  Martin Baulig  <martin@ximian.com>
7600
7601         * domain.c (mono_debugger_check_runtime_version): New public
7602         function.
7603
7604         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7605
7606 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7607
7608         * reflection.c: Added missing sort to the declarative security 
7609         attributes table. MS implementation stops seeing the attributes if the
7610         token number regress in the table (as shown by ildasm and permview).
7611
7612 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7613
7614         * object-internals.h (MonoReflectionModule): Add 'token' field.
7615         
7616         * reflection.c (mono_reflection_get_token): Add support for Module
7617         and Assembly.
7618         (mono_module_get_object): Set 'token' field.
7619         (mono_module_file_get_object): Set 'token' field.
7620
7621         * icall.c: Add new Assembly and Module icalls.
7622
7623         * appdomain.c: Bump corlib version.
7624
7625 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7626
7627         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7628         tokens of metadata objects.
7629
7630         * reflection.h reflection.c (mono_reflection_get_token): New function
7631         to obtain the token of a metadata object.
7632
7633         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7634
7635 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7636
7637         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7638         
7639         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7640
7641 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7642
7643         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7644         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7645         AssemblyBuilder to access the permissions set in the class lib.
7646         * reflection.c: Added security attributes encoding step in 
7647         mono_image_build_metadata.
7648         * tabledefs.h: Added new security actions defined in 2.0:
7649         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7650
7651 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7652
7653         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7654         macro parameter.
7655
7656 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7657  
7658         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7659           finalized. There where random SIGSEVs at program termination, when
7660           an object being finalized was trying to do a string comparison and
7661           the current culture was already finalized.
7662  
7663 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7664
7665         * threads.c: call thread_cleanup before finishing the thread if we get
7666         there.
7667
7668 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
7669
7670         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
7671         assemblies from the parent. Fixes #65665.
7672
7673 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
7674
7675         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
7676         modifiers.
7677
7678 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
7679
7680         * reflection.h: add prototype for mono_get_dbnull_object
7681         * reflection.c: add prototypes for get_default_param_value_blobs 
7682         and mono_get_object_from_blob for fussier compilers
7683
7684 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
7685  
7686         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
7687         false deadlock checks in class initialization.
7688  
7689 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
7690
7691         * image.c (mono_image_addref): Fix comment.
7692
7693         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
7694         possible.
7695
7696 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
7697
7698         * reflection.c (mono_param_get_objects): Modified to return
7699         ParameterInfo.DefaultValue object.
7700
7701         (get_default_param_value_blobs):
7702         (mono_get_object_from_blob):
7703         (mono_get_dbnull_object): New helper routines. 
7704
7705         * object.c (mono_get_constant_value_from_blob): New helper routine
7706         carved out from get_default_field_value ()
7707
7708         * object-internals.h (mono_get_constant_value_from_blob): Added
7709         function declaration.
7710
7711 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
7712
7713         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
7714         referenced assemblies. Fixes #62135.
7715
7716         * exception.h exception.c (mono_get_exception_file_not_found2): New
7717         helper function.
7718
7719 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
7720
7721         * class.h class.c: Add mono_type_get_underlying_type ().
7722
7723 2004-09-09  Geoff Norton <gnorton@customerndna.com>
7724
7725         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
7726         Fix GetTypes() to support dynamically created assemblies.
7727
7728 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
7729
7730         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
7731         
7732         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
7733         previous patch.
7734
7735         * reflection.h reflection.c loader.c: Allow dynamic construction of
7736         pinvoke methods. Fixes #65571.
7737         
7738         * reflection.c (mono_reflection_get_type): Revert previous change since
7739         it causes regressions.
7740
7741 2004-09-08  Martin Baulig  <martin@ximian.com>
7742
7743         * class.c (class_compute_field_layout): Don't call
7744         mono_class_layout_fields() for open generic instances.
7745
7746 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
7747         * threads.c appdomain.c: fix typo in GC macro
7748
7749 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7750
7751         * threads.c: don't call mono_thread_detach() in start_wrapper(),
7752         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
7753
7754 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
7755
7756         * image.c (mono_image_close): Applied patch from 
7757         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
7758         assembly is loaded multiple times from data.
7759         
7760         * image.c (mono_image_open): Fix warning.
7761
7762 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7763
7764         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
7765         once. Fixes #58334.
7766         
7767         * reflection.c (mono_reflection_create_runtime_class): Initialize
7768         klass->nested_classes. Fixes #61224.
7769
7770 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
7771
7772         * threads.c: sched_yield() on exit, to allow threads to quit.
7773
7774 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7775
7776         * object.c (mono_unhandled_exception): Remove leftover debug code.
7777
7778 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
7779
7780         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
7781
7782 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7783
7784         * marshal.c (emit_marshal_array): Really null terminate string arrays.
7785         
7786         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
7787
7788 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7789
7790         * marshal.c (emit_marshal_array): Null terminate string arrays.
7791         
7792         * marshal.c (raise_auto_layout_exception): Fix warning.
7793
7794         * reflection.c (mono_param_get_objects): Initialize the default value
7795         with DBNull.Value, not null. Fixes #62123.
7796
7797 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
7798
7799         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
7800         throw an exception with a cute explanation.
7801
7802 2004-09-06  Dick Porter  <dick@ximian.com>
7803
7804         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
7805         Close the new process's thread handle, as we don't use it.  The
7806         handle stays around forever otherwise.
7807
7808 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7809
7810         * object.c (arith_overflow): Fix warning.
7811
7812         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
7813         calling conventions in method refs. Fixes #65352.
7814
7815         * reflection.c: Fix warnings.
7816
7817 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7818
7819         * icall.c: Add a new icall for Array.Clear
7820
7821 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7822
7823         * object.c: When allocating an array, we have to throw
7824         an overflow exception if any of the lengths are < 0.
7825
7826 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7827
7828         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
7829         properly. Also move implementation of string array marshalling to 
7830         managed code. Fixes #42316.
7831
7832 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7833
7834         * assembly.c: provide more information when loading an assembly fails.
7835
7836 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7837
7838         * filewatcher.c: don't expect the development fam package to be
7839         installed.
7840
7841 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
7842
7843         * marshal.c: Make a copy of the signature cookie since it will be
7844         freed by the caller.
7845         
7846         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
7847
7848         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
7849
7850         * metadata.c (mono_metadata_free_marshal_spec): New function to free
7851         marshal specs.
7852
7853         * marshal.c: More refactoring.
7854         
7855         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
7856         smaller functions.
7857
7858 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
7859
7860         * object.c: In mono_message_invoke, fill the output parameter array after
7861           calling the managed method (it was done before the call). This fixes
7862           bug #59299.
7863
7864 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7865
7866         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
7867         as well.
7868
7869 2004-09-02  Martin Baulig  <martin@ximian.com>
7870
7871         * class.c (mono_class_instance_size): Don't allow generic type
7872         definitions or open generic instances.
7873         (mono_class_array_element_size): If we're a value type, call
7874         mono_class_instance_size() on the original class.
7875
7876         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
7877         handle generic instances.
7878
7879         * mono-debug-debugger.c (write_type): Handle generic instances
7880         like classes.
7881
7882 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7883
7884         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
7885         the allocation request fails. Fixes #65089.
7886
7887         * object.c (mono_runtime_free_method): Do not call mono_free_method.
7888         
7889         * object.c (mono_runtime_free_method): New function to free a dynamic
7890         method.
7891
7892         * marshal.c (mono_delegate_free_ftnptr): New function to free the
7893         delegate trampoline.
7894
7895         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
7896         with hasthis as dynamic,
7897
7898         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
7899
7900         * domain.c (mono_jit_info_table_remove): New function to remove an
7901         entry from the jit info table.
7902
7903         * class-internals.h (MonoMethod): Add 'dynamic' field.
7904
7905         * loader.c: Fix warnings.
7906
7907 2004-09-01  Martin Baulig  <martin@ximian.com>
7908
7909         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
7910         instead of mono_debugger_lock() because the latter one is a no-op
7911         unless running in the debugger.
7912
7913 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7914
7915         * class.c (class_compute_field_layout): Classes with auto-layout or
7916         reference fields are not blittable.
7917         
7918 2004-09-01  Dick Porter  <dick@ximian.com>
7919
7920         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
7921         mono_image_get_filename() to get the assembly location.
7922
7923         * icall.c:
7924         * metadata.h: Fix compile warnings
7925
7926 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7927
7928         * class.c (class_compute_field_layout): System.Object is blittable.
7929
7930         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
7931         as in/out. Fixes #59909.
7932
7933 2004-09-01  Martin Baulig  <martin@ximian.com>
7934
7935         * metadata.h (MONO_TYPE_ISREFERENCE): Call
7936         mono_metadata_generic_inst_is_valuetype() if we're a generic
7937         instance to check whether our underlying type is a reference type.
7938
7939 2004-09-01  Martin Baulig  <martin@ximian.com>
7940
7941         * metadata.c (mono_type_size): If we're a generic instance, call
7942         mono_class_value_size() for value types.
7943
7944 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
7945
7946         * marshal.c: Implement more custom marshalling functionality. Fixes
7947         #64915.
7948
7949 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
7950
7951         * mono-debug.c, debug-mono-symfile.c: add some locking love.
7952
7953 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
7954
7955         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
7956
7957         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
7958
7959         * icall.c: Fix some warnings.
7960
7961         * threads.c (abort_appdomain_thread): Fix unref errors.
7962         (mono_thread_current): Fix THREAD_DEBUG define.
7963
7964 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
7965
7966         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
7967
7968         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
7969
7970 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
7971
7972         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
7973         string arrays.
7974
7975 2004-08-28  Martin Baulig  <martin@ximian.com>
7976
7977         * metadata.c
7978         (mono_metadata_generic_inst_is_valuetype): New public function.
7979
7980         * metadata.h (MONO_TYPE_ISSTRUCT): Call
7981         mono_metadata_generic_inst_is_valuetype() if we're a generic
7982         instance to check whether our underlying type is a valuetype.
7983
7984 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
7987         #63768.
7988
7989 2004-08-25  Martin Baulig  <martin@ximian.com>
7990
7991         * loader.c (mono_get_method_from_token): Abstract methods can also
7992         be generic and thus have type parameters.
7993
7994         * metadata-internals.h
7995         (MonoDynamicImage): Added `GPtrArray *gen_params'.
7996
7997         * reflection.c (mono_image_get_generic_param_info): Don't create a
7998         metadata row, just add an entry to the `gen_params' array.
7999         (build_compressed_metadata): Sort the `gen_params' array and then
8000         actually create the metadata.
8001
8002 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8003
8004         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
8005
8006 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
8007
8008         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
8009
8010 2004-08-24  Martin Baulig  <martin@ximian.com>
8011
8012         * class.cs (mono_class_is_subclass_of): Like an interface, a
8013         generic instance also derives from System.Object.
8014
8015 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
8016
8017         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
8018         custom modifiers to be in any order. Fixes #61990.
8019
8020 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
8021
8022         * object.c: Register mono_object_new_fast icall.
8023         
8024         * object.c (mono_class_get_allocation_ftn): Return to calling
8025         mono_object_new_fast, since it seems faster to compute the object 
8026         size in unmanaged code than passing it as a parameter.
8027
8028         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
8029
8030         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
8031         this function with Boehm as the oom handler, so we don't have to check
8032         the result of GC_malloc.
8033
8034         * object.c: Remove checks for oom.
8035
8036         * object.h object.c (mono_class_get_allocation_ftn): New function to
8037         return the icall which can be used to allocate an instance of a given
8038         class. 
8039
8040         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
8041
8042         * class-internals.h: Add 'enabled' field.
8043
8044 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
8045
8046         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
8047
8048 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
8049         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
8050         value 0x0010.
8051
8052 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
8053
8054         * appdomain.c: use the Tls function for appdomain too,
8055         at Zoltan's request. Actually return in mono_context_get
8056
8057         * appdomain.c, profiler.c, threads.c: use __thread
8058
8059 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
8060
8061         * appdomain.c threads.c: Call GC_CreateThread on windows.
8062
8063         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
8064         multiple libraries since this don't work on windows.
8065
8066 2004-08-18  Martin Baulig  <martin@ximian.com>
8067
8068         * class-internals.h
8069         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
8070         MonoMethodHeader.
8071
8072         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
8073         MonoMethodNormal since we also need it for abstract and interface
8074         methods.
8075
8076         * reflection.c
8077         (build_compressed_metadata): Sort the GenericParam table.
8078         (mono_image_create_token): Added `gboolean create_methodspec'
8079         argument; this is false when generating a MethodImpl token.
8080         (reflection_methodbuilder_to_mono_method): Abstract and interface
8081         methods may also have generic parameters.
8082
8083 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
8084
8085         * appdomain.c: thread local alloc
8086
8087 2004-08-17  Martin Baulig  <martin@ximian.com>
8088
8089         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
8090
8091         * icall.c
8092         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
8093         argument.
8094
8095         * class.c (mono_type_get_full_name): New public function.
8096         (mono_type_get_name): Don't include the type arguments.
8097
8098 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
8099
8100         * Makefile.am: Build static versions of libmetadata and libmonoruntime
8101         for inclusion into the mono executable.
8102
8103 2004-08-16  Martin Baulig  <martin@ximian.com>
8104
8105         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
8106         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
8107
8108 2004-08-14  Martin Baulig  <martin@ximian.com>
8109
8110         * class.c (dup_type): Also copy the `byref' field.
8111
8112 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
8113
8114         * reflection.c (create_dynamic_mono_image): Revert the last change 
8115         since it breaks bootstrap.
8116
8117 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
8118
8119         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
8120
8121         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
8122         not free them with g_free.
8123
8124 2004-08-11  Martin Baulig  <martin@ximian.com>
8125
8126         * reflection.c (mono_reflection_setup_internal_class): Also call
8127         mono_class_setup_mono_type() if we already have a `tb->type.type'.
8128
8129 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
8130
8131         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
8132         called during default (first) AppDomain creation. Keep track of
8133         Evidence when loading assemblies.
8134
8135 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8136
8137         * opcodes.c, opcodes.h: reduce runtime relocations.
8138
8139 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
8140
8141         * culture-info.h, locales.c: fixes and chages to sue the new
8142         optimized format of the locale data.
8143         * culture-info-tables.h: regenerated.
8144
8145 2004-08-06  Geoff Norton <gnorton@customerdna.com>
8146         
8147         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
8148
8149 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
8150
8151         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
8152         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
8153         * domain-internals.h: icall declaration.
8154         * icall.c: icall registration.
8155         * object-internals.h: New fields in MonoAssembly for CAS.
8156
8157 2004-08-05  Duncan Mak  <duncan@ximian.com>
8158
8159         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
8160         CEE_LDELEM_ANY.
8161
8162 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8163
8164         * reflection.c: fix to deal with object[] arrays in custom ctors
8165         (bug #62550).
8166
8167 2004-08-05  Martin Baulig  <martin@ximian.com>
8168
8169         * class.c (mono_class_array_element_size): Added support for
8170         generic instances and correctly handle "recursive" types.
8171
8172 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
8173
8174         * assembly.c: Fix warnings.
8175
8176 2004-08-04  Martin Baulig  <martin@ximian.com>
8177
8178         * class.c
8179         (mono_type_get_name_recurse): Added `gboolean include_arity'
8180         argument specifying whether or not we should include the generic
8181         arity in the type name.
8182         (_mono_type_get_name): New static function.
8183         (mono_class_setup_vtable): If we're a generic instance, don't
8184         include the generic arity in the names of explicit method
8185         implementations.        
8186
8187 2004-08-03  Martin Baulig  <martin@ximian.com>
8188
8189         * class.c (mono_type_get_name_recurse): Enclose the generic type
8190         arguments in `<', '>'.
8191
8192 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8193
8194         * gc.c: make GC warning messages use the trace API, they are just
8195         noise to most of the users.
8196
8197 2004-08-03  Martin Baulig  <martin@ximian.com>
8198
8199         * debug-mono-symfile.c (read_string): Correctly read the string.
8200
8201 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
8202
8203         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
8204         
8205         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
8206         icalls.
8207         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
8208
8209 2004-07-30  Martin Baulig  <martin@ximian.com>
8210
8211         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
8212         Reflect latest symbol writer changes.   
8213
8214 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8215
8216         * object.c: always create an object if null is passed
8217         to Invoke() where a valuetype is expected.
8218
8219 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
8220
8221         * marshal.c (mono_marshal_init): make managed
8222         signatures match native ones better for 64bits.
8223
8224 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8225
8226         * appdomain.c: hack to build correctly the private bin path on windows.
8227         Fixes bug #61991.
8228
8229 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
8230
8231         * assembly.c: Load mscorlib from the correct framework directory
8232           (mono/<version>/mscorlib.dll).
8233         * appdomain.h: Added prototypes for new functions.
8234         * internals.h: Added some prototypes.
8235         * domain.c: When initializing the runtime, get from the executable and
8236           the configuration files the runtime version that the app supports.
8237           Added support methods for reading app.exe.config. Added list of versions
8238           supported by the JIT. Added two new methods: mono_init_from_assembly,
8239           which initializes the runtime and determines the required version from
8240           the provided exe file, and mono_init_version, which initializes
8241           the runtime using the provided version.
8242         * icall.c: Get machine.config from version-specific directory.
8243         * reflection.c: When generating an image, embed the version number
8244           of the current runtime.
8245
8246 2004-07-28  Dick Porter  <dick@ximian.com>
8247
8248         * socket-io.c
8249         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
8250         returned sockaddr size before creating the remote address object.
8251         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
8252         61608.
8253
8254 2004-07-28  Dick Porter  <dick@ximian.com>
8255
8256         * locales.c (string_invariant_compare_char): Fix invariant char
8257         compares between upper and lower cases.  Fixes bug 61458.
8258
8259 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
8260         
8261         * marshal.c: actually cache stelem.ref wrappers.
8262         
8263 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
8264
8265         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
8266         sections and remove the mono_cli_rva_map () function.
8267
8268 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8269
8270         * debug-mono-symfile.c: fix one more endianess issue, from a patch
8271         by Geoff Norton (<gnorton@customerdna.com>).
8272
8273 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8274
8275         * class.c: fix class loads for pointer types (typeof(int) !=
8276         typeof(int*)).
8277
8278 2004-07-27  Martin Baulig  <martin@ximian.com>
8279
8280         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
8281         reading the debugging information from an external ".mdb" file.
8282
8283 2004-07-24  Martin Baulig  <martin@ximian.com>
8284
8285         * reflection.c (mono_image_get_type_info): Only write a class
8286         layout entry if we actually have a size or a packing size.
8287
8288 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8289
8290         * reflection.c (type_get_fully_qualified_name): 
8291         insert cast to get type checking of ?: with non-gcc compilers
8292
8293 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8294
8295         * rand.c: use g_getenv for both lookups of
8296         MONO_EGD_SOCKET
8297
8298 2004-07-17  Martin Baulig  <martin@ximian.com>
8299
8300         * reflection.c (mono_reflection_bind_generic_method_parameters):
8301         Set `gmethod->reflection_info'.
8302
8303 2004-07-17  Martin Baulig  <martin@ximian.com>
8304
8305         * class.c (mono_class_create_from_typedef): Insert the newly
8306         created class into the hash table before computing the interfaces
8307         since we could be called recursively.
8308
8309 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
8310
8311         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
8312         function to implement stelem.ref in managed code
8313         * class-internals.h, debug-helpers.c: a new wrapper type
8314         for the above.
8315
8316 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8317
8318         * gc.c: allow GC handles to work even when no GC is compiled in.
8319         Fix part of bug #61134 (GetAddrOfPinnedObject).
8320
8321 2004-07-13  Peter Williams  <peter@newton.cx>
8322  
8323         * process.c (complete_path): Make sure we don't attempt to execute
8324         directories.
8325  
8326 2004-07-12  Geoff Norton <gnorton@customerdna.com>
8327
8328         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
8329           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
8330           and will add/subtract the hour if needed
8331
8332 2004-07-12  Martin Baulig  <martin@ximian.com>
8333
8334         * reflection.c (mono_field_get_object): If we have
8335         `field->generic_info', take the attributes from
8336         `field->generic_info->generic_type'.    
8337
8338 2004-07-12  Martin Baulig  <martin@ximian.com>
8339
8340         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
8341         This function must be called before initializing the runtime.
8342         (mono_debug_init_1): New function; call this after initializing
8343         the runtime, but before loading the assembly.  It tells the
8344         debugger to load corlib and the builtin types.
8345
8346         * mono-debug-debugger.c: Did some larger changes in the debugging
8347         code; support recursive class declarations, make sure we actually
8348         add all classes.
8349
8350 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8351
8352         * debug-helpers.c: undo my previous patch and fixed the real issue in
8353         ../mini/exceptions-x86.c
8354
8355 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8356
8357         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
8358         when no HOME env. variable was set and a NullRef was thrown in a .cctor
8359         called from other .cctors.
8360
8361 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
8362
8363         * loader.c: Removed the mono_loader_wine_init hack now that we are
8364         doing a managed version of Windows.Forms.
8365
8366 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
8367
8368         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
8369         threadpool.c, threads.c: remove static data from rootset.
8370
8371 2004-07-09  Dick Porter  <dick@ximian.com>
8372
8373         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
8374         Don't do any more processing if the matched length was 0.  It was
8375         increasing the size of the string before.  Fixes bug 61167.
8376
8377 2004-07-09  Dick Porter  <dick@ximian.com>
8378
8379         * socket-io.h:
8380         * socket-io.c
8381         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8382         Add support for SO_PEERCRED if its available.
8383
8384 2004-07-09  Peter Bartok <pbartok@novell.com>
8385         * loader.c: winelib.exe.so error message is now only displayed if
8386         MONO_DEBUG is set. To help us avoid questions when people are trying
8387         out the new Managed.Windows.Forms.
8388
8389 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
8390
8391         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
8392         for isinst and castclass wrappers.
8393
8394         * class-internals.h icall.c: Move registration and lookup of JIT icalls
8395         to libmetadata from the JIT, so they could be used by the marshalling
8396         code and the interpreter.
8397
8398         * marshal.c: Register marshalling related JIT icalls here instead of
8399         in mini.c. Use CEE_MONO_ICALL instead of the family of 
8400         CEE_MONO_PROC<x> opcodes to call marshalling functions.
8401
8402         * metadata.h: Remove unneeded marshalling conversions.
8403
8404         * opcodes.c: Update for new opcodes.
8405         
8406 2004-07-08  Martin Baulig  <martin@ximian.com>
8407
8408         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
8409         (mono_debug_get_domain_data): Make this function static.
8410
8411 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8412
8413         * gc.c, object.h: add nice GC handle API for embedders.
8414
8415 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
8416
8417         * reflection.c: more changes for the new api
8418
8419         * object.c: When we reflect on a field w/ a constant value, it
8420         will not have a memory location, so we must access metadata. Also,
8421         allow easier reading of strings so that we can read them from
8422         the constant data.
8423
8424         * class.c (mono_class_layout_fields): no need for literal fields here.
8425
8426         * class-internals.h: api changes for const fields
8427
8428         * icall.c (ves_icall_get_enum_info): use new apis for const fields
8429
8430 2004-07-06  Martin Baulig  <martin@ximian.com>
8431
8432         * mono-debug.h: Increment version number to 44.
8433
8434         * mono-debug.c (mono_debug_add_wrapper): The second argument is
8435         now a gpointer, rewrote this whole method.
8436
8437         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
8438         function.  Add information about the wrapper in a new "misc table".
8439
8440         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
8441         for the new misc table.
8442
8443 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
8444
8445         * metadata-internals.h image.c: Add a cache for helper signatures.
8446
8447         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
8448
8449 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
8450
8451         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
8452         delegates from a delegate. Fixes #61033.
8453         
8454         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
8455         marshalling of stringbuilder arrays. Fixes #59900.
8456
8457 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
8458
8459         * icall.c: Add EnumBuilder:setup_enum_type icall.
8460
8461 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
8462
8463         * icall.c: Added a new icall for the property version of
8464         OffsetOfStringData.
8465
8466 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
8467
8468         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
8469         it has a constant size across platforms.
8470
8471         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
8472         stack trace.
8473
8474 2004-06-29  Martin Baulig  <martin@ximian.com>
8475
8476         * mono-debug.c (mono_debug_add_method): Protect the whole function
8477         in mono_debugger_lock(), not just parts of it.
8478
8479 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8480
8481         * reflection.c: make sure padding bytes in heaps are zeroed.
8482
8483 2004-06-24  David Waite  <mass@akuma.org>
8484
8485         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
8486         image.c, loader.c, locales.c, marshal.c, metadata.c,
8487         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
8488         string-icalls.c, threads.c: change to C90-style comments from C99 /
8489         C++ -style
8490
8491 2004-06-24  Dick Porter  <dick@ximian.com>
8492
8493         * threads.c
8494         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8495         return createdNew.  Fixes bug 60412.
8496
8497         * threads-types.h: 
8498         * icall.c: Add createdNew parameter to CreateMutex icall
8499
8500 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8501
8502         * reflection.c, object-internals.h: save default value in params.
8503
8504 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8505
8506         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8507         no need to build a new path combining that with the application base.
8508         Fixes bug #60442.
8509
8510 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8511
8512         * reflection.c: fixed minor standard compliance issues.
8513
8514 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8515
8516         * reflection.c: fixed issue with encoding some custom attributes
8517         (arrays in properties and fields, bug #60411).
8518
8519 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8520
8521         * reflection.c: fix start address when copying the public key token.
8522
8523 2004-06-23  Martin Baulig  <martin@ximian.com>
8524
8525         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8526         the `exc' object in a static object to put it into the GC's root set.
8527
8528 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8529
8530         * reflection.c: make mono_reflection_setup_internal_class ()
8531         callable a second time to setup a new parent class.
8532
8533 2004-06-23  Dick Porter  <dick@ximian.com>
8534
8535         * threads.c: Check for WAIT_IO_COMPLETION return values.
8536
8537 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8538
8539         * appdomain.c: Removed the g_free on the public key token. Now copy 
8540         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8541         * assembly.c: Added public key token string value when loading 
8542         assemblies. Fix bug #60439.
8543         * icall.c: Added missing informations (like public key) in 
8544         GetReferencedAssemblies. Fix #60519.
8545         * image.h: Changed definition for public key token from const char*
8546         public_tok_value to guchar public_key_token [17];
8547         * reflection.c: Updated for changes to public key token.
8548
8549 2004-06-22  Lluis Sanchez Gual
8550
8551         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8552         for the field in base classes.
8553
8554 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8555
8556         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8557         mark headers as not supported, they are installed only for use by the
8558         debugger.
8559
8560 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8561
8562         * *.c, *.h: avoid namespace pollution in public headers.
8563
8564 2004-06-21  Martin Baulig  <martin@ximian.com>
8565
8566         * exception.c (mono_get_exception_security): It's in
8567         "System.Security", not in "System".
8568
8569         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8570         the exception classes.
8571
8572 2004-06-21  Martin Baulig  <martin@ximian.com>
8573
8574         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8575         Protect the exception object from being finalized.
8576
8577 2004-06-21  Martin Baulig  <martin@ximian.com>
8578
8579         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8580         public function.
8581
8582 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8583
8584         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8585         if it was not loaded before. Fix parts of #60439.
8586
8587 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8588
8589         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8590         code that was broken since Ben's change: wrappers are now
8591         dependent on the method signature only again.
8592
8593 2004-06-21  Martin Baulig  <martin@ximian.com>
8594
8595         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8596         added interface support.
8597
8598 2004-06-21  Martin Baulig  <martin@ximian.com>
8599
8600         * class.c (mono_vtable_get_static_field_data): New public method.
8601
8602 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8603
8604         * filewatcher.c : Windows build fix to be compliant with API changes.
8605
8606 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8607
8608         * class.h, class.c: more accessors.
8609         * metadata.h, metadata.c: prepare for hiding MonoType and
8610         MonoMethodSignature: people should use the accessors from now on
8611         outside of the tree.
8612
8613 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8614
8615         * *.c, *.h: more API cleanups.
8616
8617 2004-06-18  Jackson Harper  <jackson@ximian.com>
8618
8619         * assembly.c: Trace loading assemblies.
8620         * loader.c: Trace loading native libraries.
8621         * mono-config.c: Trace loading config files.
8622         
8623 2004-06-18  Dick Porter  <dick@ximian.com>
8624
8625         * locales.c: Tell ICU the lengths of strings, it can cope with
8626         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8627
8628 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8629
8630         * image.c: swapped name/filename;
8631
8632 2004-06-18  Martin Baulig  <martin@ximian.com>
8633
8634         * mono-debug-debugger.c (write_class): Write the parent class at
8635         the end of the header.
8636
8637 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8638
8639         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8640
8641 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8642
8643         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8644         (bundle_obj): New conditional define.
8645         (BUILT_SOURCES): Remove.
8646         ($(bundle_srcs)): Make parallel-make safe.
8647         (libmonoruntime_la_LIBADD): Make unconditional.
8648         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8649         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8650
8651 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8652
8653         * culture-info-tables.h: It was inconsistent with the latest
8654           supp info files.
8655
8656 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8657
8658         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8659         be loaded.
8660
8661         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8662         with gcc 2.95.
8663
8664 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8665
8666         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8667         cleaned up public header threads.h.
8668
8669 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8670
8671         * Makefile.am, *.c, *.h: more API cleanups.
8672
8673 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
8674
8675         * Makefile.am: removed monosn from compilation.
8676         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
8677         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
8678         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
8679         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
8680         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
8681         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
8682
8683 2004-06-15  Jackson Harper  <jackson@ximian.com>
8684
8685         * assembly.c: Make locales lower case when searching the GAC for
8686         assemblies. gacutil will always make locales lowercase when
8687         installing so this effectively makes them case insensitive.
8688         
8689 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
8690
8691         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
8692         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
8693           parameter which allows to choose whether the wait can be interrupted or 
8694           not. Also added the method mono_monitor_enter(), which locks the monitor
8695           using an infinite wait and without allowing interruption.
8696           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
8697           interrupted.
8698         * object.h: Added new fields in MonoThread. suspend_event holds the event
8699           used to susped/resume the thread. synch_lock is the lock object to use for
8700           modifying the thread state.
8701         * threads.c: Use the new synch_lock object for locking, instead of "this",
8702           which can generate deadlocks.
8703           Moved thread state change in Thread.Sleep and Thread.Join from managed
8704           to unmanaged code. This avoids a deadlock when the thread was suspended
8705           just after acquiring the thread lock.
8706           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
8707           Implemented Thread.Suspend using an event instead of ThreadSuspend,
8708           which is not fully implemented in the io-layer.
8709         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
8710
8711 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
8712
8713         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
8714         threads-types.h: more API cleanups.
8715
8716 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8717
8718         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
8719         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
8720         threadpool.c, threads.c: first pass at the exported API cleanup.
8721
8722 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
8723
8724         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
8725
8726 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8727
8728         * icall.c: added internalGetHome.
8729
8730 2004-06-14  Dick Porter  <dick@ximian.com>
8731
8732         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
8733         possible to return successfully when '.' or '..' were the only
8734         entries in a directory, but were skipped.  The MonoIOStat was not
8735         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
8736         Fixes bug 59574.
8737
8738 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8739
8740         * reflection.c: make binaries run on .Net 1.1 by default.
8741
8742 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
8743
8744         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
8745
8746 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
8747
8748         * marshal.c: keep track of struct size with explicit layout
8749         (bug #59979).
8750
8751 2004-06-12  Martin Baulig  <martin@ximian.com>
8752
8753         * mono-debug-debugger.c: Comment out a debugging g_message().
8754
8755 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8756
8757         * reflection.c, reflection.h: do not free custom attrs that are cached.
8758         * icall.c: use braces to make code clearer.
8759
8760 2004-06-11  Martin Baulig  <martin@ximian.com>
8761
8762         * class.h (MonoInflatedField): New type.
8763         (MonoClassField): Replaced `MonoType *generic_type' with
8764         `MonoInflatedField *generic_info'.
8765
8766         * icall.c
8767         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
8768
8769 2004-06-11  Martin Baulig  <martin@ximian.com>
8770
8771         * reflection.c (mono_image_create_method_token): Correctly encode
8772         varargs methods.
8773
8774 2004-06-11  Martin Baulig  <martin@ximian.com>
8775
8776         * metadata.c (mono_metadata_parse_method_signature): When parsing
8777         a MethodDef which has VarArgs, also set sentinelpos if we don't
8778         have any parameters.
8779
8780 2004-06-11  Martin Baulig  <martin@ximian.com>
8781
8782         * verify.c (mono_method_verify): In CEE_CALL, use
8783         mono_method_get_signature() to get the method's signature, unless
8784         we're a PInvoke method.
8785
8786 2004-06-10  Jackson Harper  <jackson@ximian.com>
8787
8788         * assembly.c: Use <path>/lib/mono/gac for the extra paths
8789         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
8790         logical name as the supplied path is just a prefix to the gac not
8791         the direct path to it.
8792         
8793 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
8794
8795         * reflection.c: make the token for a created method match
8796         the token of the MethodBuilder it was created from
8797         (IKVM requires this behaviour now).
8798
8799 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
8800
8801         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
8802         reflection.c, socket-io.c: leak fixes.
8803
8804 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
8805
8806         * icall.c: handle sentinel pos in vararg methods in position different
8807         from 0.
8808
8809 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8810
8811         * culture-info-tables.h: freshly generated.
8812
8813 2004-06-09  Martin Baulig  <martin@ximian.com>
8814
8815         * loader.c (mono_get_method_constrained): Call `mono_class_init
8816         (constrained_class)'.   
8817
8818 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
8819
8820         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
8821         any methods. Fixes #59629.
8822
8823 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8824
8825         * culture-info-tables.h: reflecting locale-builder updates.
8826
8827 2004-06-08  Dick Porter  <dick@ximian.com>
8828
8829         * object.h:
8830         * locales.c: Fixed compile warnings, including a real bug in
8831         CompareInfo_internal_compare.
8832         
8833 2004-06-08  Dick Porter  <dick@ximian.com>
8834
8835         * locales.c
8836         (ves_icall_System_Globalization_CompareInfo_internal_index):
8837         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8838         Double-check the resuls of usearches, because ICU currently
8839         ignores most of the collator settings here.  Fixes bug 59720.
8840         
8841 2004-06-08  Dick Porter  <dick@ximian.com>
8842
8843         * locales.c
8844         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8845         Fix memory leak and segfault-causing typo.  No idea how this one
8846         lasted so long without being noticed.
8847
8848 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
8849
8850         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
8851         any methods. Fixes #59629.
8852
8853 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8854
8855         * assembly.c:
8856         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
8857         own the critical section before). Removed dead code (that's done
8858         in the preload hook).
8859
8860         (mono_assembly_load_with_partial_name): call the preload hook.
8861
8862 2004-06-08  Martin Baulig  <martin@ximian.com>
8863
8864         * metadata.c (mono_metadata_signature_alloc): Default
8865         `sentinelpos' to -1.
8866
8867         * reflection.c (mono_image_get_array_token): Likewise.
8868
8869 2004-06-08  Martin Baulig  <martin@ximian.com>
8870
8871         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
8872
8873         * metadata.c (mono_metadata_parse_method_signature): When parsing
8874         a MethodDef which has VarArgs, set sentinelpos.
8875
8876         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
8877         `gint16' since we're using -1 for non-varargs methods.
8878
8879         * reflection.c
8880         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
8881         (method_encode_signature): Added varargs support.
8882         (method_builder_encode_signature): Likewise.
8883         (mono_image_get_varargs_method_token): New static method.
8884         (mono_image_create_method_token): New public method; this is
8885         called via an icall instead of mono_image_create_token() when
8886         calling a varargs method.       
8887
8888 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
8889
8890         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
8891
8892 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8893
8894         * culture-info-tables.h : Reflecting the latest locale-builder that
8895           fixed empty array representation ({} to {0}).
8896
8897 2004-06-07  Jackson Harper  <jackson@ximian.com>
8898
8899         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
8900         looking up extra gac paths. This allows MONO_GAC_PATH to act
8901         exactly like a prefix.
8902         
8903 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8904
8905         * reflection.c (mono_reflection_type_from_name): Make a copy of the
8906         type name before modifying it. Fixes #59405.
8907
8908 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8909
8910         * culture-info.h: added fields for "all datetime patterns".
8911         * locales.c: (  ves_icall_System_Globalization_CultureInfo
8912           _construct_datetime_format ()): fill xxx_patterns fields.
8913         * object.h: added fields for "all datetime patterns" to
8914           MonoDateTimeFormatInfo.
8915         * culture-info-tables.h: reflecting locale-builder updates.
8916
8917 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8918
8919         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
8920         the event has no add and remove methods. Fixes #59629.
8921
8922 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
8923
8924         * object.c: Fixed possible integer overflow when allocating large
8925         strings.
8926
8927 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8928
8929         * culture-info-tables.h: reflecting locale-builder updates.
8930
8931 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8932
8933         * culture-info-tables.h: reflecting locale-builder updates.
8934
8935 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
8936
8937         * culture-info-tables.h: reflecting locale-builder updates.
8938
8939 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
8940
8941         * threads.c: Made Thread.Sleep abortable.
8942
8943 2004-06-02  Martin Baulig  <martin@ximian.com>
8944
8945         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
8946
8947         * debug-mono-symfile.h: Bumped symbol file version number to 37.
8948
8949 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
8950
8951         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
8952
8953 2004-05-30  Jackson Harper  <jackson@ximian.com>
8954
8955         * reflection.c: Do not hardcode assembly versions or public key
8956         tokens anymore. All of this except the corlib section was dead
8957         code anyways.
8958         
8959 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
8960
8961         * object.c (mono_runtime_invoke_array): Automatically create boxed
8962         objects for byref valuetypes if needed. Fixes #59300.
8963         
8964         * object.c (mono_method_return_message_restore): Handle 
8965         MONO_TYPE_OBJECT as well.
8966
8967 2004-05-28  Jackson Harper  <jackson@ximian.com>
8968
8969         * reflection.c: The modified type encoding was causing build
8970         problems. Reverted for now.
8971         
8972 2004-05-28  Jackson Harper  <jackson@ximian.com>
8973
8974         * reflection.c/h: Take an assembly ref so that we dont create
8975         fully qualified names when encoding types in the same assembly as
8976         the custom attribute being emitted.
8977         * appdomain.c: Increment version number.
8978         
8979 2004-05-26  Duncan Mak  <duncan@ximian.com>
8980
8981         * icall.c
8982         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
8983         Set the full version number (major, minor, build, revision).
8984
8985 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
8986
8987         * marshal.c (emit_struct_conv): increment src/dst after blit
8988         (mono_marshal_get_managed_wrapper,
8989         mono_marshal_get_native_wrapper): make sure we have marshalling
8990         info before marshalling params (info computation affects
8991         blittable)
8992
8993         * class.c (class_compute_field_layout): correctly deal with
8994         blittable
8995         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
8996         value types (as per what windows dows by default)
8997         (mono_class_setup_mono_type): System.ValueType is blittable
8998         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
8999         blittable
9000
9001         * marshal.c (mono_marshal_load_type_info): flag types  as
9002         non-blittable if the native layout doesn't match the managed
9003         layout
9004
9005 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9006
9007         * appdomain.c: don't add stuff in the private search path that is
9008         above the application base. If application base is not set, there's
9009         no private search path.
9010
9011 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
9012
9013         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
9014         byref struct arguments in native->managed marshalling.
9015
9016 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
9017
9018         * marshal.c (mono_marshal_get_runtime_invoke): correctly
9019         cache methods using signature (special case for methods
9020         that are value type or string class)
9021         
9022         * image.c (mono_image_close): clean up allocated GSList's
9023         in runtime_invoke_cache.
9024
9025 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9026
9027         * mono-config.c: set the correct path for mono_cfg_dir on windows when
9028         there's no MONO_CFG_DIR environment variable defined.
9029
9030 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9031
9032         * threads.c: windows version must be >= 0x0500 to include OpenThread.
9033
9034 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
9035
9036         * threadpool.c: Really wait for 500ms after the async call, even if the wait
9037           is interrumped.
9038         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
9039           before waiting for it, and call CloseHandle after the wait to unref it.
9040           This will make sure that handles are not disposed too early.
9041
9042 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9043
9044         * appdomain.c:
9045         * appdomain.h:
9046         * icall.c: removed
9047         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
9048         needed now.
9049
9050         * object.c: se the application_base only for the domain that runs
9051         Main. Fixes bug #59216,
9052
9053 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9054
9055         * appdomain.c:
9056         * object.c: only the domain in which Main is run have
9057         SetupInformation.ConfigurationFile set, so moved a few lines from
9058         appdomain.c to object.c.
9059
9060 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9061
9062         * appdomain.c: we tried to load [name].(dll|exe), but according
9063         to bug #57710, we must also try [culture]/[name].(dll|exe) and
9064         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
9065         There's a test case attached to bug #58922.
9066
9067 2004-05-27  Dick Porter  <dick@ximian.com>
9068
9069         * icall.c:
9070         * file-io.c: Implemented icalls for locking and unlocking regions
9071         in a file.
9072         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
9073         FALSE on error (fixes both compiler warning and real bug.)
9074
9075 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
9076
9077         * culture-info-tables.h: reflecting locale-builder updates.
9078
9079           (Added missing ChangeLog entry for 05/26)
9080
9081 2004-05-27  Jackson Harper  <jackson@ximian.com>
9082
9083         * locales.c: Fix some cut and paste errors.
9084         
9085 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9086
9087         * mono-config.c: set the correct path for config. directory on windows.
9088
9089 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9090
9091         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
9092           on win32.
9093
9094 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9095
9096         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
9097         from pinvoke functions.
9098         
9099         * marshal.c (mono_ftnptr_to_delegate): Implement this.
9100
9101 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9102
9103         * culture-info-tables.h: reflecting locale-builder updates.
9104
9105 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9106
9107         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
9108         #59086.
9109
9110 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
9111
9112         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
9113         * icall.c: Modified icalls for RNG.
9114         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
9115         Windows (CryptoAPI).
9116
9117 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9118
9119         * locales.c: Fix build.
9120
9121 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9122
9123         * culture-info-tables.h: reflecting locale-builder updates.
9124
9125 2004-05-25  Jackson Harper  <jackson@ximian.com>
9126
9127         * locales.c: When creating the current culture use the $LANGs
9128         specific culture. So DateTimeFormat and NumberFormat entries are created.
9129         
9130 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9131
9132         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
9133         a char array as parameter.
9134
9135 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
9136
9137         * image.c: In mono_image_open(), always use an absolute path name to
9138           look for already loaded images.
9139
9140 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
9141
9142         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
9143         missing in the windows build (like older cygwin include files).
9144
9145 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
9146
9147         * icall.c: Fixed check for possible integer overflow in Buffer_
9148         BlockCopy icall. Replaced comments style // by /* */.
9149
9150 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
9151
9152         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
9153         
9154         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
9155         check after MONO_VTADDR. Fixes pinvoke2.exe.
9156
9157         * marshal.h marshal.c metadata.h: Add beginnings of support for
9158         ftnptr -> delegate marshalling.
9159
9160 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
9161
9162         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
9163         * threads.c: Fix warnings.
9164
9165 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
9166
9167         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
9168         * icall.c: Registered icalls for Suspend and Resume.
9169         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
9170           Thread.Abort.
9171         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
9172         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
9173         * process.c: Use WaitForSingleObjectEx.
9174         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
9175           checkpoints.
9176         * threads.c, threads.h: Make use of new Ex wait methods. Improved
9177           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
9178           for Suspend and Resume. Added new mono_thread_stop, used for stoping
9179           background threads. Added basic support for Abort in Windows.
9180           Start new threads using a managed delegate invoke wrapper. This wrapper
9181           has an interruption checkpoint that is needed since an interruption
9182           can be requested before the thread leaves the unmanaged code that starts 
9183           the thread.
9184         * marshal.c: Added interruption checkpoint after every native call, and
9185           also before managed calls for wrappers called from unmanaged code to
9186           go into managed code.
9187         * object.h: Added new field in MonoThread to keep track of interruption
9188           requests.
9189
9190 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
9191
9192         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
9193         calls.
9194
9195 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9196
9197         * appdomain.c:
9198         * assembly.c:
9199         * gc.c:
9200         * locales.c:
9201         * mono-config.c:
9202         * rand.c: getenv -> g_getenv (windows!)
9203
9204         * process.c: complete_path is also used on non-windows platforms.
9205
9206 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9207
9208         * icall.c: new signature for Process_Start.
9209
9210         * process.[ch]: new signature for Process_Start. If we're on windows
9211         and UseShellExecute is false, we have to search for the program by
9212         ourselves if we don't get a full path.
9213
9214 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
9215
9216         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
9217         marshalling and call CleanUpNativeData if needed. Fixes #58646.
9218
9219 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9220
9221         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
9222         Fixes bug #58373.
9223
9224 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9225
9226         * process.c: use double quotes to quote program name and arguments on
9227         windows. Fixes bug #58575.
9228
9229 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9230
9231         * file-io.c: don't return "." and ".." when using windows Find*File.
9232
9233 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
9234
9235         * marshal.c: Don't pass wrappers to message init because method 
9236         addressed used to lookup metadata. part of remoting[2|3] fix.
9237
9238 2004-05-15  Jackson Harper  <jackson@ximian.com>
9239
9240         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
9241         path is essentially the same as MONO_PATH except that it points to
9242         GACs instead of lib directories.
9243         * loader.h: The user gac is gone so we dont need function to
9244         enable/disable it.
9245         * mono-config.c: user gac option is now gone.
9246         
9247 2004-05-15  Jackson Harper  <jackson@ximian.com>
9248
9249         * culture-info.h: Make defines more consistent, add calendar data
9250         to the culture info table.
9251         * culture-info-tables.h: Add basic calendar data. Basically
9252         everyone gets default gregorian until all the data is
9253         updated.
9254         * locales.c: Use the new consistent defines. Set calendar data for
9255         culture info objects.
9256         * object.h: add a field for calendar data to CultureInfo
9257         
9258 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
9259
9260         * image.c: image->runtime_invoke_cache is keyed on signatures now.
9261         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
9262         a signature.
9263         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
9264         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
9265         an extra param that is the pointer of the method to invoke. The IL for
9266         the invoke method is no longer specific to the method, but to the
9267         signature of the method. Thus, we can share the same code for multiple
9268         methods. This reduces the number of methods that have to be compiled.
9269
9270 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
9271
9272         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
9273
9274         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9275
9276         * icall.c: Optimize Buffer.BlockCopy.
9277
9278 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9279
9280         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
9281         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
9282         quote). Changed them to "MMMM yyyy".
9283
9284 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
9285
9286         * rand.c
9287         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
9288
9289 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
9290
9291         * reflection.h: Updated after changes to managed structures.
9292
9293         * appdomain.c: Bump corlib version.
9294
9295 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9296
9297         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
9298         windows.
9299
9300 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9301
9302         * Makefile.am: link to ../os/libmonoos.la on windows.
9303
9304         * assembly.c:
9305                 -If MONO_DEBUG, warn about non-existing directories in
9306                 MONO_PATH.
9307                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
9308                 compile time variable.
9309                 -Removed init_default_path and call mono_set_rootdir from
9310                 libmonoos.a instead (windows only).
9311
9312         * assembly.h: declare mono_assembly_getrootdir().
9313
9314         * domain.c:
9315         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
9316
9317         * loader.c: s/getenv/g_getenv/
9318
9319 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
9320
9321         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
9322
9323         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
9324
9325         * metadata.h: Add new marshalling conversions.
9326
9327         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
9328         function.
9329
9330         * reflection.c (mono_reflection_get_type): Lookup the type in all
9331         modules of a multi-module assembly. Fixes #58291.
9332
9333 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
9334
9335         * threads.c: Before aborting a background, set the StopRequested
9336         state.  This avoids throwing the Abort exception.
9337         In mono_thread_manage, don't continue with the shutdown until all
9338         aborted threads have actually stopped.
9339
9340 2004-05-10  Jackson Harper  <jackson@ximian.com>
9341
9342         * locales.c: Remove the modifier from culture names.
9343         
9344 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9345
9346         * Makefile.am: monosn is not installed any more. It has been deprecated
9347         in favor of sn.
9348
9349 2004-05-07  Jackson Harper  <jackson@ximian.com>
9350
9351         * locales.c
9352         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
9353         Fix array construction, add bailout if the length is 0.
9354
9355 2004-05-07  Dick Porter  <dick@ximian.com>
9356
9357         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
9358         machine doesn't have a DNS entry.  Patch by Urs Muff
9359         (umuff@quark.com), fixes bug 57928.
9360
9361 2004-05-06  Jackson Harper  <jackson@ximian.com>
9362
9363         * reflection.c: Handle null PublicTokens properly. alloc mem for
9364         assembly names culture so we dont crash when freeing it.
9365         
9366 2004-05-06  Jackson Harper  <jackson@ximian.com>
9367
9368         * assembly.c: Check the usergac when loading with partial names.
9369         
9370 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9371
9372         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
9373         does nothing for now (not required for Linux/Windows) but the class
9374         library can call it (and a newer or modified runtime could need it).
9375         * icall.c: Registred icall.
9376
9377 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9378
9379         * loader.c: prints a message on module loading error we set MONO_DEBUG
9380         environment variable.
9381
9382 2004-05-05  Jackson Harper  <jackson@ximian.com>
9383
9384         * appdomain.c: Handle PublicKeyToken=null properly.
9385         
9386 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9387
9388         * environment.c|h: Added icall ves_icall_System_Environment_
9389         GetOSVersionString to get the current OS version as a string.
9390         * icall.c: Registred icall.
9391
9392 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
9393
9394         * object.c: in mono_object_get_virtual_method(), take into account that
9395         non-virtual methods don't have a slot in the vtable. Check needed when
9396         the object is a proxy.
9397
9398 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
9399
9400         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
9401         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
9402
9403         * object.c (mono_class_compute_gc_descriptor): Fix warning.
9404
9405         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
9406         passed when a valuetype is expected.
9407
9408         * object.c (mono_unhandled_exception): Only set the exit code if the
9409         exception happens in the main thread. Fixes thread5.exe.
9410
9411         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
9412         invalid names. Fixes #58047.
9413
9414 2004-05-03  Jackson Harper  <jackson@ximian.com>
9415
9416         * assembly.c: This line was committed accidently and is unneeded.
9417         
9418 2004-05-03  Jackson Harper  <jackson@ximian.com>
9419
9420         * icall.c: Add new icall for Assembly::LoadWithPartialName
9421         * assembly.c/.h: new function that probes the GAC to load partial
9422         assembly names by Paolo Molaro.
9423         
9424 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9425
9426         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
9427         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
9428         (type_get_fully_qualified_name): Added PublicKeyToken when building a
9429         full type name.
9430
9431 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9432
9433         * appdomain.c: fixed check for 'neutral' culture and removed warning.
9434         * reflection.c: fix bug when parsing a full type name and Version is not
9435         the last thing in the string.
9436
9437 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
9438
9439         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
9440         crashes when it is freed.
9441
9442 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9443
9444         * assembly.c: print the compat warning to stderr.
9445
9446 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
9447
9448         * assembly.c (mono_assembly_load_references): Add a compatibility
9449         hack to run old applications that might be still referencing the
9450         3300-based assemblies, only do this for System.xxx.
9451
9452 2004-05-01  Jackson Harper  <jackson@ximian.com>
9453
9454         * appdomain.c: If the culture is neutral we set it to "".
9455         
9456 2004-04-29  Jackson Harper  <jackson@ximian.com>
9457
9458         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
9459
9460 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
9461  
9462         * string-icalls.c: added low overhead function for copying chars
9463         * icall.c: added needed icall for the above function
9464  
9465 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9466
9467         * icall.c: fix return value of get_global_assembly_cache.  Implemented
9468         Environment.GetLogicalDrives.
9469
9470 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
9471
9472         * rand.c: try and talk to egd or prngd
9473         for random bytes if opening devices fail.
9474
9475 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
9476
9477         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
9478         alignment for the type using the native alignment of its members 
9479         instead of using klass->min_align.
9480
9481         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
9482
9483 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9484
9485         * file-io.c:
9486         * socket-io.c: added check for sys/aio.h.
9487
9488 2004-04-28  Dick Porter  <dick@ximian.com>
9489
9490         * threads.c: Don't abort a thread thats already aborting, when
9491         terminating everything.
9492
9493 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9494
9495         * icall.c: added 2 new async calls for Socket.
9496
9497         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9498         IO on *nix systems.
9499
9500         * threadpool.c: removed unused variable.
9501
9502 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9503
9504         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9505
9506 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9507
9508         * locales.c: put back string_invariant_tolower () and
9509         string_invariant_toupper ().
9510
9511 2004-04-26 David Waite <mass@akuma.org>
9512
9513         * file-io.h:
9514         * socket-io.h:
9515         * threads.h:
9516         * unicode.h: remove comma from end of enumeration declarations
9517
9518 2004-04-26 David Waite <mass@akuma.org>
9519
9520         * debug-mono-symfile.h:
9521         * decimal.c:
9522         * mono_debug.h:
9523         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9524
9525
9526 2004-04-26  Jackson Harper  <jackson@ximian.com>
9527
9528         * appdomain.c: Increment version number.
9529         
9530 2004-04-26  Jackson Harper  <jackson@ximian.com>
9531
9532         * appdomain.c: Set assembly references public token value when
9533         PublicKeyToken is specified, not the hash_value. Free public token
9534         values when free assembly name data. Previously the public key
9535         token was hex decoded, however we are using hex encoded public key
9536         tokens, so this is not neccasary.
9537         * assembly.c: Lookup assemblies in the gac if their public token
9538         value is set. Add function to allow enabling user gac
9539         lookups. Specify whether or not the assembly was loaded from the
9540         GAC. Compare full assembly names when checking the cache for
9541         assemblies (Temporarily disabled see comment in code). Remove
9542         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9543         specifies trace-loader they get extra info to stdout on the
9544         loading of assemblies.
9545         * image.h: Add a field for an assembly references public token
9546         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9547         whether an assembly has been loaded from the GAC.
9548         * image.c: Remove a corlib -> mscorlib name mapping.
9549         * loader.h: Add function to enable/disable the user gac.
9550         * mono-config.c: Check if the usergac is enabled in the config
9551         file.
9552         * icall.c: New icall to determine whether or not an assembly has
9553         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9554         * tabldefs.h: Add constant for assemblyref flag that specifies a
9555         full public key is used instead of a public token.
9556         * reflection.c: Remove mscorlib -> corlib mappings. Set
9557         PublicTokenValue instead of hash value. This value is a hex
9558         string so it does not need to be expanded.
9559
9560 2004-04-26  Martin Baulig  <martin@ximian.com>
9561
9562         * mono-debug-debugger.c (mono_debugger_initialize): Set
9563         `mono_debugger_initialized' before calling mono_debug_lock().
9564
9565 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9566
9567         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9568           InternalToUpper/InternalToLower.
9569         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9570           removed invariant culture shortcut.  This is now done in managed code.
9571         * locales.c: (string_invariant_toupper/tolower) removed.
9572
9573 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9574
9575         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9576         Added Poll internal call.
9577
9578         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9579         call for Poll. Select was too heavy for polling a single socket.
9580
9581         * threadpool.[ch]: added mono_threadpool_cleanup.
9582         * threads.c: use it. Don't use Thread_Abort on windows.
9583
9584 2004-04-23  Martin Baulig  <martin@ximian.com>
9585
9586         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9587
9588 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9589
9590         * icall.c: Registred new icalls for key pair protection and added an
9591         icall for Environment.GetFolderPath on Windows.
9592         * security.c|h: Added new icalls for key pair protection.
9593
9594 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9595
9596         * socket-io.c: don't display the non-supported family warning for known
9597         families. Now this is not displayed on windows when checking support
9598         for IPv4/IPv6.
9599
9600 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9601
9602         * class.c: don't display the layout warning for static fields.
9603
9604 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9605
9606         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9607         * locales.c, locales.h: Added new icalls for culture-specific
9608         Char.ToLower and Char.ToUpper.
9609
9610 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9611
9612         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9613         by David Waite.
9614
9615 2004-04-20  Martin Baulig  <martin@ximian.com>
9616
9617         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9618         of the type name before passing it to mono_reflection_type_from_name().
9619
9620 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9621
9622         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9623         encodings here. Fixes #56965.
9624
9625 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9626
9627         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9628         fix test on strstr result not that I can see anything that
9629         relies on the result.
9630
9631 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9632
9633         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9634         Fixes #57081.
9635
9636         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9637
9638         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9639         function to determine which marshalling to use for strings. Fixes
9640         #56965.
9641
9642         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9643
9644         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9645
9646 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9647
9648         * icall.c: #include mono-config.h
9649
9650 2004-04-15  Jackson Harper  <jackson@ximian.com>
9651
9652         * culture-info-tables.h: Fix date formats for en-US culture.
9653         
9654 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9655
9656         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9657         ThreadPool.SetMinThreads.
9658         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9659         ThreadPool.SetMinThreads.
9660
9661 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9662
9663         * mono-config.c: also load the .config file in the directory
9664         where the assembly was found.
9665
9666 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9667
9668         * assembly.c: load per-assembly config files.
9669         * icall.c: decrapified code to get the config dir and moved to
9670         mono-config.c.
9671         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
9672         per-assembly config files. When doing a dll map lookup give precedence
9673         to the per-assembly data.
9674
9675 2004-04-14  Martin Baulig  <martin@ximian.com>
9676
9677         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
9678         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
9679         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
9680
9681         * mono-debugger-debugger.c: While the debugger is locked, remember
9682         whether the symbol tables have changes and send one single
9683         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
9684
9685 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
9686
9687         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
9688
9689         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
9690         function.
9691
9692         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
9693         account when marshalling string arrays. Fixes #56965.
9694
9695 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
9696
9697         * icall.c: Add new icalls mapping for security.
9698         * security.c|h: Add internal calls for WindowsIdentity,
9699         WindowsImpersonationContext and WindowsPrincipal.
9700
9701 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
9702
9703         * class.c: Added comment to ensure the System.MonoDummy class
9704         is removed when no longer necessary
9705
9706 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
9707
9708         * appdomain.c: Pass arguments to the bootstraping exceptions to
9709         minimize JITed methods at boot
9710
9711         * metadata.c (mono_exception_from_name_two_strings): Allow for the
9712         second string to be null.
9713
9714         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9715         Change the protocol to minimize the JIT methods at startup.  Now
9716         it Returns the internal codepage, if the value of "int_code_page"
9717         is 1 at entry, and we can not compute a suitable code page
9718         number, returns the code page as a string.
9719
9720 2004-04-13  Jackson Harper  <jackson@ximian.com>
9721
9722         * culture-info-tables.h: Fix number of decimal digits for all
9723         english locales.
9724
9725 2004-04-13  Jackson Harper  <jackson@ximian.com>
9726
9727         * icall.c: Clairfy out of sync error message. It is not always
9728         your corlib that is out of sync.
9729
9730 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
9731
9732         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
9733         properties when only the set accessor is overriden. Fixes #55874.
9734
9735 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
9736
9737         * assembly.c (mono_assembly_load_references): Make this thread safe.
9738         Fixes #56327.
9739
9740 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
9741
9742         * monosn.c: Add missing initialization calls.
9743
9744 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
9745
9746         * locales.c:
9747         ves_icall_System_Globalization_CultureInfo_construct_number_format
9748         Fix g_assert so it compiles on fussier compilers re int/ptr
9749         mismatch
9750
9751 2004-04-08  Dick Porter  <dick@ximian.com>
9752
9753         * socket-io.h:
9754         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
9755         53992.  Also rearrange the code so that the internal calls return
9756         an error value and exceptions are thrown from managed code.
9757
9758         * icall.c: Add type info to the socket icalls.
9759
9760 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9761
9762         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
9763         owes me a beer.
9764
9765 2004-04-07  Martin Baulig  <martin@ximian.com>
9766
9767         * class.c (mono_class_from_generic_parameter): Don't default
9768         `klass->parent' to `mono_defaults.object_type'.
9769
9770 2004-04-07  Martin Baulig  <martin@ximian.com>
9771
9772         * reflection.c (mono_reflection_initialize_generic_parameter): Set
9773         `param->pklass->reflection_info'.       
9774
9775 2004-04-07  Jackson Harper  <jackson@ximian.com>
9776
9777         * culture-info-tables.h: Fix date separator symbol.
9778         
9779 2004-04-07  Martin Baulig  <martin@ximian.com>
9780
9781         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
9782         from System.Type to System.MonoType.
9783
9784 2004-04-07  Martin Baulig  <martin@ximian.com>
9785
9786         * reflection.h
9787         (MonoReflectionGenericParam): Added `has_reference_type' and
9788         `has_value_type' fields.
9789
9790         * reflection.c (mono_image_get_generic_param_info): Encode the
9791         correct flags if we have the `class' or `struct' constraint.
9792
9793 2004-04-07  Martin Baulig  <martin@ximian.com>
9794
9795         * reflection.h
9796         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
9797
9798 2004-04-07  Jackson Harper  <jackson@ximian.com>
9799
9800         * appdomain.c: Revert extra patches, just wanted to bump the
9801         version number.
9802         
9803 2004-04-07  Jackson Harper  <jackson@ximian.com>
9804
9805         * Makefile.am: Add culture-info private headers.
9806         * icall.c: Add new icalls for contructing locales.
9807         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
9808         * locales.h: Declare new culture info construction methods.
9809         * object.h: Add new fields used to avoid the CultureMap to
9810         MonoCultureInfo.
9811         * culture-info.h: Definition of structs used in the culture info
9812         tables.
9813         * culture-info-tables.h: Autogenerated tables that contain culture
9814         info data. This file was generated with the locale-builder tool.
9815         * appdomain.c: Incement corlib version number.
9816         
9817 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
9818
9819         * appdomain.c: (mono_runtime_init) move mono_thread_init
9820         to before mono_object_new calls so critical sections
9821         are initialized before use.
9822
9823 2004-04-07  Martin Baulig  <martin@ximian.com>
9824
9825         * icall.c
9826         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
9827         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
9828         (ves_icall_MonoGenericParam_initialize): Removed.
9829         (monogenericparam_icalls): Removed.
9830         (generictypeparambuilder_icalls): Added new table for
9831         System.Reflection.Emit.GenericTypeParameterBuilder.
9832
9833         * reflection.c
9834         (mono_reflection_define_generic_parameter): Removed.
9835         (mono_reflection_initialize_generic_parameter): This is now called
9836         from GenericTypeParameterBuilder's .ctor.
9837
9838 2004-04-06  Martin Baulig  <martin@ximian.com>
9839
9840         * class.c (mono_class_init): Don't inflate nested classes in a
9841         generic instance.
9842         (mono_type_get_name_recurse): Include the generic arguments for
9843         generic instances and generic type declarations.
9844         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
9845         (_mono_class_get_instantiation_name): Removed.
9846         (mono_class_create_generic): Always use `gklass->name' as our name.
9847
9848         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
9849
9850         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
9851         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
9852         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
9853         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
9854         closed generic methods here.
9855
9856         * reflection.c
9857         (mono_reflection_generic_inst_get_nested_types): Removed.
9858         (inflate_mono_method): Copy the generic parameters from the
9859         MonoMethodHeader into out MonoGenericMethod.
9860
9861 2004-04-06  Martin Baulig  <martin@ximian.com>
9862
9863         * row-indexes.h
9864         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
9865
9866         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
9867
9868         * reflection.c (build_compressed_metadata): If we have any entries
9869         in the GenericParam, MethodSpec or GenericParamConstraint tables,
9870         set the header version to 1.1.
9871
9872 2004-04-06  Martin Baulig  <martin@ximian.com>
9873
9874         * class.c (mono_class_init): If we're a generic instance,
9875         initialize our nested classes, too.
9876         (_mono_class_get_instantiation_name): Deal with the new `!%d'
9877         suffix. 
9878
9879 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9880
9881         * process.c: quote the argument passed to the shell on windows.
9882
9883 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
9884
9885         * threads.c (mono_alloc_special_static_data): Allow this to be
9886         called during startup.
9887
9888 2004-04-02  Martin Baulig  <martin@ximian.com>
9889
9890         * icall.c
9891         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
9892
9893 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
9894
9895         * icall.c: Fix build.
9896
9897 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
9898
9899         * Makefile.am: Added security.c|h.
9900         * icall.c: Added icall for get_UserName;
9901         * security.c: New file for security related icalls. Added function
9902         get_UserName for System.Environment (fix #56144).
9903         * security.h: New. Header file for security.c
9904
9905 2004-04-02  Dick Porter  <dick@ximian.com>
9906
9907         * icall.c: Deleted the icalls that were obsoleted some time ago
9908         by the ICU string code, and which were mixed into the icall
9909         rearranging.  Fixes bug 55969.
9910
9911         * string-icalls.h: 
9912         * string-icalls.c: Deleted the code that those icalls reference.
9913
9914 2004-04-01  Martin Baulig  <martin@ximian.com>
9915
9916         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
9917
9918         * class.c (mono_class_from_generic_parameter): Don't set 
9919         TYPE_ATTRIBUTE_INTERFACE.
9920         (my_mono_class_from_generic_parameter): Likewise.
9921
9922 2004-04-01  Martin Baulig  <martin@ximian.com>
9923
9924         * loader.c (find_method): Added an optional `MonoClass *ic'
9925         argument to search in a specific interface.
9926         (mono_get_method_constrained): New public function.
9927
9928 2004-04-01  Martin Baulig  <martin@ximian.com>
9929
9930         * reflection.c (mono_image_get_generic_field_token): Use the
9931         `handleref' cache here.
9932
9933 2004-04-01  Martin Baulig  <martin@ximian.com>
9934
9935         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
9936
9937         * reflection.c (create_generic_typespec): Use the `typespec' hash
9938         here, not the `typeref' one.    
9939
9940 2004-04-01  Martin Baulig  <martin@ximian.com>
9941
9942         * class.c (mono_class_inflate_generic_type): Moved the
9943         functionality into a new static inflate_generic_type() which
9944         returns NULL if it didn't do anything.  Only increment the
9945         `mono_stats.inflated_type_count' if we actually inflated
9946         something.
9947         (mono_class_get_full): Check the classes type to see whether we
9948         need to inflate it; also inflate MONO_TYPE_(M)VAR.
9949
9950 2004-04-01  Jackson Harper  <jackson@ximian.com>
9951
9952         * reflection.c: Set culture for assembly references.
9953         
9954 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
9955
9956         * reflection.[ch], icall.[ch], Fix support for pinning variables.
9957
9958 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9959
9960         * assembly.c:
9961         (do_mono_assembly_open): the critical section also covers
9962         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
9963
9964 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9965
9966         * threads.c:
9967         (mono_manage_threads): abort the background threads when finishing.
9968         Fixes bug #47232.
9969
9970 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9971
9972         * gc.c: only close the done_event handle if there was no timeout.
9973         C-ified comments.
9974
9975 2004-03-30  Martin Baulig  <martin@ximian.com>
9976
9977         * icall.c (icall_entries): It's called "System.Activator", not
9978         "System.Activation".    
9979
9980 2004-03-30  Martin Baulig  <martin@ximian.com>
9981
9982         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
9983         (mono_class_create_from_typespec): Likewise.
9984
9985 2004-03-30  Martin Baulig  <martin@ximian.com>
9986
9987         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
9988         `has_ctor_constraint' and `initialized'.
9989
9990 2004-03-30  Martin Baulig  <martin@ximian.com>
9991
9992         * reflection.c (encode_new_constraint): New static function to add
9993         the constructor constraint attribute to a type parameter.
9994         (encode_constraints): Call encode_new_constraint() if necessary.
9995
9996         * reflection.h
9997         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
9998
9999         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
10000         
10001 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
10002
10003         * reflection.c, icall.c: add support for pinning variables. 
10004
10005 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
10006
10007         * marshal.c (mono_marshal_get_managed_wrapper):
10008         init bool local with zero rather than null.
10009
10010 2004-03-29  Martin Baulig  <martin@ximian.com>
10011
10012         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
10013         the "official" behavior here.
10014         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
10015
10016 2004-03-29  Martin Baulig  <martin@ximian.com>
10017
10018         * icall.c: Reflect latest API changes.
10019
10020 2004-03-29  Martin Baulig  <martin@ximian.com>
10021
10022         * loader.c (mono_get_method_from_token): Also call
10023         mono_metadata_load_generic_params () for abstract and interface
10024         methods; replace the type arguments in the method signature with
10025         the ones which are loaded from the metadata.
10026
10027 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
10028
10029         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
10030         of the lock is not the current thread. MS.NET don't do it, in spite of
10031         what the documentation says. See bug #56157.
10032
10033 2004-03-28  Martin Baulig  <martin@ximian.com>
10034
10035         * class.c (mono_class_init): Don't call init_properties() and
10036         init_events() for generic instances; set `prop->parent' when
10037         inflating properties.
10038
10039         * reflection.c (mono_generic_inst_get_object): Call
10040         `mono_class_init (ginst->klass)'.
10041         (mono_type_get_object): Only create a MonoGenericInst if your
10042         generic type is a TypeBuilder.
10043         (do_mono_reflection_bind_generic_parameters): Only set
10044         `ginst->is_dynamic' if our generic type is a TypeBuilder.
10045
10046 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
10047
10048         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
10049         Fixes #56091.
10050
10051 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10052
10053         * icall.c: added Kill_internal icall.
10054         * process.[ch]: added Kill_internal icall.
10055
10056 2004-03-25  Martin Baulig  <martin@ximian.com>
10057
10058         * class.h (MonoStats): Added `generic_instance_count',
10059         `inflated_method_count', `inflated_type_count' and
10060         `generics_metadata_size'.       
10061
10062 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10063
10064         * reflection.c: no warnings now.
10065
10066 2004-03-25  Martin Baulig  <martin@ximian.com>
10067
10068         * class.c (mono_class_get_full): New public function; does a
10069         mono_class_get(), but also takes a `MonoGenericContext *'.
10070
10071         * loader.c (mono_field_from_memberref): Renamed to
10072         `field_from_memberref', made static and added `MonoGenericContext *'
10073         argument.
10074         (mono_field_from_token): Added `MonoGenericInst *' argument.
10075         (method_from_memberef): Likewise.
10076         (mono_get_method_from_token): Likewise.
10077         (mono_get_method_full): New public function; does a
10078         mono_get_method(), but also takes a `MonoGenericContext *'.
10079
10080         * verify.c (mono_method_verify): Get the method's generic context
10081         and pass it to mono_field_from_token(), mono_get_method_full() and
10082         mono_class_get_full().
10083
10084 2004-03-25  Martin Baulig  <martin@ximian.com>
10085
10086         * class.c (mono_class_inflate_generic_type): Take a
10087         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
10088         `MonoGenericMethod *'.
10089
10090 2004-03-25  Martin Baulig  <martin@ximian.com>
10091
10092         * loader.h (MonoMethodInflated): Store the MonoGenericContext
10093         instead of the MonoGenericMethod here.
10094
10095 2004-03-25  Martin Baulig  <martin@ximian.com>
10096
10097         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
10098         each time we create a new MonoGenericInst, we also create a new
10099         context which points back to us.
10100
10101         * class.c (inflate_method): Use `ginst->context' instead of
10102         creating a new context.
10103
10104         * loader.c (method_from_memberref): Use
10105         `klass->generic_inst->context' instead of creating a new context.
10106
10107 2004-03-25  Martin Baulig  <martin@ximian.com>
10108
10109         * class.h (MonoGenericContext): New struct.
10110         (MonoGenericMethod): Removed `generic_inst'.
10111
10112         * class.c (mono_class_inflate_generic_method): Take a
10113         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
10114
10115 2004-03-25  Martin Baulig  <martin@ximian.com>
10116
10117         * loader.h (MonoMethodInflated): New typedef.
10118
10119         * metadata.h (MonoMethodSignature): Removed `gen_method', make
10120         `generic_param_count' consume just 30 bits, added `is_inflated'
10121         and `has_type_parameters' flags (one bit each).
10122
10123         * class.c (mono_class_inflate_generic_method): Create a
10124         MonoMethodInflated instead of a MonoMethodNormal and set
10125         `is_inflated' in the method signature.
10126
10127         * class.h (MonoGenericMethod): Removed `generic_method'.
10128
10129 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
10130
10131         * image.c: Make sure the name of a MonoImage is always an absolute path.
10132           This fixes bug #54415.
10133
10134 2004-03-24  Martin Baulig  <martin@ximian.com>
10135
10136         * class.c (mono_class_setup_vtable): If we're a generic instance,
10137         use our generic type's vtable size.
10138
10139 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
10140
10141         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
10142         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
10143         problems.
10144
10145 2004-03-23  Martin Baulig  <martin@ximian.com>
10146
10147         * class.h (MonoDynamicGenericInst): Added `int count_events' and
10148         `MonoEvent *events'.
10149
10150         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
10151         (typebuilder_icalls): Added "get_event_info"; calls
10152         mono_reflection_event_builder_get_event_info(). 
10153
10154         * reflection.c (mono_reflection_generic_inst_initialize): Added
10155         `MonoArray *events'.
10156         (mono_reflection_event_builder_get_event_info): New function.
10157
10158 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
10159
10160         * object.h: add mono_type_initialization_init
10161
10162         * object.c (mono_runtime_class_init): 
10163         implement class constructor synchronization rules
10164         to cope with threading issues.  
10165         add mono_type_initialization_init
10166
10167         * appdomain.c (mono_runtime_init): call 
10168         mono_type_initialization_init
10169
10170         * class.h: removing initializing field from MonoVTable
10171
10172 2004-03-23  Martin Baulig  <martin@ximian.com>
10173
10174         * class.c (my_mono_class_from_generic_parameter): Use
10175         `param->name' if it's not NULL. 
10176
10177 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
10178
10179         * class.c: do not insert non-virtual methods in the vtable.
10180         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
10181         that means the method is non-virtual. This never would have
10182         happened before.
10183
10184 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
10185
10186         * profiler.c: Added lock for accessing coverage_hash.
10187
10188 2004-03-22  Martin Baulig  <martin@ximian.com>
10189
10190         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
10191         `method->method->signature->generic_param_count != 0' to make it
10192         work for interface methods.
10193
10194 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10195
10196         * process.c: quote the string passed to the shell using g_shell_quote.
10197
10198 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10199
10200         * threads.c:
10201         (mono_threads_manage): don't remove the finalizer thread and self
10202         from the threads hash table so that mono_thread_manage can be called
10203         more than once.
10204
10205 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10206
10207         * process.c: quote the arguments when UseShellExecute is true. Fixes
10208         bug #55790.
10209
10210 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10211
10212         * threads.c: set mono_thread_detach as a cleanup routine for every
10213         thread. This way it's always executed upon thread termination, either
10214         aborted or finished normally. No more xsp hangs!
10215
10216 2004-03-17  Martin Baulig  <martin@ximian.com>
10217
10218         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
10219         `int count_nested' and a `MonoType **nested'.
10220
10221         * reflection.c (mono_reflection_bind_generic_parameters): Moved
10222         most of the functionality into a new static
10223         do_mono_reflection_bind_generic_parameters() and don't take a
10224         `MonoType *nested_in' argument any more.  Don't compute nested
10225         types here.
10226         (mono_reflection_generic_inst_get_nested_types): New public method
10227         to get nested types.
10228
10229         * class.c (mono_class_create_generic): Set `klass->nested_in' if
10230         we're a nested class.
10231
10232         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
10233         mono_reflection_generic_inst_get_nested_types() to compute the
10234         nested types.
10235
10236 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10237
10238         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
10239         descriptive error message under windows.
10240         
10241 2004-03-17  Martin Baulig  <martin@ximian.com>
10242
10243         * class.c (dup_type): Added `const MonoType *original' argument;
10244         copy the attrs from the original type.
10245
10246 2004-03-17  Martin Baulig  <martin@ximian.com>
10247
10248         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
10249         `m->generic_inst_cache' here.
10250
10251 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10252
10253         * exception.h exception.c: Add stack_overflow_exception.
10254
10255 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10256
10257         * threadpool.c:
10258         (overlapped_callback): call SetEvent *after* invoking the callback.
10259         No need to call CloseHandle.
10260
10261 2004-03-16  Martin Baulig  <martin@ximian.com>
10262
10263         * reflection.c (mono_image_get_fieldref_token): Take a
10264         `MonoReflectionField *' instead of a `MonoClassField *' and a
10265         `MonoClass *'; store the `MonoReflectionField *' in the hash.
10266
10267 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10268
10269         * appdomain.c: don't add the culture to the filename we're looking for
10270         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
10271
10272 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10273
10274         * locales.c: don't ignore symbols when doing case insensitive compares.
10275         Thanks Dick! Fixes bug #54046.
10276
10277         * threads.c: surround 'threads' usage with enter/leave in
10278         mono_thread_manage.
10279
10280 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
10281
10282         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
10283         implicitly marshalled as [Out]. Fixes #55450.
10284
10285         (mono_marshal_get_runtime_invoke): Zero out the result if there is
10286         an exception.
10287
10288 2004-03-16  Martin Baulig  <martin@ximian.com>
10289
10290         * class.c (mono_class_from_generic_parameter): Use the actual
10291         parameter name. 
10292
10293 2004-03-16  Martin Baulig  <martin@ximian.com>
10294
10295         * reflection.c (type_get_signature_size): New static function.
10296         Compues the size of the type in a method signature.
10297         (method_get_signature_size): New static function; calls
10298         type_get_signature_size() to compute the actual size of the
10299         method's signature.
10300         (method_encode_signature): Use method_get_signature_size() to get
10301         the signature's size rather than using `nparams * 10'.
10302
10303 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10304
10305         * file-io.h: define here WapiOverlapped on windows. I don't want the
10306         regular OVERLAPPED one.
10307
10308         * file-io.c:
10309         * threadpool.c: somehow, BindIoCompletionCallback is not found.
10310         Disabling AIO on windows.
10311
10312 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10313
10314         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
10315         bug #55385.
10316
10317 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10318
10319         * appdomain.c: upgraded corlib version.
10320
10321         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
10322         and BeginWrite. Allow opening files for asynchrnous operations.
10323
10324         * file-io.h: new struct that maps FileStreamAsyncResult.
10325         * icall.c: added new icalls.
10326         * process.[ch]: support setting child process environment variables
10327         and use the SHELL or COMSPEC when UseShellExecute is true.
10328
10329         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
10330         callback for async. IO is here and also BindHandle.
10331
10332         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
10333         from here.
10334
10335 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
10336
10337         * reflection.c (create_custom_attr): Allow len == 0.
10338
10339         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
10340         computation on big-endian machines.
10341
10342 2004-03-13  Martin Baulig  <martin@ximian.com>
10343
10344         * class.h (MonoGenericInst): Added `int count_ifaces'.
10345
10346         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
10347         `ginst->count_ifaces' instead `klass->interface_count' since we
10348         may get called before the vtable is created.
10349
10350         * loader.c (mono_method_get_param_names): If we're a generic
10351         instance, return and don't initialize the class.
10352
10353         * reflection.c (mono_reflection_setup_generic_class): Don't call
10354         ensure_runtime_vtable().
10355         (mono_reflection_bind_generic_parameters): Set
10356         `ginst->count_ifaces'.
10357
10358 2004-03-11  Jackson Harper <jackson@ximian.com>
10359
10360         * icall.c:
10361         * unicode.c:
10362         * unicode.h: Remove unused System.Char icalls.
10363         
10364 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
10365
10366         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
10367         code when we P/Invoke the first library in Windows.Forms, instead
10368         of when we first open the assembly.
10369
10370         * assembly.c: Drop the lookup from here.
10371
10372 2004-03-10  Martin Baulig  <martin@ximian.com>
10373
10374         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
10375         class for properties, fields and events.  Finally fixes #54945.
10376
10377 2004-03-10  Martin Baulig  <martin@ximian.com>
10378
10379         * metadata.c (mono_metadata_class_equal): New static function;
10380         checks whether two generic instances or two generic parameters are
10381         equal.
10382         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
10383         compare classes.        
10384
10385 2004-03-10  Martin Baulig  <martin@ximian.com>
10386
10387         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
10388
10389         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
10390         argument and write it into the `reflection_info' field.
10391
10392         * icall.c
10393         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
10394         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
10395
10396 2004-03-09  Jackson Harper  <jackson@ximian.com>
10397
10398         * char-conversions.h: use 8 bits for numeric data its all we need
10399         * icall.c: numeric data is only 8 bits now.
10400
10401 2004-03-09  Martin Baulig  <martin@ximian.com>
10402
10403         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
10404
10405         * class.c (init_properties, init_events): Initialize the new
10406         `parent' field.
10407
10408         * reflection.c (typebuilder_setup_properties): Likewise.
10409         (typebuilder_setup_events): Likewise.
10410
10411         * reflection.h (MonoEventInfo): Replaced `parent with
10412         `declaring_type' and `reflected_type'.
10413
10414         * icall.c (ves_icall_get_property_info): Distinguish between
10415         declaring and reflected type.
10416         (ves_icall_get_event_info): Likewise.
10417
10418 2004-03-09  Martin Baulig  <martin@ximian.com>
10419
10420         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
10421         (ves_icall_Type_GetField): Correctly set field->klass.
10422
10423 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
10424
10425         * loader.h: Fix warning.
10426
10427 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
10428
10429         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
10430         library routine if present.  Notice that it will still continue
10431         executing even if its missing, for those working on the Gtk#
10432         edition of Windows.Forms.
10433
10434         * assembly.c (do_mono_assembly_open): If loading the
10435         System.Windows.Forms call mono_loader_wini_init.
10436
10437 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
10438
10439         * class.h: Added MonoRemoteClass struct.
10440         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
10441         function for MonoStrings.
10442         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
10443         Added internal call for getting the proxy type.
10444         * marshal.c: Get the type of transparent proxies from its remote_class.
10445         Added methods that generate the IL for type checks and casts:
10446         mono_marshal_get_isinst, mono_marshal_get_castclass, 
10447         mono_marshal_get_proxy_cancast.
10448         * marshal.h: Declaration of the previous new methods.
10449         * object.c: Added new moethods for creating and updating MonoRemoteClass
10450         instances: mono_remote_class, mono_upgrade_remote_class, 
10451         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
10452         * verify.c: FIx transparent_proxy_fields layout.
10453         * appdomain.c: Bump corlib version.
10454
10455 2004-03-04  Jackson Harper  <jackson@ximian.com>
10456
10457         * icall.c: Add icall to access char conversion tables.
10458         * char-conversions.h: Character conversion tables.
10459         * Makefile.am: Add char-conversions.h private header file.
10460         
10461 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
10462
10463         * appdomain.c (unload_thread_main): Increase unloading timeout to
10464         10 sec as a temporary workaround for Nant problems.
10465
10466 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
10467
10468         * gc.c: Add checks for GC_enable and GC_disable.
10469
10470         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
10471         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
10472         (bug #54988).
10473         
10474 2004-02-27  Martin Baulig  <martin@ximian.com>
10475
10476         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10477         `MonoReflectionType *' instead of a `MonoType *'.
10478
10479 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
10480
10481         * gc.c (run_finalize): Avoid finalizing the object representing the
10482         finalizer thread.
10483         (finalizer_thread): Fix warning.
10484
10485 2004-02-25  Martin Baulig  <martin@ximian.com>
10486
10487         * class.c (_mono_class_get_instantiation_name): Added `int offset'
10488         argument for nested types.
10489         (mono_class_create_generic): Added support for nested generictypes.
10490
10491         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
10492         `GList *nested'.
10493
10494         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10495
10496         * reflection.c (method_encode_signature): Increase the minimum
10497         value of `size' from 10 to 11.
10498         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10499         and `MonoType **types' arguments instead of the `MonoArray
10500         *types'; added `MonoType *nested_in'.  Recursively instantiate
10501         nested classes. 
10502
10503 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10504
10505         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10506         stack_overflow_ex members which are used by exception handling.
10507
10508         * appdomain.c (mono_runtime_init): Initialize the new members.
10509
10510         * gc.c (mono_gc_enable): New helper function.
10511         * gc.c (mono_gc_disable): New helper function.
10512
10513 2004-02-23  Martin Baulig  <martin@ximian.com>
10514
10515         * icall.c: I must have been really stupid - make it actually work
10516         this time ;-)
10517
10518 2004-02-23  Martin Baulig  <martin@ximian.com>
10519
10520         * loader.c (method_from_memberref): Only inflate the method if
10521         it's in another klass.
10522
10523 2004-02-23  Martin Baulig  <martin@ximian.com>
10524
10525         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10526         (mono_class_init): If we're a generic instance and an interface,
10527         compute `class->interface_id'; also create `class->interfaces'
10528         here and inflate them.
10529
10530         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10531         `ginst->is_open'.
10532         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10533
10534         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10535
10536 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10537
10538         * reflection.c (method_encode_code): Improved the error message
10539         generated by the exception.
10540
10541 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10542
10543         * icall.c: Martin did not do what he said in the ChangeLog for
10544         2004-02-18, but put back the changes for properties and events.
10545         Commenting those changes out again and adding comment to bug #54518.
10546         
10547         * process.c: removed warning.
10548
10549 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10550
10551         * marshal.c (emit_struct_conv): Print an error message instead of
10552         asserting when a type does not have the StructLayout attribute.
10553
10554 2004-02-20  Martin Baulig  <martin@ximian.com>
10555
10556         * reflection.c (mono_type_get_object): Also use the cache for
10557         generic instances.
10558         (mono_reflection_bind_generic_parameters): Always compute
10559         `ginst->ifaces'.        
10560
10561 2004-02-20  Martin Baulig  <martin@ximian.com>
10562
10563         * class.h (MonoGenericMethod): Removed `klass'.
10564
10565         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10566         *klass' argument.
10567
10568 2004-02-20  Martin Baulig  <martin@ximian.com>
10569
10570         * reflection.c (method_encode_methodspec): Actually use the
10571         uninflated signature for the memberref.
10572
10573 2004-02-20  Martin Baulig  <martin@ximian.com>
10574
10575         * class.h (MonoGenericMethod): Removed `declaring'.
10576
10577         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10578         is NULL, compute it here.
10579
10580 2004-02-20  Martin Baulig  <martin@ximian.com>
10581
10582         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10583
10584         * metadata.c (mono_metadata_generic_inst_hash): New method.
10585         (mono_metadata_generic_inst_equal): New method.
10586
10587         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10588         `klass->image->generic_inst_cache' cache to avoid creating
10589         duplicate MonoGenericInst's.
10590
10591         * class.c (mono_class_inflate_generic_type): Use the cache.
10592
10593 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10594
10595         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10596
10597 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10598
10599         * icall.c: added Socket.WSAIoctl icall.
10600
10601         * socket-io.[ch]: implemented
10602         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10603
10604 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10605
10606         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10607
10608 2004-02-18  Urs C Muff  <umuff@quark.com>
10609
10610         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10611         this work on PPC and other big-endian architectures.
10612
10613         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10614         fields with an underscore to make sure they're only accessed by
10615         the read32() macro.
10616
10617 2004-02-18  Martin Baulig  <martin@ximian.com>
10618
10619         * icall.c: Put the klass->refclass changes back for methods and
10620         fields, but not for properties and events.  We're currently not
10621         distinguishing between DeclaringType and ReflectedType for
10622         properties and events, that's what caused the regressions.
10623
10624 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10625
10626         * object.c:
10627         (mono_async_result_new): the handle can be NULL.
10628
10629         * threadpool.c: Use an event instead of a semaphore, don't initialize
10630         it until needed. This saves quite a few semaphores from being created
10631         when using the threadpool.
10632
10633 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10634
10635         * object.c (mono_string_is_interned_lookup): Fix interning of long
10636         strings. Fixes #54473.
10637
10638         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10639
10640         * icall.c: Revert the klass->refclass changes since they introduce
10641         regressions (bug #54518).
10642
10643 2004-02-18  Martin Baulig  <martin@ximian.com>
10644
10645         * class.c (mono_class_init): If we're a generic instance and don't
10646         come from a TypeBuilder, inflate our members here.
10647         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10648         (mono_class_create_generic): New public method.
10649         (mono_class_initialize_generic): Removed.
10650         (get_instantiation_name): Renamed to
10651         _mono_class_get_instantiation_name() and made it public.
10652
10653 2004-02-18  Martin Baulig  <martin@ximian.com>
10654
10655         * class.c (mono_class_inflate_generic_type): Clear the new
10656         instance's `nginst->klass' when inflating a generic instance.
10657         (mono_class_is_subclass_of): Added (basic) support for generic
10658         instances.
10659
10660 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10661
10662         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10663         MonoMempool to hold compiled native code.
10664
10665 2004-02-17  Martin Baulig  <martin@ximian.com>
10666
10667         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10668         `properties'.
10669
10670         * reflection.c (mono_reflection_generic_inst_initialize): Added
10671         `MonoArray *properties' argument.
10672
10673         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
10674
10675 2004-02-17  Martin Baulig  <martin@ximian.com>
10676
10677         * icall.c (ves_icall_Type_GetFields): Renamed to
10678         ves_icall_Type_GetFields_internal() and added a
10679         `MonoReflectionType *rtype' argument; pass it to
10680         mono_field_get_object() to set the field's "reflected" type.
10681         (ves_icall_Type_GetConstructors): Likewise.
10682         (ves_icall_Type_GetEvents): Likewise.
10683         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
10684         argument; pass it to mono_method_get_object() to set the method's
10685         "reflected" type.       
10686
10687 2004-02-17  Martin Baulig  <martin@ximian.com>
10688
10689         * class.h (MonoDynamicGenericInst): New type.
10690         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
10691
10692         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
10693         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
10694         (ves_icall_MonoGenericInst_GetFields): New interncall.
10695
10696         * class.c (mono_class_from_generic): Don't call
10697         mono_class_initialize_generic() if this is a dynamic instance;
10698         ie. it's being created from a TypeBuilder.
10699         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
10700         `class->byval_arg.type'.
10701
10702         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
10703         to `inflate_method' and made static.
10704         (mono_reflection_inflate_field): Removed.
10705         (mono_reflection_generic_inst_initialize): New public method.
10706
10707         * reflection.h (MonoReflectionGenericInst): Removed `methods',
10708         `ctors' and `fields'; added `initialized'.
10709
10710 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
10711
10712         * debug-helpers.c (mono_method_full_name): Fix output for empty
10713         namespaces.
10714
10715 2004-02-12  Martin Baulig  <martin@ximian.com>
10716
10717         * class.h (MonoClassField): Added `MonoType *generic_type'.
10718
10719         * reflection.c (mono_image_get_fieldref_token): Added support for
10720         instantiated generic types.
10721         (field_encode_inflated_field): Removed.
10722         (mono_image_get_inflated_field_token): Removed.
10723         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
10724
10725         * reflection.h (MonoReflectionInflatedField): Removed.
10726
10727 2004-02-12  Martin Baulig  <martin@ximian.com>
10728
10729         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
10730         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
10731
10732         * reflection.c (mono_image_get_methodspec_token): Take a
10733         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
10734         (mono_image_create_token): Check whether we have a
10735         `method->signature->gen_method' and call
10736         mono_image_get_methodspec_token() if appropriate.
10737         (inflated_method_get_object): Removed.
10738         (mono_reflection_bind_generic_method_parameters): Return a
10739         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
10740         (mono_reflection_inflate_method_or_ctor): Likewise.
10741
10742         * reflection.h (MonoReflectionInflatedMethod): Removed.
10743
10744 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
10745
10746         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
10747         for custom valuetype marshalling.
10748
10749         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
10750
10751 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10752
10753         * icall.c: fixed WSAGetLastError_internal name.
10754
10755 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
10756
10757         * threads.c (mono_thread_attach): Allow this to be called multiple
10758         times for a thread.
10759         
10760         * threads.c (build_wait_tids): Do not wait for ourselves.
10761
10762         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
10763         appdomain list is empty.
10764
10765         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
10766         memory returned by mono_string_builder_to_utf16, since it points into
10767         managed memory. Thanks to Bernie Solomon for noticing this.
10768
10769         * icall.c: Add AppDomainSetup icalls.
10770
10771         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
10772
10773         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
10774         types.
10775
10776         * reflection.c (reflection_methodbuilder_to_mono_method): Save
10777         custom attributes to the method_aux struct. Also fix array indexes etc.
10778
10779         * loader.c (mono_method_get_param_names): Make dynamic case work again.
10780         
10781 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
10782
10783         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
10784         (both static and runtime) and reduce startup time.
10785
10786 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
10787
10788         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
10789         AsAny marshalling conversion instead of crashing.
10790
10791         * marshal.c: Fix warnings.
10792
10793 2004-02-09  Martin Baulig  <martin@ximian.com>
10794
10795         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
10796
10797         * reflection.h (MonoReflectionInflatedMethod): Removed the
10798         `declaring' field, it's now in the unmanaged MonoGenericMethod.
10799
10800         * reflection.c (method_encode_methodspec): Removed the `method'
10801         argument; we get it from `gmethod->declaring'.
10802         (inflated_method_get_object): Removed the `declaring' argument.
10803
10804 2004-02-09  Martin Baulig  <martin@ximian.com>
10805
10806         * class.h (MonoGenericMethod): New type.
10807         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
10808         `generic_method'.
10809
10810         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
10811         a `MonoGenericMethod *gen_method' one.
10812
10813         * class.c (mono_class_inflate_generic_type): Take an additional
10814         `MonoGenericMethod * argument.  This is only non-NULL if we're
10815         inflating types for a generic method.   
10816         (mono_class_inflate_generic_signature): Renamed to
10817         inflate_generic_signature() and made static; take a
10818         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10819         (inflate_generic_header): Take a `MonoGenericMethod *' argument
10820         instead of a `MonoGenericInst *' one.
10821         (mono_class_inflate_generic_method): Likewise.
10822
10823         * reflection.c (encode_generic_method_sig): Take a
10824         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10825         (method_encode_methodspec): Likewise.
10826         (inflated_method_get_object): Likewise. 
10827
10828         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
10829         field with a `MonoGenericMethod *gmethod' one.  
10830
10831 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
10832
10833         * class.h (mono_class_has_parent): add parens to expansion
10834         so you can ! this.
10835
10836 2004-02-08  Martin Baulig  <martin@ximian.com>
10837
10838         * image.h (MonoImage): Removed `generics_cache'.
10839
10840         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
10841         instead of a `MonoType *' argument; removed the `inflate_methods'
10842         argument.  Don't inflate methods here.
10843
10844         * loader.c (find_method): If it's a generic instance, call
10845         mono_class_init() on the `sclass->generic_inst->generic_type'.
10846
10847         * metadata.c (mono_type_size): Make this work on uninitialized
10848         generic instances; call it on the `ginst->generic_type's class.
10849
10850         * reflection.c (mono_reflection_bind_generic_parameters): Call
10851         mono_class_from_generic() to create the `ginst->klass'.
10852
10853 2004-02-08  Martin Baulig  <martin@ximian.com>
10854
10855         * class.h (MonoClass): Changed type of `generic_inst' from
10856         `MonoType *' to `MonoGenericInst *'.
10857
10858 2004-02-08  Martin Baulig  <martin@ximian.com>
10859
10860         * icall.c (ves_icall_Type_BindGenericParameters): Just call
10861         mono_type_get_object(), this is now creating a `MonoGenericInst'
10862         for MONO_TYPE_GENERICINST.
10863         (ves_icall_MonoGenericInst_GetParentType): Likewise.
10864         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
10865
10866         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
10867         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
10868         (inflated_method_get_object): Added `MonoClass *refclass' argument.
10869         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
10870         and reflected type.
10871
10872         * reflection.h (MonoReflectionInflatedMethod): Removed
10873         `declaring_type' and `reflected_type'.
10874
10875 2004-02-08  Martin Baulig  <martin@ximian.com>
10876
10877         * class.h (MonoGenericInst): Added `MonoType *parent' and
10878         `MonoType **ifaces'.
10879
10880         * reflection.h (MonoReflectionGenericInst): Removed `klass',
10881         `parent' and `interfaces'.
10882
10883         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10884         `MonoType *' argument and return a `MonoType *'.
10885
10886         * icall.c
10887         (ves_icall_MonoGenericInst_GetParentType): New interncall.
10888         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
10889
10890 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10891
10892         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
10893         valuetype marshalling.
10894
10895 2004-02-06  Martin Baulig  <martin@ximian.com>
10896
10897         * class.c
10898         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
10899         (my_mono_class_from_generic_parameter): Likewise.
10900
10901 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10902
10903         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
10904         contents of the symbol files lazily.
10905
10906         * object.h (MonoThread): Add 'name' and 'name_len' fields.
10907
10908         * threads.h threads.c icall.c: New icalls for getting and setting the
10909         threads name.
10910
10911 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
10912
10913         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
10914         Raise an exception when the domain is not found.
10915
10916 2004-02-03  Martin Baulig  <martin@ximian.com>
10917
10918         * reflection.c (mono_image_get_methodspec_token): Use the
10919         uninflated signature; fixes gen-33.
10920
10921 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
10922
10923         * gc.c threads.c: Make the finalizer thread a normal managed thread so
10924         the finalizer code can use thread functionality.
10925
10926         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
10927         the finalizer thread.
10928
10929         * threads.c: Make some functions more robust.
10930
10931         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
10932
10933         * metadata.h: Add new marshalling conventions.
10934
10935         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
10936         stringbuilder marshalling. Fixes #53700.
10937
10938         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
10939
10940         * reflection.c (mono_image_get_type_info): Save declarative security
10941         info.
10942
10943         * reflection.c (mono_image_get_field_info): Handle uninitialized 
10944         unmanaged fields as well.
10945
10946         * appdomain.c: Bump corlib version.
10947
10948 2004-02-01  Martin Baulig  <martin@ximian.com>
10949
10950         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
10951         method type arguments.  
10952
10953 2004-01-30  Duncan Mak  <duncan@ximian.com>
10954
10955         * marshal.h: Add prototype for
10956         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
10957         and
10958         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
10959         fix the build.
10960
10961 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
10962
10963         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
10964         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
10965
10966 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
10967
10968         * marshal.c (mono_marshal_get_native_wrapper): Add support for
10969         custom marshalling of valuetypes.
10970
10971         * marshal.c: Fix some warnings.
10972
10973 2004-01-29  Martin Baulig  <martin@ximian.com>
10974
10975         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
10976         for generic method parameters.
10977
10978         * reflection.c (method_encode_methodspec): Write the uninflated
10979         signature into the methodspec table.
10980         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
10981         is always the uninflated method.
10982         (reflection_methodbuilder_to_mono_method): Copy the generic
10983         parameters from the MethodBuilder into `header->gen_params'.
10984
10985 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
10986
10987         * class.c (mono_class_from_generic_parameter): Fix warning.
10988
10989 2004-01-27  Martin Baulig  <martin@ximian.com>
10990
10991         * class.c (mono_class_from_generic_parameter): Don't create
10992         `klass->methods' here.  
10993
10994 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
10995
10996         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
10997         extension since it does not work with libraries named lib<FOO>.dll.so.
10998
10999 2004-01-25  Martin Baulig  <martin@ximian.com>
11000
11001         * class.c (mono_class_inflate_generic_type): Added support for
11002         MONO_TYPE_GENERICINST.
11003
11004         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
11005         inflate methods on open constructed types.      
11006
11007 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11008
11009         * object.c: fire ProcessExit event in the root AppDomain after running
11010         Main. Fixes bug #53299.
11011
11012 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
11013
11014         * socket-io.c: include the new socket-wrappers.h header.
11015         Use the wrappers instead of the unix socket functions to make the code
11016         more clear.
11017
11018 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
11019
11020         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
11021
11022         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11023         Fixes #22532.
11024
11025 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
11026
11027         * reflection.c (mono_image_create_pefile): Handle the case when the
11028         entry point is not a MethodBuilder.
11029
11030         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11031         field to ReflectionMethod since it is not allways a builder.
11032
11033         * reflection.c (type_get_fully_qualified_name): New helper function to
11034         return the fully qualified name of a type.
11035
11036         * reflection.c (encode_marshal_blob): Always emit the fully qualified
11037         type name for custom marshallers.
11038
11039         * reflection.c (mono_marshal_spec_from_builder): Ditto.
11040
11041         * class.c (mono_class_setup_vtable): If a parent class already 
11042         implements an interface, use the implementing methods from that class.
11043         Fixes #53148.
11044
11045 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11046
11047         * threadpool.c: just return instead of ExitThread to allow for thread
11048         clean up earlier.
11049
11050 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
11051
11052         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
11053         when closing resource modules.
11054
11055         * reflection.c (mono_image_create_pefile): Handle the case when the
11056         entry point is not a MethodBuilder.
11057
11058         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11059         field to ReflectionMethod since it is not allways a builder.
11060
11061 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11062
11063         * marshal.c (mono_marshal_get_managed_wrapper): 
11064         mono_marshal_alloc takes native int so CONV_I
11065         the arg for 64bits.
11066
11067 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
11068
11069         * reflection.c (fixup_cattrs): New function to fixup the methoddef
11070         tokens in the cattr table. Fixes #53108.
11071
11072 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11073
11074         * loader.c: don't trim ".dll" before looking up in the config file.
11075         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
11076
11077 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
11078
11079         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
11080         Return the module which contains the resource as well.
11081         (ves_icall_System_Reflection_Module_Close): New icall.
11082
11083         * appdomain.c: Bump corlib version number.
11084
11085         * image.c (mono_image_addref): New public function.
11086
11087         * assembly.c: Call mono_image_addref.
11088
11089         * reflection.c (mono_module_get_object): Increase reference count of 
11090         the image.
11091
11092         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11093         Fixes #22532.
11094
11095         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
11096         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
11097         proper exceptions on DllImport problems.
11098
11099 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
11100
11101         * class.c, metadata.c: eliminate CSIZE macro.
11102
11103 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
11104
11105         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
11106         * object.h: Added async_callback field in MonoAsyncResult.
11107         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
11108         * verify.c: Added async_callback in MonoAsyncResult layout.
11109
11110 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
11111
11112         * reflection.c (mono_reflection_get_custom_attrs): Add support
11113         for Modules.
11114
11115 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11116
11117         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
11118         marshalling.
11119         (mono_marshal_method_from_wrapper): Add null pointer check.
11120
11121 2004-01-16  Martin Baulig  <martin@ximian.com>
11122
11123         * debug-mono-symfile.h: Set version number to 36 and reflect
11124         latest symbol writer changes.
11125
11126 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11127
11128         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
11129         multi-dimensional arrays.
11130         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
11131         (mono_class_from_mono_type): Use bounded_array_class_get.
11132         
11133         * class.c (mono_bounded_array_class_get): New function which takes
11134         a 'bounded' bool argument to distinguish vectors from one dimensional
11135         arrays.
11136
11137         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
11138         bounded_array_class_get if the array has bounds.
11139
11140         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11141         Search modules loaded using AssemblyBuilder:AddModule as well.
11142
11143 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11144
11145         * appdomain.c: increased corlib version.
11146         * filewatcher.c: removed g_print.
11147         * icall.c:
11148         (get_property_info): only allocate what is actually requested.
11149         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
11150
11151 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11152
11153         * Makefile.am: added filewatcher.[ch]
11154         * filewatcher.[ch]: FileSystemWatcher runtime support.
11155         * icall.c: added new FSW icalls.
11156
11157 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
11158
11159         * string-icalls.c: fix stringbuilder regression as suggested by
11160         Iain McCoy <iain@mccoy.id.au>.
11161
11162 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
11163
11164         * process.c (process_read_stringtable_block): Recognize '007f' as
11165         a language neutral stringtable block.
11166
11167 2004-01-12  Patrik Torstensson
11168
11169         * object.h (MonoStringBuilder) : Changed layout to support our
11170         new stringbuilder class.
11171         * marshal.c: Change marshalling to support the new layout of 
11172         string builder.
11173         * appdomain.c: increased version number because new layout of
11174         string builder.
11175
11176 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
11177
11178         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
11179         assembly name as an string instead of an AssemblyName, since it is
11180         easier to extract info from it.
11181
11182         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
11183         the culture subdirectories too. Fixes #52231.
11184
11185 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11186
11187         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
11188         It takes 2 new parameters with an optional name for the method to look
11189         for and case ignoring info.
11190
11191         * threadpool.c: removed unused variable.
11192
11193 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11194
11195         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
11196         It takes 2 new parameters with an optional name for the property to look
11197         for and case ignoring info.
11198         Fixes bug #52753.
11199
11200 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
11201
11202         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
11203         Fix #52451.
11204
11205 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11206
11207         * appdomain.c:
11208         * assembly.c: escape the uri before passing it to g_filename_from_uri.
11209         Fixes bug #52630.
11210
11211 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
11212
11213         * reflection.c: Add support for more than one unmanaged resource.
11214
11215         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
11216         in field->def_value, as done in all other cases.
11217
11218         * reflection.c (mono_reflection_get_custom_attrs): Add support for
11219         TypeBuilders.
11220
11221         * reflection.c (mono_reflection_create_runtime_class): Remove 
11222         errorneous assignment to klass->element_class, since it is already
11223         done in mono_reflection_setup_internal_class.
11224
11225 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11226
11227         * gc.c: added missing LeaveCriticalSection.
11228         * icall.c: indented a couple of lines.
11229         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
11230         if we call EndInvoke inside a callback. Fixes bug #52601.
11231
11232 2004-01-07  Martin Baulig  <martin@ximian.com>
11233
11234         * mono-debug-debugger.h
11235         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
11236
11237 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
11238
11239         * appdomain.c: Use messages in NotImplementedException.
11240
11241         * exception.c (mono_get_exception_not_implemented): Now this takes
11242         a message argument.
11243
11244         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
11245         exception instead of g_asserting an aborting when something is not
11246         implemented.
11247
11248         Add some inline docs.
11249
11250 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
11251
11252         * reflection.h: Update after changes to object layout.
11253
11254         * reflection.c: Implement saving of unmanaged aka win32 resources.
11255
11256         * appdomain.c: Bump version number.
11257
11258         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
11259         Handle missing domains gracefully.
11260
11261 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
11262
11263         * file-io.c : On Windows, there are much more invalid_path_chars.
11264
11265 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
11266
11267         * class.h, object.c: prepare for GetType () speedup.
11268
11269 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
11270
11271         * profiler.c: workaround for --profile null reference exception on
11272           cygwin. Patch by Patrik Torstensson.
11273
11274 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
11275
11276         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
11277         make work for unaligned access.
11278
11279 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
11280
11281         * class.c: small cleanup (class->fields [i] -> field).
11282         * image.c: check address of metadata is valid.
11283
11284 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
11285
11286         * assembly.h assembly.c (mono_assembly_loaded): New public function to
11287         search the list of loaded assemblies.
11288
11289         * reflection.c (mono_reflection_type_from_name): Use 
11290         mono_assembly_loaded instead of mono_image_loaded.
11291
11292         * reflection.c: Fix warnings.
11293
11294 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
11295
11296         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
11297         is dynamic. This is needed since an assembly can contain both dynamic and
11298         non-dynamic images.
11299
11300         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
11301         assembly->dynamic.
11302
11303         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
11304
11305         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
11306         to store modules loaded using AddModule.
11307
11308         * reflection.c (mono_image_fill_file_table): Generalize this so it works
11309         on Modules.
11310
11311         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
11312
11313         * reflection.c (mono_image_fill_export_table_from_module): New function to
11314         fill out the EXPORTEDTYPES table from a module.
11315
11316         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
11317         into a separate function. Also handle loaded non-dynamic modules.
11318
11319         * reflection.c (mono_image_basic_init): Fix memory allocation.
11320
11321         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11322
11323         * assembly.c (mono_assembly_load_references): Make this public.
11324
11325 2003-12-19  Martin Baulig  <martin@ximian.com>
11326
11327         * class.c (mono_class_initialize_generic): Made this static, take
11328         a `MonoGenericInst *' instead of a `MonoClass *'.
11329         (mono_class_from_generic): Call mono_class_initialize_generic()
11330         unless we're already initialized or being called from
11331         do_mono_metadata_parse_generic_inst().
11332
11333         * class.h (MonoGenericInst): Added `initialized' and
11334         `init_pending' flags.
11335
11336         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
11337         `mono_class_init (gklass)' or mono_class_initialize_generic()
11338         here; set `generic_inst->init_pending' while parsing the
11339         `type_argv'.
11340
11341 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
11342
11343         * locales.c: include string.h for memxxx prototypes
11344
11345 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
11346
11347         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
11348         constructor when accessing literal fields.
11349
11350 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
11351
11352         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11353
11354         * reflection.c (assembly_add_resource_manifest): New function to fill
11355         the MANIFESTRESOURCE table.
11356
11357         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
11358
11359         * reflection.h: Update to changes in class layout.
11360
11361         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
11362         Reenable call to mono_runtime_is_shutting_down ().
11363
11364         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
11365         determine if the runtime is shutting down.
11366
11367 2003-12-16  Jackson Harper <jackson@ximian.com>
11368
11369         * icall.c: comment out call to mono_runtime_is_shutting_down to
11370         fix build.
11371         
11372 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
11373
11374         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
11375         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
11376
11377 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
11378
11379         * reflection.c: move definition of swap_with_size
11380         to before its first call
11381
11382 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
11383
11384         * appdomain.c (mono_runtime_is_shutting_down): New public function.
11385
11386         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
11387         icall.
11388
11389         * object.c: Fix warnings.
11390
11391         * icall.c (ves_icall_Type_Get...): Only consider inherited static
11392         members if FlattenHierarchy is set.
11393
11394         * reflection.c (mono_image_add_decl_security): New function to emit
11395         declarative security.
11396
11397         * reflection.h reflection.c: Add support for declarative security.
11398
11399         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11400         
11401 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
11402
11403         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11404         
11405         * appdomain.c verify.c: Moved corlib version checking into its own
11406         function in appdomain.c since it needs to create vtables etc.
11407
11408 2003-12-13  Patrik Torstensson <p@rxc.se>
11409
11410         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
11411         instead of unwrapped server.
11412
11413 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
11414
11415         * verify.c (check_corlib): Fix field index.
11416
11417 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
11418
11419         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
11420         GetGacPath icall.
11421
11422 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
11423
11424         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
11425         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
11426         cope with sizeof(size_t) != sizeof(guint32).
11427
11428 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11429
11430         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
11431         in case of failure.
11432
11433 2003-12-10  Mark Crichton <crichton@gimp.org>
11434
11435         * icall.c: removed the GetNonZeroBytes.  We now handle this case
11436         in managed code.
11437
11438         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
11439
11440 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
11441
11442         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
11443         marked as deleted.
11444
11445 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
11446
11447         * verify.c (check_corlib): Handle the case when the version field is 
11448         initialized by a static constructor.
11449
11450 2003-12-08  Patrik Torstensson  <p@rxc.se>
11451
11452     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
11453
11454 2003-12-08  Martin Baulig  <martin@ximian.com>
11455
11456         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
11457         a MonoReflectionGenericParameter, also take the parameter index
11458         and name as arguments.
11459         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
11460         (ves_icall_MonoGenericParam_initialize): New interncall.
11461         (ves_icall_Type_make_byref_type): New interncall.
11462
11463         * reflection.h (MonoReflectionGenericParam): Derive from
11464         MonoReflectionType, not just from MonoObject.  Added `refobj' and
11465         `index' fields.
11466
11467         * reflection.c (mono_reflection_define_generic_parameter): Create
11468         and return a new MonoReflectionGenericParam; don't initialize the
11469         constraints here.
11470         (mono_reflection_initialize_generic_parameter): New public method;
11471         initializes the constraints and creates the `param->pklass'.
11472
11473 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
11474
11475         * reflection.h reflection.c: Use the new fields 'num_types', 
11476         'num_fields' and 'num_methods' to track the number of types etc.
11477
11478         * verify.c (check_corlib): Check corlib version number.
11479
11480 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
11481
11482         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
11483         function works on all methods.
11484
11485 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
11486
11487         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
11488         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
11489         the custom_type_info flag of the transparent proxy.
11490         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
11491         objects that supports IRemotingTypeInfo.
11492         * object.h: Added custom_type_info field in transparent proxy.
11493
11494 2003-12-06  Martin Baulig  <martin@ximian.com>
11495
11496         * class.c (mono_class_create_from_generic): Removed.
11497         (mono_class_from_generic): Check `ginst->klass' before doing
11498         anything else.  This is important to fully support "recursive"
11499         generic types.
11500
11501         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11502         empty `generic_inst->klass' before doing anything else.
11503
11504 2003-12-06  Dick Porter  <dick@ximian.com>
11505
11506         * verify.c: 
11507         * object.h:
11508         * icall.c:
11509         * locales.c: Use C structs to access class fields.  Don't do a
11510         conversion between MonoString and UChar because both are
11511         platform-endian UTF-16.  Compare now takes startindex and count
11512         parameters.  Add a char overload for IndexOf.  Speed up the
11513         invariant string IndexOf.
11514
11515 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11516
11517         * Makefile.am (monosn_LDADD): Fix parallel build.
11518
11519 2003-12-04  Martin Baulig  <martin@ximian.com>
11520
11521         * icall.c
11522         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11523         (ves_icall_Type_make_array_type): New interncall.       
11524
11525 2003-12-04  Martin Baulig  <martin@ximian.com>
11526
11527         * locales.c: also change it in the !HAVE_ICU case.
11528
11529 2003-12-04  Dick Porter  <dick@ximian.com>
11530
11531         * icall.c:
11532         * locales.c: construct_compareinfo is now in CompareInfo, not
11533         CultureInfo.
11534
11535 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11536
11537         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11538         image->files array.
11539
11540         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11541         table as well.
11542
11543         * assembly.c (mono_assembly_load_references): Only load references
11544         once.
11545
11546         * class.c (mono_class_from_name): Avoid linear search of the 
11547         EXPORTEDTYPE table.
11548
11549         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11550
11551 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11552
11553         * image.h (MonoImage): Add 'field_cache' field.
11554
11555         * loader.c (mono_field_from_token): Cache field lookups.
11556         
11557         * reflection.c (mono_module_get_object): Fix name property.
11558
11559         * icall.c (ves_icall_get_enum_info): Update after changes to 
11560         mono_metadata_get_constant_index ().
11561
11562         * icall.c: Get rid of get_type_info icall, use a separate icall for
11563         each type property to avoid needless memory allocations. Fixes #51514.
11564
11565         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11566         to avoid needless binary searches.
11567
11568         * class.c (class_compute_field_layout): Move the initialization of
11569         field->def_value to mono_class_vtable ().
11570
11571         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11572         non-corlib types.
11573
11574         * object.c (mono_object_allocate): Make it inline.
11575
11576         * object.c (mono_object_allocate_spec): Make it inline.
11577         
11578 2003-12-02  Dick Porter  <dick@ximian.com>
11579
11580         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11581         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11582
11583 2003-12-01  Dick Porter  <dick@ximian.com>
11584
11585         * threads.c: Fix signature and call in CreateMutex and
11586         CreateEvent.
11587
11588 2003-12-01  Dick Porter  <dick@ximian.com>
11589
11590         * icall.c: 
11591         * locales.c: Implement string compares and searching
11592
11593         * object.h: Add extra Thread field
11594
11595 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11596
11597         * reflection.c (fixup_method): Add support for MonoCMethod.
11598
11599 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11600
11601         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11602
11603         * reflection.c (assembly_name_to_aname): Allow extra characters in
11604         assembly names. Fixes #51468.
11605
11606 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11607
11608         * exception.c (mono_exception_from_name_domain): New helper function.
11609
11610         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11611         exception object in the correct domain.
11612
11613         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11614         formatting + make a copy a the input data.
11615
11616         * loader.c (mono_get_method_from_token): Methods which contain
11617         native code do not have entries in the ImplMap.
11618
11619         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11620         Thanks to Gonzalo for spotting this.
11621         
11622         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11623         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11624
11625         * assembly.h (mono_assembly_load_from): Split the second part of 
11626         assembly loading into a new public function.
11627
11628         * exception.h (mono_get_exception_bad_image_format): New function.
11629
11630 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11631
11632         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11633         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11634         
11635         * icall.c: Add new icall for creating dynamic methods.
11636
11637         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11638
11639         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11640
11641         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11642         create a dynamic method.
11643
11644         * reflection.c (resolve_object): New helper function.
11645
11646         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11647         which manipulate it so they can also work on dynamic methods.
11648
11649         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11650         creating the MonoReflectionMethodAux structure if it is not needed.
11651         
11652         * reflection.h verify.c: Update after changes to object layout.
11653
11654         * reflection.c (method_builder_encode_signature): Fix compilation on
11655         gcc 2.95.x.
11656
11657 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11658
11659         * appdomain.h: Added support for context static fields. Added static_data
11660           field to MonoAppContext and renamed thread_static_fields to a more
11661           generic special_static_fields in MonoAppDomain, since it can now contain
11662           context static fields.
11663         * domain.c: Updated hashtable name.
11664         * object.c: Replaced field_is_thread_static() for a more generic
11665           field_is_special_static() which also checks for context static attribute.
11666           In mono_class_vtable(), added support for static context fields.
11667         * threads.c: Changed methods that manage thread static fields to more
11668           generic methods so they can be reused both for thread and context static
11669           data.
11670         * threads.h: Declared some new methods.
11671
11672 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
11673
11674         * reflection.h: Update after changes to the managed types.
11675
11676         * reflection.c (encode_custom_modifiers): New helper function.
11677
11678         * reflection.c (method_encode_signature): Emit custom modifiers.
11679
11680         * reflection.c (field_encode_signature): Emit custom modifiers.
11681
11682 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
11683
11684         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
11685
11686         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
11687         implementation.
11688
11689         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
11690         icall.
11691
11692         * object.c (mono_field_get_value_object): New function.
11693
11694         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
11695         specific.
11696
11697 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
11698
11699         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
11700         return a preallocated out-of-memory exception instance.
11701
11702         * object.c (out_of_memory): Use the new function.
11703
11704         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
11705         flag is before the custom modifiers. Fixes #49802.
11706
11707 2003-11-16  Martin Baulig  <martin@ximian.com>
11708
11709         * class.c (mono_class_is_open_constructed_type): Implemented the
11710         MONO_TYPE_GENERICINST case.
11711
11712 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
11713
11714         * assembly.c (mono_assembly_fill_assembly_name): New function to
11715         fill out the MonoAssemblyName structure.
11716         (mono_assembly_open): Use the new function.
11717
11718         * icall.c (fill_reflection_assembly_name): New helper function.
11719
11720         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
11721         new function.
11722
11723         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
11724
11725 2003-11-15  Martin Baulig  <martin@ximian.com>
11726
11727         * class.c (mono_class_is_open_constructed_type): New public
11728         function; checks whether a type is an open constructed type,
11729         ie. whether it still contains type parameters.
11730         (mono_class_inflate_generic_type): If we're a type parameter and
11731         the inflated type is also a MONO_TYPE_(M)VAR, return the original
11732         type.
11733
11734         * class.h (MonoGenericInst): Added `guint32 is_open'.
11735
11736         * loader.c (method_from_methodspec): Check whether we're an open
11737         or closed constructed type and set `ginst->is_open'.
11738
11739         * reflection.c (mono_reflection_bind_generic_parameters): Check
11740         whether we're an open or closed constructed type and set
11741         `ginst->is_open'.
11742         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
11743         from open constructed types.
11744
11745 2003-11-15  Martin Baulig  <martin@ximian.com>
11746
11747         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11748         a generic instance (instead of a generic type declaration) with
11749         unbound generic parameters, bind them to our actual types.
11750
11751 2003-11-14  Martin Baulig  <martin@ximian.com>
11752
11753         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
11754
11755         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11756         an interface type, populate `res->interfaces' with instantiated
11757         versions of all the interfaces we inherit.
11758
11759 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
11760
11761         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
11762         when MONO_PATH is set but doesn't contain the install dir.
11763
11764 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11765
11766         * icall.c:
11767         (ves_icall_Type_GetInterfaces): don't return an interface twice when
11768         it's also implemented in base classes. Fixes bug #50927.
11769
11770 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
11771
11772         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
11773         if this method is called from a finalizer. Fixes #50913.
11774
11775 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
11776
11777         * threads.c: Implement VolatileRead/VolatileWrite
11778
11779         * icall.c: Add new icalls for VolatileRead/VolatileWrite
11780
11781 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11782
11783         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
11784         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
11785         2.95.3.
11786
11787         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
11788         from Peter Ross (pro@missioncriticalit.com).
11789         
11790 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
11791
11792         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
11793
11794 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11795
11796         * assembly.c (mono_assembly_load_references): Disable check because it
11797         triggers on older corlibs which lots of people have.
11798
11799 2003-11-12  Jackson Harper  <jackson@ximian.com>
11800
11801         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
11802         load corlib.dll if mscorlib.dll is not found.
11803         * assembly.h: Remove corlib name define.
11804         * class.c:
11805         * domain.c:
11806         * image.c: Change corlib name to mscorlib.
11807         
11808 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11809
11810         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
11811
11812 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
11813
11814         * appdomain.h: Added loader_optimization here to sync with the C#
11815         code, and add disallow_binding_redirects field.
11816
11817 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11818
11819         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
11820
11821         * reflection.c (mono_image_build_metadata): Fix crash on modules
11822         with no types.
11823
11824         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
11825
11826         * icall.c (ves_icall_get_method_info): Return callingConvention as
11827         well.
11828
11829         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
11830         namespaces from the EXPORTEDTYPE table as well.
11831
11832         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
11833         from all modules inside the assembly.
11834         
11835 2003-11-11  Martin Baulig  <martin@ximian.com>
11836
11837         * reflection.c (mono_reflection_bind_generic_parameters): Make
11838         this work for interfaces.
11839
11840 2003-11-11  Martin Baulig  <martin@ximian.com>
11841
11842         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
11843
11844 2003-11-11  Martin Baulig  <martin@ximian.com>
11845
11846         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
11847         "MonoInflatedMethod" and "MonoInflatedCtor".
11848
11849 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11850
11851         * reflection.c (resolution_scope_from_image): Use the assembly table
11852         from the manifest module, since other modules don't have it.
11853
11854         * debug-helpers.c (mono_type_full_name): New helper function.
11855
11856         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
11857
11858         * image.c (mono_image_load_file_for_image): New public function which
11859         is a replacement for the load_file_for_image in class.c.
11860
11861         * assembly.c (mono_assembly_load_module): A wrapper for the function
11862         above which does assembly association and reference loading too.
11863
11864         * class.c (mono_class_from_name): Call mono_assembly_load_module.
11865
11866 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11867
11868         * appdomain.c: not all of the attributes for the full assembly name
11869         are required and the order doesn't matter. Fixes bug #50787.
11870
11871 2003-11-10  Dick Porter  <dick@ximian.com>
11872
11873         * locales.c: Use platform-endian UTF16
11874
11875 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11876
11877         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11878         
11879 2003-11-10  Martin Baulig  <martin@ximian.com>
11880
11881         * metadata.c
11882         (mono_metadata_load_generic_params): Make this actually work.
11883
11884         * reflection.c (mono_reflection_bind_generic_parameters): If our
11885         parent is a generic instance, pass all the `types' to it, no
11886         matter whether it has the same number of type parameters or not.
11887
11888 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11889
11890         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11891
11892         * assembly.c (mono_assembly_load_references): Move the image<->assembly
11893         assignment code to this function so it gets called recursively for all
11894         modules.
11895
11896         * image.c (load_modules): Remove the assembly assignment since it is
11897         now done by mono_assembly_load_references.
11898         
11899         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11900         Add 'module' argument.
11901         (mono_module_get_types): New helper function.
11902         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
11903
11904 2003-11-08  Martin Baulig  <martin@ximian.com>
11905
11906         * class.c (mono_class_inflate_generic_method): Interface method
11907         don't have a header.
11908
11909         * reflection.c (mono_image_get_methodspec_token): Take an
11910         additional `MonoGenericInst *' argument instead of reading it from
11911         the header; this is necessary to support interfaces.
11912         (mono_image_create_token): Pass the `MonoGenericInst *' from the
11913         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
11914         (inflated_method_get_object): Take an additional `MonoGenericInst *'
11915         argument.
11916
11917         * reflection.h (MonoReflectionInflatedMethod): Added
11918         `MonoGenericInst *ginst'.
11919
11920 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
11921
11922         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
11923
11924 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
11925
11926         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
11927
11928 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
11929
11930         * reflection.c 
11931         (reflection_methodbuilder_from_method_builder):
11932         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
11933         initialize a ReflectionMethodBuilder structure.
11934         (mono_image_get_methodbuilder_token):
11935         (mono_image_get_ctorbuilder_token): New functions to emit memberref
11936         tokens which point to types in another module inside the same assembly.
11937
11938         * reflection.c: Use the new helper functions.
11939         
11940         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
11941
11942         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
11943         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
11944
11945         * reflection.c (resolution_scope_from_image): Emit a moduleref if
11946         neccesary.
11947
11948         * reflection.c (mono_image_build_metadata): Emit metadata only for the
11949         current module. Emit the manifest only for the main module.
11950
11951         * reflection.c (mono_image_create_token): Add assertion when a 
11952         memberref needs to be created.
11953
11954         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
11955
11956         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
11957         larger buffer for the custom attribute blob. Fixes #50637.
11958         
11959 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11960
11961         * threadpool.c: notify listener on async processing handles after
11962         invoking the async callback. Thanks to Zoltan.
11963
11964 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11965
11966         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
11967         avoid code duplication.
11968
11969         * reflection.h (MonoDynamicImage): New type which is currently unused,
11970         but will be used through the ref.emit code in place of 
11971         MonoDynamicAssembly.
11972
11973         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
11974         object layout.
11975
11976         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
11977         a MonoDynamicImage instead of just a MonoImage.
11978         
11979         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
11980         icalls to ModuleBuilder but keep their semantics, so they will work
11981         with moduleb->assemblyb. This will change later.
11982         
11983 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
11984
11985         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
11986         object layout.
11987
11988         * reflection.c (mono_image_build_metadata): Avoid creation of a default
11989         main module, since it is now done by the managed code.
11990
11991 2003-11-03  Martin Baulig  <martin@ximian.com>
11992
11993         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
11994         `ginst->klass' here.
11995         (method_encode_methodspec): Don't use the `ginst->generic_method's
11996         klass if it's a generic instance, use `ginst->klass' in this case.
11997
11998 2003-11-03  Martin Baulig  <martin@ximian.com>
11999
12000         * reflection.c (mono_image_get_generic_method_param_info):
12001         Removed, use mono_image_get_generic_param_info() instead.
12002         (mono_image_get_type_info): Write the GenericParam table before
12003         the Method table.  This is neccessary because in the GenericParam
12004         table, type parameters of the class (ie. '!0' etc.) must come
12005         before the ones from its generic methods (ie. '!!0' etc).
12006
12007 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12008
12009         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
12010
12011 2003-11-02  Martin Baulig  <martin@ximian.com>
12012
12013         * reflection.c (create_generic_typespec): Take a
12014         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
12015         the generic parameters from it.
12016
12017 2003-11-02  Martin Baulig  <martin@ximian.com>
12018
12019         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
12020         instead of a `MonoClassField *' since we just need the type.
12021         (create_generic_typespec): New static function.  Creates a
12022         TypeSpec token for a generic type declaration.
12023         (mono_image_get_generic_field_token): New static function.
12024         (mono_image_create_token): If we're a FieldBuilder in a generic
12025         type declaration, call mono_image_get_generic_field_token() to get
12026         the token.
12027
12028 2003-11-02  Martin Baulig  <martin@ximian.com>
12029
12030         * reflection.h
12031         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
12032         `MonoReflectionGenericInst *declaring_type' and
12033         `MonoReflectionGenericInst *reflected_type' fields.
12034
12035         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
12036         `MonoReflectionGenericInst *declaring_type' and a
12037         `MonoReflectionGenericInst *reflected_type' argument instead of a
12038         single `MonoReflectionGenericInst *type' one.  Set
12039         `res->declaring_type' and `res->reflected_type' from them.
12040         (mono_reflection_inflate_field): Likewise.      
12041
12042 2003-11-02  Martin Baulig  <martin@ximian.com>
12043
12044         * class.c (mono_class_setup_vtable): Don't store generic methods
12045         in the vtable.  
12046
12047 2003-11-02  Martin Baulig  <martin@ximian.com>
12048
12049         * reflection.h (MonoReflectionGenericInst): Added
12050         `MonoReflectionType *declaring_type'.
12051
12052         * reflection.c (mono_reflection_bind_generic_parameters): Use
12053         `if (tb->parent)' instead of `klass->parent'.
12054
12055 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
12056
12057         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
12058         with an empty ASSEMBLY table.
12059
12060         * reflection.c (mono_image_build_metadata): Avoid using the same loop
12061         variable in the inner and outer loops.
12062
12063 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
12064
12065         * metadata.h (mono_metadata_make_token): Put parentheses around macro
12066         argument.
12067
12068         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
12069         
12070         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
12071         icalls. Instead, do everything in managed code. This is needed since
12072         it is hard to restore the original domain etc. in unmanaged code in the
12073         presence of undeniable exceptions.
12074
12075         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
12076         New icalls to push and pop appdomain refs.
12077
12078 2003-10-31  Martin Baulig  <martin@ximian.com>
12079
12080         * class.c (inflate_generic_type): Renamed to
12081         mono_class_inflate_generic_type() and made it public.
12082
12083         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
12084         New interncall.
12085
12086         * loader.c (mono_field_from_memberref): Also set the retklass for
12087         typespecs.
12088
12089         * fielder.c (mono_image_get_inflated_field_token): New static
12090         method; creates a metadata token for an inflated field.
12091         (mono_image_create_token, fixup_method): Added support for
12092         "MonoInflatedField".
12093         (fieldbuilder_to_mono_class_field): New static function.
12094         (mono_reflection_inflate_field): New public function.
12095
12096         * reflection.h
12097         (MonoReflectionGenericInst): Added `MonoArray *fields'.
12098         (MonoReflectionInflatedField): New typedef.     
12099
12100 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
12101
12102         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
12103         for Solaris and other platforms without s6_addr16
12104
12105 2003-10-30  Martin Baulig  <martin@ximian.com>
12106
12107         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
12108         argument instead of two.
12109         (mono_class_inflate_generic_signature): Likewise.
12110         (inflate_generic_header): Likewise.
12111         (mono_class_inflate_generic_method): Likewise.  In addition, if
12112         `ginst->klass' is set, it becomes the new `method->klass'.
12113
12114         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
12115         field.
12116
12117         * reflection.c (encode_generic_method_sig): Write a 0xa as the
12118         first byte. [FIXME]
12119         (method_encode_methodspec): If we have generic parameters, create
12120         a MethodSpec instead of a MethodRef.
12121         (fixup_method): Added support for "MonoInflatedMethod" and
12122         "MonoInflatedCtor".
12123         (mono_image_create_token): Added support for "MonoInflatedMethod"
12124         and "MonoInflatedCtor".
12125         (inflated_method_get_object): New static function; returns a
12126         managed "System.Reflection.MonoInflatedMethod" object.
12127         (mono_reflection_bind_generic_method_parameters): Return a
12128         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
12129         (mono_reflection_inflate_method_or_ctor): Likewise.
12130         (mono_image_get_generic_method_param_info): Initialize unused
12131         fields to zero.
12132         (mono_image_get_generic_param_info): Likewise.
12133
12134         * reflection.h (MonoReflectionInflatedMethod): New public
12135         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
12136         "S.R.MonoInflatedCtor" classes.
12137
12138         * loader.c (method_from_memberref): If we're a TypeSpec and it
12139         resolves to a generic instance, inflate the method.
12140
12141 2003-10-28  Dick Porter  <dick@ximian.com>
12142
12143         * object.c (mono_runtime_run_main): Convert command-line arguments
12144         into utf8, falling back to the user's locale encoding to do so.
12145
12146 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
12147
12148         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
12149         at this time.
12150
12151         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
12152
12153         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
12154         up icalls at method definition time. Partially fixes #33569.
12155
12156 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
12157
12158         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
12159         marshalling of arrays. Fixes #50116.
12160
12161         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
12162
12163         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
12164         points to a vtable in the dying appdomain.
12165
12166         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
12167         listeners into unmanaged code inside the lock.
12168
12169         * object.c (mono_class_vtable): Turn off typed allocation in non-root
12170         domains and add some comments.
12171
12172 2003-10-25  Martin Baulig  <martin@ximian.com>
12173
12174         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
12175
12176         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
12177
12178         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
12179         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
12180         currently parsing.  Create the generic class and store it in
12181         `generic_inst->klass' before parsing the type arguments.  This is
12182         required to support "recursive" definitions; see mcs/tests/gen-23.cs
12183         for an example.
12184         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
12185         to support recursive typespec entries.
12186
12187         * class.c (mono_class_setup_parent): If our parent is a generic
12188         instance, we may get called before it has its name set.
12189         (mono_class_from_generic): Splitted into
12190         mono_class_create_from_generic() and mono_class_initialize_generic().
12191
12192 2003-10-25  Martin Baulig  <martin@ximian.com>
12193
12194         * icall.c (ves_icall_Type_BindGenericParameters): Return a
12195         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
12196         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
12197         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
12198
12199         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
12200         (create_typespec): Likewise.
12201         (mono_reflection_bind_generic_parameters): Return a
12202         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
12203         (mono_reflection_inflate_method_or_ctor): New public function.
12204
12205         * reflection.h (MonoReflectionGenericInst): New typedef.        
12206
12207 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
12208
12209         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
12210         inside the domain lock. Fixes #49993.
12211         
12212         * object.c (mono_class_vtable): When typed allocation is used, 
12213         allocate vtables in the GC heap instead of in the mempool, since the
12214         vtables contain GC descriptors which are used by the collector even
12215         after the domain owning the mempool is unloaded.
12216
12217         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
12218
12219         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
12220         reflect what it does. Also invalidate mempools instead of freeing
12221         them if a define is set.
12222
12223         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
12224         of the appdomain.
12225         
12226         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
12227         hold the finalizable objects in this domain.
12228
12229         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
12230         appdomain.
12231
12232         * appdomain.c (mono_domain_set): New function to set the current
12233         appdomain, but only if it is not being unloaded.
12234
12235         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
12236         appdomain which is being unloaded.
12237         
12238         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
12239         unloading of the root appdomain.
12240
12241         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
12242         icall to execute a method in another appdomain. Intended as a 
12243         replacement for InternalSetDomain, which can confuse the code 
12244         generation in the JIT.
12245
12246         * appdomain.c (mono_domain_is_unloading): New function to determine
12247         whenever an appdomain is unloading.
12248
12249         * appdomain.c (mono_domain_unload): New function to correctly unload
12250         an appdomain.
12251
12252         * assembly.c (mono_assembly_load_references): Check that an assembly
12253         does not references itself.
12254
12255         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
12256         domain manually, it asks the finalizer thread to do it, then waits for
12257         the result. Also added a timeout.
12258
12259         * icall.c: Register the new icalls.
12260
12261         * threads.h threads.c: Export the mono_gc_stop_world and 
12262         mono_gc_start_world functions.
12263         
12264         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
12265         function to fill out the mempool with 0x2a.
12266
12267 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
12268
12269         * reflection.h (MonoReflectionMethodAux): New structure to store
12270         information which is rarely used, thus is not in the MonoMethod
12271         structure.
12272
12273         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
12274         store the aux info.
12275
12276         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
12277         and marshalling info into the aux structure.
12278
12279         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
12280         from the aux structure.
12281
12282         * loader.c (mono_method_get_param_names): Retrieve the param names from
12283         the aux structure.
12284         
12285 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
12286
12287         * exception.h exception.c: Add AppDomainUnloadedException && fix 
12288         warning.
12289
12290 2003-10-21  Dick Porter  <dick@ximian.com>
12291
12292         * socket-io.c
12293         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
12294         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
12295
12296 2003-10-21  Martin Baulig  <martin@ximian.com>
12297
12298         * reflection.c (mono_reflection_bind_generic_parameters):
12299         `klass->parent' is NULL for interfaces.
12300
12301 2003-10-21  Martin Baulig  <martin@ximian.com>
12302
12303         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12304
12305 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
12306
12307         * exception.c (mono_exception_from_name_msg): New helper function for
12308         creating exceptions and initializing their message field.
12309
12310         * exception.c: Simplify functions using the new helper.
12311
12312         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
12313         New function.
12314
12315         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
12316         mono_raise_exception, since otherwise gcc doesn't generate the function
12317         epilog for raise_exception, confusing the stack unwinding in the JIT.
12318         Fixes #45043.
12319
12320         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
12321         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
12322         Fixes #49499.
12323
12324 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12325
12326         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
12327         utf8.
12328
12329 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
12330
12331         * icall.c: Removed GetUninitializedObject method because
12332           AllocateUninitializedClassInstance does the same.
12333
12334 2003-10-18  Martin Baulig  <martin@ximian.com>
12335
12336         * class.c (inflate_generic_signature): Renamed to
12337         mono_class_inflate_generic_signature() and made it public.
12338         (my_mono_class_from_generic_parameter): New static function; if we
12339         don't already have the generic parameter's MonoClass, create a
12340         very simple one which is just used internally in the runtime and
12341         not passed back to managed code.
12342
12343         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
12344
12345         * metadata.h (MonoMethodSignature): Moved the
12346         `MonoGenericParam *gen_params' to the MonoMethodHeader.
12347         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
12348
12349         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
12350         ves_icall_MonoMethod_GetGenericArguments(); this is now an
12351         interncall on the MonoMethod class, not on MethodInfo.
12352         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
12353         calling mono_reflection_bind_generic_method_parameters() directly.
12354
12355         * loader.c (mono_method_get_signature): If this is a MethodSpec;
12356         return the already computed `method->signature'.
12357         (method_from_methodspec): New static function to load a method
12358         from a MethodSpec entry.
12359         (mono_get_method_from_token): Call the new method_from_methodspec()
12360         for MethodSpec tokens.  
12361         (mono_get_method_from_token): If we're a generic method, load the
12362         type parameters.
12363
12364         * reflection.c (mono_image_get_memberref_token): Allow
12365         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
12366         table.
12367         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
12368         (mono_image_create_token): First check whether it's a generic
12369         method (so we'd need to create a MethodSpec), then do the other
12370         two alternatives.
12371         (mono_reflection_bind_generic_method_parameters): Return a
12372         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
12373         called directly from the interncall.
12374
12375 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
12376
12377         * reflection.c (load_public_key): Move loading of the public key
12378         into managed code.
12379
12380         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
12381
12382         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
12383         fields.
12384
12385         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
12386         culture, hash_alg and public_key. Fixes #49555.
12387
12388 2003-10-17  Martin Baulig  <martin@ximian.com>
12389
12390         * class.h (MonoGenericInst): Moved this declaration here and added
12391         `MonoMethod *generic_method'.
12392
12393         * icall.c
12394         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
12395         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
12396
12397         * metadata.c (mono_metadata_type_equal): Two types of
12398         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
12399         index; ie. don't compare the address of the `MonoGenericParam'
12400         structure.
12401         (mono_metadata_load_generic_params): Removed the `MonoMethod
12402         *method' argument.
12403
12404         * metadata.h (MonoGenericInst): Moved declaration to class.h.
12405         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
12406
12407         * reflection.c (method_encode_signature): Encode the number of
12408         generic parameters.
12409         (encode_generic_method_sig): New static function.
12410         (method_encode_methodspec): New static function; creates an entry
12411         in the MethodSpec table for a generic method.
12412         (mono_image_get_methodspec_token): New static function.
12413         (mono_image_create_token): Call mono_image_get_methodspec_token()
12414         for generic methods.
12415         (mono_reflection_bind_generic_method_parameters): New public
12416         function.  Instantiates a generic method.
12417
12418 2003-10-16  Martin Baulig  <martin@ximian.com>
12419
12420         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
12421         *gen_params' here from MonoMethodHeader.
12422
12423         * metadata.c (mono_metadata_parse_method_signature): If we have
12424         generic parameters, initialize `method->gen_params' and then set
12425         the correct `type->data.generic_param' in all the parameters.
12426
12427 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
12428
12429         * threads.c (mono_threads_get_default_stacksize): New function to 
12430         return the default stacksize.
12431
12432         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
12433         termination of the finalizer thread, since the previous method had
12434         race conditions. Fixes #49628.
12435
12436         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
12437         as for the other managed threads.
12438
12439 2003-10-16  Martin Baulig  <martin@ximian.com>
12440
12441         * class.c (inflate_generic_signature): Copy `generic_param_count'
12442         and `gen_params'.
12443
12444         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
12445         New interncall.
12446
12447         * metadata.c (mono_metadata_parse_method_signature): Actually set
12448         the `method->generic_param_count' here.
12449         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
12450
12451 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
12452
12453         * object.h: Add a new field to TypedRef to simplify the implementation
12454         of the REFANY opcodes in the JIT.
12455
12456         * icall.c: Make use of the new field.
12457
12458         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
12459         dynamically.
12460
12461 2003-10-15  Martin Baulig  <martin@ximian.com>
12462
12463         * class.c (mono_class_from_gen_param): Renamed to
12464         mono_class_from_generic_parameter() and moved most of the
12465         functionality from mono_reflection_define_generic_parameter()
12466         here; ie. we create a "real" class here.
12467         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
12468         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
12469         previously been called.
12470
12471         * class.h (MonoGenericParam): Moved the declaration of this struct
12472         here from metadata.h and added `MonoMethod *method'.
12473
12474         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
12475         interncall.
12476
12477         * loader.c (mono_get_method_from_token): If we have any generic
12478         parameters, call mono_metadata_load_generic_params() to read them
12479         from the MONO_TABLE_GENERICPAR.
12480
12481         * metadata.c (mono_metadata_load_generic_params): Added
12482         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
12483
12484         * metadata.h (MonoMethodSignature): Replaced
12485         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
12486         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
12487
12488         * reflection.c (mono_reflection_define_generic_parameter): Moved
12489         most of the functionality into the new
12490         mono_class_from_generic_parameter(); set the `method' field if
12491         we're a method parameter.       
12492
12493 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12494
12495         * marshal.c (emit_struct_conv): if native size is 0
12496         emit no code.
12497
12498 2003-10-14  Martin Baulig  <martin@ximian.com>
12499
12500         * icall.c: The generics API has changed in the spec since it was
12501         added to System.Type; these modifications make it match the spec
12502         again.
12503         (ves_icall_Type_GetGenericParameters): Renamed to
12504         `ves_icall_Type_GetGenericArguments'.
12505         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12506         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12507         `ves_icall_MonoType_get_HasGenericArguments'.
12508         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12509         `ves_icall_MonoType_get_IsGenericParameter'.
12510         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12511         this is no interncall anymore.
12512         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12513         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12514
12515 2003-10-14  Martin Baulig  <martin@ximian.com>
12516
12517         * reflection.c (mono_reflection_bind_generic_parameters): Also
12518         inflate generic methods if we're reading the class from IL.
12519
12520 2003-10-13  Martin Baulig  <martin@ximian.com>
12521
12522         * reflection.c (mono_reflection_define_generic_parameter): This
12523         method isn't called directly from the icall anymore; take a
12524         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12525         method generic parameters.
12526         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12527         (method_builder_encode_signature): Encode generic parameters.
12528         (mono_image_get_method_info): Write generic params to the
12529         MONO_TABLE_GENERICPARAM table.
12530
12531         * reflection.h (MonoReflectionMethodBuilder): Added
12532         `MonoArray *generic_params'.
12533
12534         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12535
12536         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12537         wrapper for mono_reflection_define_generic_parameter().
12538         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12539
12540 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12541
12542         * marshal.h: Add missing function to fix build.
12543
12544         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12545         the SetLastError pinvoke attribute.
12546
12547         * marshal.c (mono_marshal_set_last_error): New helper function called
12548         by the generated code.
12549         
12550         * marshal.c (mono_mb_emit_branch): New helper function.
12551
12552         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12553
12554         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12555         classes as parameters and return values of delegates. Fixes #29256. 
12556
12557 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12558
12559         * locales.c: use gint32 in non HAVE_ICU case
12560
12561 2003-10-11  Martin Baulig  <martin@ximian.com>
12562
12563         * mono-debug.c (mono_debug_add_method): Added a workaround for
12564         bug #48591.
12565
12566 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12567
12568         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12569         delegates passed to native code must use the STDCALL calling 
12570         convention. Fixes #35987.
12571
12572 2003-10-10  Martin Baulig  <martin@ximian.com>
12573
12574         * class.c (inflate_generic_type): If we're inflating for a generic
12575         type instance (and not for a generic method), return
12576         MONO_TYPE_MVAR unchanged.
12577
12578 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12579
12580         * string-icalls.c: Join ignores null strings in the source array.
12581         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12582         * threads.c: GetAvailableTheads is slightly more accurate.
12583
12584 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12585
12586         * threads.h threads.c : add mono_threads_set_default_stacksize
12587         and pass default to CreateThread calls.
12588
12589 2003-10-09  Dick Porter  <dick@ximian.com>
12590
12591         * icall.c:
12592         * locales.h:
12593         * locales.c: Internal calls for constructing CultureInfo and
12594         related objects from libicu (if its available.)
12595
12596 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12597
12598         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12599
12600 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12601
12602         * threadpool.c: added an argument to async_invoke_thread that is the
12603         item to process, pass the MonoAsyncResult to the thread start function
12604         when creating a new thread. This way we don't need to acquire any lock
12605         when we're creating a new thread. Readded a semaphore for faster
12606         response times (instead of that Sleep i added).
12607
12608 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12609
12610         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12611         get daylight change dates better on Windows, fix handling
12612         of platforms without tm_gmtoff.
12613
12614 2003-10-06  Martin Baulig  <martin@ximian.com>
12615
12616         * class.c (inflate_generic_method): Renamed to
12617         mono_class_inflate_generic_method() and made public.
12618         (mono_class_init): Don't inflate the generic methods here.
12619         (mono_class_from_generic): Added `gboolean inflate_methods'
12620         argument.  Inflate the methods here.
12621
12622         * loader.c (mono_method_get_param_names): Ignore instances of
12623         generic types for the moment.
12624
12625         * reflection.c (fixup_method): Added support for inflated methods.
12626         (mono_image_create_token): Use mono_image_get_methodref_token()
12627         for inflated methods.
12628         (mono_custom_attrs_from_param): Ignore instances of generic types
12629         for the moment.
12630         (mono_reflection_bind_generic_parameters): New public function.
12631         Moved all the functionality from
12632         ves_icall_Type_BindGenericParameters() here and added support for
12633         dynamic types.
12634         (mono_reflection_define_generic_parameter): Initialize
12635         `klass->methods' here.
12636
12637         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12638         functionality into mono_reflection_define_generic_parameter().
12639         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12640         TypeBuilder, return that TypeBuilder.
12641
12642 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12643
12644         * appdomain.c: removed mono_delegate_semaphore.
12645
12646         * threadpool.c:
12647         (mono_thread_pool_add): moved hash table creation inside and the thread 
12648         creation outside of the critical region.
12649         (mono_thread_pool_finish): removed obsolete code.
12650         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12651         continue or exit the thread depending on the queue.
12652
12653 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12654
12655         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12656         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12657         handle more bool marshalling options
12658
12659 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12660
12661         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12662         arrays of structs. Also add a more descriptive error message when
12663         a structure member is marshalled as LPArray.
12664
12665 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12666
12667         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12668         marshalling arrays of complex types. Fixes #29098. Also remove an
12669         usused and incomplete function.
12670
12671 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12672
12673         * gc.c: report heap_size - free_bytes as total memory allocated
12674         (bug#49362).
12675
12676 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
12677
12678         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
12679         fix timezone handling problems on Windows.
12680         
12681         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
12682         asserts when the year is outside the range handled by ms the functions.
12683
12684         * class.c (setup_interface_offsets): If the class is an interface,
12685         fill out its interface_offsets slot.
12686
12687 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12688
12689         * threadpool.c: mark threadpool threads as background.
12690
12691 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
12692
12693         * decimal.c - define DECINLINE to nothing if not using GCC
12694
12695 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
12696
12697         * assembly.c: More refcount fixes.
12698
12699 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12700
12701         * string-icalls.c: if we're not trimming, return the same string.
12702         When not splitting, don't create a new string.
12703
12704 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12705
12706         * image.c:
12707         (mono_image_open): increment the ref_count inside the critical section.
12708
12709 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
12710
12711         * image.c (mono_image_open): Fix reference counting bug.
12712
12713 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
12714
12715         * marshal.c (mono_marshal_type_size) struct alignment changed for 
12716         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
12717         64bits. Avoid leak in mono_marshal_get_native_wrapper when
12718         mono_lookup_pinvoke_call throws.        
12719
12720 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
12721
12722         * reflection.c (mono_reflection_parse_type): Fix #49114.
12723
12724         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
12725         temporary workaround for cygwin header problem.
12726
12727         * object.c (mono_object_isinst): Synchronize this with the code
12728         generated by the JIT for casts.
12729
12730 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
12731
12732         * reflection.c (encode_type): Fix #38332.
12733
12734 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
12735
12736         * marshal.c (mono_marshal_method_from_wrapper): New function to return
12737         the original method from the wrapper method.
12738
12739 2003-09-25  Martin Baulig  <martin@ximian.com>
12740
12741         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
12742         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
12743         (ves_icall_Type_get_IsGenericInstance): New interncall.
12744
12745 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
12746
12747         * object.c: fix cast warning in big endian code.
12748
12749 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
12750
12751         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
12752         
12753 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12754
12755         * assembly.c: don't call check_env from mono_assembly_load. It's
12756         already done once in mono_assemblies_init and may cause headaches when
12757         multiple threads are loading assemblies.
12758
12759 2003-09-19  Martin Baulig  <martin@ximian.com>
12760
12761         * reflection.c (mono_reflection_define_generic_parameter): Don't
12762         allocate `klass->methods', set `klass->flags' to
12763         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
12764
12765 2003-09-18  Martin Baulig  <martin@ximian.com>
12766
12767         * class.c (mono_class_init): Don't create `class->methods' if it's
12768         already initialized.
12769
12770         * metadata.c (mono_metadata_load_generic_params): Make this
12771         actually work.
12772
12773         * reflection.c (mono_reflection_define_generic_parameter): Set
12774         parent class and interfaces from the constraints.
12775
12776         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
12777         to keep this struct in sync with the declaration in TypeBuilder.cs.
12778
12779 2003-09-17  Martin Baulig  <martin@ximian.com>
12780
12781         * metadata.h (MonoType): Replaced the data's `int type_param'
12782         field with `MonoGenericParam *generic_param'.
12783         (MonoGenericParam): Added `MonoClass *klass'.
12784
12785         * class.c (mono_class_from_gen_param): Removed the
12786         `MonoImage *image' and `int type_num' arguments.
12787
12788         * metadata.c (mono_metadata_parse_generic_param): New static
12789         method; creates a MonoGenericParam which just contains the index.
12790         (do_mono_metadata_parse_type): Call
12791         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
12792         MONO_TYPE_MVAR.
12793
12794         * reflection.c (mono_image_typedef_or_ref): Generic type
12795         parameters may be in the same assembly, but never use a typedef
12796         for them.
12797         (mono_reflection_define_generic_parameter): We're now creating a
12798         "real" class for the type parameter; it's now safe to call
12799         mono_class_from_mono_type() on the class'es type, it'll do the
12800         right thing.
12801
12802 2003-09-16  Martin Baulig  <martin@ximian.com>
12803
12804         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
12805         `symfile->range_entry_size' and `symfile->class_entry_size' here;
12806         the `symfile' data structure must be fully initialized before it
12807         gets added to the table.
12808
12809 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
12810
12811         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
12812
12813         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
12814         class init trampolines.
12815
12816 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
12817
12818         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
12819         to the built-in profiler to turn off time and allocation profiling
12820         respectively.
12821
12822 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
12823
12824         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
12825         g_direct_equal.
12826
12827         * debug-helpers.c (mono_method_full_name): Print the wrapper type
12828         in human readable form.
12829
12830 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
12831
12832         * reflection.c icall.c: Fixed warnings.
12833
12834         * image.c (load_class_names): Use a temporary hash table to hold the
12835         namespaces in order to avoid doing many string comparisons.
12836
12837         * image.h: Fix typo.
12838
12839         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
12840         Pass NULL instead of g_direct_equal to the GHashTable constructor 
12841         since the NULL case is short-circuited inside g_hash_table_lookup, 
12842         leading to better performance.  
12843
12844         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
12845         obtain the first custom attribute for a given index. Depends on the
12846         CustomAttribute table being sorted by the parent field.
12847
12848         * reflection.c (mono_custom_attrs_from_index): Use the new function 
12849         for better performance.
12850
12851 2003-09-07  Martin Baulig  <martin@ximian.com>
12852
12853         * class.c (mono_class_init): If we're a generic instance, inflate
12854         all our methods instead of loading them from the image.
12855         (mono_class_from_generic): Set `class->methods = gklass->methods'.
12856
12857 2003-09-07  Martin Baulig  <martin@ximian.com>
12858
12859         * mono-debug-debugger.c: Added support for constructors.
12860
12861 2003-09-06  Martin Baulig  <martin@ximian.com>
12862
12863         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
12864         New interncall.
12865
12866         * reflection.c (mono_reflection_setup_generic_class): Call
12867         ensure_runtime_vtable() to create the vtable.
12868
12869 2003-09-05  Martin Baulig  <martin@ximian.com>
12870
12871         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
12872         MONO_TYPE_MVAR.
12873
12874 2003-09-04  Martin Baulig  <martin@ximian.com>
12875
12876         * reflection.c (mono_reflection_define_generic_parameter): Generic
12877         parameters start with zero.
12878
12879 2003-09-04  Martin Baulig  <martin@ximian.com>
12880
12881         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12882
12883         * reflection.h (MonoReflectionGenericParam): New typedef.
12884         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
12885         the generic parameters from the managed TypeBuilder.
12886
12887         * reflection.c (mono_reflection_define_generic_parameter): New function.
12888         (mono_reflection_create_runtime_class): Encode generic parameters.
12889         (mono_reflection_setup_generic_class): New function; this is
12890         called after adding adding all generic params to the TypeBuilder.
12891         (encode_type): Added MONO_TYPE_VAR.
12892
12893 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
12894
12895         * class.h class.c (mono_class_needs_cctor_run): Moved this method
12896         here from the JIT.
12897
12898         * assembly.h assembly.c: Moved the AOT loading code into an assembly
12899         load hook.
12900
12901 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
12902
12903         * reflection.h reflection.c class.h class.c: Delete duplicate 
12904         definition of mono_type_get_name () from reflection.c and export the
12905         one in class.c.
12906
12907         * class.c: Class loading fixes from Bernie Solomon 
12908         (bernard@ugsolutions.com).
12909
12910         * reflection.c: Endianness fixes from Bernie Solomon 
12911         (bernard@ugsolutions.com).
12912         
12913 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
12914
12915         * assembly.h assembly.c: Define a file format version for AOT
12916         libraries.
12917         
12918         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
12919
12920         * appdomain.h (MonoJitInfo): New field to determine whenever the
12921         code is domain neutral.
12922         
12923 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
12924
12925         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
12926
12927 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
12928
12929         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
12930         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
12931         Avoid caching the result since strings must be domain specific. Fixes
12932         #48050.
12933
12934 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
12935
12936         * marshal.c (mono_marshal_init): Make this callable multiple times
12937         since it is hard to find a correct place to call it.
12938
12939         * object.c (mono_runtime_class_init): Execute static constructors in
12940         the correct appdomain.
12941
12942         * image.c (build_guid_table): Handle the case when multiple images have
12943         the same GUID.
12944
12945 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12946
12947         * icall.c: added a couple of icalls for System.Web.
12948
12949 2003-08-28  Martin Baulig  <martin@ximian.com>
12950
12951         * icall.c (ves_icall_Type_BindGenericParameters): Use
12952         `klass->generic_inst' instead of `&klass->byval_arg' in the
12953         mono_type_get_object() call.  The returned type must be
12954         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
12955
12956 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
12957
12958         * NOTES: New file.
12959
12960         * object.c (mono_class_proxy_vtable): Make it thread safe.
12961
12962         * pedump.c: Fix warning.
12963
12964         * object.c appdomain.h: Get rid of metadata_section. 
12965         It is no longer needed and it was causing deadlocks with domain->lock.
12966
12967         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
12968
12969 2003-08-26  Martin Baulig  <martin@ximian.com>
12970
12971         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
12972
12973 2003-08-26  Martin Baulig  <martin@ximian.com>
12974
12975         * pedump.c (main): Call mono_metadata_init(),
12976         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
12977         and mono_loader_init().
12978
12979 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
12980
12981         * loader.h: Add missing include to fix build.
12982
12983         * image.h: mono_image_load_references is no more.
12984
12985         * assembly.c: Reworked assembly loading to make it really thread safe.
12986         After these changes, the assembly returned by mono_assembly_open is
12987         fully initialized, i.e. all its references assemblies are loaded.
12988
12989         * assembly.c (mono_image_load_references): Renamed to 
12990         mono_assembly_load_references, and made private, since clients no
12991         longer need to call it.
12992
12993         * class.c: Removed calls to mono_assembly_load_references, since it was
12994         a source of deadlocks.
12995
12996         * loader.h loader.c class.h class.c: Protect data structures using a 
12997         new lock, the loader lock.
12998
12999         * class.c (mono_class_setup_vtable): Create temporary hash tables and
13000         GPtrArrays only when needed.
13001
13002         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
13003         into empty structures by mcs. Fixes pinvoke7.cs.
13004         
13005         * domain.c (mono_init): Call a new initialization function.
13006
13007         * appdomain.c (mono_runtime_init): Call the new initializer function
13008         of the marshal module.
13009
13010         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
13011         inserted into empty structures by mcs. Fixes pinvoke7.cs.
13012
13013         * marshal.h marshal.c: Added locks around the wrapper caches to make
13014         this module thread safe.
13015
13016         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
13017         this argument. Fixes pinvoke1.exe.
13018
13019 2003-08-25  Lluis Sanchez <lluis@ximian.com>
13020
13021         * object.h: Added call_type field to MonoMethodMessage and the corresponding
13022         enumeration of values. Removed fields to store remote call output values in
13023         MonoAsyncResult. Not needed any more.
13024         * object.c: Initialize call_type and async_result fields in mono_message_init.
13025         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
13026         dispatching the message.
13027         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
13028         async call to finish. To do it use a message with EndInvoke call type.
13029
13030 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
13031
13032         * loader.h loader.c (mono_method_hash_marhal_info): New function which
13033         determines whenever a method has marshalling info.
13034
13035 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13036
13037         * assembly.c: fix the build on windows.
13038
13039 2003-08-22 Lluis Sanchez <lluis@ximian.com>
13040
13041         * object.cs: Fixed bug #47785.
13042
13043 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
13044
13045         * string-icalls.c (StringReplace): If their are no occurances of
13046         the old string found return a reference to the supplied
13047         string. This saves some memory and matches MS behavoir.
13048         
13049 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13050
13051         * socket-io.c: fixed compilation for systems that define AF_INET6
13052         and don't define SOL_IP/SOL_IPV6.
13053
13054 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
13055
13056         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
13057         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
13058
13059         * rawbuffer.c rawbuffer.h: Make this module thread safe.
13060
13061         * domain.c: Make this module thread safe.
13062
13063         * domain.c (mono_init): Call new initialization function.
13064
13065         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
13066         reference types too. Fixes #38812.
13067
13068         * image.c (mono_image_init): Fixed warnings.
13069
13070         * class.c (mono_class_from_typeref): Handle assembly load failure
13071         correctly.
13072
13073         * appdomain.c (add_assemblies_to_domain): Handle the case when
13074         the references of an assembly are not yet loaded.
13075
13076         * metadata.c image.c assembly.c: Moved initialization of global
13077         variables to a separate function called at startup since lazy 
13078         initialization of these variables is not thread safe.
13079         
13080         * image.c assembly.c: Made this module thread safe by adding locks in 
13081         the appropriate places.
13082
13083         * domain.c (mono_init): Call the new initialization functions of the
13084         three modules.
13085
13086 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
13087
13088         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
13089           make a direct call. It is proxy's work to make the call asynchronous.
13090           mono_delegate_end_invoke(): If the targe is a proxy, just collect
13091           the return values.
13092         * object.cs: mono_method_call_message_new(): read AsyncResult and
13093           state object from parameters list, if this info is requested.
13094         * object.h: Added fields to store remote call output values in
13095           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
13096
13097 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13098
13099         * object.h: add needed fields to MonoThread.
13100         * threads.c, threads.h: allow registering a function to cleanup data
13101         allocated per thread by the JIT.
13102
13103 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13104
13105         * loader.h: portability fix by Bernie Solomon
13106         * <bernard@ugsolutions.com>.
13107
13108 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
13109
13110         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
13111         return a MonoArray. This simplifies the code and also ensures that
13112         the cache allways contains an object reference as a value.
13113
13114         * icall.c (ves_icall_get_parameter_info): Simplified using the new
13115         function.
13116
13117 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13118
13119         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
13120         fixes a problem with byte ordering when getting the address family for
13121         a socket.
13122
13123 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
13124
13125         * .cvsignore: Added monosn.
13126
13127         * reflection.h reflection.c loader.c: Added support for parameter
13128         marshalling to dynamically created types. Fixes #47295.
13129
13130 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
13131
13132         * rand.c: remove useless warnings.
13133
13134 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13135
13136         * class.c: implemented ldtoken for methods and fieldrefs.
13137
13138 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13139
13140         * threadpool.c: when mono_async_invoke was called, no one took care of
13141         monitoring the queue. So if the method invoked took some time and we
13142         got new async invoke requests after 500 ms (the thread created waited
13143         that long in WaitForSingleObject), the new async invoke was not called
13144         until the previous one finished.
13145
13146         This is fixed now. Thanks to Totte for helping with it.
13147
13148 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13149
13150         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
13151
13152 2003-08-11  Martin Baulig  <martin@ximian.com>
13153
13154         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
13155
13156 2003-08-06  Martin Baulig  <martin@ximian.com>
13157
13158         * mono-debug-debugger.c: Added support for static fields,
13159         properties and methods.
13160
13161 2003-08-06  Martin Baulig  <martin@ximian.com>
13162
13163         * mono-debug-debugger.c: Don't store the MonoString's vtable to
13164         make this work for applications with multiple application domains.
13165
13166 2003-08-04  Martin Baulig  <martin@ximian.com>
13167
13168         * mono-debug-debugger.c: Completely reworked the type support; the
13169         most important thing is that we're now just using one single
13170         `MonoType' instance per type.
13171
13172 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
13173
13174         * mono-endian.h, mono-endian.c, icall.c: Added icall
13175         ves_icall_System_Double_AssertEndianity to assert double word endianity
13176         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
13177
13178 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13179
13180         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
13181         support, icalls and fixes.
13182
13183 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
13184
13185         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
13186         classes that are a punctuation character in .NET is not the same a
13187         g_unichar_ispunct.
13188
13189 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13190
13191         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
13192
13193 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
13194
13195         * icall.c: Add new MemCopy internalcall.
13196         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
13197         Simplified code; It is not necessary to handle all the cases here,
13198         as the C# code takes care of it.  Only handle the case of the name
13199         resource embedded into the assembly.
13200
13201         Changed signature to return the data pointer and the size of the
13202         data. 
13203
13204 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
13205
13206         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
13207         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
13208
13209 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13210
13211         * socket-io.c: ignore EINTR error in select.
13212
13213 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13214
13215         * class.h, class.c: removed unused subclasses field in MonoClass.
13216
13217 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13218
13219         * icall.c: improve fix of get_base_definition(). If the parent class
13220           doesn't have the mehod, look at the parent of the parent.
13221         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
13222           to check if a parameter is an in or out parameter
13223           (PARAM_ATTRIBUTE_IN is not set by default).
13224           mono_method_return_message_restore(): Use mono_class_value_size to
13225           get the size of a value type. mono_type_stack_size (parameterType)
13226           does not return the correct value if parameterType is byRef.
13227           mono_load_remote_field(), mono_load_remote_field_new(),
13228           mono_store_remote_field(), mono_store_remote_field_new():
13229           raise exception if the remote call returns an exception.
13230
13231 2003-07-28  Martin Baulig  <martin@ximian.com>
13232
13233         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
13234         method.  This is a wrapper around mono_runtime_invoke() which
13235         boxes the instance object if neccessary.
13236
13237 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13238
13239         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
13240         metadata.h, row-indexes.h, verify.c: first cut of generics support.
13241
13242 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13243
13244         * icall.c: disable mcs bug workaround.
13245
13246 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
13247
13248         * object.c (mono_runtime_class_init): Take the metadata_section
13249         mutex before obtaining the domain mutex.
13250
13251         * appdomain.h: Added definition of metadata_section mutex here. 
13252
13253         * object.c: define metadata_mutex here.
13254
13255 2003-07-24  Ravi Pratap  <ravi@ximian.com>
13256
13257         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
13258         fixed.
13259
13260 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
13261
13262         * reflection.c: Fix bug #46669
13263
13264 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13265
13266         * exception.c:
13267         * exception.h:
13268         * icall.c:
13269         * object.h: fill in the type name for TypeLoadException.
13270
13271 2003-07-23  Ravi Pratap  <ravi@ximian.com>
13272
13273         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
13274         relationship between TypeBuilders while compiling corlib) and bug
13275         45993 (Array types returned from the runtime while compiling
13276         corlib were from the loaded corlib).
13277
13278 2003-07-22  Martin Baulig  <martin@ximian.com>
13279
13280         * mono-debug-debugger.c: Reworked the type support a bit more;
13281         distinguish between types and classes.
13282
13283 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
13284
13285         * icall.c: add IsArrayImpl icall.
13286
13287 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
13288
13289         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
13290         initializing real_size only once. Also fix bug #46602.
13291
13292 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
13293
13294         * object.c: Renamed mono_metadata_section to metadata_section.
13295
13296 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
13297
13298         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
13299           empty array if the type is an array. Fixed.
13300           ves_icall_MonoMethod_get_base_definition: if the base method
13301           is abstract, get the MethodInfo from the list of methods of
13302           the class.
13303         * reflection.c: ParameterInfo.PositionImpl should be zero-based
13304           and it was 1-based. Fixed in mono_param_get_objects.
13305
13306 2003-07-20  Martin Baulig  <martin@ximian.com>
13307
13308         * mono-debug.h: Set version number to 31.
13309         (mono_debug_init): Added `MonoDomain *' argument.
13310
13311         * mono-debug-debugger.c: Reworked the type support; explicitly
13312         tell the debugger about builtin types; pass the `klass' address to
13313         the debugger.
13314
13315 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
13316
13317         * image.c: Allow new metadata tables to be loaded without a
13318         warning. Also update the warning message to give the new constant value.
13319                 
13320 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
13321
13322         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
13323         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
13324         array type representation changes.
13325
13326 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13327
13328         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
13329         on Environment.Exit () call.
13330
13331 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13332
13333         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
13334         requires a matching corlib.
13335
13336 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13337
13338         * Changelog: My editor decided to add a CR to each line. Sorry about that.
13339           Committed again without the CRs.
13340         
13341 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13342
13343         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
13344           getting it from the "this" socket instance. Did not work
13345           if the socket is a subclass of Socket.
13346           Also fixed bug #35371.
13347
13348 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13349
13350         * metadata.c: fixed size for TypedByRef.
13351         * loader.c: when searching for a method, consider the vararg amrker.
13352         * unicode.c, decimal.c: constify some arrays.
13353
13354 2003-07-15  Dick Porter  <dick@ximian.com>
13355
13356         * socket-io.c: Fixed compilation for gcc < 3.2.
13357
13358         Fixed compilation for machines that don't have AF_INET6 (thanks to
13359         Bernie Solomon <bernard@ugsolutions.com> for that part.)
13360
13361         Fixed compile warnings.
13362         
13363         Fixed formatting and line endings.
13364
13365 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
13366
13367         * socket-io.h:
13368         * socket-io.c: Added IPv6 support.
13369
13370 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
13371
13372         * class.c (mono_class_is_assignable_from): New function to implement
13373         the is_assignable_from logic. Used by mono_object_isinst, 
13374         Type::IsAssignableFrom () and the interpreter.
13375
13376         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
13377         Object, even interfaces.
13378         
13379         * object.c (mono_object_isinst): Implement in terms of 
13380         is_assignable_from.
13381
13382         * icall.c (ves_icall_type_is_assignable_from): New icall.
13383
13384 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
13385
13386         * domain.c (foreach_domain): fix compiler warning.
13387
13388 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
13389
13390         * image.c (load_metadata_ptrs): use g_strndup because strndup is
13391         not available on all plattforms
13392
13393 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
13394
13395         * image.h image.c: Store the metadata version string in MonoImage.
13396         * icall.c: New icall to retrieve the image version.
13397         * reflection.c (create_dynamic_image): Fill in the image version field
13398         * reflection.c (build_compressed_metadata): Use the image version
13399         from the image structure.
13400
13401 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13402
13403         * appdomain.c: modified comment.
13404         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
13405         That will be its last iteration when mono_gc_cleanup is called from
13406         mono_runtime_cleanup and before the domain is unloaded.
13407
13408         Fixes bug #45962.
13409
13410 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
13411
13412         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
13413         attributes.
13414
13415 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13416
13417         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
13418         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
13419         Bernie Solomon <bernard@ugsolutions.com>.
13420
13421 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13422
13423         * object.c, object.h: provide mono_object_new_fast() for faster
13424         allocation in some special cases.
13425
13426 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
13427
13428         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
13429         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
13430
13431 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
13432
13433         * threadpool.c: fix leaks.
13434
13435 2003-07-01  Dick Porter  <dick@ximian.com>
13436
13437         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
13438         using MonoGHashTables.  Fixes threadpool bug posted to list.
13439
13440 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13441
13442         * image.h, image.c: added support to load an assembly from a byte array.
13443         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
13444         assembly bundle support.
13445
13446 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
13447
13448         * threadpool.c (mono_thread_pool_add): keep a reference to the
13449         AsyncResult to prevent GC
13450
13451 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13452
13453         * class.c: leak fix.
13454
13455 2003-06-25  Dick Porter  <dick@ximian.com>
13456
13457         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
13458         for the async object, the WaitHandle object will close the handle.
13459         Fixes bug 45321.
13460
13461 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13462
13463         * class.c: in mono_array_class_get (), lookup from the hash with the
13464         same type we insert: this works around a bug in
13465         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
13466         lluis. The real fix will have to wait for after the release.
13467
13468 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13469
13470         * icall.c: fix memory leak when getting type members.
13471
13472 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13473
13474         * reflection.c: added more pubtoken special cases.
13475
13476 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
13477
13478         * class.c: handle field offset correctly when class size
13479         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
13480
13481 2003-06-20  Martin Baulig  <martin@ximian.com>
13482
13483         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
13484         *image' field.
13485
13486 2003-06-20  Martin Baulig  <martin@ximian.com>
13487
13488         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
13489
13490 2003-06-20  Martin Baulig  <martin@ximian.com>
13491
13492         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13493         just distinguish between variables in registers and variables at
13494         an offset relative to a register.
13495
13496 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13497
13498         * icall.c: #ifdef out latest changes until mcs is fixed.
13499
13500 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13501
13502         * icall.c: return members in metadata order.
13503
13504 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13505
13506         * icall.c: avoid infinite loop in GetTimeZoneData.
13507
13508 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13509
13510         * icall.c: added Marshal.Prelink/All icalls.
13511
13512 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13513
13514         * object.c, object.h: fix warnings and do some overflow checking
13515         when creating arrays.
13516
13517 2003-06-17  Dick Porter  <dick@ximian.com>
13518
13519         * file-io.h:
13520         * file-io.c: File attributes need to be tweaked slightly when
13521         passed from the managed to the w32 world.
13522
13523 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13524         * profiler.h profiler-private.h profiler.c: Rework last patch
13525         based on suggestion by Paolo.
13526         
13527 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13528
13529         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13530         instruction level coverage data collection.
13531         * profiler.h profiler.c (: Added new callback function which can be
13532         used by the profiler to limit which functions should have coverage
13533         instrumentation.
13534         * profiler.c (mono_profiler_load): Call g_module_build_path to
13535         generate the file name of the profiler library.
13536
13537 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13538
13539         * profiler.c, profiler.h, profiler-private.h: added basic block 
13540         coverage profiling API.
13541
13542 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13543
13544         * reflection.c (mono_reflection_create_runtime_class): Add support
13545         for events in dynamically generated code.
13546
13547         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13548         not allocated.
13549
13550 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13551
13552         * icall.c: when getting timezone info, return reasonable values if we
13553         can't get the actual data.
13554
13555 2003-06-14  Dick Porter  <dick@ximian.com>
13556
13557         * threads.c (start_wrapper): Remove the reference to the thread
13558         object in the TLS data, so the thread object can be finalized.
13559         This won't be reached if the thread threw an uncaught exception,
13560         so those thread handles will stay referenced :-( (This is due to
13561         missing support for scanning thread-specific data in the Boehm GC
13562         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13563
13564 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13565
13566         * reflection.c: ensure streams and tables are first allocated with
13567         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13568
13569 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13570
13571         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13572
13573 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13574
13575         * reflection.c (mono_reflection_create_runtime_class): Add support for
13576         properties to dynamically created classes.
13577         * reflection.c: Fix a few places where non-MonoObjects were inserted
13578         into the tokens hashtable.
13579
13580 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13581
13582         * object.c: some support to handle out of memory exceptions.
13583
13584 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13585
13586         * marshal.c (mono_marshal_get_native_wrapper): support reference
13587         return types
13588
13589 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13590
13591         * object.h, object.c: more portability stuff from Bernie Solomon.
13592         Unexport mono_object_allocate(). Added mono_object_unbox ().
13593         Set exitcode when an unhandled exception is thrown.
13594
13595 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13596
13597         * marshal.c (mono_marshal_get_native_wrapper): use custom
13598         marshaler for return types.
13599
13600 2003-06-10  Dick Porter  <dick@ximian.com>
13601
13602         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13603         ip_mreq is available
13604
13605 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13606
13607         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13608         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13609         by Bernie Solomon <bernard@ugsolutions.com>.
13610
13611 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13612
13613         * gc.c (mono_gc_init): Avoid error message on shutdown when
13614         GC_DONT_GC=1 is used.
13615
13616         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13617         New icall to return the GUID of a module.
13618
13619 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13620
13621         * class.c: ensure instance size always includes the parent's size
13622         even whem class size is set explicitly (fixes bug#44294).
13623
13624 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13625
13626         * profiler.h, profiler.c: made the simple profiler thread-safe,
13627         get more accurate timing info. Allow the loading of an
13628         externally-developed profiler module.
13629
13630 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13631
13632         * marshal.c (mono_marshal_get_native_wrapper): improved
13633         class/byref arguments.
13634         (mono_marshal_get_native_wrapper): better string marshaling support.
13635
13636 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13637
13638         * class.c: ensure .pack and .size are handled correctly and
13639         simplified layout of static fields.
13640
13641 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13642
13643         * appdomain.c
13644         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13645
13646         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13647         current directory (fix bug 44008)
13648
13649 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13650
13651         * marshal.c (mono_marshal_get_native_wrapper): started support for
13652         custom marshalers.
13653         (mono_delegate_to_ftnptr): consider marshalling specifications
13654
13655 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13656
13657         * reflection.c, reflection.h: emit custom marshal info.
13658
13659 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13660
13661         * object.c: free the GError.
13662         * icall.c: added CloseEvent_internal.
13663         * threads.[ch]:
13664         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13665         call.
13666
13667 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13668
13669         * loader.c (mono_method_get_signature): Add support for dynamic
13670         assemblies.
13671
13672 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
13673
13674         * reflection.c: fixed bug #43905.
13675
13676 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13677
13678         * class.c, domain.c, icall.c, metadata.h, object.h: support for
13679         handling TypedReference and ArgIterator.
13680         * loader.c, loader.h: added function to get signature at call site.
13681
13682 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13683
13684         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
13685         data readonly. Buglets and warning fixes. Some MethodSpec support.
13686
13687 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13688
13689         * class.h, class.c, object.c: remove relative numbering support.
13690
13691 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
13692
13693         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
13694         free the string, until we get a chance to fix Gtk#
13695
13696 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13697
13698         * marshal.c: revert last patch.
13699
13700 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
13701
13702         * icall.c: updates for new mono_class_vtable() not calling
13703         the type constructor anymore.
13704
13705 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13706
13707         * object.h, object.c: separate vtable creation from type
13708         initialization. Make running the .cctor thread safe.
13709
13710 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
13711
13712         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
13713
13714 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
13715
13716         * loader.c (mono_get_method): consider calling convention
13717
13718 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
13719
13720         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
13721         to return the invisible global type for a module.
13722
13723         * reflection.c (mono_image_build_metadata): Emit global fields too.
13724
13725 2003-05-20  Peter Williams  <peterw@ximian.com>
13726
13727         * loader.c (mono_lookup_internal_call): Add a few newlines.
13728
13729 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
13730
13731         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
13732         literal strings.
13733
13734         * appdomain.c (set_domain_search_path): Recalculate search path when
13735         AppDomainSetup.PrivateBinPath changes.
13736
13737         * object.c (mono_class_compute_gc_descriptor): It turns out some
13738         parts of the class libs (like System.Thread) holds pointers to
13739         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
13740         to treat native int a pointer type here.
13741         
13742 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
13743
13744         * appdomain.h, domain.c: add hashtable for jump target resolution.
13745
13746 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
13747
13748         * reflection.h reflection.c icall.c: Added new icalls 
13749         GetManifestResourceInfoInternal, GetModulesInternal and support
13750         infrastructure.
13751
13752 2003-05-16  Dick Porter  <dick@ximian.com>
13753
13754         * icall.c:
13755         * file-io.h:
13756         * file-io.c: Implement System.IO.MonoIO::GetTempPath
13757
13758 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
13759
13760         * object.c: mono_store_remote_field: little fix to previous patch.
13761
13762 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13763
13764         * class.c: add constructors to array classes.
13765         * icall.c: special case array construction for InternalInvoke (),
13766
13767 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
13768
13769         * class.h class.c reflection.c object.c: Added support for field
13770         defaults in dynamically generated classes.
13771
13772 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
13773
13774         * reflection.c: properly encode charset for ddlimport.
13775
13776 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
13777
13778         * threads.c: allow compiling without GC.
13779
13780 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13781
13782         * appdomain.h, object.c, object.h, threads.c, threads.h: added
13783         handling of thread static data.
13784
13785 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13786
13787         * reflection.h, reflection.c: added mono_custom_attrs_free ().
13788
13789 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
13790
13791         * class.c (mono_array_class_get): always set the serializable flags
13792         (mono_array_class_get): always set the SEALED attribute for array types
13793
13794 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
13795
13796         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
13797         attributes (fix for bug 42021).
13798
13799 2003-05-12  Dick Porter  <dick@ximian.com>
13800
13801         * gc.c: Don't run finalizers when the finalizer thread is
13802         finishing up, because the default domain has already been
13803         destroyed.
13804
13805 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
13806
13807         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
13808         value is null, we should throw an exception.   This is slightly
13809         different than the other conventions used for the constructor.
13810
13811 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13812
13813         * socket-io.c: fixed windows build.
13814
13815 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13816
13817         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
13818
13819 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
13820
13821         * object.c (mono_string_new_wrapper): Compatibility fix for MS
13822         compilers.
13823
13824 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
13825
13826         * class.c (mono_class_layout_fields): Add experimental GC aware
13827         auto layout facility. Requires class library changes to work correctly.
13828
13829         (mono_class_setup_vtable): Avoid overriding explicit interface
13830         method implementations. Fixes iface3.exe test.
13831
13832         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
13833         object reference.
13834         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
13835         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
13836
13837         * metadata.h: Add new type classification macro which determines
13838         whenever the type holds an object reference.
13839
13840 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
13841
13842         * marshal.c (mono_marshal_get_native_wrapper): cleanups
13843
13844 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
13845
13846         * gc.c (finalizer_thread): Work around a GC bug.
13847
13848 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
13849
13850         * marshal.c (emit_struct_conv): allow unions
13851
13852         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
13853
13854 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
13855
13856         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
13857
13858 2003-05-06  Martin Baulig  <martin@ximian.com>
13859
13860         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
13861
13862 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13863
13864         * socket-io.c:
13865         (Select_internal): allow NULLs, don't create arrays if not needed.
13866         Coupled with Socket.cs changes.
13867
13868         * threadpool.c:
13869         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
13870         register a finalizer for it that will close the semaphore handle. This
13871         fixes the leak and make Lupus' test run with > 4080 loops.
13872
13873 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
13874
13875         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
13876         Jerome Laban (bug #42287)
13877
13878 2003-05-02  Martin Baulig  <martin@ximian.com>
13879
13880         * debug-mono-symfile.h
13881         (MonoSymbolFile): Moved declaration into mono-debug.h.
13882         (MonoDebugMethodJitInfo): Likewise.
13883         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
13884         argument.
13885         (_mono_debug_address_from_il_offset): Take a
13886         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
13887
13888         * mono-debug.h
13889         (MonoDebugDomainData): New struct.
13890         (mono_debug_get_domain_data): New function.
13891         (mono_debug_add_method): Take an additional `MonoDomain *'
13892         argument.
13893         (mono_debug_source_location_from_address): Likewise.
13894         (mono_debug_il_offset_from_address): Likewise.
13895         (mono_debug_address_from_il_offset): Likewise.
13896
13897 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
13898
13899         * reflection.c: one more check for null type in custom attrs.
13900
13901 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13902
13903         * reflection.c: avoid warning (comparison is always false due to limited
13904         range of data type).
13905
13906 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13907
13908         * icall.c: throw an exception in Type.GetField if the argument 'name'
13909         is NULL.
13910
13911 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
13912
13913         * reflection.c: fixed handling of enums in named arguments to custom
13914         attributes (bug #42123).
13915
13916 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
13917
13918         * reflection.c: use the right array element type and handle
13919         a null for a Type argument, too.
13920
13921 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
13922
13923         * reflection.c: handle arrays as arguments to custom attributes.
13924
13925 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13926
13927         * reflection.c: handle a string value in a custom attr
13928         ctor that takes an object.
13929
13930 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
13931
13932         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
13933         (fix bug #42063)
13934
13935 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
13936
13937         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
13938
13939 2003-04-27  Martin Baulig  <martin@ximian.com>
13940
13941         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
13942         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
13943         MONO_DEBUGGER_EVENT_BREAKPOINT.
13944         (mono_breakpoint_trampoline_code): Removed.
13945         (mono_debugger_event_handler): The last argument is now a
13946         `guint32'.
13947         (mono_debugger_insert_breakpoint_full): Removed the
13948         `use_trampoline' argument.
13949         (mono_debugger_method_has_breakpoint): Likewise.
13950         (mono_debugger_trampoline_breakpoint_callback): Renamed to
13951         mono_debugger_breakpoint_callback(); take the method and
13952         breakpoint number as arguments.
13953
13954 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
13955
13956         * metadata.c: fix off by one when loading parameters attributes.
13957
13958 2003-04-24  Martin Baulig  <martin@ximian.com>
13959
13960         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
13961
13962 2003-04-24  Martin Baulig  <martin@ximian.com>
13963
13964         * mono-debug-debugger.c: Moved all code which interacts with the
13965         Mono Debugger here.
13966
13967         * debug-mono-symfile.c: This code now just deals with the symbol
13968         file itself, the debugger code is now in mono-debug-debugger.c.
13969
13970 2003-04-23  Martin Baulig  <martin@ximian.com>
13971
13972         * mono-debug.c (mono_debug_source_location_from_il_offset):
13973         New method; like mono_debug_source_location_from_address(), but
13974         takes an IL offset instead of a machine address.
13975
13976 2003-04-23  Martin Baulig  <martin@ximian.com>
13977
13978         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
13979         `line' field; this is now computed by the debugger.
13980
13981 2003-04-23  Martin Baulig  <martin@ximian.com>
13982
13983         * mono-debug.[ch]: New files.  This is the new debugging interface.
13984
13985         * mono-debug-debugger.[ch]: New files.  Moved all code which
13986         interacts with the Mono Debugger here.
13987
13988 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
13989
13990         * domain.c (mono_init): initialize mono_defaults.monitor_class
13991
13992 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
13993
13994         * reflection.c (method_encode_code): Add a spicy exception to help
13995         future compiler authors.
13996
13997 2003-04-21  Martin Baulig  <martin@ximian.com>
13998
13999         * icall.c
14000         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14001         Make this work with relative pathnames; g_filename_to_uri() needs
14002         an absolute filename.
14003
14004 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
14005
14006         * icall.c: Track name changes in Object and ValueType.
14007
14008 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
14009
14010         * metadata.c (mono_type_stack_size): size should be a multiple of
14011         sizeof (gpointer)
14012
14013 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14014
14015         * gc.c:
14016         (internal_domain_finalize): moved into mono_domain_finalize. No need
14017         to create another thread because the finalizers will be run in the
14018         finalizer thread.
14019         
14020         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
14021         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
14022         to be run (MS does this too).
14023
14024 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
14025
14026         * object.c (mono_class_compute_gc_descriptor): Update comment.
14027
14028         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
14029
14030         * image.h: Add synchronized wrapper cache.
14031
14032         * image.c (do_mono_image_open): Initialize cache.
14033
14034         * reflection.c (create_dynamic_mono_image): Initialize cache.
14035
14036 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14037
14038         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
14039         ves_icall_System_Buffer_ByteLengthInternal.
14040
14041 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14042
14043         * reflection.c: setup klass->nested_in earlier. Allow
14044         a dash in the assembly name.
14045
14046 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
14047
14048         * metadata.c (mono_type_to_unmanaged): dont access
14049         type->data.klass for MONO_TYPE_OBJECT
14050         (mono_type_to_unmanaged): consider System.Delegate class
14051
14052 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
14053
14054         * class.c: just setup supertypes in the proper place instead of
14055         initializing the full element class for arrays.
14056
14057 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14058
14059         * class.c: ensure the element class of arrays is initialized.
14060         Setup the supertype info for array classes, too.
14061
14062 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
14063
14064         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
14065
14066 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14067
14068         * Makefile.am: re-added -m option when running cygpath. This way,
14069         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
14070         separator.
14071         * mono-config.c: same codepath for locating mono config file for WIN32
14072         and the rest.
14073         * assembly.c: if mono_assembly_setrootdir is called, don't override
14074         the value set.
14075
14076 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14077
14078         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
14079         MONO_ASSEMBLIES variable.
14080
14081 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
14082
14083         * icall.c: added Assembly::GetNamespaces() icall.
14084
14085 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14086
14087         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
14088
14089 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
14090
14091         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
14092         * object.c: fixed bug in the construction of vtable for proxies
14093
14094 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
14095
14096         * object.c (mono_array_new): Mark mono_array_new as an icall.
14097
14098 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14099
14100         * class.c: fixed test for public method when overriding interfaces.
14101         Closes bug #40970.
14102
14103 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14104
14105         * appdomain.h, domain.c: added mono_domain_foreach() to
14106         be able to access the currently loaded appdomains.
14107         * object.c: make string interning work across sppdomains.
14108         Mark some functions for use as icalls.
14109
14110 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
14111
14112         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
14113
14114         * reflection.h reflection.c: Allocate long living data using 
14115         GC_MALLOC_ATOMIC so the collector does not need to scan it.
14116
14117         * reflection.c: Double the allocation size in streams instead of
14118         increasing it, to prevent unneccesary copying on large assemblies.
14119         
14120         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
14121         creation if the assembly does not have the Run flag set.
14122
14123 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
14124
14125         * class.h: avoid the C++ keywords in header files (Jerome Laban
14126         spotted and fixed this).
14127
14128 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14129
14130         * object.c:
14131         (mono_unhandled_exception): fill in the arguments for the
14132         UnhandledException event. Only trigger that event for the default
14133         domain (as MS does).
14134
14135 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
14136
14137         * object.c: Improve typed allocation stuff based on suggestions from
14138         Paolo. Also turn it on if the GC library supports it.
14139
14140 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14141
14142         * object.c object.h class.h: Added experimental typed allocation
14143         facility using the interfaces in gc_gcj.h.
14144
14145         * os/gc_wrapper.h: Added new include files.
14146         
14147 2003-04-03  Martin Baulig  <martin@ximian.com>
14148
14149         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
14150         which is not yet enabled by default.
14151
14152         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
14153         functions.
14154         (mono_gc_lock, mono_gc_unlock): New static functions.
14155
14156         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
14157         functions; stop/start the world for the garbage collector.  This
14158         is using the windows API; we need to complete the SuspendThread()/
14159         ResumeThread() implementation in the io-layer to make this work on Unix.
14160         (mono_gc_push_all_stacks): New public function; tells the garbage
14161         collector about the stack pointers from all managed threads.
14162
14163 2003-04-03  Martin Baulig  <martin@ximian.com>
14164
14165         * object.h (MonoThread): Added `gpointer stack_ptr'.
14166
14167         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
14168
14169 2003-04-03  Martin Baulig  <martin@ximian.com>
14170
14171         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
14172
14173 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14174
14175         * reflection.c (typebuilder_setup_fields): Initialize field.first and
14176         field.last.
14177
14178 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
14179
14180         * loader.c (mono_lookup_internal_call): Report the corlib that is
14181         out of sync.
14182
14183 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
14184
14185         * icall.c (ves_icall_type_GetTypeCode): fixed check for
14186         System.DBNull (it's class not valuetype).
14187
14188 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14189
14190         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
14191         if the array method was already assigned a token (fixes bug#40646).
14192
14193 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
14194
14195         * reflection.c (mono_reflection_get_type): Attempt type resolve even
14196         if no assembly is given.
14197
14198 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
14199
14200         * metadata.h: Added the new tables.
14201
14202         * row-indexes.h: Added definitions for new tables.
14203
14204         * metadata.c: Add schemas for new tables, and add support for
14205         computing the sizes of them.
14206
14207         * class.c: Update for handling the new type cases.
14208
14209 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
14210
14211         * metadata.h (MONO_TYPE_IS_VOID): new macro
14212
14213 2003-03-31  Martin Baulig  <martin@ximian.com>
14214
14215         * threads.h (MonoThreadCallbacks): Added `thread_created'.
14216
14217         * threads.c (mono_thread_new_init): Call `thread_created' in the
14218         mono_thread_callbacks.
14219
14220 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
14221
14222         * loader.h: added marshalbyrefobject_class to mono_defaults
14223         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
14224         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
14225           generation of output parameters.
14226           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
14227         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
14228           contextbound and the target object belongs to the context of the caller.
14229         * object.h: added context and unwrapped_server variables in MonoRealProxy.
14230         * object.c: Implemented support for interfaces and abstract classes
14231           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
14232           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
14233
14234 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
14235
14236         * class.h class.c (mono_class_is_subclass_of): New function.
14237         
14238         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
14239         routines for most common case (calls from ArrayList::ToArray).
14240
14241         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
14242         routine so programs which call Environment::Exit() can be profiled.
14243
14244         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
14245         Added MONO_ARCH_SAVE_REGS.
14246
14247         * icall.c (ves_icall_type_is_subtype_of): Use new function.
14248
14249 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
14250
14251         * blob.h: Add a couple of new MonoType types definitions.
14252
14253         * tabledefs.h: Add a couple of new call convs.
14254
14255 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
14256
14257         * reflection.h (MonoReflectionDynamicAssembly): track changes in
14258         the layout of the class.
14259
14260         * reflection.c (alloc_table): double the size on overflow to avoid
14261         unnecessary copying.
14262
14263         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
14264         avoid filling out metadata tables and blobs. Also set mb->ilgen to
14265         null so it can be garbage collected.
14266         
14267 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
14268
14269         * reflection.c (mono_reflection_get_type): Return the resolved type
14270         only if it is in the assembly we searched.
14271
14272         * reflection.c (ensure_runtime_vtable): Initialize method slots.
14273
14274         * class.c (mono_class_setup_vtable): Set the slot of the overriding
14275         method.
14276
14277 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14278
14279         * appdomain.c:
14280         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
14281         the right one is 'file:///blah', but MS allows it.
14282         * assembly.c:
14283         (mono_assembly_open): allow 'file://blah'
14284
14285         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
14286
14287 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
14288
14289         * socket-io.c: fixes bug #40310.
14290
14291 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
14292
14293         * reflection.c (mono_reflection_parse_type): handle deeply nested
14294         types correctly.
14295
14296         * reflection.c (mono_image_create_token): Use unique token values
14297         since they will be put into a hash table.
14298
14299         * class.c (mono_class_setup_vtable): If a method occurs in more than
14300         one place in the vtable, and it gets overriden, then change the
14301         other occurances too.
14302
14303         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14304         object as return type.
14305
14306 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14307
14308         * icall.c: Deleted "ToString" implementation for double and float
14309         because they are full implemented in managed code.
14310
14311 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14312
14313         * reflection.c, reflection.h: implemented and exported functions
14314         to retrieve info about custom attributes.
14315
14316 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14317
14318         * appdomain.c: moved Uri handling to assembly.c
14319         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
14320         work when using a file Uri in *nix and windows.
14321
14322         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
14323         GetReferencedAssemblies.
14324
14325 2003-03-18  Dick Porter  <dick@ximian.com>
14326
14327         * icall.c: Rename a couple of internal calls
14328
14329         * threads.c: Set the thread state to Stopped when a thread exits.
14330         Fixes bug 39377.
14331
14332 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
14333
14334         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
14335         New icall.
14336
14337         * object.c (mono_class_vtable): fix warning.
14338
14339 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
14340
14341         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
14342
14343         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
14344         memory.
14345         (method_encode_clauses): Create exception info structures in the right
14346         order.
14347         (mono_reflection_setup_internal_class): Initialize supertypes field.
14348
14349         * class.c object.c: Handle interfaces which implement other interfaces 
14350         correctly.
14351
14352         * class.h class.c: Move the supertypes array initialization code into 
14353         a separate function so it can be used for dynamic types too. Also call
14354         it earlier, in mono_class_init(), since it can be used before the
14355         type is initialized.
14356
14357 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14358
14359         * Makefile.am:
14360         * assembly.c:
14361         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
14362
14363         * appdomain.c:
14364         * appdomain.h:
14365         * marshal.c:
14366         * object.c: remove warnings.
14367
14368 2003-03-13  Martin Baulig  <martin@ximian.com>
14369
14370         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
14371         (MonoDebugLexicalBlockEntry): New types.
14372
14373         * debug-mono-symfile.c
14374         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
14375
14376 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14377
14378         * process.c: ret can be any non-zero value accroding to MS doc.
14379
14380 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
14381
14382         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
14383         fixing a warning for a miss-used prototype, would have cause
14384         random memory corruption.
14385
14386 2003-03-07  Martin Baulig  <martin@ximian.com>
14387
14388         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
14389         getting really annoying ....
14390
14391 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
14392
14393         * reflection.c (fixup_method): added support for array methods.
14394
14395 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
14396
14397         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
14398         (pointed out by Michael Adams).
14399
14400 2003-03-04  Dick Porter  <dick@ximian.com>
14401
14402         * icall.c: Temporarily reverted the Double and Single ToString()
14403         change, because it broke nunit.
14404
14405 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
14406
14407         * object.h, threads.h: make include files compatible with C++
14408         (patch by Jerome Laban <jlaban@wanadoo.fr>).
14409
14410 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14411
14412         * icall.c: Erased ToString helper functions for Double and Single.
14413         Now, that implementations ar all in managed code (Double and Single
14414         Formatters).
14415
14416 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
14417
14418         * appdomain.c: Added method for initializing the default context of
14419         a domain. Added internal call for getting the default context.
14420         * appdomain.h: Added context variable in MonoDomain struct.
14421         * domain.c: mono_domain_set also sets the default context of the domain
14422         * icall.c: Mapped internal method InternalGetDefaultContext.
14423         * object.c: mono_object_get_virtual_method returns always a remoting
14424         wrapper if the object is a transparent proxy.
14425         mono_runtime_invoke_array: when creating an object by calling the
14426         constructor, if the created object is a proxy, then the constructor should
14427         be called using the a remoting wrapper.
14428
14429 2003-03-03  Dick Porter  <dick@ximian.com>
14430
14431         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
14432         variable so it compiles on solaris.  Problem spotted by
14433         Christopher Taylor <ct@cs.clemson.edu>
14434
14435 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14436
14437         * appdomain.c:
14438         (get_info_from_assembly_name): don't leak value.
14439
14440         * icall.c:
14441         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
14442         result.
14443
14444 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
14445
14446         * assembly.c: export mono_image_load_references ().
14447         * class.c: handle function pointers. mono_class_from_name() now
14448         supports nested type names directly.
14449
14450 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
14451
14452         * reflection.h reflection.c: Encode already created dynamic methods 
14453         and fields correctly as a DEF instead of a REF.
14454
14455         * reflection.c: Get rid of the force_ref argument to 
14456         mono_image_typedef_or_ref since it was wrong in the first place.
14457
14458         * string-icalls.c: add error checking to string constructors according
14459         to the MSDN docs.
14460
14461         * reflection.c: Emit types in the order their TypeBuilders were 
14462         created. Previously, a new table index was assigned to each type before
14463         the tables were emitted. This was wrong because the signature blob
14464         might already refer to a type by its original table index.
14465
14466 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
14467
14468         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
14469         change.
14470         
14471 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14472
14473         * Makefile.am: make assemblies dir have \ instead of / on windows.
14474
14475 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
14476
14477         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
14478         iterate over the NESTEDCLASS table using a linear search since the
14479         table is not guaranteed to be sorted by the secondary key.
14480
14481         * class.c (mono_class_create_from_typedef): fixed up call to
14482         mono_metadata_nesting_typedef.
14483         
14484 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
14485
14486         * marshal.c (mono_string_to_byvalstr): clear the memory as
14487         suggested by Jerome Laban <jlaban@wanadoo.fr>
14488
14489 2003-02-26  Dick Porter  <dick@ximian.com>
14490
14491         * process.c: Cope with padding in .rsrc blocks
14492
14493 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14494
14495         * metadata.h: reverted the filter_len change, it breaks reflection
14496         
14497 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14498
14499         * metadata.h: added a new field to store the filter_len
14500         
14501
14502 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14503
14504         * reflection.c: handle custom attributes for types and members
14505         created with Reflection.Emit (bug#38422).
14506
14507 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14508
14509         * reflection.c: define RTSpecialName automatically for constructors for
14510         compatibility with MS.NET.
14511
14512         * reflection.c (mono_reflection_create_runtime_class): initialize
14513         nested_in field of dynamically created classes.
14514
14515 2003-02-22  Martin Baulig  <martin@ximian.com>
14516
14517         * debug-mono-symfile.h: Incremented version number.
14518
14519 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14520
14521         * object.h icall.c process.c: fix warnings.
14522
14523 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14524
14525         * appdomain.h appdomain.c:
14526         (mono_domain_try_type_resolve): split the 
14527         name_or_tb argument into a name and a tb argument.
14528         (mono_domain_has_type_resolve): new function to check whenever the
14529         application has registered a TypeResolve event handler.
14530         
14531         * icall.c reflection.h reflection.c: move the type resolve logic into
14532         mono_reflection_get_type () so it will be invoked when 
14533         Assembly::GetType () is called.
14534
14535         * reflection.c:
14536         (mono_reflection_get_type): renamed to get_type_internal.
14537         (mono_reflection_get_type): fixed type name generation so it works 
14538         for nested types too.
14539         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14540         costly type name generation if there is no resolve event handler.
14541
14542 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14543
14544         * class.c, image.c: load exported types from file references.
14545
14546 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14547
14548         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14549           used to cache the managed methods used to create proxies and make 
14550           remote invocation of methods.
14551         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14552           to be remotely created.
14553         * object.c: Modified the method mono_class_vtable(). It now initializes 
14554           the remote flag of the vtable. Modified mono_object_new_specific(), 
14555           so now it checks the remote flag.
14556         * icall.c: Added a couple of internal methods, one for enabling instance 
14557           creation interception for a type, and one for creating objects bypassing
14558           the remote check.
14559
14560 2003-02-18  Martin Baulig  <martin@ximian.com>
14561
14562         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14563         New interncall to get a method's metadata token.
14564
14565         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14566         New interncall for the debugger.
14567
14568 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14569
14570         * class.c (mono_class_setup_vtable): allocate supertype array
14571
14572 2003-02-18  Martin Baulig  <martin@ximian.com>
14573
14574         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14575
14576 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14577
14578         * reflection.c:
14579         (assembly_name_to_aname): jump over unknown properties (i've found
14580         something like: 'type, assembly, version=xxx, custom=null, public...',
14581         so now will ignore custom=null and still get the rest of the values).
14582
14583 2003-02-17  Dick Porter  <dick@ximian.com>
14584
14585         * threads.c: Have Thread.Start() wait for a semaphore to signal
14586         that the thread has set up all its local data.  This fixes bug
14587         34323, where Abort() raced the new thread's TLS data.
14588
14589         Also removes the handle_store() call from start_wrapper, because
14590         threads are now always created suspended and there is no longer a
14591         race between the parent and child threads to store the info.
14592
14593 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14594
14595         * image.c: explain the #- heap issue in a message, hopefully
14596         avoiding FAQs on mono-list.
14597
14598 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14599
14600         * icall.c:
14601         (GetEntryAssembly): if the domain has not invoked
14602         AppDomain.ExecuteAssembly yet, return the assembly of the default
14603         AppDomain.
14604
14605 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14606
14607         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14608
14609 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14610
14611         * metadata.c, reflection.c: simple speedup to type hash
14612         and equals code.
14613
14614 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14615
14616         * image.c, image.h, class.c, assembly.c: move module loading
14617         to MonoImage. When loading metadata, consider alignemnet from
14618         the start of metadata, not from the metadata address in memory.
14619
14620 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14621
14622         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14623         AssemblyBuilder objects. Factored out custom attribute creation into
14624         a separate function.
14625         (create_custom_attr): new function to create custom attributes.
14626
14627 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14628
14629         * Makefile.am: Got tired of typing the full pathname to pedump.
14630         Until there is another option, am installing this.
14631
14632 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14633
14634         * class.c (class_compute_field_layout): always set field->parent 
14635         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14636
14637 2003-02-11  Dick Porter  <dick@ximian.com>
14638
14639         * threads-types.h:
14640         * monitor.c: Rewrote Monitor, making lock much faster and
14641         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14642         creates them as needed.
14643
14644         * exception.c: Added SynchronizationLockException
14645
14646         * threads.c: Deleted old Monitor implementation.  The new one is
14647         in a new file.
14648
14649 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14650
14651         * class.c: handled TypedReference type code. Set the correct size for
14652         class data. Setup interface_offsets for interface classes, too.
14653
14654 2003-02-09  Martin Baulig  <martin@ximian.com>
14655
14656         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14657
14658 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14659
14660         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14661         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14662         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14663         * verify.c: check for code that runs after the end of the method.
14664
14665 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14666
14667         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14668         "System.Math::Round2".
14669         * sysmath.h: Added Floor, Round and Round2 definitions.
14670         * sysmath.c: Modified certain functions that were not 100% compliant
14671         with MS.NET (math precision) and added the implementation of Floor,
14672         Round and Round2.
14673
14674 2003-02-07  Martin Baulig  <martin@ximian.com>
14675
14676         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
14677
14678 2003-02-07  Martin Baulig  <martin@ximian.com>
14679
14680         * debug-mono-symfile.c: Reflected latest symwriter changes.
14681         (mono_debug_create_mono_symbol_file): Removed.
14682         (mono_debug_open_mono_symbol_file): Take an argument which
14683         specifies whether to create a dynamic symbol file.
14684
14685 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
14686
14687         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
14688
14689 2003-02-05  Martin Baulig  <martin@ximian.com>
14690
14691         * reflection.c (mono_image_build_metadata): Make this public,
14692         protect it against being called multiple times, don't create
14693         resources and don't build the compressed metadata here.
14694         (mono_image_create_pefile): Do this here.
14695
14696         * icall.c
14697         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
14698
14699 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14700
14701         * socket-io.c: fixed bug #36322.
14702
14703 2003-02-06  Piers Haken <piersh@friskit.com>
14704
14705         * appdomain.[ch]:
14706         * class.h:
14707         * debug-mono-symfile.c:
14708         * icall.c:
14709         * loader.c:
14710         * mono-config.c:
14711         * monosn.c:
14712         * reflection.c:
14713         * socket-io.c: warning cleanups
14714
14715 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
14716
14717         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
14718         function. works like remoting invoke, but does a check for the Proxy first.
14719
14720 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
14721
14722         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
14723
14724 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
14725
14726         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
14727         array of pointers.
14728         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
14729         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
14730
14731         * object.c (mono_store_remote_field_new): used by the new jit
14732         instead of mono_store_remote_field
14733         (mono_load_remote_field_new): used by the new jit
14734         instead of mono_load_remote_field
14735
14736 2003-02-05  Patrik Torstensson
14737
14738         * appdomain.c: changed unload to take the domain id instead
14739         of domain
14740         
14741         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
14742
14743
14744 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14745
14746         * appdomain.c: don't look for assemblies in ApplicationBase if
14747         PrivateBinPathProbe is set.
14748
14749 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14750
14751         * object.c: make the first argument in main_args contain the absolute
14752         path to the assembly. Fixes bug #37511.
14753
14754 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14755
14756         * icall.c: get correct UTC offset for countries not using daylight
14757         time saving. Fixes bug #30030.
14758
14759 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14760
14761         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
14762         and 1 are the family).
14763
14764 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
14765
14766         * icall.c (ves_icall_InternalExecute): removed wrong assertion
14767
14768         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
14769
14770 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
14771
14772         * reflection.c: added support for SignatureHelper tokens, which is
14773         needed by the Calli opcode.
14774
14775         * reflection.h: track changes to SignatureHelper class.
14776
14777         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
14778
14779 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14780
14781         * appdomain.c: fixed loading assemblies from PrivateBinPath.
14782
14783 2003-02-03  Patrik Torstensson
14784         * appdomain.[c|h], domain.c : 
14785          - Added support for getting a domain via domain id
14786          - Support for setting and getting domain from System.AppDomain 
14787            (used in cross appdomain channel)
14788          - Added support for get/set for a MonoAppContext on a thread 
14789            (Context class in System.Runtime.Remoting.Contexts),
14790          - Removed hack in Get/SetData and ExecuteAssembly.
14791         
14792         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
14793         the managed world to get control when a proxy is created.
14794
14795         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
14796         
14797 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
14798
14799         * icall.c
14800         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14801         Populate the codebase field as well.
14802
14803 2003-02-02  Martin Baulig  <martin@ximian.com>
14804
14805         * debug-mono-symfile.c
14806         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
14807         (mono_debug_symfile_add_method): Allow interncalls.
14808
14809 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14810
14811         * icall.c: throw parse exception if strtod fails or the string is empty.
14812
14813 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
14814
14815         * marshal.c: handle object type separately from defined
14816         class types.
14817
14818 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
14819
14820         * marshal.c: handle NATIVE_LPSTR for strings when it's
14821         explicitly specified.
14822
14823 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
14824
14825         * reflection.c, reflection.h, icall.c: setup the reflection
14826         handle cache for ModuleBuilders and AssemblyBuilders.
14827
14828 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
14829
14830         * reflection.c (reflection_methodbuilder_to_mono_method): set
14831         pinvoke flag
14832
14833 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14834
14835         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
14836
14837 2003-01-29  Dick Porter  <dick@ximian.com>
14838
14839         * threads.c: No need for the fake_thread kludge now that Thread
14840         doesn't run a class constructor
14841         
14842 2003-01-29  Dick Porter  <dick@ximian.com>
14843
14844         * threads.c: Use g_direct_hash instead of the rather bogus
14845         g_int_hash
14846
14847 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
14848
14849         * marshal.c (mono_marshal_get_native_wrapper): add check for null
14850         (fix pinvoke12.exe)
14851         (mono_marshal_get_struct_to_ptr): generate valid IL code
14852         (mono_marshal_get_ptr_to_struct): generate valid IL code
14853         (*): correctly set sig->pinvoke, we need to memdup the signature
14854         to do that
14855
14856 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14857
14858         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
14859         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
14860
14861 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14862
14863         * profiler.c: provide more callers information.
14864
14865 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
14866
14867         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
14868
14869         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
14870
14871         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
14872
14873 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14874
14875         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
14876         exception instead of going into an infinite loop on dates which it 
14877         can't yet handle.
14878
14879         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
14880         out-of-range exception if needed.
14881
14882         * class.c (mono_class_setup_vtable): allow a virtual method to provide
14883         an implementation for an interface method and to override an inherited
14884         method at the same time. 
14885         Imagine a scenario when a virtual method is used to override a
14886         virtual abstract method in a parent class, and this same method 
14887         provides an implementation for an method inherited from an interface. 
14888         In this case, the interface resolution code will set im->slot, which 
14889         means that the virtual method override pass will skip this method 
14890         which means a pointer to the abstract method inherited from the parent
14891         will remain in the vtable of this non-abstract class.
14892
14893         * class.c: (mono_class_setup_vtable): continue search for a real 
14894         method if only an abstract method is found.     
14895
14896 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14897
14898         * reflection.c: add size to encoding for ByValStr and ByValArray
14899         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
14900
14901 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14902
14903         * class.c (mono_class_setup_vtable): pass the override info as an
14904         argument.
14905
14906         * class.c (mono_class_setup_vtable): set the slot of overriding methods
14907         correctly.
14908         
14909         * reflection.c (ensure_runtime_vtable); add support for method 
14910         overrides.
14911         
14912 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14913
14914         * reflection.c (resolution_scope_from_image): Hack to work to work with
14915         dynamic assemblies.
14916
14917         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
14918         added a 'force_ref' argument to force this function to allways return 
14919         a TypeRef. This is needed by mono_image_get_memberref_token ().
14920         
14921 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14922
14923         * reflection.c (mono_image_get_type_info): interfaces really don't have
14924         a parent.
14925
14926         * reflection.c (mono_image_basic_init): fill out missing fields of
14927         image structure.
14928
14929         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
14930         dynamic assemblies. This is required so dynamic assemblies show up in
14931         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
14932         Type::GetType() etc. This is consistent with MS behaviour.
14933
14934         * image.c image.h reflection.c: add newly created classes to the name 
14935         cache so mono_class_get () will find them.      
14936
14937 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14938
14939         First part of changes to get IKVM.NET running under mono.
14940         
14941         * appdomain.h, appdomain.c: added new function 
14942         mono_domain_try_type_resolve() which will emit TypeResolve events. 
14943         This function will call AppDomain::DoTypeResolve to do the actual work.
14944
14945         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
14946         moved existing code dealing with dynamic tokens to a new function 
14947         called mono_reflection_lookup_dynamic_token (). This function will 
14948         raise TypeResolve events when appropriate. Since reflection.c is not 
14949         part of libmetadata, a new hook function called 
14950         mono_lookup_dynamic_token() is added to class.c which will call this.
14951
14952         * assembly.h assembly.c: make the invoke_load_hook function public,
14953         so it can be called for dynamic assemblies.
14954
14955         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
14956
14957         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
14958         type isn't found.
14959
14960         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
14961         MonoGHashTable, since it contains pointers to objects which the GC 
14962         needs to track.
14963
14964         * assembly.c (search_loaded): remove unused variable.
14965         
14966 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
14967
14968         * object.c: fixed issue exposed by gcc-generated IL programs
14969         that use RVA data for pointers.
14970
14971 2003-01-25  Martin Baulig  <martin@ximian.com>
14972
14973         * threads.c (start_wrapper): Moved the initialization of
14974         `start_func' above the mono_new_thread_init() call to which we
14975         pass it as argument.
14976
14977 2003-01-24  Martin Baulig  <martin@ximian.com>
14978
14979         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
14980         the MonoThread pointer.
14981
14982 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
14983
14984         * icall.c: Rename `PowImpl' to Pow.
14985
14986 2003-01-23  Dick Porter  <dick@ximian.com>
14987
14988         * threads.c (start_wrapper): Create a Thread object if needed, so
14989         the Main() thread can do the class initialisation in a subthread
14990         that has been set up to allow managed code execution.
14991
14992         Pass the thread ID instead of the MonoThread pointer to the thread
14993         start and attach callbacks.  This change is required, because the
14994         jit thread start callback must be called _before_ the Thread
14995         object can be created.
14996         
14997         (mono_thread_init): Removed much object creation code that is no
14998         longer needed.  No managed code is called from here now.
14999
15000         * object.c (mono_runtime_exec_managed_code): Create a subthread
15001         for Main, and call back to the runtime to use it.
15002         Set the exit code when Main exits.
15003
15004         * gc.c: Make sure domain finalisation happens in a subthread.
15005         Re-enable threaded GC, fixing bug 31333 (again).
15006
15007         * environment.c: System.Environment internall calls (so far just
15008         ExitCode is here, the others are still in icall.c)
15009
15010         * appdomain.c (mono_runtime_cleanup): All threads running managed
15011         code should have finished before mono_runtime_cleanup() is
15012         reached, so no need to clean up threads.
15013
15014 2003-01-22  Martin Baulig  <martin@ximian.com>
15015
15016         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
15017         `gpointer func' arguments.      
15018         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
15019         but added `MonoThread *thread' argument.
15020         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
15021
15022         * threads.c (mono_new_thread_init): Added `gpointer func' argument
15023         and pass it to the mono_thread_start_cb callback.
15024         (mono_install_thread_callbacks): New public function to install a
15025         set of callbacks which are set by the debugger.
15026         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
15027
15028 2003-01-22  Martin Baulig  <martin@ximian.com>
15029
15030         * Makefile.am: Install debug-mono-symfile.h.
15031
15032 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
15033
15034         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
15035
15036 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
15037
15038         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
15039         * class.c (mono_ptr_class_get): correctly set access levels of pointers
15040         (mono_array_class_get): correctly set access levels of arrays
15041
15042 2003-01-20      Patrik Torstensson
15043         * image.h (MonoAssemblyName): changed major, minor, build, revision
15044         from signed to unsigned.
15045
15046 2003-01-20  sean kasun <skasun@azstarnet.com>
15047
15048         * reflection.c (load_cattr_value): Now this handles
15049         MONO_TYPE_SZARRAY.  Fixes bug #35629
15050
15051 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
15052
15053         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
15054         integer value
15055
15056 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15057
15058         * decimal.c: fixed bug #26056.
15059
15060 2003-01-17  Martin Baulig  <martin@ximian.com>
15061
15062         * gc.c: Raise an ExecutionEngineException instead of using g_error().
15063
15064 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15065
15066         * exception.[ch]:
15067         (mono_get_exception_type_initialization): new function.
15068
15069         * object.c: throw a TypeInitializationException when an exception is
15070         thrown invoking the class constructor.
15071
15072 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15073
15074         * reflection.c: fixed attribute reading.
15075
15076 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15077
15078         * icall.c:
15079         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
15080         provided, look for the type in the calling assembly and then in
15081         mscorlib; if the assembly name is provided, only try that one.
15082
15083 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
15084
15085         * object.c: register the vtable before there is a chance it's
15086         queried again recursively.
15087
15088 2003-01-13  Duncan Mak  <duncan@ximian.com>
15089
15090         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
15091         gc-internal.h. 
15092         
15093 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
15094
15095         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
15096
15097 2003-01-11  Martin Baulig  <martin@ximian.com>
15098
15099         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
15100         this to 20 for the release.
15101
15102 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
15103
15104         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
15105
15106         * loader.c (mono_method_get_marshal_info): bug fix
15107
15108         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
15109         structures with explicit layout
15110
15111 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15112
15113         * profiler.c: made the output more readable (and sorted). 
15114         Added caller information for the allocation profiler.
15115
15116 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
15117
15118         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
15119
15120 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15121
15122         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
15123         to get value types.
15124         
15125 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
15126
15127         * object.c, profiler.h, profiler.c, profiler-private.h:
15128         Added object allocation profiler.
15129
15130 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
15131
15132         * reflection.h, reflection.c: handle global methods.
15133         Compress blob entries.
15134
15135 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
15136
15137         * marshal.c: fix compilation.
15138
15139 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
15140
15141         * loader.c (mono_method_get_marshal_info): impl.
15142
15143         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
15144
15145 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15146
15147         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
15148         for reference types.
15149
15150 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
15151
15152         * loader.c: fixed off by one error in loaded parameter names.
15153
15154 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
15155
15156         * marshal.c (mono_marshal_get_icall_wrapper): like
15157         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
15158         instead of a MonoMethod.
15159
15160 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15161
15162         * decimal.c: fixed bug #36537.
15163
15164 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
15165
15166         * marshal.c: throw a missing method exception if a
15167         P/Invoke method is not found.
15168
15169 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15170
15171         * icall.c: allow a null this for constructors.
15172
15173 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
15174
15175         * icall.c: raise the proper exceptions if the arguments to the
15176         internal Invoke are incorrect.
15177
15178 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
15179
15180         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
15181
15182 2003-01-03  Martin Baulig  <martin@ximian.com>
15183
15184         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15185
15186 2002-12-31  Martin Baulig  <martin@ximian.com>
15187
15188         * debug-mono-symfile.c: Completely rewrote the type section.
15189         Instead of using individual malloc()ed fields, we use one big
15190         continuous memory area and offsets into this area.
15191         See the comments in the source code for details.
15192
15193 2002-12-30  Martin Baulig  <martin@ximian.com>
15194
15195         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
15196
15197 2002-12-30  Martin Baulig  <martin@ximian.com>
15198
15199         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
15200         line number table in this data blob instead of using an external
15201         pointer.
15202
15203 2002-12-28  Martin Baulig  <martin@ximian.com>
15204
15205         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15206
15207 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
15208
15209         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
15210         as a boxed return type.
15211
15212 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
15213
15214         * appdomain.c
15215         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
15216         g_build_filename to properly get separators on the filename created.
15217
15218         * object.h: Small change, introduce MonoMarshalByRefObject to
15219         track the layout of that structure in the C# universe as we make
15220         changes there.
15221
15222 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
15223
15224         * object.c: removed assert to allow static fields on interfaces.
15225         * loader.c: a TypeSpec may be used for any type, not just arrays.
15226
15227 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15228
15229         * class.c, class.h: added mono_class_array_element_size ().
15230         Ignore static methods in interfaces.
15231
15232 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15233
15234         * threads.c: fixed the build under cygwin.
15235
15236 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15237
15238         * reflection.c: handle nullref constants. Allocate keys for
15239         reflection handles with the GC.
15240
15241 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15242
15243         * threads.c, threads.h: added mono_thread_get_abort_signal()
15244         to get a suitable signal for thread abort.
15245
15246 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15247
15248         * metadata.c: fix handling of ExportedType table.
15249
15250 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15251
15252         * icall.c: added WriteWindowsDebugString internal call.
15253
15254 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15255
15256         * reflection.h: added fields to match C# implementation.
15257
15258 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15259
15260         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
15261
15262 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
15263
15264         * gc.h, gc-internal.h: Rename header for GC internal calls to
15265         gc-internal.h from gc.h as to not clash with Boehm GC having its
15266         header installed as <gc.h> in outside include paths.
15267         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
15268         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
15269
15270 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15271
15272         * icall.c: assign minor, build and revision in FillName.
15273
15274 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
15275
15276         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
15277         Added support for running code generated by Reflection.Emit.
15278
15279 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15280
15281         * appdomain.c: check for NULL argument in LoadFrom.
15282
15283 2002-12-10  Dick Porter  <dick@ximian.com>
15284
15285         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
15286
15287 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15288
15289         * appdomain.c: fix buglet when building exe file name.  Handle full
15290         assembly name (needed after latest changes to AssemblyName).
15291         * image.c:
15292         (mono_image_close): free some hashtables.
15293
15294 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
15295
15296         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
15297         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
15298         on some systems (redhat 7.3) 
15299
15300 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
15301
15302         * threads.c: delete the critical section of a sync block,
15303         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
15304
15305 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
15306
15307         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
15308
15309 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15310
15311         * appdomain.[ch]: handle the assembly preload event to try loading the
15312         assemblies using the paths we have in the current domain.
15313
15314         * assembly.[ch]: created an assembly preload hook that is called to try
15315         loading the assembly by other means that the ones provided here.
15316
15317         * domain.c: initialize the domain search path.
15318
15319         From now on, assemblies (TODO: except corlib and System) are loaded
15320         according to these rules when using mono_assembly_load ():
15321
15322                 1. It tries to load the assembly from the ApplicationBase
15323                 of the current domain appending .dll and .exe (TODO: have to
15324                 try loading from name/name.dll and name/name.exe).
15325
15326                 2. It tries the search path specified in PrivateBinPath for the
15327                 current domain (if any).
15328
15329                 3. Previous behavior.
15330
15331 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
15332
15333         * icall.c: implemented GetInterfaceMap() related icall.
15334         * domain.c, loader.h: load MethodInfo in mono_defaults.
15335
15336 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15337
15338         * gc.c: disable the finalizer thread for now, untill all the issues
15339         with it are resolved.
15340
15341 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15342
15343         * string-icalls.c: handle embedded nulls in string ctor when the
15344         length is specified.
15345
15346 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15347
15348         * class.c: look for explicit interface implementation in parent
15349         classes, too.
15350
15351 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
15352
15353         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
15354
15355 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15356
15357         * gc.c: protect handles with a critical section.
15358
15359 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15360
15361         * icall.c:
15362         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
15363         parameters. If no assembly specified, try getting the type from all
15364         the assemblies in the current domain, else, load the assembly and get
15365         the type from it.
15366
15367 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15368
15369         * marshal.c: applied patch from Aleksey Demakov that fixes
15370         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
15371
15372 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15373
15374         * icall.c: fixed get_location.
15375
15376 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
15377
15378         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
15379         declarations to make it work with older gcc. 
15380
15381         * loader.c (mono_get_method): set signature->pinvoke for native calls
15382
15383 2002-11-20  Dick Porter  <dick@ximian.com>
15384
15385         * threads.c (mono_thread_init): Set the main thread's handle
15386
15387 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15388
15389         * gc.c: allow compilation without GC support. Changed to match the
15390         mono coding style.
15391
15392 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15393
15394         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
15395
15396 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
15397
15398         * reflection.c: set a public key token on the core assemblies.
15399
15400 2002-11-18  Dick Porter  <dick@ximian.com>
15401
15402         * threads.c: Split out some thread initialisation so that other
15403         files can set the start callback function.
15404
15405         * gc.c: Run finalisers in a separate thread, to avoid stack
15406         overflow.  Fixes bug 31333.
15407
15408         * appdomain.c: Set up GC finalisation thread.
15409
15410         * reflection.c: 
15411         * object.c: 
15412         * domain.c: Use gc.h macros for GC_malloc
15413         
15414 2002-11-15  Dick Porter  <dick@ximian.com>
15415
15416         * threadpool.c: 
15417         * threads.c:
15418         * appdomain.c: Removed mono_runtime_init_with_attach(),
15419         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
15420         merging the extra parameter with the existing function.  Removed
15421         unneeded code in mono_thread_attach().
15422
15423 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
15424
15425         * image.c (mono_image_loaded_by_guid): a method to get loaded
15426         images by guid. 
15427         (load_metadata_ptrs): we store the guid as string.
15428
15429 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
15430
15431         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
15432
15433         * metadata.c (mono_guid_to_string): imported method form Zoltan
15434         Varga (slightly modified)
15435
15436         * assembly.c (mono_assembly_open): load precompiled code
15437
15438         * loader.h (MonoMethod): we store the method token for use in the
15439         aot compiler. 
15440
15441 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15442
15443         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
15444         the hook function called when an assembly is loaded.
15445         
15446         * domain.c: Modified file.
15447         (mono_domain_assembly_load): removed hash table insertion of assemblies.
15448
15449         Fixes bug #33196.
15450
15451 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
15452
15453         * reflection.c: Map PEFileKind to the value expected by the WinNT
15454         image loader. 
15455
15456 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15457
15458         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
15459         Read until the buffer is filled completely.
15460
15461 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15462
15463         * icall.c: implemented MonoType.InternalGetEvent ().
15464
15465 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15466
15467         * appdomain.c: implemented InitAppDomainSetup. Delayed
15468         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
15469         the entry_assembly.
15470
15471         * assembly.c: base_dir is now an absolute path ending with
15472         G_DIR_SEPARATOR.
15473
15474         * icall.c: modified get_location according to the above changes.
15475
15476         * object.c: init AppDomain.SetupInformation for the default domain after
15477         we have the entry assembly.
15478
15479         * domain.c: when unloading a domain, setup = NULL.
15480
15481 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
15482
15483         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
15484
15485 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
15486
15487         * object.h, object.c: introduced mono_object_get_virtual_method ()
15488         to lookup the method invoked on an object when a callvirt is done on
15489         a method.
15490         * icall.c: make MethodInfo::Invoke() always do a virtual call.
15491
15492 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15493
15494         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15495         current domain when loaded an assembly and failed to load it.
15496
15497         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15498
15499 2002-10-31  Dick Porter  <dick@ximian.com>
15500
15501         * icall.c: 
15502         * file-io.h: 
15503         * file-io.c: Return the error status in a parameter, as the
15504         GetLastError() value has long since been blown away if we try and
15505         look it up in a subsequent internal call invocation.  Delete the
15506         GetLastError() internal call, because it's useless.
15507
15508 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15509
15510         * class.[ch]: added cast_class to fix bug 29517
15511
15512 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15513
15514         * marshal.c: create valid IL code in the filter clause:
15515         the new JIT is less forgiving:-)
15516
15517 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15518
15519         * icall.c: removed get_property internal call.
15520
15521 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15522
15523         * appdomain.h domain.c: Added an ID to appdomains.
15524         
15525         * threads.c threads.h icall.c: Implement icall
15526         Thread:GetDomainID(), and remove unused icall 
15527         CurrentThreadDomain_internal.
15528
15529 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15530
15531         * icall.c: Don't recurse through the base types in GetConstructor.
15532         Fixes bug #32063. 
15533
15534 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15535
15536         * mempool.h, mempool.c: added mono_mempool_empty() and
15537         mono_mempool_stats().
15538
15539 2002-10-23  Dick Porter  <dick@ximian.com>
15540
15541         * file-io.c: 
15542         * file-io.h: 
15543         * icall.c: Added MonoIO.GetFileType internal call
15544
15545 2002-10-17  Dick Porter  <dick@ximian.com>
15546
15547         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15548         delegate semaphore before waiting for all threads to finish,
15549         because new threads can also call async delegates.  Fixes bug
15550         32004.
15551
15552         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15553         of 3 seconds, in case another async job is queued.  (This part is
15554         needed because the bug fix reintroduced the 3s exit lag.)  This
15555         makes the mono_runtime_shutdown flag superfluous.
15556
15557 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15558
15559         * reflection.c: include ehader size in method section headers.
15560         Really check for suplicated modules entries.
15561
15562 2002-10-17  Martin Baulig  <martin@gnome.org>
15563
15564         * debug-mono-symfile.c: Added back support for locals.
15565
15566 2002-10-14  Martin Baulig  <martin@gnome.org>
15567
15568         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15569         MONO_TYPE_VOID.
15570
15571 2002-10-14  Martin Baulig  <martin@gnome.org>
15572
15573         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15574         mono_class_get() instead of looking in the class cache. 
15575
15576 2002-10-13  Martin Baulig  <martin@gnome.org>
15577
15578         * debug-mono-symfile.c: Set version number to 28, include the
15579         signature in method names.
15580
15581 2002-10-13  Martin Baulig  <martin@gnome.org>
15582
15583         * debug-mono-symfile.h: Set version number to 27.
15584
15585 2002-10-11  Martin Baulig  <martin@gnome.org>
15586
15587         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15588
15589 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15590
15591         * metadata.c, metadata.h: added helper function to allocate signatures.
15592
15593 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15594
15595         * icall.c: added internal call to get the location of machine.config.
15596
15597 2002-10-08  Martin Baulig  <martin@gnome.org>
15598
15599         * debug-mono-symfile.c: Ignore classes with a pending init for the
15600         moment.
15601
15602 2002-10-03  Dick Porter  <dick@ximian.com>
15603
15604         * threads.c: Freebsd pthread_t is a pointer
15605
15606 2002-10-03  Dick Porter  <dick@ximian.com>
15607
15608         * socket-io.c: Implemented GetHostName_internal
15609
15610 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15611
15612         * mono-config.c:
15613         (mono_config_parse_file): don't leak the text.
15614
15615 2002-10-02  Martin Baulig  <martin@gnome.org>
15616
15617         * debug-mono-symfile.c: Added support for methods.
15618
15619 2002-10-01  Martin Baulig  <martin@gnome.org>
15620
15621         * debug-mono-symfile.c: Don't emit methods and line numbers for
15622         the dynamic symbol file, just write the type table.  We can easily
15623         have an external helper program which creates a symbol file for an
15624         IL file.        
15625
15626 2002-10-01  Dick Porter  <dick@ximian.com>
15627
15628         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15629         Only add the handle to the cleanup array when we're about to
15630         launch the thread.  Bug 31425 deadlocked when the test was run on
15631         mono under w32.
15632
15633 2002-10-01  Martin Baulig  <martin@gnome.org>
15634
15635         * debug-mono-symfile.c: Added support for properties.
15636
15637 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15638
15639         * reflection.c: unaligned store fix from Mark Crichton
15640         <crichton@gimp.org>.
15641
15642 2002-09-27  Martin Baulig  <martin@gnome.org>
15643
15644         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15645         New interncall.
15646
15647 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15648
15649         * assembly.h, assembly.c: use a sane API to hook into the assembly
15650         loading process instead of a useless special-purpouse hack
15651         (ngen needs a hook, too, for example).
15652
15653 2002-09-27  Dick Porter  <dick@ximian.com>
15654
15655         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15656         io-layer can set up some process handle info.  Not needed on w32,
15657         but doesn't hurt either.
15658
15659         * process.c: Pass the program name in the second parameter to
15660         CreateProcess, so the path is searched.  Include the working
15661         directory. Implemented process name, process enumeration, and some
15662         process detail internal calls.
15663         
15664         * icall.c: Added internal calls for process lookup, and some
15665         process details
15666
15667 2002-09-26  Martin Baulig  <martin@gnome.org>
15668
15669         * assembly.c (mono_install_open_assembly_hook): New global
15670         function to install a function to be invoked each time a new
15671         assembly is loaded.
15672         (mono_assembly_open): Run this callback function if set.
15673
15674         * debug-mono-symfile.c: Put back line numbers for the dynamic
15675         symbol file and also record the .il file as source file.  This
15676         allows us to install the temporary symbol file as `file.dbg' just
15677         like a compiler-generated one.
15678
15679 2002-09-26  Nick Zigarovich <nick@chemlab.org>
15680
15681         * Corrected typo in gc.c (BOHEM vs BOEHM).
15682
15683 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15684
15685         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
15686         GetProperties. Also avoid calling g_slist_length in GetProperties and
15687         GetMethods.
15688
15689 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15690
15691         * reflection.c: avoid unaligned stores (bug spotted by
15692         Mark Crichton  <crichton@gimp.org>).
15693
15694 2002-09-25  Martin Baulig  <martin@gnome.org>
15695
15696         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
15697         instead of guint64 for addresses and added prologue/epilogue info.
15698
15699 2002-09-25  Martin Baulig  <martin@gnome.org>
15700
15701         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
15702         store line number info.  For the dynamic symbol file, we only need
15703         to provide the JIT generated dynamic line number info for the dynamic
15704         symbol file.
15705
15706 2002-09-25  Martin Baulig  <martin@gnome.org>
15707
15708         * debug-mono-symfile.h: Incremented version number.
15709
15710 2002-09-24  Martin Baulig  <martin@gnome.org>
15711
15712         * class.c (mono_debugger_class_init_func): New global function
15713         pointer variable.
15714         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
15715         call it.
15716
15717         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
15718         function.  This is called via the mono_debugger_class_init_func
15719         hook to add all types to the dynamic type table.
15720         (ves_icall_MonoDebugger_GetType): New interncall to get a class
15721         from its metadata token.
15722
15723         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
15724         New interncall for the debugger.
15725
15726 2002-09-24  Nick Drochak <ndrochak@gol.com>
15727
15728         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
15729         before using it in case it is null.
15730         
15731 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
15732
15733         * metadata.c: allow custom modifiers in local var signatures
15734         (bug spotted by Zoltan Varga).
15735
15736 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
15737
15738         * class.c: deal with the <Module> class that may have a NULL vtable.
15739         Eliminate warnings.
15740
15741 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15742
15743         * image.c, image.h: more strong name helpers.
15744         * monosn.c: more work: convert pem keys to cryptoapi format.
15745
15746 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
15747
15748         * string-icalls.c: speedup IndexOf.
15749
15750 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15751
15752         * icall.c: updates from Zoltan.2.Varga@nokia.com.
15753
15754 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15755
15756         * icall.c: cleanup: use mono_object_domain ().
15757
15758 2002-09-23  Martin Baulig  <martin@gnome.org>
15759
15760         * debug-mono-symfile.c: Improved type support.
15761
15762 2002-09-22  Martin Baulig  <martin@gnome.org>
15763
15764         * debug-mono-symfile.c: Added support for reference types and strings.
15765
15766 2002-09-22  Martin Baulig  <martin@gnome.org>
15767
15768         * debug-mono-symfile.c: Started to work on the type table.
15769
15770 2002-09-21  Martin Baulig  <martin@gnome.org>
15771
15772         * debug-mono-symfile.c: Largely reworked the symbol table format.
15773         The symbol table is now incrementally updated each time a new
15774         method is added.  We're now also using our own magic and version
15775         so that you don't need to recompile all your classes if the
15776         dynamic table changes.
15777         (mono_debug_update_mono_symbol_file): Removed.
15778         (mono_debug_symfile_add_method): New function to add a method.
15779
15780 2002-09-21  Martin Baulig  <martin@gnome.org>
15781
15782         * icall.c
15783         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
15784         New interncall.
15785
15786         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
15787         New interncall to get a method from its metadata token.
15788
15789 2002-09-21  Martin Baulig  <martin@gnome.org>
15790
15791         * debug-mono-symfile.c: Create type table.
15792
15793 2002-09-20  Martin Baulig  <martin@gnome.org>
15794
15795         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
15796
15797 2002-09-20  Martin Baulig  <martin@gnome.org>
15798
15799         * debug-mono-symfile.c: Provide information about params and locals.
15800
15801 2002-09-20  Martin Baulig  <martin@gnome.org>
15802
15803         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
15804         New interncall.
15805
15806         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
15807         interncall to get a method from its metadata token.
15808
15809 2002-09-20  Martin Baulig  <martin@gnome.org>
15810
15811         * debug-mono-symfile.c: Added a few checks for method->header
15812         being non-NULL.  This should never happen, but for the moment
15813         let's use a g_warning() rather than a g_assert().
15814
15815 2002-09-19  Mark Crichton  <crichton@gimp.org>
15816
15817         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
15818         even if support for it isn't present.  Added an #ifdef to fix this.
15819
15820         * socket-io.c: Added checks back for Solaris support.
15821
15822 2002-09-19  Martin Baulig  <martin@gnome.org>
15823
15824         * debug-mono-symfile.c (read_string, write_string): Reflect latest
15825         changes in the symbol file format.
15826
15827 2002-09-18  Martin Baulig  <martin@gnome.org>
15828
15829         * debug-mono-symfile.c: Set version number to 21.
15830
15831 2002-09-18  Dick Porter  <dick@ximian.com>
15832
15833         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
15834         on netbsd.  Fixes bug 30051.
15835
15836 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15837
15838         * reflection.c:
15839         (set_version_from_string): little fix.
15840
15841 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15842
15843         * monosn.c, Makefile.am: added strong name utility.
15844         * reflection.h, reflection.c: implemented delayed signing,
15845         locale, version and hash id assembly attributes.
15846
15847 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
15848
15849         * loader.c, metadata.c: load param attributes in signatures.
15850
15851 2002-09-16  Martin Baulig  <martin@gnome.org>
15852
15853         * debug-mono-symfile.c: Added string table with all method names.
15854
15855 2002-09-14  Martin Baulig  <martin@gnome.org>
15856
15857         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
15858         fast method lookup.
15859
15860 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15861
15862         * reflection.c: record the public key token of referenced assemblies.
15863
15864 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
15865
15866         * image.c, image.h: added functions to get the strong name and the
15867         public key of an assembly.
15868         * pedump.c: use them.
15869
15870 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
15871
15872         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
15873
15874 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
15875
15876         * marshal.c (mono_marshal_get_managed_wrapper): Added
15877         MONO_TYPE_BOOLEAN 
15878
15879 2002-09-11  Martin Baulig  <martin@gnome.org>
15880
15881         * gc.c: Call GC_unregister_disappearing_link() on all links when
15882         finalizing them, this is necessary to aviod a crash in boehm's
15883         finalize handler.
15884
15885 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15886
15887         * gc.c: handle GetTarget for finalized objects spotted and fixed by
15888         nick@chemlab.org.
15889
15890 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
15891
15892         * icall.c: implemented MonoType::Module.
15893         * reflection.c, reflection.h: mono_module_get_object () from
15894         Tomi Pakarinen <tomi.pakarinen@welho.com>.
15895
15896 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
15897
15898         * icall.c: ignore overridden methods in GetMethods ().
15899         Fix for FieldInfo::SetValue().
15900         * object.c: handle float/double in runtime invoke.
15901
15902 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
15903
15904         * object.c: allow a constructor to be called again on an object.
15905
15906 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15907
15908         * class.h, class.c: move field layout code to it's own function and
15909         export it. Get an interface id earlier. Move fields in MonoClass
15910         so they are more cache friendly and align the bitfields.
15911         * loader.c: temporary handle get_param_names() for a runtime method.
15912         * reflection.c, reflection.h: more code to handle runtime creation of
15913         types.
15914
15915 2002-09-09  Martin Baulig  <martin@gnome.org>
15916
15917         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
15918         signature with the pinvoke field being set for the actual call.
15919
15920 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
15921
15922         * icall.c: removed some unused icalls. Start of map of glib charsets
15923         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
15924
15925 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
15926
15927         * debug-helpers.c: break infinite loop (found and fixed by
15928         Holger Arnold <harnold@gmx.de>).
15929
15930 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15931
15932         * icall.c: target may be null in create_delegate.
15933
15934 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15935
15936         * marshal.c: handle a boolean return type.
15937
15938 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15939
15940         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
15941
15942 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15943
15944         * gc.c: fix weakreferences.
15945
15946 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
15947
15948         * icall.c: added icall to get default codepage.
15949
15950 2002-09-03  Dick Porter  <dick@ximian.com>
15951
15952         * threads.h: 
15953         * threads.c: Use MonoThread instead of MonoObject where
15954         apropriate.
15955
15956         Store running thread objects in a hash table, so that we have all
15957         the info to hand when waiting for them to finish
15958         (means we don't need OpenThread() any more, so mingw builds should
15959         be fully functional again.)
15960
15961         * verify.c:
15962         * object.h: Added thread ID to MonoThread
15963
15964 2002-09-03  Martin Baulig  <martin@gnome.org>
15965
15966         * icall.c (System.Reflection.Assembly::get_location): New interncall.
15967
15968 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15969
15970         * icall.c: fixed leak in get_temp_path. Thanks lupus.
15971
15972 2002-09-03  Martin Baulig  <martin@gnome.org>
15973
15974         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
15975         argument to store the end address of the disassembled instruction.
15976
15977         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
15978         here from debug-symfile.h.
15979         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
15980         JIT into this struct.
15981         (MonoSymbolFile): Added `char *image_file' field.
15982         (MonoDebugGetMethodFunc): Removed.
15983         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
15984         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
15985         (mono_debug_find_method): New method.
15986
15987         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
15988         create a full symbol file.
15989         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
15990         and static symbol files.
15991         (mono_debug_find_method): The symbol file keeps an internal method hash,
15992         call this to get a MonoDebugMethodInfo from a MonoMethod.
15993
15994         * debug-symfile.[ch]: Removed.
15995
15996 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
15997
15998         * image.c (do_mono_image_open): Remove linker version check.
15999
16000 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
16001
16002         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
16003         wrappers for instance methods.
16004         
16005 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16006
16007         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
16008
16009 2002-08-28  Dick Porter  <dick@ximian.com>
16010
16011         * Makefile.am: Export HOST_CC for w32 builds
16012
16013 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16014
16015         * file-io.c process.c: MonoString are null terminated, no
16016         need for mono_string_to_utf16() anymore.
16017
16018 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16019
16020         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
16021
16022 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
16023
16024         * icall.c, reflection.h: speedup System.MonoType.
16025
16026 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16027
16028         * reflection.c: allow null as the value of a string argument in
16029         custom attributes constructors.
16030
16031 2002-08-27  Martin Baulig  <martin@gnome.org>
16032
16033         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
16034         `trampoline_address' field.
16035
16036 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
16037
16038         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
16039         check (fixes bug #29486) 
16040
16041 2002-08-27  Martin Baulig  <martin@gnome.org>
16042
16043         * debug-mono-symfile.c: Changed the file format in a way that allows us
16044         open it read-only and to use a specially malloced area for all the
16045         dynamic data.  We can now also generate a symbol file on-the-fly if we're
16046         debugging IL code and there is no MCS generated symbol file for it.
16047
16048 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16049
16050         * object.c: added a define for a good string and array
16051         creation speedup (not enabled by default because we need to deal with
16052         the synch stuff).
16053
16054 2002-08-26  Martin Baulig  <martin@gnome.org>
16055
16056         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
16057         function to create a dynamic symbol file.  This is used by the
16058         debugger to create a symbol file for IL code on-the-fly.
16059
16060 2002-08-26  Martin Baulig  <martin@gnome.org>
16061
16062         * loader.c (mono_lookup_pinvoke_call): Include the error message
16063         from g_module_error() in the error message.
16064
16065 2002-08-24  Martin Baulig  <martin@gnome.org>
16066
16067         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
16068         function to update the symbol file.  The symbol file is mmap()ed
16069         writable, but private.  This allows us to install the symbol file
16070         together with the assembly.
16071
16072 2002-08-24  Martin Baulig  <martin@gnome.org>
16073
16074         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
16075         but they can read the new symbol file format which mcs is now creating.
16076
16077         * debug-symfile.c (mono_debug_find_source_location): Moved to
16078         debug-mono-symfile.c; this is now operating on the new symbol file.
16079
16080 2002-08-23  Martin Baulig  <martin@gnome.org>
16081
16082         * debug-helpers.c (mono_method_desc_from_method): New function to get
16083         a MonoMethodDesc from a MonoMethod.
16084
16085 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16086
16087         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
16088         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
16089
16090 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16091
16092         * string-icalls.[ch]: make helper methods static.
16093
16094 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16095
16096         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
16097         types to it and to SetValueInternal.
16098
16099         * object.c: Moved handle_enum label to its proper place. This was the
16100         f... bug! ;-)
16101
16102         This time i compiled mcs and gtk-sharp and they both work.
16103
16104 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16105
16106         * icall.c: reverted partially my previous patch until 
16107         object.c:set_value handles enums correcly.
16108
16109 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16110
16111         * icall.c:
16112         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
16113         (ves_icall_System_Environment_get_MachineName): removed warning when
16114         compiling under cygwin.
16115
16116 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16117
16118         * object.c: fixed field_get_value() for reference types.
16119
16120 2002-08-22  Dick Porter  <dick@ximian.com>
16121
16122         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
16123         Don't free a buffer while it's still needed.  Patch from Jonathan
16124         Liger <Jonathan.liger@wanadoo.fr>
16125
16126 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
16127
16128         * icall.c (ves_icall_System_Environment_get_Platform): Add new
16129         internal call.
16130
16131 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
16132
16133         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
16134         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
16135
16136         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
16137         we call unmanaged code which throws exceptions.
16138
16139 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16140
16141         * appdomain.h: added per-domain entry_assembly.
16142         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
16143         arguments.
16144         * icall.c: Assembly::GetEntryAssembly icall.
16145         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
16146         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
16147
16148 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16149
16150         * appdomain.h, gc.c: added mono_domain_finalize ().
16151
16152 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16153
16154         * object.c:
16155         (mono_print_unhandled_exception): changed g_warning by g_printerr
16156         because g_log has a 1024 characters limit (yeah, i got a big stack
16157         trace). Don't print exception name, that should be in ToString 
16158         returned string.
16159
16160 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16161
16162         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
16163         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
16164
16165 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16166
16167         * object.c:
16168         (mono_print_unhandled_exception): after previous commit, i realized
16169         that MS calls ToString on the exception. I changed this function to
16170         do that. This way we get stack_trace for free.
16171
16172 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16173
16174         * object.c:
16175         (mono_print_unhandled_exception): invoke Message property instead of
16176         getting 'message' field from Exception. Don't allocate memory for
16177         'trace' and 'message' if not needed.
16178
16179 2002-08-18  Dick Porter  <dick@ximian.com>
16180
16181         * unicode.c: Fix asserts to match Encoder.cs checks
16182
16183 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16184
16185         * marshal.c: fix unaligned store issue and a few wrong
16186         opcode argument types.
16187
16188 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16189
16190         * icall.c: added GetUninitializedObjectInternal internal call.
16191
16192 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
16193
16194         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
16195         to the right domain.
16196
16197 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
16198
16199         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
16200
16201         * class.c (class_compute_field_layout): set blittable to false for Strings
16202
16203         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
16204
16205 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16206
16207         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
16208         first chunk of code to create types at runtime. Code to
16209         handle ReflectedType/DeclaringType. Make reflection handles
16210         domain specific.
16211
16212 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16213
16214         * class.c: set correct name in arrays.
16215
16216 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
16217
16218         * appdomain.c (mono_domain_transfer_object): make it work with
16219         valuetypes. bug fixes.
16220
16221 2002-08-12  Dick Porter  <dick@ximian.com>
16222
16223         * object.h: Rename some parameters to avoid c++ keywords (Patch
16224         from Joseph Wenninger <kde@jowenn.at>)
16225
16226 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
16227
16228         * icall.c: added icall to implement Assembly.GetFile*.
16229
16230 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16231
16232         * reflection.h, reflection.c: code to embed managed resources.
16233
16234 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16235
16236         * class.c: move all the type size stuff into
16237         class_compute_field_layout().
16238
16239 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16240
16241         * class.c: ensure enums have always the correct instance size.
16242         * unicode.c: remove wrong assert.
16243
16244 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16245
16246         * assembly.c: fix mem corruption issue.
16247         * image.h, image.c: added mono_image_get_resource () to access
16248         managed resources.
16249         * icall.c: implemented Assembly.EntryPoint property and some
16250         Managed Resources related internalcalls.
16251
16252
16253 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16254
16255         * image.c, image.h: impemented mono_image_get_entry_point ().
16256         * appdomain.c: use mono_image_get_entry_point.
16257
16258 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16259
16260         * reflection.c: support the object type argument when loading
16261         custom attributes.
16262
16263 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
16264
16265         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
16266         String as return type.
16267
16268 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
16269
16270         * reflection.c: fix encoding of named args for custom attrs to match
16271         the ms implementation. Read them back when instantiating custom
16272         attributes.
16273
16274 2002-08-02  Radek Doulik  <rodo@ximian.com>
16275
16276         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
16277         by Dietmar as quick fix
16278         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
16279         16 as stack size, used on more places as quick fix before Dietmar
16280         will fix it properly
16281
16282 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16283
16284         * object.h, object.c: added accessors for fields and properties.
16285
16286 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16287
16288         * class.c, class.h: made mono_class_get_field_from_name ()
16289         loop on parent types.
16290         Added mono_class_get_property_from_name ().
16291
16292 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16293
16294         * class.c, class.h: move the code to setup the type vtable in its own
16295         function so that it can be reused also for types created at runtime.
16296         Eliminate the "class" identifier from the header file.
16297         * reflection.c: setup the vtable for enums so that we can create
16298         objects for use in SetConstant ().
16299
16300 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
16301
16302         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
16303         instead of the delegate itself as this pointer (bug #28383)
16304
16305 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
16306
16307         * marshal.c (mono_marshal_get_managed_wrapper): added return type
16308         conversions.
16309
16310 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16311
16312         * loader.c: don't set the pinvoke bit on icalls.
16313
16314 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
16315
16316         * debug-helpers.c (mono_method_full_name): only print a number to
16317         indicate wrapper type (so that the output is more readable in traces).
16318
16319 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
16320
16321         * class.c (mono_class_init): include method override patch from Paolo
16322
16323 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
16324
16325         * icall.c: fixed GetTypeCode().
16326
16327 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
16328
16329         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
16330         use real delegate invoke function to make it work with multicast
16331         delegates (fix bug# 28291).
16332
16333 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16334
16335         * object.c: load constant strings.
16336
16337 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16338
16339         * reflection.c: no magic numbers.
16340         * tabledefs.h: security action enum.
16341
16342 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16343
16344         * assembly.c: fix possible memory corruption.
16345
16346 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16347
16348         * reflection.h, reflection.c: added support for linking resources.
16349         * verify.c: check we have an updated corlib.
16350
16351 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
16352
16353         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
16354         string arrays.
16355         (mono_marshal_string_array): null terminate unmanaged string arrays.
16356         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
16357
16358 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16359
16360         * icall.c: Type.GetType () can now return also types from the
16361         calling assembly.
16362
16363 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16364
16365         * loader.h, loader.c: stack walking support.
16366         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
16367         GetCallingAssembly.
16368
16369 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
16370
16371         * marshal.c: added optimisations for blittable types 
16372
16373         * class.c (mono_array_class_get): do not set blittable attribute on arrays
16374         (mono_class_setup_mono_type): set blittable attribute for single
16375         and double.
16376
16377         * marshal.c (mono_string_utf8_to_builder): impl.
16378         (mono_string_builder_to_utf8): impl.
16379         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
16380
16381 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
16382
16383         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
16384         (mono_marshal_get_managed_wrapper): impl. byref types
16385
16386 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16387
16388         * icall.c:
16389         (search_method): don't display debug message. 
16390
16391 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16392
16393         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
16394
16395 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16396
16397         * appdomain.c: set the missing filename when throwing exception.
16398
16399 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16400
16401         * metadata.c (mono_type_size): code cleanup
16402         (mono_type_stack_size): removed some test code
16403
16404 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
16405
16406         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
16407         mono_get_exception_file_not_found now.
16408
16409         * exception.c (mono_exception_from_name_two_strings): New version
16410         that will call a constructor with two string arguments. 
16411         (mono_get_exception_file_not_found): New helper routine, used to
16412         report file-not-found errors.
16413
16414 2002-07-20  Dick Porter  <dick@ximian.com>
16415
16416         * process.h:
16417         * process.c: Pass file handles to CreateProcess
16418         
16419         * icall.c:
16420         * file-io.h:
16421         * file-io.c: Implemented CreatePipe
16422
16423 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16424
16425         * metadata.c (mono_get_param_info): set alignment for value types
16426
16427 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16428
16429         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
16430         Constify mono_domain_assembly_open().
16431         * loader.c: handle null namespace in icalls.
16432
16433 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16434
16435         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
16436         (emit_str_to_ptr_conv): marshal object as structs
16437
16438         * metadata.c (mono_type_to_unmanaged): marshal object as structs
16439
16440         * marshal.c (mono_marshal_get_runtime_invoke): support value types
16441
16442 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
16443
16444         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
16445         (mono_marshal_get_native_wrapper): we an now return value types
16446
16447 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16448
16449         * verify.c: more checks implemented.
16450
16451 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
16452
16453         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
16454         (fix bug #27695)
16455         (mono_marshal_get_native_wrapper): allow byref arguments
16456         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
16457         impl. PtrToStringXXX methods
16458         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
16459         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
16460         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
16461         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
16462         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
16463
16464 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16465
16466         * reflection.c: fix buglet in parsing an assembly name.
16467
16468 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16469
16470         * marshal.c (emit_ptr_to_str_conv): first impl.
16471
16472 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16473
16474         * object.c, class.h: cache the vtable in the class as suggested by
16475         vargaz@freemail.hu (Zoltan Varga).
16476
16477 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16478
16479         * class.h, loader.c: added mono_field_from_token().
16480         * verify.c: first cut of type checking code.
16481
16482 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16483
16484         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
16485
16486 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
16487
16488         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
16489         (fix bug #27782)
16490         (mono_marshal_get_remoting_invoke): impl.
16491         (mono_delegate_begin_invoke): impl.
16492         (mono_mb_emit_save_args): impl.
16493         (mono_delegate_end_invoke): impl.
16494         (mono_marshal_get_delegate_begin_invoke):
16495         (mono_marshal_get_delegate_end_invoke):
16496         (mono_marshal_get_delegate_invoke): generate a special name for
16497         those methods (including the signature) and associate them whith
16498         the delegate class. 
16499
16500 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16501
16502         * reflection.[ch]: 
16503         (mono_reflection_type_from_name): now it has a MonoImage parameter
16504         which is used as the default image to search the type in. If the image
16505         is NULL or getting the type from it fails, it defaults to corlib.
16506
16507         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16508         new parameter.
16509
16510 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16511
16512         * reflection.c: update the parameter table index.
16513
16514 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16515
16516         * domain.c: don't include the mark byte in the string hash.
16517
16518 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16519
16520         * icall.cs: icall for Type.GetTypeCode ().
16521         * verify: a couple of fixes and disabled local initialization checks.
16522
16523 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16524
16525         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16526
16527         * debug-helpers.c (mono_method_full_name): print the type of the
16528         runtime wrapper
16529
16530         * metadata.c (mono_signature_hash): a hash function for signatures
16531         (mono_signature_hash): better hash algorithm
16532
16533         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16534
16535         * debug-helpers.c (mono_method_full_name): this can now generate
16536         method names with signatures
16537
16538         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16539         method dont have this pointers.
16540
16541 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16542
16543         * reflection.c: fixup typebuilder tokens.
16544         * image.c: fix buglet.
16545         * marshal.h: remove whitespace.
16546         * metadata.h, metadata.c: reinstate code that was removed.
16547         * verify.c: handle catch directives and fix another couple of bugs.
16548
16549 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16550
16551         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16552         (mono_marshal_get_native_wrapper): make it comp. with the old code
16553         (mono_marshal_get_native_wrapper): support boolean
16554         (mono_marshal_get_managed_wrapper): support more types
16555
16556 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16557
16558         * class.c (class_compute_field_layout): compute class->blittable attribute.
16559
16560 2002-07-09  Dick Porter  <dick@ximian.com>
16561
16562         * threads.c: Make the thread cleaning up cope with threads that
16563         call ExitThread()
16564
16565 2002-07-08  Radek Doulik  <rodo@ximian.com>
16566
16567         * reflection.c (method_encode_code): use non-translated values to
16568         compute finally_start, this fixes exception handling on ppc, yay!
16569
16570         * decimal.h (struct signscale): fix endianess
16571
16572 2002-07-07  Radek Doulik  <rodo@ximian.com>
16573
16574         * reflection.c: swap box_val and not val
16575
16576 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16577
16578         * reflection.c, reflection.h: handle full assembly info in type name.
16579         Handle Type arguments when loading custom attributes.
16580         * icall.c: updated to use new mono_reflection_type_from_name () method.
16581
16582 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16583
16584         * loader.c:
16585         (method_from_memberref): also print assembly name when method not found.
16586
16587 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16588
16589         * icall.c:
16590         (ves_icall_TypeGetProperties): fixed bug #27473. 
16591
16592 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16593
16594         * reflection.c: display image name and token when cannot find the
16595         .ctor for an attribute.
16596
16597 2002-07-05  Martin Baulig  <martin@gnome.org>
16598
16599         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16600
16601 2002-07-04  Dick Porter  <dick@ximian.com>
16602
16603         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16604         compile on mingw.  This will cause mingw builds to not wait for
16605         subthreads to terminate after the main thread does.  I've lodged a
16606         bug with the mingw developers for them to wrap OpenThread().
16607
16608 2002-07-03  Dick Porter  <dick@ximian.com>
16609
16610         * threads.c: Store thread IDs instead of handles, because
16611         GetCurrentThread() returns a pseudohandle and therefore stores
16612         useless values.  mono_thread_cleanup() continues checking the
16613         array of threads until it is empty, to cope with subthreads
16614         spawning new threads after the main thread has finished.
16615
16616         * profiler.h:
16617         * profiler.c:
16618         * profiler-private.h: Pass the thread ID to thread profiler
16619         functions, instead of a handle
16620
16621 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16622
16623         * verify.c: fixes to make it more usable.
16624         * pedump.c: added --verify code to verify IL code in an assembly.
16625
16626 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16627
16628         * reflection.c: turn errors into warnings to allow compiling corlib.
16629
16630 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16631
16632         * reflection.c: add special cases to compile corlib.
16633
16634 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16635
16636         * reflection.c: handle properties with only a set method.
16637
16638 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16639
16640         * opcodes.h: add enum with opcodes in opval order.
16641
16642 2002-07-01  Dick Porter  <dick@ximian.com>
16643         
16644         * object.h:
16645         * object.c (mono_runtime_run_main): Removed unneeded argument
16646
16647 2002-06-28  Martin Baulig  <martin@gnome.org>
16648
16649         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16650
16651 2002-06-27  Dick Porter  <dick@ximian.com>
16652
16653         * threads.c: Store the handle in both the parent thread and in the
16654         subthread, to minimise the time between starting a new thread and
16655         storing its ID.
16656
16657 2002-06-26  Dick Porter  <dick@ximian.com>
16658
16659         * appdomain.c (mono_runtime_cleanup): Close the socket library
16660         after all the threads have finished, not before
16661
16662 2002-06-26  Martin Baulig  <martin@gnome.org>
16663
16664         * debug-symfile.c (mono_debug_find_source_location): Added
16665         `guint32 *line_number' argument.  If it's not NULL, store the line number
16666         there and return the file name without the line number.
16667
16668 2002-06-25  Dick Porter  <dick@ximian.com>
16669
16670         * icall.c:
16671         * process.h:
16672         * process.c: Process forking and other support functions
16673
16674 2002-06-25  Dick Porter  <dick@ximian.com>
16675
16676         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
16677         things dont happen when the image is closed.
16678         (mono_image_lookup_resource): Walk the resource section looking
16679         for a particular entry
16680
16681         * cil-coff.h: PE resource section decoding
16682
16683 2002-06-25  Dick Porter  <dick@ximian.com>
16684         
16685         * assembly.h:
16686         * assembly.c: 
16687         (mono_assembly_foreach): Accessor functions to walk the list of
16688         loaded assemblies
16689         (mono_assembly_set_main):
16690         (mono_assembly_get_main): Process methods need to know which
16691         assembly is the "main" one
16692
16693         * object.c (mono_runtime_run_main): Record the main assembly
16694
16695         * debug-helpers.c: Fix typo
16696
16697 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
16698
16699         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
16700         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
16701
16702 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16703
16704         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
16705
16706 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
16707
16708         * image.c (do_mono_image_open): Initialize reference count,
16709         otherwise we leak the MonoImage.
16710
16711 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16712
16713         * reflection.c: small tweak to handle self-hosting.
16714
16715 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16716
16717         * reflection.c: fix type name parse code.
16718
16719 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16720
16721         * reflection.c: break out of the loop.
16722         * image.c: special case corlib.
16723
16724 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16725
16726         * reflection.c: add all the custom attrs at the end to ensure the
16727         ctors have been properly initialized when the attributes are defined
16728         in the current assembly.
16729
16730 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16731
16732         * reflection.c: handle correctly multiple-nested types.
16733
16734 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16735
16736         * row-indexes.h: fix typos.
16737         * reflection.c: adjust for typos and fix method_def_or_ref
16738         encoding in MethodImpl table.
16739
16740 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16741
16742         * reflection.c: fix entry point patching (thanks Serge!).
16743
16744 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
16745
16746         * verify.c: add check for System.Exception
16747
16748 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16749
16750         * image.c, class.c: minifix for code just c&p'ed.
16751         * reflection.c: warning fix.
16752         * object.h, loader.h, domain.c: load also StringBuilder.
16753
16754 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16755
16756         * marshal.h, marshal.c: some support code to handle complex marshaling.
16757
16758 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16759
16760         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
16761         Better signatures with vtable error dump.
16762
16763 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
16764
16765         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
16766
16767 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
16768
16769         * icall.c (ves_icall_Type_GetField): impl.
16770
16771 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16772
16773         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
16774         to retrieve a marshal description blob for a field or param.
16775
16776 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16777
16778         * reflection.h, reflection.c: change order of nested type emission
16779         to avoid table corruption. The NestedTypes table is sorted.
16780         * icall.c: change order of GetConstructor results to workaround mcs bug.
16781
16782 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16783
16784         * reflection.h, reflection.c: handle field and param marshal
16785         information.
16786
16787 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16788
16789         * icall.c, marshal.c marshal.h: more Marshal class implementation.
16790
16791 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16792
16793         * reflection.c: fix call convention.
16794
16795 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16796
16797         * reflection.h, reflection.c: mono_image_get_memberref_token()
16798         takes a type instead of a class, now. Added
16799         mono_image_get_array_token() to create tokens for the special
16800         multi-dim array methods.
16801
16802 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16803
16804         * assembly.c: handle modules (no assembly table). Split
16805         loading references in its own function.
16806         * class.c: handle moduleref resolution scope.
16807         * image.c, image.h: cache module name in image.
16808
16809 2002-06-07  Martin Baulig  <martin@gnome.org>
16810
16811         * reflection.c (mono_image_get_type_info): Only add a class layout entry
16812         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
16813
16814 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16815
16816         * icall.c: more signature fixes that used uint instead of int.
16817
16818 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16819
16820         * reflection.c: fixed signature of field refs.
16821
16822 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16823
16824         * class.c, reflection.c: handle typerefs of nested types
16825         (both on read and when writing files).
16826
16827 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16828
16829         * icall.c: fix method signatures that tried to workaround the previous
16830         typo, d'oh!
16831
16832 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16833
16834         * debug-helpers.c: fix typo.
16835
16836 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16837
16838         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
16839         rewrote the PE/COFF writing code (our programs are understood by the
16840         ms runtime, now).
16841
16842 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16843
16844         * gc.c, gc.h, icall.c: weakreference support.
16845
16846 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16847
16848         * Makefile.am, mono-config.c: use $(sysconfdir).
16849
16850 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16851
16852         * icall.c: changed default precision of Double.ToString() to 15.
16853         Fixed memory leak. Unified with Single.ToString.
16854
16855 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16856
16857         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
16858
16859 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16860
16861         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
16862         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
16863         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
16864         and myself.
16865
16866 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16867
16868         * debug-symfile.c, sysmath.c: yet more compilation fixes.
16869
16870 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16871
16872         * reflection.c, socket-io.c: more compilation fixes.
16873
16874 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16875
16876         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
16877         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
16878         unicode.c: warning and compiler compatibility fixes.
16879
16880 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16881
16882         * class.h, metadata.c: fixed warnings/compilation errors.
16883
16884 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16885
16886         * Makefile.am, mono-config.c, mono-config.h: configuration file
16887         support routines.
16888         * loader.c, loader.h: make Dll mapping configurable at runtime in the
16889         config file. Export methods to insert and lookup mappings.
16890
16891 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16892
16893         * reflection.c: handle types and boxed objects in custom attr
16894         constructors.
16895
16896 2002-05-30  Martin Baulig  <martin@gnome.org>
16897
16898         * debug-symfile.c
16899         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
16900
16901 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
16902
16903         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
16904         to lookup the implmap row for a P/Invoke method.
16905         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
16906         P/Invoke method from the runtime on an as needed basis.
16907
16908 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
16909
16910         * metadata.c (mono_metadata_parse_signature): impl.
16911
16912 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16913
16914         * class.c: handle .pack directive.
16915
16916 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16917
16918         * object.c: initialize static fields with RVA data.
16919
16920 2002-05-25  Martin Baulig  <martin@gnome.org>
16921
16922         * debug-symfile.c
16923         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
16924
16925 2002-05-24  Martin Baulig  <martin@gnome.org>
16926
16927         * debug-symfile.c
16928         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
16929         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
16930         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
16931
16932 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16933
16934         * object.c: special case string ctros in invoke.
16935         * gc.c: silly whitespace changes.
16936
16937 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
16938
16939         * threadpool.[ch]: impl. a threadpool that can
16940         be used by mint and mono.
16941
16942 2002-05-22  Martin Baulig  <martin@gnome.org>
16943
16944         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
16945         The first argument is now a `MonoReflectionModuleBuilder *', the return
16946         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
16947         `methods' field to get the method builder.  The `token' argument is the
16948         unfixed token.
16949
16950         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
16951         invalid characters instead of g_assert_not_reached()ing.  This seems
16952         to be the behaviour of mscorlib.
16953
16954 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
16955
16956         * object.c (mono_runtime_invoke_array): applied patch from Rachel
16957         Hestilow to fix bug #25104
16958
16959 2002-05-21  Martin Baulig  <martin@gnome.org>
16960
16961         * debug-symfile.c (mono_debug_find_source_location): New function.
16962         Looks up an IL offset in the line number table and returns the source
16963         location as a string.
16964
16965 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16966
16967         * icall.c:
16968         (mono_double_ToStringImpl): changed %f by %g until we have something
16969         better.
16970
16971 2002-05-21  Nick Drochak  <ndrochak@gol.com>
16972
16973         * icall.c : Use different name for Math.Pow's icall.  Needed to check
16974         parameters first in C#.
16975
16976 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16977
16978         * icall.c, reflection.h: added icall to get info about an event.
16979
16980 2002-05-20  Radek Doulik  <rodo@ximian.com>
16981
16982         * object.c (mono_value_box): don't use memcpy for boxing on BIG
16983         endian
16984         (mono_value_box): don't use memcpy for small sizes on
16985         architectures with unaligned access
16986
16987 2002-05-20  Martin Baulig  <martin@gnome.org>
16988
16989         * reflection.c (mono_reflection_setup_internal_class): Don't crash
16990         if `tb->parent == NULL'.
16991         (mono_reflection_create_internal_class): New function.  This is
16992         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
16993         for enum types.
16994
16995         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
16996         New interncall.
16997
16998 2002-05-19  Martin Baulig  <martin@gnome.org>
16999
17000         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
17001         argument to get the length, don't default to the array length.
17002
17003 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
17004
17005         * assembly.c (mono_assembly_setrootdir): New function used to
17006         override the MONO_ASSEMBLIES directory.
17007
17008 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17009
17010         * icall.c: ValueType_GetHashCode() initialize local var.
17011
17012 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17013
17014         * reflection.c: sort custom attributes table.
17015
17016 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17017
17018         * reflection.c: support named args in custom attributes (write support).
17019
17020 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17021
17022         * reflection.c: fix finally position calculation.
17023
17024 2002-05-15  Radek Doulik  <rodo@ximian.com>
17025
17026         * reflection.c: fixed endianess at many places
17027
17028         * icall.c (ves_icall_InitializeArray): comment out debug msg
17029
17030 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
17031
17032         * object.c (mono_unhandled_exception): new function to handle
17033         unhandled exceptions.
17034         (mono_unhandled_exception): call the UnhandledException event.
17035         (mono_runtime_delegate_invoke): impl.
17036
17037 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
17038
17039         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
17040         returns the RVA, not the direct pointer to the data. Handle the case
17041         when the class size is fixed.
17042
17043 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17044
17045         * reflection.c: fix some endianess issues.
17046
17047 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
17048
17049         * object.c (mono_runtime_invoke): is now able to catch exceptions.
17050
17051         * threads.c (mono_thread_init): added a callback which is invoked
17052         at thread start.
17053
17054 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17055         
17056         * icall.c: make GetHashCode return non-negative values.
17057
17058 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17059
17060         * object.c, icall.c, gc.c: revert to address-based hashcode.
17061
17062 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
17063
17064         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
17065
17066 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17067
17068         * icall.c, class.c: special case <Module>.
17069
17070 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
17071
17072         * icall.c: fix bug in GetNow().
17073
17074 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
17075
17076         * object.c (mono_runtime_class_init): make sure that we call all
17077         static class constructors.
17078
17079 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17080
17081         * reflection.c: sort methodsemantics table.
17082
17083 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17084
17085         * reflection.h, reflection.c: honour init locals setting.
17086
17087 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
17088
17089         * icall.c: copied Double ToStringImpl for Single ToStringImpl
17090
17091 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17092
17093         * reflection.c: support ContructorBuilders in attribute blob creation.
17094
17095 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17096
17097         * reflection.c: some changes to build a binary that can be run
17098         directly in windows.
17099
17100 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17101
17102         * loader.c: print a big message when an icall can't be found.
17103
17104 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17105
17106         * string-icalls.c: fix bug 24248.
17107
17108 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17109
17110         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
17111         icall.c, reflection.h: separate assembly loading by pathname and by
17112         assembly name. Use the MONO_PATH env var to search for assemblies.
17113
17114 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17115
17116         * assembly.c, image.h: add some support for assemblies
17117         with multiple modules.
17118         * class.c, class.h: export mono_class_from_typeref().
17119         * loader.c: remove duplicated code and use mono_class_from_typeref(),
17120         instead.
17121
17122 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17123
17124         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
17125         documentation says (the ECMA one is correct).
17126
17127 2002-05-02  Dick Porter  <dick@ximian.com>
17128
17129         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
17130         Don't name the synchronisation mutex.
17131
17132 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
17133
17134         * rand.c
17135         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
17136         Make the prototypes match.
17137         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
17138         Same.
17139
17140         * icall.c
17141         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
17142         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
17143         all systems have tm.tm_zone, so use strftime() with %Z to print
17144         the timezone abreviation into a temp string.
17145
17146         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
17147         rather than mono_array_addr() on a MonoString on Big Endian
17148         machines.
17149
17150 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
17151
17152         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
17153         fix bug 24041
17154
17155 2002-04-30  Dick Porter  <dick@ximian.com>
17156
17157         * socket-io.c: Cope with SOCKET being an integer rather than a
17158         pointer now.
17159
17160         * threads.c: Added Thread_free_internal, to deal with thread
17161         handle cleanup.  Moved calls to handle_store() and handle_remove()
17162         to start_wrapper(), so each can only be called once.  Allocate
17163         synchronisation blocks with GC_malloc(), and use GC finalisation
17164         to close the handles.
17165
17166         * icall.c: added System.Threading.Thread::Thread_free_internal
17167
17168 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17169
17170         * icall.c: support Environment.Exit, CommandLineArgs().
17171
17172 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17173
17174         * object.c, object.h: added mono_runtime_run_main () and
17175         mono_runtime_get_main_args () for use in System.Environment.
17176
17177 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17178
17179         * gc.c: fix thinko, enable actual finalization since the jit is now
17180         fixed.
17181
17182 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17183
17184         * gc.c, object.c: take into account that an object may be offset wrt the address
17185         returned by GC_malloc().
17186
17187 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17188
17189         * image.c: handle files without entries in the assembly table (modules).
17190
17191 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
17192
17193         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
17194         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
17195         allowed to be null when it's System.Object class setup.
17196
17197 2002-04-27  Martin Baulig  <martin@gnome.org>
17198
17199         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
17200         if `tb->parent == NULL' rather than crashing.
17201
17202 2002-04-28  Nick Drochak  <ndrochak@gol.com>
17203
17204         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
17205         calling acos() where asin() should have been called.
17206
17207 2002-04-26  Martin Baulig  <martin@gnome.org>
17208
17209         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
17210         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
17211         there's a subdirectory called `System', but we don't want to read that
17212         subdirectory as an assembly.
17213
17214 2002-04-25  Martin Baulig  <martin@gnome.org>
17215
17216         * debug-symfile.c: Reflect latest MonoString changes.
17217
17218 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17219
17220         * rand.c, rand.h: instance method icalls need to have an explicit
17221         this pointer as first argument in the C implementation.
17222
17223 2002-04-25  Nick Drochak <ndrochak@gol.com>
17224
17225         * icall.c: Fix typo in map for GetNonZeroBytes
17226
17227 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17228
17229         * string-icalls.c : String does now passes unit tests without any 
17230         errors, the following changes has been made:
17231         
17232         Implemented replace methods.
17233         Renaming of methods to (try) follow the standard.
17234         Fixed compare ordinal
17235         Made all memory allocated directly to function instead of via icall function.
17236         Small performance fix in is_in_array function
17237                         
17238  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
17239
17240         c (mono_string_Internal_ctor_charp_int_int):
17241         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
17242         sindex < 0, throw ArgumentOutOfRangeException instead of
17243         ArgumentNullException.
17244
17245         Added new check for length == 0, however
17246         I need to make it return String.Empty from the C code.
17247         
17248         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
17249         that calculate the length for us here.
17250         
17251         (mono_string_Internal_ctor_sbytep_int_int): Replaced
17252         mono_string_new_utf16 with mono_string_new, since value is utf8.
17253
17254 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17255
17256         * object.c: register the object for finalization if needed.
17257         Allocate one more char in the string for the terminating 0 char.
17258
17259 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17260
17261         * class.c, class.h, image.c: check if a type implemenst a destructor.
17262         Use the proper key for array class lookups.
17263         * icall.c: register the icalls in the System.GC class.
17264         * gc.c, gc.h: GC-related functions and icalls.
17265
17266 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17267
17268         * icall.c:
17269         * socket-io.c:
17270         * unicode.c: free some strings gotten from mono_string_to_utf8 and
17271         changed a couple of free () by g_free ().
17272
17273         * decimal.c: one-liner in the comments for decimal2string ().
17274
17275 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17276
17277         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
17278
17279 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17280
17281         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
17282         * object.c (mono_runtime_invoke_array) : handle null in params
17283
17284 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17285
17286         * string-icalls.c: fixed bug in split (one off bug)
17287
17288 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17289
17290         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
17291         * icalls.c: added String::Equals as internal method
17292
17293 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17294
17295         * threads.c: fixed bug in the double interlocked functions
17296
17297 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
17298
17299         * threads.c: implemented all of the new interlocked icalls.
17300         * string-icalls.c: fix a bug in insert.
17301         * icalls.c: added the icalls for interlocked, removed old string functions.
17302         
17303 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17304
17305         * loader.c: fix off-by-one error when reading argument names.
17306
17307 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17308
17309         * profiler.c: win32 counter implementation (untested).
17310         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
17311         (the latter needs testing and more complete impl. from win32 folks).
17312
17313 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
17314
17315         * object.c: mono_array_new_full workaround mono_array_class_get
17316         problem.
17317
17318 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17319
17320         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
17321         * object.h (mono_string_chars): Changed casting type.
17322
17323 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17324
17325         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
17326                            method signatures to use gunichar2 instead of gint16.
17327
17328 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
17329
17330         * object.h, object.c: domain-specific versions of mono_object_new and
17331         mono_array_new.
17332
17333 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
17334
17335         * object.c: changed String layout
17336
17337         * string-icalls.c (mono_string_Internal_ctor_chara): added
17338         internal string constructors.
17339
17340 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
17341
17342         * threads.c: pass 'this' to the thread start routine.
17343
17344 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17345
17346         * string-icalls.c: fix IndexOf and LastIndexOf. Now
17347         InternalCompareStr don't call twice mono_string_cmp_char for the last
17348         character. Improved performance in mono_string_cmp_char.
17349
17350 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17351
17352         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
17353         code into its own library: libmonoruntime.
17354
17355 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
17356
17357         * object.h, object.c: changed array format so that szarrays do not
17358         require a bounds structure.
17359         * icall.c, appdomain.c: support for new szarray format.
17360
17361 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17362
17363         * metadata.c: compare also the retuns type when comparing signatures:
17364         we didn't do this as an optimization since really overloaded methods
17365         must differ also in the arguments, but this doesn't work with
17366         low-level IL code (or when using explicit conversion operators: see
17367         bug#23498 for an example).
17368
17369 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17370
17371         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
17372
17373 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17374
17375         * icall.c: make MonoType::GetElementType its own icall.
17376
17377 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17378
17379         * icall.c: remove MonoMethod_get_Name().
17380         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
17381         object.
17382
17383 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17384
17385         * string-icalls.c: optimized a few methods.
17386
17387 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17388
17389         * icall.c: added all new string internal calls
17390         * string-icalls.c: added, new string internal call implementation.
17391         * object.c: added mono_string_new_size for allocating a string a size
17392
17393 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
17394
17395         * object.c (mono_object_isinst): use the same code as in the
17396         optimized x86 version.
17397
17398 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17399
17400         * profiler.c: TSC-based timer code (faster and more accurate).
17401         Not hooked up in configure, yet (set USE_X86TSC to 1).
17402
17403 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
17404
17405         * profiler.c, profiler.h: track time spent compiling methods.
17406         * threads.c: track thread creation/destruction.
17407
17408 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
17409
17410         * profiler.c, profiler.h, profiler-private.h: profiling interface
17411         and sample implementation. Moved here so that it can be used also by
17412         the jit.
17413
17414 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
17415
17416         * reflection.c, reflection.h: keep types and other handles separate in
17417         the hash tables for referred tokens. Add guid for modules.
17418
17419 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17420
17421         * assembly.c: fix bugs found with valgrind.
17422         * metadata.h, metadata.c: added mono_metadata_guid_heap().
17423
17424 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
17425
17426         * threads: added icall support for getting current domain for
17427                    the thread.
17428  
17429 2002-04-13  Martin Baulig  <martin@gnome.org>
17430
17431         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
17432         (MonoDebugVarInfo): Added `index' field for register based addresses.
17433         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
17434         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
17435         `MonoDebugVarInfo *params' and `guint32 this_offset' with
17436         `MonoDebugVarInfo *this_var'.
17437
17438         * debug-symfile.c (relocate_variable): New static function to write
17439         a location description for a local variable or method parameter.
17440
17441 2002-04-12  Martin Baulig  <martin@gnome.org>
17442
17443         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
17444         stack offset and begin/end scope address of a local variable.
17445         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
17446         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
17447         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
17448
17449         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
17450         Added new relocation types for start/end scope of a local variable.
17451
17452 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17453
17454         * object.h: add mono_object_domain() macro.
17455         * reflection.c: handle typespecs.
17456         * icall.c: MonoMethod::get_Name() implementation.
17457
17458 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17459
17460         * icall.c: String::GetHashCode() icall implementation.
17461
17462 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17463
17464         * icall.c: String::IndexOfAny icall.
17465         * object.c, object.h: make array->max_length more useful.
17466         Intrduced mono_object_class() and mono_string_length() macros.
17467
17468 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17469
17470         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
17471         instead of g_unichar_isdigit.
17472
17473 2002-04-11  Nick Drochak  <ndrochak@gol.com>
17474
17475         * icall.c: Implement a simple Double.ToString().
17476
17477 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17478
17479         * appdomain.h: only io-layer.h is supposed to be included.
17480         * icall.c: explicitly import environ. Fix warning.
17481
17482 2002-04-10  Nick Drochak  <ndrochak@gol.com>
17483
17484         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
17485                 return true even if it's not Daylight Savings time.
17486                 Only return false for the case where the function isn't
17487                 implemented for a plaform (read Windows).
17488
17489 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17490
17491         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
17492         data with a mutex.
17493
17494 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17495
17496         * mempool.c (mono_mempool_alloc): only use g_malloc when
17497         absolutely necessary.
17498
17499 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17500
17501         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17502
17503         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17504         (mono_class_proxy_vtable): use domain mempool
17505
17506 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17507
17508         * appdomain.h, appdomain.c: split initialization that requires the
17509         execution engine support into mono_runtime_init().
17510
17511 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17512
17513         * class.c (mono_class_init): don't include vtable inside MonoClass
17514         to save some memory, gather some statistics.
17515         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17516
17517 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17518
17519         * icall.c: internalcall implementation for ValueType.Equals().
17520
17521 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17522
17523         * object.c (mono_message_init): moved 
17524         (mono_runtime_exec_main): new arch. independent impl.
17525         (mono_runtime_invoke_array): new method - like
17526         mono_runtime_invoke, but you can pass an array of objects.
17527         (mono_remoting_invoke): new arch. independent impl.
17528         (mono_message_invoke): new arch. independent impl.
17529         (mono_runtime_class_init): new arch. independent impl.
17530         (mono_runtime_object_init): new arch. independent impl.
17531
17532 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17533
17534         * metadata.c, object.c, reflection.c: documented the exported
17535         functions.
17536
17537 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17538
17539         * icall.c: simpler code to pass the assembly builder data to corlib.
17540         Implement GetNestedTypes() internalcall.
17541
17542 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17543
17544         * class.c: warn if a type can't be loaded.
17545
17546 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17547
17548         * image.h: typedef MonoImageOpenStatus
17549         * types.h: removed unused file
17550         
17551 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17552
17553         * icall.c: Enum_ToObject accepts enum value arguments.
17554
17555 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17556
17557         * class.c: move initialization of properties, events and nested
17558         classes, so that they happen for interfaces, too.
17559
17560 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17561
17562         * icall.c: cleanup some ugly casts in Array_SetValue*.
17563
17564 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17565
17566         * icall.c: the values array fro enums is of the correct type, now.
17567         Implement (correctly) getFullName instead of assQualifiedName for
17568         MonoType.
17569         * reflection.h, reflection.c: added mono_type_get_name ().
17570
17571 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17572
17573         * assembly.c, image.h: for each MonoImage, record from wich assembly
17574         it was loaded.
17575         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17576         Make Type.Assembly work.
17577
17578 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17579
17580         * debug-symfile.h: use char* instead of gpointer to avoid
17581         unnecessary casts.
17582
17583         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17584
17585         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17586         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17587
17588 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17589
17590         * icall.c (mono_message_init): impl. (code cleanup)
17591         (ves_icall_InternalExecute): impl. FieldGetter
17592
17593         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17594         defined we call all (non-static)methods through the vtable. 
17595
17596 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17597
17598         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17599         finalizer even though the memory is still referenced (and the chunk of
17600         memory is not freed).
17601
17602 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17603
17604         * assembly.c: fix brokeness.
17605
17606 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17607
17608         * class.c: kill some warnings. Check explicit interface method
17609         implementation also without considering the namespace.
17610         Load also literal strings in static class data.
17611
17612 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17613
17614         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17615         (default_assembly_name_resolver): Make the resolver take the
17616         "base" directory where the assembly was originally defined, so we
17617         can load DLLs that are in the same directory as the assembly that
17618         is being referenced.
17619
17620 2002-03-28  Dick Porter  <dick@ximian.com>
17621
17622         * file-io.h: 
17623         * file-io.c:
17624         * socket-io.c: 
17625         * unicode.h: 
17626         * unicode.c: Warning cleanups
17627
17628 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17629
17630         * object.h, reflection.h: use the correct type instead of MonoObject.
17631
17632 2002-03-28  Martin Baulig  <martin@gnome.org>
17633
17634         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17635         (mono_debug_update_symbol_file): Initialize classes if necessary.
17636
17637 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17638
17639         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17640         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17641
17642 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17643
17644         * assembly.h: fix function prototype.
17645         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17646         * mono-endian.h: use const cast.
17647
17648 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17649
17650         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17651
17652 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17653
17654         * loader.c: don't assert when a typeref can't be loaded, give
17655         a chance to the runtime to trow an exception instead.
17656         * loader.h: fix warning.
17657
17658 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17659
17660         * class.c (mono_class_proxy_vtable): added proxy support
17661
17662 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17663
17664         * icall.c: removed last of PAL calls, added System.Environment
17665         * file-io.h, file-io.c: MonoIO implementation
17666         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17667
17668 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17669
17670         * appdomain.c: do not use the byte marker in ldstr table lookup.
17671         * debug-helpers.c: allow two ':' to separate class and method name.
17672         * object.c: allocate arrays bounds with the GC, too.
17673         * verify: add a few more checks.
17674
17675 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
17676
17677         * reflection.c: output also literal strings. Allocate parameter data
17678         with GC_malloc() (thanks, Martin, for catching this!).
17679
17680 2002-03-26  Martin Baulig  <martin@gnome.org>
17681
17682         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
17683         include the `this' offset in the `param_offsets'.
17684
17685 2002-03-25  Martin Baulig  <martin@gnome.org>
17686
17687         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
17688         mono_debug_get_class() function to get the classes. Added new
17689         relocation types for arrays and strings.
17690         (mono_debug_get_class): New static function to search in all
17691         referenced assemblies for a metadata token.
17692
17693         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
17694
17695 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17696
17697         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
17698         hold gc-allocated objects. Make the string heap a stream like the
17699         others. Removed duplicated code when writing stream info.
17700         Added asserts to catch possible buffer overflows. Set the sorted map
17701         for tables that need sorting. Added some documentation.
17702
17703 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
17704
17705         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
17706         for interned strings and vtables.
17707
17708 2002-03-24  Martin Baulig  <martin@gnome.org>
17709
17710         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
17711         it in the array since it was created with g_slist_prepend().
17712
17713 2002-03-24  Martin Baulig  <martin@gnome.org>
17714
17715         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
17716         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
17717         (mono_debug_method_from_token): Renamed to
17718         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
17719         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
17720
17721         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
17722         relocation types.
17723
17724         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
17725
17726 2002-03-24  Martin Baulig  <martin@gnome.org>
17727
17728         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
17729         (mono_debug_method_from_token): New func.
17730
17731         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
17732         New interncall, calls mono_debug_local_type_from_signature().
17733         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
17734         calls mono_debug_method_from_token().
17735
17736 2002-03-23  Martin Baulig  <martin@gnome.org>
17737
17738         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
17739         specifies the number of bytes to be converted, not the array size.
17740         Return the number of chars, not the number of bytes.
17741         (ves_icall_iconv_get_chars): The `byteCount' argument
17742         specifies the number of bytes to be converted, not the array size.
17743
17744 2002-03-23  Martin Baulig  <martin@gnome.org>
17745
17746         * reflection.h (MonoReflectionSigHelper): New type.
17747
17748         * reflection.c (mono_reflection_sighelper_get_signature_local),
17749         (mono_reflection_sighelper_get_signature_local): New functions.
17750
17751         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
17752         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
17753         interncalls.
17754
17755 2002-03-23  Martin Baulig  <martin@gnome.org>
17756
17757         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
17758         is_writeable is set.
17759         (mono_raw_buffer_update): New function to write the modified map
17760         back to disk.
17761
17762         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
17763
17764         * debug-symfile.c (mono_debug_update_symbol_file): Call
17765         mono_raw_buffer_update() when done writing.
17766
17767 2002-03-23  Martin Baulig  <martin@gnome.org>
17768
17769         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
17770
17771         * debug-symfile.c: Added support for arguments and local variables.
17772
17773 2002-03-23  Dick Porter  <dick@ximian.com>
17774
17775         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
17776         protected by ifdefs, hence breaking the w32 build.
17777
17778 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17779
17780         * object.c: implement is_interned() the right way.
17781
17782 2002-03-21  Martin Baulig  <martin@gnome.org>
17783
17784         * debug-symfile.[ch]: New files to handle debugging information
17785         files. There's also support to dynamically update these symbol
17786         files to include machine dependent information.
17787
17788 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
17789
17790         * threads.c (mono_thread_create): new function to create thread
17791         from C
17792
17793 2002-03-20  Martin Baulig  <martin@gnome.org>
17794
17795         * icall.c (ves_icall_InternalInvoke): Create a new object if the
17796         method is a constructor.
17797         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
17798         points to ves_icall_InternalInvoke().
17799
17800 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
17801
17802         * file-io.c: Flush shouldn't throw exceptions.
17803
17804 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
17805
17806         * file-io.c: FileStream flush support; FileSetLength now
17807         restores file pointer.
17808
17809 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
17810
17811         * class.c: set image for pointer classes.
17812
17813 2002/03/19  Nick Drochak <ndrochak@gol.com>
17814
17815         * sysmath.c: Forgot one.
17816
17817 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
17818
17819         * sysmath.c: Avoid redefining existing names.
17820
17821 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
17822
17823         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
17824         handled by runtime as icall rather than dllimport from libm.so
17825         * file-io.c, file-io.h: fixed handle argument type.
17826
17827 2002-03-18  Dick Porter  <dick@ximian.com>
17828
17829         * reflection.c (mono_image_get_type_info): rename interface to
17830         iface, because of "#define interface struct" on windows.
17831
17832 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
17833
17834         * class.c, class.h: rename and export mono_ptr_class_get().
17835         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
17836         * reflection.c, reflection.h, icall.c: better/saner type name
17837         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
17838         method signatures.
17839
17840 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
17841
17842         * class.c (mono_class_init): removed hardcoded GHC_SLOT
17843
17844         * icall.c (ves_icall_InternalInvoke): impl.
17845
17846 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17847
17848         * reflection.c: output the interface map table, too.
17849
17850 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17851
17852         * class.c (class_compute_field_layout): separate computation of 
17853         static field layout
17854
17855 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
17856
17857         * icall.c: added System.Buffer support.
17858         * file-io.c: moved file icalls from PAL to FileStream.
17859
17860 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17861
17862         * icall.c (ves_icall_System_Object_GetHashCode): impl.
17863
17864 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
17865
17866         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
17867
17868 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17869
17870         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
17871
17872 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
17873
17874         * debug-helpers.{c,h}: moved here from monograph some useful functions
17875         to locate a method by name/signature in a class or image. Included
17876         also a small and flexible IL disassembler.
17877
17878 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17879
17880         * reflection.c: fixup tokens in methods with small header size, too.
17881
17882 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
17883
17884         * object.c (mono_string_to_utf8): remove assert(!error), instead
17885         print a warning. 
17886
17887 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
17888
17889         * icall.c: update to the new mono_Array_class_get interface.
17890
17891 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17892
17893         * appdomain.c, object.c: Boehm-GC enable.
17894         * icall.c: make get_data_chunk() support split data requests.
17895         Ensure a class is initialized in more cases. Return only the first
17896         property found in GetProperties() or the compiler gets confused. 
17897         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
17898         * reflection.h, reflection.c: add fixup mechanism for field and method
17899         tokens. Initialize assembly->typeref in a single place. Output
17900         properties after events. Support custom attributes for events, too.
17901         Typo fix for paramter custom attrs.
17902
17903 2002-03-07  Martin Baulig  <martin@gnome.org>
17904
17905         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
17906
17907 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
17908
17909         * class.c (mono_array_class_get): fix. for multi. dim. arrays
17910
17911 2002-03-06  Martin Baulig  <martin@gnome.org>
17912
17913         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
17914         non-zero lower bounds. See testcases #F10-#F13.
17915
17916 2002-03-05  Martin Baulig  <martin@gnome.org>
17917
17918         * exception.c (mono_get_exception_argument_out_of_range): New exception.
17919
17920         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
17921         ves_icall_System_Array_GetValue(), only calculate the absolute array position
17922         here.
17923         (ves_icall_System_Array_SetValue): Likewise.
17924         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
17925         as argument and does the actual work. This function is used when copying a
17926         multi-dimensional array.
17927         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
17928         now do all the widening conversions of value types.
17929         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
17930
17931 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17932
17933         * class.c: remove some magic numbers and use the smbolic names,
17934         instead. Added init_events() to load event info at class init time.
17935         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
17936         and mono_metadata_methods_from_event().
17937         * reflection.h, reflection.c: added support for writing out the evnets
17938         related information.
17939
17940 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17941
17942         * reflection.h, icall.c: use a different method (GetInterfaces)
17943         to gather interface info and add isbyref, isprimitive and
17944         ispointer to the ves_icall_get_type_info() return value.
17945
17946 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17947
17948         * class.h: stared adding support for events.
17949         * icall.c: split find_members implementation. Added debug icall to get
17950         the address of an object.
17951         * reflection.c: handle TypeBuilders in mono_type_get_object().
17952
17953 2002-03-01  Martin Baulig  <martin@gnome.org>
17954
17955         * icall.c (ves_icall_System_Array_GetLength): This must throw an
17956         ArgumentOutOfRangeException(), not an ArgumentException().
17957         (ves_icall_System_Array_GetLowerBound): Likewise.
17958         (ves_icall_System_Array_GetValue): Improved argument checking.
17959         (ves_icall_System_Array_SetValue): Improved argument checking.
17960
17961 2002-03-01  Martin Baulig  <martin@gnome.org>
17962
17963         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
17964         called with invalid arguments rather than just dying with g_assert().
17965         (ves_icall_System_Array_SetValue): Likewise.
17966         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
17967         raise a NotImplementedException instead.
17968         (ves_icall_System_Array_GetLength): Added argument checking.
17969         (ves_icall_System_Array_GetLowerBound): Added argument checking.
17970
17971 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
17972
17973         * object.h (mono_assert): new macros mono_assert and
17974         mono_assert_not_reached
17975
17976 2002-02-28  Martin Baulig  <martin@gnome.org>
17977
17978         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
17979         and "System::String::IsInterned" to "System::String::_IsInterned".
17980
17981 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
17982
17983         * icall.c: remove hacks for typebuilder. Added icall to create a
17984         modified type from a tybebuilder.
17985         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
17986         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
17987         to create a backing MonoClass for a TypeBuilder.
17988
17989 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
17990
17991         * class.c, class.h: more refactoring of class init.
17992         Export mono_class_setup_mono_type() and mono_class_setup_parent().
17993
17994 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
17995
17996         * marshal.c, marshal.h: start of marshaling interface.
17997
17998 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
17999
18000         * icall.c: fix order in assembly qualified name icall.
18001
18002 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18003
18004         * class.c: do not free str, since we store it in the hash table.
18005         * reflection.h: add label field to MonoILExceptionInfo.
18006         * reflection.c: handle references to more than one assembly. Handle
18007         case when there isn't a module created in the assembly.
18008
18009 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18010
18011         * class.c: Fix typo. Start refactoring of class init code.
18012
18013 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18014
18015         * appdomain.c: exit with 1 on error.
18016         * class.c: we already have the name in MonoClassField.
18017         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
18018         MonoStreamHeader instead of an offset of image->raw_metadata.
18019
18020 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
18021
18022         * appdomain.c (mono_init): Be even more descriptive about the error.
18023
18024 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
18025
18026         * appdomain.c: give the user an informative message when corlib can't
18027         be loaded.
18028
18029 2002-02-26  Martin Baulig  <martin@gnome.org>
18030
18031         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18032         New icall to get the time zone data.
18033
18034 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18035
18036         * reflection.c: set virtual and raw size of section correctly.
18037         * threads.c: transfer domain information to newly created threads.
18038
18039 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18040
18041         * class.c: when instancing a class in a domain, load the default
18042         vaules for static fields from the constant table. Fix System.Enum to
18043         not be an enum.
18044         * icall.c: implement Object::GetType() internalcall. Implemented
18045         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
18046         Fixed checking of binding flags in find_members().
18047         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
18048         * reflection.c: handle enumerations when writing to the constant
18049         table. Use a different object cache for types.
18050
18051
18052 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
18053
18054         * object.c (mono_object_isinst): fix for arrays
18055
18056         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
18057
18058 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18059
18060         * object.c: don't use mprotect ()  and fix intern pool hash table
18061         lookup for big endian systems.
18062
18063 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18064
18065         * icall.c: change type_is_subtype_of () signature.
18066
18067 2002-02-21  Mark Crichton  <crichton@gimp.org>
18068
18069         * rand.c, rand.h: Added random number generator for
18070         System.Security.Cryptography classes.
18071
18072         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
18073
18074         * icall.c: Added System.Security.Cryptography calls.
18075
18076 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18077
18078         * class.c, icall.c, metadata.c: better support for pointer types.
18079         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
18080         * reflection.c: Add support for getting custom attrs for properties
18081         and simplify some code.
18082
18083 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18084
18085         * icall.c: change getToken () and add custom attribute GetBlob()helper
18086         method.
18087         * reflection.h: add custom attrs array to the reflection builder structures.
18088         * reflection.c: encode and emit custom attributes for all the relevant
18089         reflection objects. Cache fieldref and methodref tokens. Change
18090         mono_image_create_token() interface to take a MonoDynamicAssembly.
18091         More complete custom attributes decoder. Load custom attributes for
18092         Assembly, Field, Method and Constructor objects, too. Make the
18093         returned array an Attribute[] one, not object[]. Added
18094         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
18095         custom attribute constructor.
18096
18097 2002-02-20  Dick Porter  <dick@ximian.com>
18098
18099         * icall.c:
18100         * rawbuffer.c:
18101         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
18102         problem code out for now).
18103
18104 2002-02-19  Radek Doulik  <rodo@ximian.com>
18105
18106         * object.c (mono_ldstr): use hash table to avoid multiple swapping
18107
18108 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
18109
18110         * icall.c: register the GetCustomAttributes method.
18111         * object.c, object.h: add mono_string_new_len ().
18112         * reflection.h, reflection.c: added mono_runtime_invoke(),
18113         mono_install_runtime_invoke(). Added
18114         mono_reflection_get_custom_attrs () to load custom attributes and
18115         create the attribute objects.
18116
18117 2002-02-19  Dick Porter  <dick@ximian.com>
18118         * threads-dummy-types.c:
18119         * threads-dummy-types.h:
18120         * threads-dummy.c:
18121         * threads-dummy.h:
18122         * threads-pthread-types.c:
18123         * threads-pthread-types.h:
18124         * threads-pthread.c:
18125         * threads-pthread.h:  Deleted obsolete files
18126
18127 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
18128
18129         * class.c (mono_class_vtable): runtime init the class when we
18130         allocate static class data.
18131
18132         * icall.c (ves_icall_System_Array_SetValue): check for null values.
18133
18134         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
18135         and String - but we will need generic marshalling support in the
18136         future. 
18137         (mono_init): set the domain name in a ms compatible way
18138
18139         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
18140         String[].
18141
18142 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
18143
18144         * object.c (mono_array_clone): use alloca() instead of g_malloc  
18145         for sizes
18146
18147         * appdomain.c (mono_domain_unload): impl.
18148
18149 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18150
18151         * appdomain.c, object.c: fix intern pool implementation.
18152         * class.c: fix alignment code.
18153
18154 2002-02-16  Radek Doulik  <rodo@ximian.com>
18155
18156         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
18157         and s2 > s1, just copy lower bytes to be compatible with little
18158         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
18159         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
18160
18161         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
18162         force big_endian to be 1 for big endian machines 
18163         (ves_icall_iconv_new_decoder): ditto
18164
18165 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
18166
18167         * socket-io.c (convert_sockopt_level_and_name): If the system
18168         doesn't define SOL_IP or SOL_TCP, get them by hand using
18169         getprotobyname() and caching the values (because this could be a
18170         slow operation).
18171         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
18172         Use the appropriate struct when the system does support it. Ie,
18173         not all systems have struct ip_mreqn so use struct ip_mreq when
18174         appropriate.
18175
18176 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
18177
18178         * reflection.c: handle finally clauses.
18179
18180 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
18181
18182         * socket-io.c: use g_snprintf() instead of snprintf.
18183
18184 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18185
18186         * reflection.c (mono_param_get_objects): Cast second argument to
18187         mono_method_get_param_names to a const char** to silence the
18188         compiler warning.
18189
18190         * appdomain.c (mono_domain_assembly_open): Put parens around the
18191         truth statement in the for-loop.
18192
18193         * unicode.c (iconv_convert): Got rid of a compiler warning about
18194         int i being unused when the system has a new iconv.
18195         (iconv_get_length): Same.
18196
18197         * image.c (load_class_names): Cast the second argument to
18198         g_hash_table_insert() to char* to hush compiler warnings about the
18199         arg being a const.
18200         (mono_image_open): Same here.
18201
18202         * socket-io.c: Don't conditionally include sys/filio.h or
18203         sys/sockio.h here anymore since we now get them from
18204         io-layer/io-layer.h
18205         (inet_pton): If the system doesn't support inet_aton, implement
18206         using inet_addr and also #define INADDR_NONE if it isn't defined
18207         by the system.
18208
18209 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18210
18211         * metadata.c, metadata.h: added function to get packing and size info
18212         of a typedef.
18213         * reflection.h, reflection.c: handle field RVA data. Save info about
18214         the table layout if needed. Assign typedef indexes to all the types
18215         before dumping the info about them to avoid forward reference problems.
18216
18217 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
18218
18219         * socket-io.c (convert_sockopt_level_and_name): ifdef
18220         SO_ACCEPTCONN because it is not defined on my system (old debian)
18221
18222 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18223
18224         * opcode.c: use stddef.h to get NULL.
18225
18226 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18227
18228         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
18229         for FIONBIO, FIONREAD and SIOCATMARK.
18230         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
18231         define INADDR_NONE and besides, inet_addr() is deprecated and
18232         should not be used. Use inet_pton() instead - it also has the
18233         added bonus that it can easily handle IPv6 addresses as well.
18234         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
18235
18236 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18237
18238         * decimal.c: remove _MSC_VER conditional.
18239
18240 2002-02-13  Dick Porter  <dick@ximian.com>
18241
18242         * socket-io.c: 
18243         * icall.c: Internal calls for Blocking, Select, Shutdown,
18244         GetSocketOption and SetSocketOption
18245
18246 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18247
18248         * assembly.cs: better resolver: use it instead of some kludgy
18249         code.
18250
18251 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
18252
18253         * reflection.c: the best way to speed-up the compiler is to avoid
18254         infinite loops.
18255
18256 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
18257
18258         * class.c (mono_class_vtable): changed the object layout
18259         (obj->vtable->class). 
18260         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
18261
18262 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18263
18264         * assembly.c: look for assemblies in the assembly dir, too.
18265
18266 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18267
18268         * class.c: fix thinko in mono_class_from_type().
18269
18270 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18271
18272         * exception.h, exception.c: added TypeLoadException.
18273         * object.h, object.c: added mono_array_clone ().
18274         * icall.c: handle throwOnError in AssemblyGetType().
18275         Added Array.Clone().
18276         * opcode.h, opcode.c: use a single value for the opcode val.
18277         Compile fix for non-gcc compilers.
18278
18279 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
18280
18281         * opcodes.c, opcodes.h: export interesting info about opcodes.
18282
18283 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
18284
18285         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
18286         icalls. 
18287
18288         * class.c (class_compute_field_layout): set element_class for enums
18289         (mono_class_create_from_typedef): set element_class for normal classes
18290
18291         * icall.c (ves_icall_System_Enum_get_value): impl.
18292
18293         * class.c (mono_class_create_from_typedef): do not set valuetype
18294         flag for System.ValueType and System.Enum
18295
18296 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
18297
18298         * unicode.c (iconv_convert): fix big endian problem.
18299
18300 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18301
18302         * class.c: add asserts if we are ever going to scribble over memory.
18303         * socket-io.c: not all systems have AF_IRDA defined.
18304
18305 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
18306
18307         * class.c (class_compute_field_layout): do not consider static
18308         fields to compute alignment
18309
18310 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
18311
18312         * appdomain.c (mono_appdomain_get): impl.
18313         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
18314
18315 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18316
18317         * icall.c: ignore "file://" prefix when loading an assembly.
18318
18319 2002-01-23  Dick Porter  <dick@ximian.com>
18320
18321         * socket-io.c:
18322         * icall.c:
18323         * Makefile.am: Added socket support
18324
18325 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18326
18327         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
18328         code back.  This should return the assemblies that are loaded by
18329         the runtime on behalf of an application domain. 
18330
18331         The current implementation is still broken, it just returns every
18332         assembly loaded, but until we get real applications domain this
18333         will do.
18334
18335 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
18336
18337         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
18338         AppDomain object.
18339
18340 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18341
18342         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
18343         the mono_class_from_name lookup.
18344         (ves_icall_get_parameter_info): ditto.
18345         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
18346         method.
18347         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
18348
18349 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18350
18351         * class.c: load also nested classes on class init.
18352         System.ValueType instance methods gets passed boxed
18353         values, unless methods in derived classed that get a pointer to the
18354         data.
18355         * icall.c: use better name parsing code in GetType().
18356         * image.c, image.h: add mono_image_loaded ().
18357         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
18358         * reflection.c, reflection.h: added mono_reflection_parse_type().
18359
18360 2002-01-22  Veronica De Santis <veron78@interfree.it>
18361
18362         * icall.c : Added mapping of internal calls for Manual and Auto reset events
18363         * threads.c : Added the implementation of internal calls for events
18364         * threads.h : Added prototypes of internal calls for events
18365         
18366 2002-01-21  Radek Doulik  <rodo@ximian.com>
18367
18368         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
18369
18370 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
18371
18372         * class.c (mono_class_init): set min_align to 1 (instead of 0)
18373         (mono_class_value_size): use min_align
18374
18375 2002-01-20  Dick Porter  <dick@ximian.com>
18376
18377         * threads.h:
18378         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
18379         so it compiles on w32.
18380
18381 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
18382
18383         * metadata.c (mono_type_stack_size): impl.
18384
18385         * class.c (mono_class_get_field): impl. memberref token
18386
18387 2002-01-16 Veronica De Santis <veron78@@interfree.it>
18388
18389         * icall.h : Added the internal calls mapping for CreateMutex_internal
18390                     and ReleaseMutex_internal.
18391         * threads.h : Added the prototype of mutexes internal calls.
18392         * threads.c : Added the implementations of mutexes internal calls.
18393
18394 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18395
18396         * metaparse.h: removed unused file.
18397         * reflection.c, reflection.h: added stream_data_align () function 
18398         to align data in streams and keep stream aligned. Add support for
18399         exception support in method headers.
18400
18401 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
18402
18403         * unicode.c: make iconv_convert () return the number of bytess written
18404         in the output buffer.
18405
18406 2002-01-15  Dick Porter  <dick@ximian.com>
18407         * threads.c: Make the runtime's idea of infinite timeouts coincide
18408         with the class library's
18409
18410         Fix a particularly egregious bug in mono_thread_cleanup(). That
18411         code was so utterly bogus it must have been written on a Monday.
18412
18413 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18414
18415         * reflection.h: add subtypes field to TypeBuilder.
18416         * reflection.c: encode constants for literal fields.
18417         Handle subtypes. Fix user string token (and add a zero byte)
18418         at the end.
18419         
18420 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
18421
18422         * class.c (mono_class_init): bug fix: assign slot numbers for
18423         abstract methods.
18424
18425 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18426
18427         * reflection.c: don't try to output a code RVA for abstract methods.
18428         Small fixes for method header format. Output parameter info to the
18429         ParamDef table. Save method overriding info to MethodImpl table.
18430         Fix property support. Allow typedef.extends to be a type in the
18431         building assembly.
18432         * verify.c: fix off-by-one error.
18433
18434 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
18435
18436         * class.c: fix mono_class_from_mono_type () for szarray types.
18437         Remove unused cache check in mono_class_from_type_spec().
18438         * icall.c: *type_from_name () functions handle simple arrays and byref.
18439         * reflection.c: handle byref and szarray types. Handle methods without
18440         body (gets P/Invoke compilation working). Handle types and fields in
18441         get_token ().
18442         * reflection.h: add rank to MonoTypeInfo.
18443
18444 2002-01-10  Dick Porter  <dick@ximian.com>
18445
18446         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
18447         internal calls
18448
18449 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18450
18451         * icall.c: initialize class in type_from_handle ().
18452         Loop also in parent classes for get_method ().
18453         * reflection.c: properly encode class and valuetype types.
18454         Start on encoding TypeBuilder types. Handle fieldrefs.
18455         Use correct length when registering a user string.
18456         Handle ConstructorBuilder and MonoMethod in get_token ().
18457         Make mono_type_get_object () aware of cached types.
18458         * object.c: back out change to mono_string_new ().
18459
18460 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
18461         * object.c: mono_string_new should return a NULL when the string 
18462         passed in is NULL -- not try to deference it.
18463         
18464 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18465
18466         * icall.c: hack to make IsSubType work for TypeBuilders.
18467         * reflection.c: emit constructors before methods.
18468         Retrieve param names in mono_param_get_objects().
18469
18470 2002/01/05  Nick Drochak  <ndrochak@gol.com>
18471
18472         * Makefile.am: fix list of headers and sources so automake 1.5
18473         doesn't complain. Removed \# at end of list.
18474
18475 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18476
18477         * reflection.c: get token for a method ref. Set return type of
18478         constructor to void.
18479         * loader.c: debug message.
18480         * class.c: typo fix.
18481
18482 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
18483
18484         * icall.c: fix array init with rank > 1. FindMembers
18485         loops in parent class as well.
18486         * image.c: do not insert nested types in name cache.
18487         * reflection.c: warning fix.
18488         * reflection.h: add override method (for interface impl).
18489
18490 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
18491
18492         * metadata.c: fix customattr decoding.
18493
18494 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18495
18496         * rawbuffer.cs: Added native Win32 implementation, avoids using
18497         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18498
18499 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18500
18501         * class.c: make the low-level routines handle the cache.
18502
18503 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18504
18505         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18506
18507 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18508
18509         * class.c: fix mono_array_element_size() for objects.
18510         * class.h, class.c: add properties to MonoClass and load them
18511         at init time.
18512         * icall.c: check with isinst() when assigning a value to an array
18513         instead of requiring the classes to match exactly.
18514         Implemented icall for System.Type::GetType().
18515         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18516         enums. Handle bindingflags when looking for methods and fields.
18517         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18518         and mono_metadata_methods_from_property().
18519         * reflection.h, reflection.c: added structures for propreties,
18520         parameters and enums. Implemented mono_property_get_object() and
18521         mono_param_get_objects().
18522
18523 2001-12-18  Dick Porter  <dick@ximian.com>
18524
18525         * file-io.c: Use mono_string_to_utf16() instead of
18526         mono_string_chars()
18527
18528         * object.c: Added mono_string_to_utf16(), which copies the non
18529         NULL-terminated MonoString into a new double-null-terminated
18530         buffer.
18531
18532 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18533
18534         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18535
18536 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18537
18538         * file-io.c: raise exceptions if handle is invalid.
18539
18540 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18541
18542         * assembly.c: yet another check for mscorlib.
18543         * class.c, class.h: load nesting info for classes.
18544         * icall.c: many new functions to support the Reflection classes.
18545         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18546         * reflection.h, reflection.c: mono_image_create_token(),
18547         mono_assembly_get_object(), mono_type_get_object(),
18548         mono_method_get_object(), mono_field_get_object(): methods to return
18549         objects that parallel the C representation of assemblies, types,
18550         methods, fields.
18551
18552 2001-12-11  Dick Porter  <dick@ximian.com>
18553
18554         * icall.c:
18555         * file-io.c: Internal calls for file IO.
18556
18557 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18558
18559         * tabledefs.h: missing FileAttributes.
18560         * verify.h, verify.c: use is_valid_string () to simplify and check for
18561         valid strings more correctly. Fix warnings and speeling.
18562         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18563         Check code: branches, maxstack, method calls.
18564
18565 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18566
18567         * object.c (mono_object_allocate): removed static, so that the jit
18568         can allocate value types.
18569
18570         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18571
18572 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18573
18574         * class.c: init enum types right away and register the
18575         token->MonoClass map in mono_class_create_from_typedef ().
18576         * verify.h, verify.c: first cut of the verifier.
18577         * pedump.c: add --verify switch to verify metadata tables.
18578         * tabledefs.h: add some missing enums.
18579
18580 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18581
18582         * class.c (mono_install_runtime_class_init): impl.
18583         (mono_class_init): renamed mono_class_metadata_init to
18584         mono_class_init, also removed the metadata_inited flag
18585
18586         * object.c (mono_object_isinst): use faster algorithm
18587
18588 2001-11-30  Radek Doulik  <rodo@ximian.com>
18589
18590         * mono-endian.h: reverted last change
18591         added function prototypes
18592
18593         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18594         add mono-endian.c back
18595
18596         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18597         for unaligned access, I've mistaked it with endianess. I am
18598         sorry.
18599         (mono_read16): fix reverted endianess
18600         (mono_read64): ditto
18601         (mono_read32): ditto
18602
18603 2001-11-30  Dick Porter  <dick@ximian.com>
18604
18605         * exception.c: Implement mono_exception_from_name()
18606
18607 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18608
18609         * metadata.h, metadata.c: remove params_size and locals_size and their
18610         calculation from the metadata code: they are only usefult to the
18611         interp.
18612
18613 2001-11-29  Radek Doulik  <rodo@ximian.com>
18614
18615         * object.c (mono_ldstr): swap bytes here, it's probably not the
18616         best place, but works for me now, I'll redo it once I know mono
18617         better, also note that I add PROT_WRITE and don't reset back, also
18618         note that it's only affects big endians, so x86 should be OK
18619
18620         * mono-endian.h (read16): use just glib macros for both endians
18621
18622         * mono-endian.c: removed as glib macros are used in in
18623         mono-endian.h so we don't need to care about endianess for read
18624         macros as glib does that for us already
18625
18626 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18627
18628         * class.h, class.h: take minimum alignment into consideration so
18629         that the fields of a class remain aligned also when in an array.
18630
18631 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18632
18633         * loader.h, loader.c: add mono_method_get_param_names().
18634         * class.c: 0-init class fields.
18635
18636 2001-11-26  Dick Porter  <dick@ximian.com>
18637
18638         * icall.c:
18639         * threads-types.h:
18640         * threads.c: New file that handles System.Threading on all platforms
18641
18642         * object.c: 
18643         * object.h: Remove the synchronisation struct from MonoObject,
18644         replace it with a pointer that gets initialised on demand
18645
18646         * Makefile.am: Replace all the system-specific threading code with
18647         a single file that uses the new wrapper library
18648
18649 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18650
18651         * class.c, class.h: add mono_install_trampoline() so that the runtime
18652         can register a function to create a trampoline: removes the ugly
18653         requirement that a runtime needed to export arch_create_jit_trampoline.
18654         * object.h, object.c: added mono_install_handler() so that the runtime
18655         can install an handler for exceptions generated in C code (with
18656         mono_raise_exception()). Added C struct for System.Delegate.
18657         * pedump.c: removed arch_create_jit_trampoline.
18658         * reflection.c: some cleanups to allow registering user strings and
18659         later getting a token for methodrefs and fieldrefs before the assembly
18660         is built.
18661         * row-indexes.h: updates and fixes from the new ECMA specs.
18662
18663 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18664
18665         * class.h, class.c: add enum_basetype field to MonoClass.
18666         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18667         to get index in the constant table reated to a field, param or
18668         property.
18669         * reflection.h, reflection.c: handle constructors. Set public-key and
18670         version number of the built assembly to 0.
18671         * row-indexes.h: update from new ECMA spec.
18672
18673 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18674
18675         * class.h, class.c: add a max_interface_id to MonoClass.
18676         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
18677         since it's used to do that. Added mono_type_type_from_obj().
18678         Make GetType() return NULL instead of segfaulting if the type was not
18679         found. Handle simple arrays in assQualifiedName.
18680         * object.h: add a struct to represent an Exception.
18681         * reflection.c: output call convention in method signature.
18682         Add code to support P/Invoke methods and fixed offsets for fields.
18683
18684 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
18685
18686         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
18687         the value.
18688         * icall.c: use mono_array_addr instead of array->vector: fixes the
18689         reflection image writing.
18690         * reflection.c: init call convention byte to 0 in method signature.
18691         Encode the property signature. Don't output property-related methods
18692         twice. Really process the properties for a type (don't cast a field to
18693         a property, my mom always told me that).
18694         Fix 64 bit issues in pointer alignment in a different and more
18695         readable way.
18696
18697 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
18698
18699         * loader.h: Removed type class from MonoDefaults, added monotype
18700
18701         * loader.c: Loaded MonoType, removed loading of Type
18702
18703         * icall.c (my_mono_new_object): Now returns a System.MonoType,
18704         and fills in System.Type._impl with a RuntimeTypeHandle rather
18705         than the actual MonoClass *
18706
18707         (ves_icall_type_from_handle): change from type_class to
18708         monotype_class
18709
18710         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
18711         implemented
18712
18713         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
18714         implemented
18715
18716         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
18717
18718         (ves_icall_System_Reflection_Assembly_GetType): implemented
18719
18720         (ves_icall_System_MonoType_assQualifiedName): implemented
18721
18722         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
18723
18724 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
18725
18726         * assembly.c (mono_assembly_open): Implement a cache for the
18727         assemblies. 
18728
18729         (mono_assembly_close): only destroy the assembly when the last
18730         reference is gone.
18731         
18732 2001-11-09  Dick Porter  <dick@ximian.com>
18733
18734         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
18735
18736 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
18737
18738         * class.c (mono_class_metadata_init): bug fix: compute the right slot
18739
18740 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18741
18742         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
18743         from Martin Weindel.
18744         * object.h: add mono_string_chars ().
18745
18746 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
18747
18748         * reflection.c (build_compressed_metadata): Eliminates warnings
18749         and uses 64-bit clean code.
18750
18751         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
18752         (mono_type_equal): Change signature to eliminate warnings.
18753
18754 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18755
18756         * icall.c, loader.c: remove the internalcall array constructors.
18757         Changes to match the new MonoArray structure.
18758         * object.h, object.c: an array object doesn't allocate an extra
18759         vector. Add mono_array_new_full () to create jagged arrays easily.
18760
18761 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18762
18763         * metadata.h, metadata.c: add mono_metadata_field_info () to
18764         retreive all the info about a field from vairous tables.
18765         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
18766         * class.h, class.c: augment MonoClassField with more info.
18767         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
18768         policy and load a field's RVA if needed.
18769
18770 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
18771
18772         * class.c (mono_class_metadata_init): create a trampoline for all
18773         virtual functions instead of actually compiling them.
18774
18775 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
18776
18777         * class.h, class.c: include name in MonoClassField.
18778         * class.c: fix fundamental type of System.Object and System.String.
18779         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
18780         tokens in ldtoken.
18781         * icall.c: remove internalcalls for the Reflection stuff that is now
18782         done in C# code.
18783         * loader.c: mono_field_from_memberref () implementation.
18784         * mono-endian.c: thinko (s/struct/union/g).
18785         * object.c, object.h: make the mono_string_* prototypes actually use
18786         MonoString instead of MonoObject.
18787         * reflection.c, reflection.h: updates for changes in the reflection
18788         code in corlib: we use C structures that map to the actual C# classes.
18789         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
18790         fat method header if needed and use the info from the ILGenerator for
18791         methods. Handle fields in types. Misc fixes.
18792
18793 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
18794
18795         * class.c (mono_class_metadata_init): bug fix: always allocate
18796         space for static class data
18797
18798 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
18799
18800         * class.c (mono_compute_relative_numbering): use relative
18801         numbering to support fast runtime type checks.
18802
18803 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
18804
18805         * class.c (mono_class_create_from_typeref): added debugging output
18806         to print class name when MonoDummy is returned instead of real class
18807
18808 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
18809
18810         * class.c (mono_class_metadata_init): interface offset table now
18811         contains pointers into the vtable - this is more efficient for the jit
18812
18813 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
18814
18815         * class.c (mono_class_metadata_init): use a temporary vtable (the
18816         old algorithm only worked for the interpreter, but not for the jit)
18817
18818 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
18819
18820         * loader.c (method_from_memberref): use mono_class_get to get the
18821         class of an array instead of using System.Array directly.
18822         (mono_get_method): also add MEMBERREF methods to the method cache
18823         which usefull for arrays.
18824
18825 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
18826
18827         * pedump.c (arch_compile_method): added to compute vtable entry
18828
18829         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
18830         number of interfaces.
18831         
18832         * class.h: merged MonoArrayClass into MonoClass
18833
18834         * class.c (mono_class_create_from_typedef): compute the vtable size and
18835         allocate space to include the vtable inside MonoClass
18836         (mono_class_metadata_init): initialize the vtable
18837
18838 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
18839
18840         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
18841         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
18842         * image.c: endian fixes by Laurent Rioux.
18843         * object.h, object.c: rename MonoStringObject to MonoString and
18844         MonoArrayObject to MonoArray. Change some function names to conform to
18845         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
18846         guint16* as first argument, so don't use char*.
18847         Provide macros to do the interesting things on arrays in a portable way.
18848         * threads-pthread.c: updates for the API changes and #include <sched.h>
18849         (required for sched_yield()).
18850         * icall.c: updates for the API changes above.
18851         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
18852         platforms that need them.
18853
18854 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18855
18856         * class.c: set the correct type for all the fundamental
18857         type when loading the class.
18858
18859 2001-10-05  Dick Porter  <dick@ximian.com>
18860
18861         * threads-pthread.c (pthread_mutex_timedlock): Simple
18862         compatibility version for C libraries that lack this call.
18863
18864 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18865
18866         * class.c: MonoTypes stored in MonoClass are stored as
18867         fundamental MonoTypes when the class represents a
18868         fundamental type (System.Int32, ...).
18869         The TypeHandle return by ldtoken is a MonoType*.
18870         * icall.c: ves_icall_get_data_chunk () write out all the
18871         PE/COFF stuff. Implement ves_icall_define_method (),
18872         ves_icall_set_method_body (), ves_icall_type_from_handle ().
18873         * image.c: properly skip unknown streams.
18874         * loader.h, loader.c: add type_class to mono_defaults.
18875         * metadata.c, metadata.h: export compute_size () as
18876         mono_metadata_compute_size () with a better interface.
18877         Typo and C&P fixes.
18878         * pedump.c: don't try to print the entry point RVA if there is no entry point.
18879         * reflection.c, reflection.h: many cleanups, fixes, output method
18880         signatures and headers, typedef and typeref info, compress the metadata
18881         tables, output all the heap streams, cli header etc.
18882         * row-indexes.h: typo fixes.
18883
18884 2001-10-04  Dick Porter  <dick@ximian.com>
18885
18886         * object.h: Add a synchronisation mutex struct to MonoObject
18887
18888         * object.c (mono_new_object): Initialise the object
18889         synchronisation mutexes
18890
18891         * icall.c: System.Threading.Monitor internal calls
18892         
18893         * threads-pthread.h:
18894         * threads-pthread.c: System.Threading.Monitor internal calls
18895
18896         * threads-types.h: New file, includes the system-specific thread
18897         structures
18898         
18899         * threads-pthread-types.h:
18900         * threads-pthread-types.c: New files, handle pthread-specific
18901         synchronisation types
18902
18903         * threads-dummy-types.h: 
18904         * threads-dummy-types.c: New files of dummy support for
18905         thread-specific types
18906
18907         * metadata.c:
18908         * image.c:
18909         * pedump.c: include mono-endian.h not endian.h
18910         
18911         * Makefile.am: More threads files.
18912         Name mono-endian.h not endian.h
18913
18914 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
18915
18916         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
18917         stuff and implement a few more bits.
18918         * icall.c: a field needs to be dereferenced twice. Do not use the same
18919         name for two variables in the same scope.
18920         * image.c, image.h: cleanups.
18921
18922 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
18923
18924         * class.c (mono_class_metadata_init): bug fix: compute the right size
18925
18926 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
18927
18928         * icall.c: implemented some of the Reflection internalcalls.
18929         * image.c, image.h: start writing out the PE/COFF image.
18930         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
18931         that does the reverse than decode_blob_size ().
18932         * object.c: use mono_metadata_encode_value (). Move here
18933         temporary implementation of mono_string_to_utf8 ().
18934         * rawbuffer.c: make malloc_map static.
18935
18936 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18937
18938         * metadata.c: fix type comparison for arrays.
18939         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
18940         Added a couple of new classes to monodefaults.
18941         * icall.c: added a couple of Reflection-related internalcalls.
18942         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
18943         Added a byval_arg MonoType to MonoClass.
18944
18945 2001-09-28  Dick Porter  <dick@ximian.com>
18946
18947         * icall.c:
18948         * threads-pthread.h: 
18949         * threads-pthread.c: Implemented internal calls for
18950         LocalDataStoreSlot operations.  Applied mutexes around all shared
18951         data.  Reworked the thread creation and Start() operations to
18952         avoid a race condition.
18953         
18954         * threads-dummy.h:
18955         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
18956
18957 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
18958
18959         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
18960
18961 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
18962
18963         * class.c, loader.c: warn and return NULL instead of erroring out.
18964         * icall.c: added System.AppDomain::getCurDomain().
18965         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
18966
18967 2001-09-25  Dick Porter  <dick@ximian.com>
18968
18969         * threads-pthread.h:
18970         * threads-pthread.c: Implemented timed thread joining and added
18971         System.Threading.Thread::Join_internal internal call
18972
18973         * icall.c: Added System.Threading.Thread::Join_internal internal call
18974
18975         * threads-dummy.h:
18976         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
18977
18978 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
18979
18980         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
18981         mono_string_intern () to implement the semantics of the ldstr opcode
18982         and the interning of System.Strings.
18983         * icall.c: provide hooks to make String::IsIntern and String::Intern
18984         internalcalls.
18985
18986 2001-09-23  Dick Porter  <dick@ximian.com>
18987
18988         * threads-dummy.c: 
18989         * threads-dummy.h: New files of dummy threading routines
18990
18991         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
18992         support code based on system specifics
18993
18994         Rename PTHREAD_LIBS to THREAD_LIBS
18995         
18996 2001-09-23  Dick Porter  <dick@ximian.com>
18997
18998         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
18999         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
19000         internal calls.
19001         (mono_thread_init): Set up a Thread object instance to return when
19002         the main thread calls Thread.CurrentThread
19003         (mono_thread_cleanup): Wait for all subthreads to exit
19004
19005         * icall.c: New internal calls for System.Threading.Thread::Sleep
19006         (including Schedule) and CurrentThread
19007
19008         * threads.h: New file, to insulate thread-specific stuff from the
19009         rest of the code
19010
19011 2001-09-21  Dick Porter  <dick@ximian.com>
19012
19013         * threads-pthread.h: 
19014         * threads-pthread.c: New file, for handling pthreads-style
19015         threading support.  Start() now starts a new thread and executes
19016         the ThreadStart delegate instance.
19017
19018         * icall.c: Added the internalcall for
19019         System.Threading.Thread::Start_internal
19020
19021         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
19022
19023 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
19024
19025         * loader.c: work around the different signatures for delegates
19026         constructors csc generates in compiled code vs the ones compiled in mscorlib.
19027
19028 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19029
19030         * class.h, class.c: add mono_class_get_field_from_name ().
19031         * *: Fix C comments and other ANSI C issues.
19032
19033 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
19034
19035         * endian.h, assembly.c: fix some endianness issues.
19036
19037 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
19038
19039         * loader.h, load.c: add delegate_class to mono_defaults.
19040         Handle runtime provided methods in mono_get_method ().
19041
19042 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
19043
19044         * loader.c (mono_get_method): use pinvoke for internal call
19045
19046         * icall.c: use pinvoke for internal call
19047
19048         * loader.c (method_from_memberref): set the method name
19049
19050 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
19051
19052         * metadata.c: help the compiler generate better code for
19053         mono_class_from_mono_type ().
19054
19055 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
19056
19057         * class.c (mono_class_metadata_init): delayed computing of the
19058         class size to mono_class_metadata_init ()
19059
19060 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
19061
19062         * class.c, class.h: add an interfaces member to MonoClass.
19063         * image.c, image.h: add assembly_name field to MonoImage
19064         from the assembly table.
19065         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
19066
19067 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19068
19069         * class.c: Handle Array in mono_class_from_mono_type ().
19070         * metadata.c, pedump.c: some endian fixes.
19071
19072 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19073
19074         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
19075         * metadata.c: fix small problem introduced with the latest commit.
19076
19077 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
19078
19079         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
19080         We don't need a MonoMetadata pointer anymore to compare signatures in
19081         mono_metadata_signature_equal (), update callers.
19082         Reduced memory usage an number of allocations for MonoMethodHeader and
19083         MonoMethodSignature.
19084
19085 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
19086
19087         * metadata.c: added compare for szarray.
19088
19089 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
19090
19091         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
19092         and add a couple more types to it and mono_defaults. Give an hint on
19093         classes that need implementing in our corlib and are referenced
19094         in mscorlib.
19095
19096 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
19097
19098         * class.h, class.c: keep track if a class is also an Enum.
19099         * loader.c: Implement a couple more types for use in libffi
19100         marshalling. Gives better diagnostics when failing to dlopen
19101         a library. Set method->klass for P/Invoke methods, too.
19102
19103 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
19104
19105         * class.c, class.h: add a MonoType this_arg to MonoClass that
19106         represents a pointer to an object of the class' type that
19107         can be used by the interpreter and later the type cache.
19108         Add best guess alignment info for valuetype objects.
19109
19110 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
19111
19112         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
19113         into MonoType: one less level of indirection and allocation and
19114         simplifies quite a bit of code. Added cache for MonoTypes that are
19115         used frequently, so that we don't need to allocate them all the time.
19116
19117 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
19118
19119         * class.c (mono_class_create_from_typedef): System.Enum is also a
19120         value type, although it does not derive from System.ValueType
19121         (maybe a bug in the ms compiler?)
19122
19123         * metadata.c (mono_type_size): return the right size for value types
19124
19125         * loader.c (mono_get_method): only initialize method header if not abstract
19126
19127         * class.c (mono_class_from_mono_type): use mono_default values. 
19128
19129 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
19130
19131         * *: use MonoClass pointers instead of <type_tokens>
19132         
19133         * class.h: new flag: metadata_inited.
19134
19135         * class.c (mono_class_metadata_init): impl.
19136         (mono_class_instance_size): impl.
19137         (mono_class_data_size): impl.
19138
19139 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19140
19141         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
19142         MonoClass now has the name and name_space fields. 
19143         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
19144         mono_get_method () takes and optional MonoClass as argument.
19145         Removed mono_typedef_from_name() and added mono_class_token_from_name()
19146         instead that takes advantage of a map from class names to typedef
19147         tokens in MonoImage.
19148
19149 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
19150
19151         * metadata.c: zero is not a valid alignment boundary.
19152         Merge MONO_TYPE_VOID in default decoding code.
19153
19154 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
19155
19156         * image.h: merged MonoMetadata into MonoImage
19157
19158         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
19159         identify the type of elements.
19160
19161 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
19162
19163         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
19164         * cil-coff.h: split MonoMSDOSHeader and add size info.
19165         * image.c: add some consistency checks.
19166         * metadata.c: fix row size computation: one programmer
19167         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
19168         add explanation for the locator routine.
19169         Fix decoding of size in method header.
19170         
19171 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
19172
19173         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
19174         (g_concat_dir_and_file): Bring g_concat_dir_and_file
19175         function from gnome-libs.  This uses the right path separator
19176         based on the OS, and also works around a bug in some systems where
19177         a double slash is not allowed. 
19178         (default_assembly_name_resolver): Use g_concat_dir_and_file
19179         (mono_assembly_open): ditto.
19180
19181 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
19182
19183         * metadata.c (mono_metadata_signature_equal): impl.
19184
19185         * *: void is now a realy MonoType (instead of using NULL)
19186         
19187         * metadata.c (do_mono_metadata_parse_type): use
19188         mono_metadata_parse_type to parse void value.
19189
19190 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
19191
19192         * metadata.c, metadata.h: in the signature and method header store
19193         only the space required for holding the loca vars and incoming arguments.
19194
19195 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
19196
19197         * metadata.c (do_mono_metadata_parse_type): treat void like any
19198         other type (instead of assigning NULL);
19199
19200 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
19201
19202         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
19203
19204 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
19205
19206         * image.c (do_mono_image_open): added a cache for arrays.
19207
19208 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19209
19210         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
19211         decode a single column from a row in a metadata table and changes
19212         to take advantage of it in the typedef locator (gives a nice speed up).
19213         Store offset info for function params.
19214
19215 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
19216
19217         * image.h (MONO_IMAGE_IS_CORLIB): removed 
19218
19219 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
19220
19221         * assembly.c: how could mono_assembly_close () had ever worked?
19222         * metadata.c, metadata.h: provide offset info for local vars.
19223         Implement mono_type_size () to take care of alignment as well
19224         as size (it was mono_field_type_size in cli/class.c before).
19225
19226 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
19227
19228         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
19229
19230         * assembly.h (CORLIB_NAME): set to corlib.dll
19231
19232         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
19233
19234 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19235
19236         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
19237         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
19238         tokentype.h: massive namespace cleanup.
19239
19240 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19241
19242         * metadata.h, metadata.c: decode exception clauses when parsing method header.
19243
19244 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
19245
19246         * metadata.c (mono_metadata_free_type): added check for type !=
19247         NULL (void) before calling mono_metadata_free_type()
19248
19249 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
19250
19251         * metadata.h, row_indexes.h: added header with enumerations to use
19252         to index in the columns from tables in metadata and to decode coded
19253         tokens: we should start using this instead of embedding magic numbers
19254         all over the code.
19255
19256 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
19257
19258         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
19259         Move metadata_t info from cli_image_info_t to MonoImage, where
19260         it's easily accessible. Changed all the uses accordingly.
19261         Added the method and class caches to MonoImage.
19262         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
19263         and mono_metadata_decode_value () signature to be more consistent
19264         with the other parse functions (and simplify code). Taken advantage
19265         of zero-length array allocation with GCC. Removed reduntant (and
19266         wrong) MonoFieldType struct and use MonoParam instead. Changed
19267         mono_metadata_parse_field_type () to use common code for parsing.
19268         Added mono_metadata_typedef_from_field () and
19269         mono_metadata_typedef_from_method () to lookup a typedef index from a
19270         field or method token.
19271         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
19272
19273 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
19274
19275         * metadata.c (mono_metadata_parse_field_type): Implement. 
19276         (do_mono_metadata_parse_type): Split engine from
19277         mono_metadata_parse_type, so that we can create smaller structures
19278         for things that just have one pointer to the MonoType (look at
19279         the MonoFieldType)
19280
19281 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
19282
19283         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
19284         as Jan Gray found out, it is incorrect. 
19285
19286 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
19287
19288         * assembly.c: Implement asssembly loading.  This loads an image
19289         and loads all the referenced assemblies.  Come to think of it, we
19290         could always do lazy loading of the assemblies. 
19291
19292         * image.c (mono_image_open): Keep loaded images in a hashtable.
19293
19294         * image.h (MonoImage): Add reference count.
19295
19296 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
19297
19298         * assembly.c (mono_assembly_open): Keep track of the file name in
19299         case the assembly has no ASSEMBLY table.
19300
19301         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
19302         from get.c here.
19303
19304 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
19305
19306         * metadata.c, metadata.h: decode local vars in method header
19307         parse function. Change callers accordingly.
19308
19309 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
19310
19311         * metadata.h, cil-coff.h: protect against multiple inclusion.
19312         Added some new structures to hold information decoded from metadata:
19313         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
19314         and relevant decoding/free functions.
19315         * metadata.c: implement decoding functions. Add warning for out of bounds
19316         index in mono_metadata_locate(). Implement mono_get_method () to retreive
19317         all the info about a method signature and invocation. Remove check on
19318         uninitialized local var in parse_mh() and fix memory leak.
19319
19320 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
19321
19322         * metadata.h: More macros.
19323
19324         * tokentype.h: New file.
19325
19326 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
19327
19328         * assembly.c: added a consistency check and initialize
19329         some structures with g_new0().
19330         * metadata.c: fixed a couple more bugs in table size computation
19331         and add other checks for out-of bound access to metadata.
19332
19333 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
19334
19335         * metatada.c: fix bugs computing table sizes. Spew a
19336         warning when index in string heap is out of bounds.
19337
19338 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
19339
19340         * metadata.h: Add a couple of macros to manipulate tokens. 
19341
19342 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19343
19344         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
19345         cli_section_tables).
19346
19347 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
19348
19349         * metadata.c (mono_metadata_user_string): New function, provides
19350         access to the UserString heap. 
19351
19352 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
19353
19354         * metadata.c: Add inline documentation.
19355
19356 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
19357
19358         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
19359         files. 
19360
19361 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
19362
19363         * typeattr.h: New file, TypeAttribute flags. 
19364
19365 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
19366
19367         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
19368         mono_assembly_ensure_section): Section loading code.
19369         (load_section_tables): Load the sections.
19370
19371         * mono/metadata/metadata.c (mono_metadata_locate_token,
19372         mono_metadata_locate): Functions to locate the information
19373         definition given a token or a table and an index.
19374         (mono_metadata_compute_table_bases): New.
19375         (compute_size): New function to compute the sizes of the various
19376         tables.
19377
19378         * mono/metadata/metadata.h: Finish listing the different index
19379         types. 
19380
19381         * mono/metadata/pedump.c: Improve to dump new information.
19382
19383 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
19384
19385         * mono/metadata/metadata.c: Entered all the tables matching
19386         Beta2. 
19387
19388         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
19389
19390
19391