Backport 64600 to 64607 revisions to the branch
[mono.git] / mono / metadata / ChangeLog
1 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
2
3         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
4
5         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
6         klass->marshal_info. Fixes #79217.
7
8 2006-08-30  Martin Baulig  <martin@ximian.com>
9
10         Committing a patch from Joachim Ante <joe@otee.dk>:
11         Add support for binary data symbol stores.
12
13         * debug-mono-symfile.c
14         (mono_debug_open_mono_symbol_file): Renamed into
15         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
16         arguments.
17
18         * mono-debug.c
19         (mono_debug_open_image): Added `raw_contents' and `size' args.
20         (mono_debug_init_2_memory): New public function.
21
22 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
23
24         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
25
26 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
27
28         * appdomain.c: implement support for ShadowCopyFiles.
29
30 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
31
32         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
33         when value is NULL (and should remove CID #51).
34
35 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
36
37         * image.c: moved 2 functions to ../utils.
38
39 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
40
41         * gc.c: cope with the target object of a GC handle being NULL
42         (bug #78877).
43
44 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
45
46         * class.c: recursively check parent's explicit implementations
47         of interface methods (fixes bug #79125).
48
49 2006-08-19  Miguel de Icaza  <miguel@novell.com>
50
51         * filewatcher.c: Avoid warnings when building, do not redefine
52         constants that are defined.
53
54         Remove warnings.
55
56 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
57
58         * image.c: don't fail when the link points to an absolute path.
59
60 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
61
62         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
63         Fix CID #3.
64
65 2006-08-17  Miguel de Icaza  <miguel@novell.com>
66
67         * image.c (full_path): A new method used to obtain the actual path
68         of an assembly even in the presence of symbolic links.  
69
70         This is necessary for the case where we are running a binary that
71         has been GACed, but we are using the "published" path name
72         ($prefix/mono/1.0/blah.exe) which happens to point to the real
73         file in the GAC.
74
75         This was the source of the failure for the `xsp' command with the
76         recent AppDomain changes, as far as the runtime was concerned,
77         there were two different assemblies: $prefix/mono/1.0/blah.exe and
78         $prefix/mono/gac/blah/version/blah.exe.
79
80         (do_mono_image_open): use full path
81
82 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
83
84         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
85
86 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
87
88         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
89         domain_id is supplied. Fix CID #241 and corlib's unit tests.
90
91 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
92
93         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
94         small structures. Fixes #78990.
95
96 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
97
98         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
99
100         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
101
102 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
103
104         * appdomain.c:
105         * marshal.c: don't load all the assemblies from a domain into newly
106         created ones. The new domains might have different rules and load
107         assemblies from different locations. Fixes bug #76757.
108
109         Patch by Lluis. Conflicts resolved by Brian Crowell.
110
111 2006-08-16  Alp Toker  <alp@atoker.com>
112
113         * socket-io.c: First half of the fix for #79084.
114         Set sa_size to the length of the content, not that of the struct.
115         Don't add NULL suffix to the content, this should be done in
116         managed code if needed.
117
118 2006-08-14  Raja R Harinath  <rharinath@novell.com>
119
120         Fix part of #79012
121         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
122         mono_metadata_parse_type returns NULL.
123
124 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
125
126         * normalization-tables.h : new file for string normalization data.
127         * locales.c, locales.h, icall.c :
128           added load_normalization_resource() for string normalization,
129           and icall as well.
130         * Makefile.am : added normalization-tables.h to the sources.
131
132 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
133
134         * marshal.c: Add more helper functions to reduce code duplication and use them
135         everywhere.
136
137 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
138
139         * marshal.c: Fix non-x86 stdcall warnings.
140         
141         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
142         them everywhere.
143
144 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
145
146         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
147         type check on multi-dimensional arrays. Fixes #79000.
148
149 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
150
151         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
152         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
153         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
154         * class-internals.h: add is_com_object to class structure.
155         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
156         null checks to COM object marshalling. Fix .ctor call on RCW.
157         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
158         
159         All code is contributed under the MIT/X11 license.
160
161 2006-08-09  Dick Porter  <dick@ximian.com>
162
163         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
164         racing mono_monitor_allocator_lock() somewhere, so don't delete
165         the critical section for now.  Found by running and exiting
166         monodevelop.
167
168 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
169
170         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
171         (ves_icall_System_ComObject_FindInterface): Ditto.
172         (ves_icall_System_ComObject_CacheInterface): Ditto.
173
174         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
175         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
176
177 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
178
179         * threadpool.c: treat pipes from process asynchronous reads as sockets
180         when reading from them, so we get select/poll or epoll to wait for
181         data.
182
183 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
184
185         * loader.c: Fix a typo (CID #233) in the null check.
186
187 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
188
189         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
190         Hopefully fixes #78949.
191         
192         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
193         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
194         bytes. Fixes #78972.
195
196 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
197
198         * filewatcher.c: we need to set errno here.
199
200 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
201
202         * filewatcher.c: let Win32Exception get the error value.
203
204 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
205
206         * filewatcher.c: translate errno into win32 errors for Win32Exception
207         to know what happened.
208
209 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
210
211         * threadpool.c: Fix more warnings.
212
213         * assembly.c (search_loaded): Fix warnings.
214
215         * threadpool.c (mono_thread_pool_finish): Fix warnings.
216         (mono_async_invoke): Ditto.
217
218 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
219
220         * object.c (mono_remote_class_vtable): Need to create proxy vtable
221         entries for __ComObject type in addition to ComImport types.
222         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
223         about hash table.
224         
225         All code is contributed under the MIT/X11 license.
226
227 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
228
229         * image.c: avoid tentative loading of modulerefs that contain
230         no metadata (P/Invoke library names).
231
232 2006-07-28  Dick Porter  <dick@ximian.com>
233
234         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
235         mono_loader_lock() somewhere, so don't delete the critical section
236         for now.  Found by running and exiting monodevelop.
237
238 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
239
240         * filewatcher.c: define the inotify syscalls when we're building on
241         linux and have sys/syscall.h. The build system might not have support
242         for inotify but the target system might have it.
243
244 2006-07-26  Miguel de Icaza  <miguel@novell.com>
245
246         * domain.c: Documentation updates.
247
248         * loader.c (mono_free_method): Do not release the method
249         information if we are being profiled, as profilers will use this
250         information at shut down to present some data to the user.
251
252         This is needed so that the profiler does not crash, as the
253         profiler tends to keep MonoMethods around, and they might become
254         invalid if we free these.
255
256         (mono_get_method_constrained): Return the original CIL stream
257         method as well, so verification can be performed against it.
258
259 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
260
261         * filewatcher.[ch]: support for inotify file system watcher.
262         * icall.c: add new internal calls for the inotify file system watcher.
263
264 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
265
266         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
267         #78888.
268
269 2006-07-20  Dick Porter  <dick@ximian.com>
270
271         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
272         warning.
273
274 2006-07-20  Dick Porter  <dick@ximian.com>
275
276         * threads.c (start_wrapper): Do the thread cleanup while we still
277         hold a reference to its object.  Fixes bug 78123.
278
279 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
280
281         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
282         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
283           "managed-to-managed".
284         * icall.c: Redirect string constructors that take sbyte* to
285           ves_icall_System_String_ctor_RedirectToCreateString.
286         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
287           to CreateString () methods with matching signature.
288         * reflection.c: Use original security informations for
289           MONO_WRAPPER_MANAGED_TO_MANAGED.
290         * security-manager.c: Use original security informations for
291           MONO_WRAPPER_MANAGED_TO_MANAGED.
292         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
293           that is a placeholder and only its address should be used.
294         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
295           that is a placeholder and only its address should be used.
296
297 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
298
299         Begin implementing COM Interop.
300         * appdomain.c: Increment corlib version.
301         * class.c: Set ComImport classes' parent to __ComObject.
302         * loader.c: Mark cominterop methods as such.
303         * domain.c: Add __ComObject class to MonoDefaults structure.
304         * image.c: Add 2 hashtables to the image for COM Interop related methods
305         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
306         using the mempool allocator
307         
308         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
309         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
310         declaration for mono_metadata_type_dup_mp.
311         
312         * debug-helpers.c: Added strings for two additional wrapper types
313         * object.c: Create proxy objects for ComImport classes
314         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
315         and added __ComObject class to MonoDefaults structure.
316         
317         * object-internals.h: Finish MonoRealProxy definition, and add definition of
318         MonoComInteropProxy and MonoComObject.
319         
320         * marshal.c: Added support for COM Interop
321         (signature_cominterop): Converts managed signature to corresponding
322         unmanaged COM signature.
323         (cominterop_get_function_pointer): gets unmanaged function pointer via
324         COM object vtable
325         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
326         (cominterop_get_method_interface): returns interface type that method is defined on
327         (mono_mb_emit_cominterop_call): emits native call to function pointer
328         gotten from vtable
329         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
330         that matches signature of unmanaged function.
331         (cominterop_get_native_wrapper): wrapper around adjusted method call.
332         (cominterop_get_invoke): forwards call from proxy to __ComObject
333         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
334         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
335         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
336         
337         * marshal.h: Added Marshal icall declarations.
338         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
339         so we can access them in finalizer
340         
341 2006-07-14  Dick Porter  <dick@ximian.com>
342
343         * object.c (mono_type_initialization_cleanup): Fix a race
344         condition by temporarily commenting out the critical section
345         deletion.
346
347 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
348
349         * reflection.c (create_custom_attr): Fix some warnings.
350         (create_custom_attr_data): Ditto.
351         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
352         types. Fixes #78855.
353
354 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
355
356         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
357
358         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
359
360 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
361
362         * reflection.c (resolve_object): Add support for DynamicMethod.
363
364         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
365         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
366
367 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
368
369         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
370         don't leak GPtrArray's pdata has we have no use (nor free) for it.
371
372 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
373
374         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
375         Fixes #77888.
376
377 2006-06-30  Raja R Harinath  <rharinath@novell.com>
378
379         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
380         slightly: remove a shadow local variable.
381
382 2006-06-29  Raja R Harinath  <rharinath@novell.com>
383
384         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
385         definition that introduces the virtual function slot.
386         Also fix Coverity #105.
387
388 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
389
390         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
391         for dynamic assemblies. Fixes #78724.
392
393 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
394
395         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
396         Fixes #78722.
397
398 2006-06-21  Martin Baulig  <martin@ximian.com>
399
400         * reflection.c
401         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
402         fixes #76484.
403
404 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
405
406         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
407
408 2006-06-20  Raja R Harinath  <rharinath@novell.com>
409
410         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
411         nor TYPEREFs.
412         * class.c (mono_class_create_from_typespec): Add 'context' argument.
413         Inflate result if necessary.
414         (mono_class_get_full): Remove old version.  Rename from
415         'mono_class_get' and add 'context' argument.  Pass it to
416         ..._create_from_typespec.
417         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
418         (mono_ldtoken): Revert change below.
419
420 2006-06-20  Martin Baulig  <martin@ximian.com>
421
422         * class.c (mono_ldtoken): Don't pass the generic context to
423         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
424
425 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
426
427         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
428         and later freeing it. Fixes #78638.
429
430 2006-06-15  Miguel de Icaza  <miguel@novell.com>
431
432         * icall.c (mono_class_get_throw): Revert over-zealous error
433         throwing, the caller for mono_class_get_throw will cope with
434         errors when classes are not properly initialized already.
435
436         The code still copes with loader exceptions though.
437
438         Fixes the regression in reftype1 and reftype3 from the CAS tests.
439         
440 2006-06-14  Miguel de Icaza  <miguel@novell.com>
441
442         Fixes the `make run1' version of RuntimeAbort (to be commited,
443         source is in Bugzilla).
444         
445         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
446         FALSE on class loading failure instead of returning true.
447
448         * class.c (mono_class_create_from_typedef): It is possible for
449         mono_metadata_interfaces_from_typedef_full to fail if a class is
450         not found, cope with this.
451         
452
453 2006-06-14  Dick Porter  <dick@ximian.com>
454
455         * socket-io.c: 
456         * process.c: Fix a bunch of signed/unsigned warnings from gcc
457         4.1.1
458
459 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
460
461         * culture-info-table.h : oops, forgot to make it nsync with r61548.
462
463 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
464
465         * icall.c: Another fix for building mono in Visual Studio.
466
467 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
468
469         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
470         
471 2006-06-09  Martin Baulig  <martin@ximian.com>
472
473         * debug-mono-symfile.c: Put this back and really fix it this
474         time. Sorry for all the trouble.
475
476 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
477
478         * icall.c (mono_class_get_throw): Fix a warning.
479         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
480         ReflectionTypeLoadException if needed. Fixes #78606.
481
482         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
483         (mono_class_init): Ditto.
484
485         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
486         ref_only exceptions.
487         (mono_loader_clear_error): Make this work even if there is no error.
488
489 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
490
491         * object-internals.h marshal.c marshal.h icall.c: Implement method 
492         Marshal.GetComSlotForMethodInfo using internal call.
493
494 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
495
496         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
497         a function for signalling it.
498
499         * class.c (mono_class_from_typeref): Use the new kind of loader error when
500         a referenced assembly is not found.
501
502         * loader.c (mono_loader_error_prepare_exception): Add support for 
503         LOADER_ERROR_ASSEMBLY. Fix formatting.
504
505 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
506
507         * domain.c appdomain.c class-internals.h marshal.c: Add support 
508         for VARIANT marshalling on windows and increment corlib version
509         since Variant struct was added.
510
511 2006-06-03  Miguel de Icaza  <miguel@novell.com>
512
513         * debug-mono-symfile.c: Revert Martin's previous patch which broke
514         stack trace line information:
515
516         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
517         (Martin) when looking up B which is between A and C, return A not C.
518
519         Bug is #78573.
520
521         Thanks to Alexander Olk for tracking this down.
522
523 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
524
525         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
526         
527         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
528         avoid clobbering its value.
529         (mono_string_to_lpstr): Fix a warning on windows.
530
531 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
532
533         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
534
535         * reflection.c loader.c: Removed references to 'dummy' flag.
536
537         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
538
539         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
540         it gets GC tracking.
541
542         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
543         GC tracking.
544         
545         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
546
547         * marshal.c threadpool.c: Update callers of mono_async_result_new.
548
549         * appdomain.c: Bump corlib version.
550
551 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
552
553         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
554         CEE_STIND_REF when working with object references.
555
556 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
557
558         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
559         Fixes #78539.
560
561 2006-05-30  Miguel de Icaza  <miguel@novell.com>
562
563         * loader.c (method_from_memberref): Fix argument value for
564         mono_loader_set_error_method_load (I was passing the MonoClass
565         instead of the class name char *).
566
567 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
568
569         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
570         CEE_STIND_REF when working with object references.
571
572 2006-05-30  Martin Baulig  <martin@ximian.com>
573
574         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
575         mono_method_full_name() change and replace the ':' with a '.'
576         here.
577
578 2006-05-30  Martin Baulig  <martin@ximian.com>
579
580         * debug-mono-symfile.c
581         (mono_debug_symfile_lookup_location): Fix the algorithm:
582         when looking up B which is between A and C, return A not C.
583
584 2006-05-29  Martin Baulig  <martin@ximian.com>
585
586         * mono-debug.h
587         (MonoDebugMethodInfo): Make the typedef public.
588         (MonoDebugSourceLocation): New public struct.
589
590         * mono-debug.c
591         (mono_debug_source_location_from_address): Removed.
592         (mono_debug_source_location_from_il_offset): Removed.
593         (mono_debug_il_offset_from_address): Removed.
594         (mono_debug_address_from_il_offset): Removed.
595         (mono_debug_lookup_method): New public function.
596         (mono_debug_lookup_source_location): New public function; replaces
597         the old mono_debug_source_location_from_*() functions; see the
598         inline documentation.
599         (mono_debug_free_source_location): New public function.
600         (mono_debug_print_stack_frame): New public function; see the
601         inline documentation.
602
603         * debug-mono-symfile.c
604         (mono_debug_find_source_location): Renamed into
605         mono_debug_symfile_lookup_location(); only take a
606         `MonoDebugMethodInfo *' and an `offset' argument; added inline
607         documentation.
608         (mono_debug_find_method): Renamed into
609         mono_debug_symfile_lookup_method().
610
611 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
612
613         * assembly.c (mono_assembly_open_full): Dont overwrite the status
614         returned by mono_image_open_full ().
615
616         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
617         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
618         #78517.
619
620         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
621         #78518.
622
623 2006-05-27  Miguel de Icaza  <miguel@novell.com>
624
625         * class.c (mono_class_from_typeref): handle missing images
626         earlier, deals with bug #78418.   Refactor code; 
627
628         Fix a warning introduced in my previous commit (some stale code
629         from before I revisited my patch).
630
631         * class.c (mono_class_create_from_typedef): On failure, remove the
632         class from the MonoImage->class_cache as the class is not
633         initialized;   Fixes the leak pointed out by Paolo.
634
635 2006-05-25  Dick Porter  <dick@ximian.com>
636
637         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
638         DeleteCriticalSections until I figure out which one may still be
639         sometimes locked when mono_thread_cleanup is called.
640
641 2006-05-24  Dick Porter  <dick@ximian.com>
642
643         * threads.c (mono_thread_cleanup): Move the threading cleanup out
644         of mono_thread_manage and back into its own function, so it can be
645         called after the finalizer thread has finished.
646
647         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
648
649 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
650
651         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
652         Fixes #78495.
653
654         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
655         with non-blittable elements.
656         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
657
658 2006-05-24  Martin Baulig  <martin@ximian.com>
659
660         * mono-debug-debugger.h (MonoDebuggerEvent): Added
661         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
662
663         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
664         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
665         `mono_debugger_event_handler' to NULL.
666
667 2006-05-24  Martin Baulig  <martin@ximian.com>
668
669         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
670
671 2006-05-24  Martin Baulig  <martin@ximian.com>
672
673         * mono-debug-debugger.h
674         (mono_debugger_create_notification_function): Added
675         `MonoCodeManager *' argument.
676
677 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
678
679         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
680
681 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
682
683         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
684         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
685         implementation.
686
687 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
688
689         * icall.c: precise GC support: objects can't be stored in unmanaged
690         memory anymore, even if they are kept alive by other references: since
691         they can move the GC needs to be able to always find them.
692
693 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
694
695         * object.c: precise GC support for static fields. Support
696         for moving GCs: write barriers and pinned allocation for interned
697         strings.
698
699 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
700
701         * domain.c, domain-internals.h: precise GC support for the MonoDomain
702         structure.
703
704 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
705
706         * class.c, gc.c: sgen and precise GC updates.
707
708 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
709
710         * marshal.h, marshal.c: added write barrier wrapper and precise type
711         fixes.
712
713 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
714
715         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
716         support.
717
718 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
719
720         * reflection.c: precise and sgen GC updates.
721
722 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
723
724         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
725
726 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
727
728         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
729
730 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
731
732         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
733         MONO_TYPE_OBJECT. Fixes #78462.
734
735 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
736
737         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
738         and blittable types.
739
740 2006-05-17  Miguel de Icaza  <miguel@novell.com>
741
742         * class.c (mono_class_get_exception_for_failure): Implement parts
743         of a TODO: if the loader error is set (instead of the class
744         error), we return a Loader exception that can be properly thrown
745         elsewhere.
746
747         This was exposed by some Winforms 2.0 code that I tried to run
748         (Atsushi pointed me to it).
749
750 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
751
752         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
753         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
754         
755         * marshal.c (emit_marshal_vtype): Add limited support for 
756         UnmanagedType.LPStruct. Fixes #78427.
757
758         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
759         Applied a patch from kangaroo to fix #77523.
760
761 2006-05-17  Martin Baulig  <martin@ximian.com>
762
763         * threads.c
764         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
765         (debugger_thread_created): Removed.
766         (debugger_thread_exited): Removed.
767
768 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
769
770         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
771
772         * object-internals.h (MonoReflectionResource): Sync with managed version.
773
774 2006-05-12  Wade Berrier <wberrier@novell.com>
775
776         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
777
778 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
779
780         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
781         functions try to allocate from the image mempool.
782
783 2006-05-12  Dick Porter  <dick@ximian.com>
784
785         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
786
787 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
788
789         * object.c: The FieldGetter and FieldSetter methods require the full
790         name of the class, not only the name. Fixes bug #78277.
791
792 2006-05-11  Miguel de Icaza  <miguel@novell.com>
793
794         * loader.c (method_from_memberref): Do not pass the NULL klass to
795         mono_loader_set_error_() methods.  Pass the non-NULL value
796         (class). 
797
798 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
799
800         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
801         (mono_assembly_close): Null out assembly->image->references after freeing it.
802
803         * image.c (mono_image_close): Free image->references.
804         
805         * reflection.c (mono_image_basic_init): Fix a small memory leak.
806
807 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
808
809         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
810         before checking if it's NULL (g_assert).
811
812 2006-05-10  Martin Baulig  <martin@ximian.com>
813
814         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
815         I thought I already killed that two months ago, but now it somehow reappeared.
816
817 2006-05-10  Martin Baulig  <martin@ximian.com>
818
819         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
820
821 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
822
823         * reflection.c: Allocate memory for dynamically created methods in the image
824         mempools.
825
826 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
827
828         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
829         don't use the ad pointer before checking if it's NULL (g_assert).
830
831 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
832
833         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
834         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
835
836         * marshal.c: Allocate all signatures from mempools.
837
838         * marshal.c: Allocate some more signatures from mempools.
839
840 2006-05-09  Miguel de Icaza  <miguel@novell.com>
841
842         * object.c (mono_load_remote_field): The code used to provide a
843         temporary variable for returning results if the user did not
844         provide a result pointer.  But our temporary variable was allocted
845         on the satck.
846
847         Fix calling code to always pass a result area.   Coverity ID 103.
848
849 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
850
851         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
852         value, not the old. Fixes #78312.
853         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
854
855         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
856         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
857         per-image cache.
858
859         * assembly.c (mono_assembly_close): Free image->references.
860
861         * assembly.c (mono_assembly_names_equal): Fix a warning.
862         (mono_assemblies_cleanup): Cleanup more global data.
863
864         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
865
866         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
867         ptr_cache and image->modules.
868
869         * image.c (mono_image_init): Allocate array_cache lazily.
870         
871 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
872
873         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
874         behavior was changed recently and has bad side effects.
875
876 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
877
878         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
879         
880         * assembly.c (mono_assembly_close): Remove a debug printf.
881
882         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
883
884         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
885         to also allow for temporary references between mono_image_open ()/close ().
886
887         * domain.c (get_runtimes_from_exe): Add a FIXME.        
888
889 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
890
891         * marshal.c: Fix support for dynamic methods.
892
893         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
894
895         * marshal.c (mono_marshal_cleanup): New cleanup function.
896
897         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
898         image mempools.
899
900         * class.c (mono_class_init): Fix leaking class->nested_classes.
901
902         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
903
904         * image.c (mono_image_init): Initialize the new cashes.
905
906         * image.c (mono_image_close): Destroy the new cashes.
907
908         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
909
910         * mempool.c (mono_mempool_strdup): New helper function.
911
912         * class-internals.h: Add prototype for mono_loader_unlock ().
913
914         * domain.c (mono_jit_info_table_find): Fix a warning.
915         (mono_debugger_check_runtime_version): Ditto.
916
917         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
918         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
919         functions to these modules.
920
921         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
922         metadata modules.
923         
924         * marshal.c (mono_free_bstr): Fix a warning.
925
926         * assembly.c (mono_assembly_open_full): Fix another small leak.
927
928         * object.c: Fix some unload leaks in the remoting code.
929
930         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
931         function.
932
933         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
934
935         * reflection.c: Fix some unload leaks in dynamic assemblies.
936
937 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
938
939         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
940         * marshal.h: Add BSTR support on Win32
941         * icall.c: Add BSTR icalls
942         * metadata.h: Add BSTR enums
943
944 2006-04-28  Miguel de Icaza  <miguel@novell.com>
945
946         Work to catch the crash from #76795 and turn it into an
947         exception.   As I stubbed out pieces of the VisualBasic support,
948         I found a number of places where the code was failing and I added
949         checks to those places. 
950         
951         * metadata.c (do_mono_metadata_parse_generic_class): Make this
952         function return a status code.  If we fail to parse the signature
953         from mono_metadata_parse_generic_inst, return FALSE.
954
955         * loader.c (mono_get_method_from_token): If we fail to load the
956         method (mono_class_get) return NULL.   
957
958         * (method_from_memberref): Return NULL if we are unable to parse
959         the method signature
960
961         (mono_loader_error_prepare_exception): Since we now use the
962         loader_error flag internally to stop processing, and obtaining
963         exceptions that might be thrown will walk this code path the
964         proper way of going from a MonoLoaderError into a
965         MonoException was convoluted.   This new routine encapsulates the
966         process of turning the error into an exception and *clearing* the
967         error afterwards.
968         
969 2006-04-27  Miguel de Icaza  <miguel@novell.com>
970
971         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
972         with missing assemblies), and to cope with:
973
974                 * Missing fieldref from a non-existing assembly.
975                 * Missing methodref from a non-existing assembly.
976
977         The first batch of work to address *some* of the issues from 76661.
978         
979         * object.c (mono_class_create_runtime_vtable): If we fail to
980         initialize the class raise the exception here. 
981
982         * metadata.c (mono_class_get_overrides_full): If any methods fail
983         to load return the failure to the caller.
984
985         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
986         flagging assemblies that failed to load.   
987
988         Do not crash if we are unable to load the assembly.
989
990         (mono_assembly_close): Do nothing with REFERENCE_MISSING
991         assemblies. 
992
993         * loader.c (mono_loader_set_error_type_load): Change the
994         convention to always pass unallocated strings, so we make our own
995         copies (I know our own code had duplicated strings before, but
996         this keeps the normal conventions).
997         (method_from_memberref): Call mono_loader_set_error_method_load
998         for all possible failures of loading the class. 
999         Remove assert, turn into a loader error.
1000
1001         (mono_loader_error_to_exception): Move this routine from mini
1002         (mini_loader_error_to_exception) there was no need to have that in
1003         mini. 
1004
1005         * class.c (mono_class_from_typeref): If we were not able to load
1006         the assembly with mono_assembly_load_reference, call the
1007         mono_loader_set_error_type_load to register the problem.
1008
1009         (mono_class_setup_fields): If we fail to load the type from
1010         mono_metadata_parse_type_full, call mono_class_set_failure and
1011         break from the loop.
1012
1013         If class->exception_type is set, we do not layout the fields as
1014         that might crash the runtime, and instead return (from breaking
1015         from the previous loop).
1016
1017         (mono_class_setup_vtable): This now returns a boolean indicating
1018         whether the table was properly setup.   The decision is driven by
1019         mono_class_get_overrides_full which might run into non-existing
1020         methods. 
1021         
1022         (mono_class_init): Returns TRUE on success or FALSE if there was a
1023         problem in loading the type (incorrect assemblies, missing
1024         assemblies, methods, etc).
1025
1026         When we call mono_class_setup_fields we also check for a potential
1027         error inside this call (either a class exception or a general
1028         loader exception).
1029
1030         (mono_class_create_from_typedef): If the parent fails to load
1031         (calling mono_class_get_full) return NULL.
1032         
1033         ** Important **
1034
1035         calls to mono_metadata_parse_type_full should be checked
1036         everywhere and set the mono_class_set_failure
1037         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
1038
1039         The current patch checks the places where my manually constructed
1040         tests show the errors are showing up, but we should do it
1041         everywhere. 
1042
1043         ** Important2 **
1044
1045         mono_class_init return values should be tested everywhere, like
1046         the previous case this is something that we should audit
1047         everywhere and not only on the cases exposed by the tests I
1048         created. 
1049
1050 2006-04-26  Miguel de Icaza  <miguel@novell.com>
1051
1052         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
1053         boolean parameter and instead pass the information on `options'
1054         parameter (FileOptions).
1055
1056         * icall.c: Register the new signature for MonoIO.Open.
1057
1058         * debug-helpers.c (dis_one): Trying to understand how coverity
1059         works.  Fix Run 5, item 78.
1060
1061 2006-04-26  Dick Porter  <dick@ximian.com>
1062
1063         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
1064         dereference.
1065
1066 2006-04-25  Martin Baulig  <martin@ximian.com>
1067
1068         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
1069
1070         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
1071         debugger_thread_created().
1072         (debugger_gc_push_all_stacks): Don't handle the main thread in any
1073         special way.
1074         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
1075         (mono_debugger_finalize_threads): New function; undo the effects
1076         of mono_debugger_init_threads().
1077         (mono_debugger_create_all_threads): Removed.
1078
1079 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
1080
1081         * image.c (mono_image_close): Tidy up trace messages.
1082
1083         * assembly.c (mono_assembly_close): Ditto.
1084
1085         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
1086         no longer references an already freed assembly. Fixes #78168.
1087
1088 2006-04-21  Dick Porter  <dick@ximian.com>
1089
1090         * threads.c (mono_thread_detach): Fix reference counting when
1091         detaching threads.
1092
1093 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
1094
1095         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
1096         #78155.
1097
1098 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
1099
1100         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
1101         (mono_type_to_stind): Ditto.
1102
1103         * marshal.c: Use the new helper functions to simplify code.
1104
1105         * image.c (mono_image_close): Add some code for help debug assembly unloading
1106         problems.
1107
1108         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
1109         image mempool.
1110
1111         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
1112         assembly was already loaded in another appdomain. Fixes #78083.
1113
1114 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
1115
1116         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
1117         referenced assemblies.
1118         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
1119
1120         * domain.c (mono_domain_free): Add a trace message.
1121
1122         * appdomain.c (add_assemblies_to_domain): Ditto.        
1123
1124         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
1125         field.  
1126
1127 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1128
1129         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
1130
1131 2006-04-12  Martin Baulig  <martin@ximian.com>
1132
1133         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
1134         `USE_INCLUDED_LIBGC'.   
1135
1136 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1137
1138         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
1139         the patch contains ../ and a small directory name later. Hopefully fixes
1140         #78035.
1141
1142 2006-04-10  Martin Baulig  <martin@ximian.com>
1143
1144         Clean up the debugger's thread-handling code.
1145
1146         The debugger's thread-handling code has been moved from
1147         ../mini/debug-debugger.c to threads.c.  We now iterate directly
1148         over the `threads' hash, keep track of exiting threads and also
1149         use proper locking.
1150
1151         We can now debug XSP and XSP based applications with the debugger.
1152
1153         * object-internals.h (MonoThread): Added `gpointer end_stack'.
1154
1155         * threads.h
1156         (MonoThreadCallbacks): Removed; this was only used by the debugger.
1157         (mono_install_thread_callbacks): Likewise.      
1158
1159         * threads.c (mono_thread_callbacks): Removed.
1160         (debugger_thread_created, debugger_thread_exited): New static functions.
1161         (start_wrapper): Call debugger_thread_created().
1162         (thread_cleanup): Call debugger_thread_exited().
1163         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
1164         (mono_debugger_init_threads): New public function.
1165         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
1166         iterate directly over the `threads' hash and also use proper locking.
1167
1168         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
1169
1170         * mono-debug-debugger.h
1171         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
1172
1173 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
1174
1175         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
1176         argument type=array. Fixes #78057.
1177
1178 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
1179
1180         * culture-info-table.h : regenerated. Fixed bug #69652.
1181
1182 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
1183
1184         * loader.c metadata.c: Reapply a variant r59116.
1185         
1186         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
1187
1188         * class.c (mono_class_setup_interface_offsets): New internal function.
1189
1190         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
1191         interfaces too. Fixes #77398.
1192
1193         * reflection.c (encode_cattr_value): Add support for 
1194         parameter type=object, argument type=array.
1195         (load_cattr_value): Ditto. Fixes #77916.
1196
1197         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
1198         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
1199
1200         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
1201         a byval char array and CharSet is Ansi.
1202
1203         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
1204
1205 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
1206
1207         * metadata.c: Add some locking comments.
1208         
1209         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
1210         mempool.
1211         (mono_metadata_free_method_signature): Don't free the signature itself.
1212
1213         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
1214
1215         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
1216         reference the same MonoImage.
1217         (mono_assembly_load_from_full): Add an assert.
1218
1219 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
1220
1221         * image.c (mono_image_close): Don't put the image we are about to free into the
1222         loaded_images_guid_hash.
1223
1224         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
1225         to reduce code duplication.
1226
1227         * marshal.c: Register the native functions called by this module as icalls, to
1228         somewhat centralize the creation of MonoMethodSignature's.
1229
1230         * loader.c (mono_method_signature): Add a cache for method signatures.
1231
1232         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
1233         the parameter attributes of a method.
1234         (mono_metadata_parse_method_signature_full): Refactored the computation of
1235         parameter attributes into a separate function. Also avoid one allocation in
1236         most cases.
1237
1238         * assembly.c (mono_assembly_close): Ditto.
1239
1240         * image.c (mono_image_close): Log trace messages with INFO level.
1241
1242         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
1243
1244         * image.c reflection.c: Correct reference counting of image modules.
1245         
1246         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
1247         of this function from the image mempool.
1248         
1249         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
1250         to allow more cached types to be used.
1251
1252         * mono-debug.c (mono_debug_add_method): Appled patch from
1253         David S. Miller  <davem@sunset.davemloft.net>: Access 
1254         minfo->lexical_blocks[] entry elements using read32().
1255
1256 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
1257
1258         * loader.c (mono_free_method): No longer free the method header for non-dynamic
1259         methods as it is allocated from the mempool.
1260
1261         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
1262         image mempool.
1263
1264         * metadata-internals.h: Add comments describing the reference counting scheme
1265         used for MonoImage and MonoAssembly.
1266
1267         * image.c assembly.c reflection.c: Rework reference counting of images and 
1268         assemblies so they are freed when the runtime is shut down. Free some 
1269         additional memory structures when an image is unloaded.
1270         
1271 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
1272
1273         * class.c loader.c reflection.c: Allocate more data structures in
1274         the image mempool.
1275
1276 2006-03-31  Miguel de Icaza  <miguel@novell.com>
1277
1278         * icall.c
1279         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
1280         build on pre glib 2.4 systems.
1281
1282 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
1283
1284         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
1285
1286         * icall.c: Fix some warnings.
1287
1288 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
1289
1290         * culture-info-table.h : regenerated.
1291
1292 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
1293
1294         * threads.c, object-internals.h, verify.c: changed the culture caching
1295         code to use a normal MonoArray for storage so the GC can keep track of
1296         them easily. Fixed bits of the cache logic, too and simplified the
1297         code.
1298
1299 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
1300
1301         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
1302         thread for non-Boehm GCs.
1303
1304 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1305
1306         * domain.c, object.c, domain-internals.h: reduce the amount of memory
1307         needed to keep track of the data for static fields.
1308
1309 2006-03-29  Raja R Harinath  <rharinath@novell.com>
1310
1311         Fix #75172
1312         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
1313         for interface classes.  Use 'num_methods' instead.
1314         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
1315         before using '->vtable_size' field.
1316
1317 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1318
1319         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
1320         doesn't contain managed pointers, so use a normal hashtable.
1321
1322 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1323
1324         * reflection.c, class-internals.h, domain.c: fixed handling of types
1325         used as values for objects in custom attributes (bug #77915):
1326
1327 2006-03-24  Martin Baulig  <martin@ximian.com>
1328
1329         * class.c (mono_class_setup_fields): Added support for generic
1330         instances; fixes #77580.
1331
1332 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1333
1334         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
1335
1336 2006-03-24  Dick Porter  <dick@ximian.com>
1337
1338         * file-io.c (get_file_attributes): More stat macro breakage.
1339         Fixes bug 77759.
1340
1341 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
1342
1343         * profiler.c: added the file=filename option in the default profiler
1344         to output the profile data to filename.
1345
1346 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1347
1348         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
1349         bug #77877.
1350
1351 2006-03-22  Martin Baulig  <martin@ximian.com>
1352
1353         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
1354         allocated `MonoClassField *' in `fb->handle'.
1355
1356 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1357
1358         * class.c, image.c, metadata-internals.h: implemented new mechanism to
1359         allocate interface ID to save memory and allow better ID reuse on
1360         appdomain unload. setup_generic_vtable () removal from Martin.
1361
1362 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1363
1364         * object.h, appdomain.c, domain.c, exception.c, icall.c,
1365         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
1366         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
1367         write barriers for reference stores with managed objects accessed with
1368         C structures in the runtime and in embedding programs.
1369
1370 2006-03-20  Raja R Harinath  <rharinath@novell.com>
1371
1372         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
1373         'interface_id' and 'max_interface_id' fields of MonoClasses
1374         representing open generic types.
1375
1376 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
1377
1378         * object.h, object.c, icall.c: added functions to deal with
1379         storing valuetypes that contain references in managed objects.
1380         * reflection.c, string-icalls.c, threads.c, marshal.c: small
1381         fixes and comments around uses of mono_array_addr ().
1382
1383 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
1384
1385         * object.h, icall.c, monitor.c: object.GetHashCode ()
1386         implementation that supports the moving garbage collector.
1387
1388 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
1389
1390         * icall.c, threads-types.h, threads.c: implemented finalizer for
1391         LocalDataStoreSlot.
1392
1393 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1394
1395         * metadata.c (mono_type_size): Add a fixme.
1396         (mono_type_stack_size): Ditto.
1397
1398         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
1399         'type_forwarders' field.
1400
1401         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
1402         attribute from net 2.0.
1403
1404         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
1405         from class.c.
1406
1407         * class.c (mono_class_setup_fields): Fix a warning.
1408         
1409         * class.c (mono_class_from_name): Add support for assemblyref entries
1410         in the EXPORTEDTYPE table.
1411
1412         * reflection.c: Add support for handling type forwarders under net 2.0.
1413
1414         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
1415         
1416 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
1417
1418         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
1419         overwriting entries in ModuleBuild->types, also clean up the code
1420         a little. Fixes #77774.
1421
1422 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
1423
1424         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
1425         load friend assembly info when present.
1426
1427 2006-03-14  Raja R Harinath  <rharinath@novell.com>
1428
1429         Fix crasher on gtest-158.cs.
1430         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
1431         the return value if the MonoClass we want is yet in an
1432         inconsistent state.
1433         * class.c (mono_class_create_from_typedef): Add an comment
1434         explaining an order dependency between mono_class_setup_parent and
1435         mono_class_setup_mono_type.
1436
1437 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
1438
1439         * class.c: documentation updates and events bug fix.
1440
1441 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1442
1443         * class.c: some cleanup, locking fixes.
1444
1445 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
1446
1447         * class.c: fix the generics code to setup nested
1448         type info to the instantiated type (bug #77770).
1449
1450 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1451
1452         * marshal.c: fixed a few type correctness issues.
1453
1454 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1455
1456         * loader.c: the Set/Get/Addrtess array methods should be public.
1457
1458 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
1459
1460         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
1461         
1462         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
1463         info->wrapper.
1464
1465 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
1466
1467         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
1468
1469         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
1470
1471         * mempool.c (mono_mempool_alloc): Speed this up a bit.
1472         (mono_mempool_alloc0): Ditto.
1473
1474 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1475
1476         * socket-io.c:
1477         (create_object_from_sockaddr): it was allocating 4 extra bytes
1478         for the AF_UNIX data. Fixes bug #77747.
1479
1480 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
1481
1482         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
1483
1484 2006-03-09  Dick Porter  <dick@ximian.com>
1485
1486         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
1487         Fixes bug 76966 again.
1488
1489 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
1490
1491         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
1492         names from r57532
1493         * appdomain.c: Bumped corlib version to 48 (due to r57532)
1494
1495 2006-03-07  Martin Baulig  <martin@ximian.com>
1496
1497         * object.c
1498         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
1499
1500 2006-03-07  Martin Baulig  <martin@ximian.com>
1501
1502         * class.c
1503         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
1504         regression introduced in r56970; see gtest-252.cs.
1505
1506         * loader.c (mono_get_method_constrained): Correctly handle generic
1507         methods; see gtest-253.cs.
1508
1509 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
1510
1511         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
1512
1513 2006-03-04  Martin Baulig  <martin@ximian.com>
1514
1515         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
1516         compute the parent type at runtime, just like we're already doing
1517         it for interfaces.
1518
1519         * reflection.c
1520         (mono_reflection_bind_generic_parameters): Don't compute the
1521         parent type anymore.
1522
1523         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
1524
1525 2006-03-04  Martin Baulig  <martin@ximian.com>
1526
1527         * mono-debug-debugger.h
1528         (mono_debugger_create_notification_function): Allocate memory at
1529         runtime and return a pointer to it.
1530
1531 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1532
1533         * assembly.c: Fix windows build.
1534         
1535         * assembly.c: Fix build.
1536
1537         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1538
1539         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1540         
1541 2006-03-03  Dick Porter  <dick@ximian.com>
1542
1543         * process.c
1544         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1545         Check parameters before dereferencing them.  Fixes Aaron's part of
1546         bug 77393.
1547
1548 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1549
1550         Fix performance regression.
1551         * loader.c (find_method_in_class): Add 'from_class' argument.
1552         Rename 'klass' argument to 'in_class'.  The signature is compared
1553         against the method in 'in_class', and the corresponding method is
1554         returned from 'from_class'.
1555         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1556         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1557         type definition and generic instantiation in parallel.
1558         (mono_get_method_constrained): Update to changes.
1559
1560 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1561
1562         * threads.c: make sure the domain is correct, too when doing
1563         mono_thread_attach ().
1564
1565 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1566
1567         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1568         windows. Fixes #77683.
1569
1570 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1571
1572         * object.h, *: introduced specific way to set elements of an array
1573         of references to be used as write barrier. Still need to audit the
1574         uses of mono_array_addr.
1575
1576 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1577
1578         * object-internals.h: New field to cache the assmebly name, patch
1579         from Tambet Ingo (tambet@ximian.com)
1580
1581 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1582
1583         * decimal.h, class-internals.h, metadata-internals.h,
1584         file-io.h: mark a few function declarations as internal, to
1585         reduce the number of PLT entries.
1586
1587 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1588
1589         * file-io.c: fix typo in warning message.
1590
1591 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1592
1593         * loader.c: on unix, lookup the "*A" version of a function
1594         if charset is auto as a second option before failing.
1595
1596 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1597
1598         * class.h (mono_class_inflate_generic_method): Revert to two
1599         argument version.
1600         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1601         (mono_class_inflate_generic_method_full): Add.
1602         * class.c (mono_class_inflate_generic_method_full): Rename from
1603         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1604         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1605         * loader.c, reflection.c: Update to changes.
1606
1607 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1608
1609         * icall.c: const fixes and small improvements.
1610
1611 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1612
1613         * threadpool.c: for asynchronous connect(), enable the same workaround
1614         for BSD 6 as for the Mac. Fixes bug #77637.
1615
1616 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1617
1618         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1619         formatted classes. Fixes #77524.
1620
1621 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1622
1623         * class.c (inflate_generic_type): Add a couple more
1624         micro-optimizations.
1625         (inflate_generic_context): Don't use the 'gmethod' from
1626         'inflate_with'.
1627         (mono_class_inflate_generic_method): If the method has generic
1628         parameters, but the passed-in context doesn't have a 'gmethod',
1629         create one.  Use the possibly simplified generic instantiation
1630         from the declaring class instead of the one passed in.
1631
1632 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1633
1634         Make generic method signature and method header handling lazy.
1635         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1636         (inflate_generic_header): Likewise.
1637         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1638         parameter to avoid inflating types.
1639         (mono_get_inflated_method): Empty out.
1640         * class.h (mono_class_inflate_generic_method): Update to changes.
1641         * loader.c (mono_get_method_from_token): Don't parse signature for
1642         generic methods, nor methods of generic classes.
1643         (mono_method_signature): Rename from 'mono_method_signature'.
1644         Inflate signature on demand.
1645         (mono_method_get_header): Inflate method header on demand.
1646         * reflection.c: Update to changes.
1647
1648 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1649
1650         * metadata.c (mono_metadata_inflate_generic_inst): If the
1651         instantiation is closed, don't bother expanding it in the new
1652         context.
1653         * class.c (inflate_generic_class): If the generic instantiation
1654         doesn't change after inflation, return the argument itself.
1655         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1656         Add bounds checks.
1657         (inflate_generic_context): If neither the generic class nor the
1658         generic method instantiations change, return the original context.
1659         * reflection.c (mono_method_get_object): Do
1660         'mono_get_inflated_method' before accessing the ->klass field.
1661         (inflate_mono_method): Don't create a MonoGenericMethod unless
1662         necessary.
1663         (inflate_method): Don't pass a constructed type as the declaring
1664         type of a methodbuilder.
1665
1666 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1667
1668         * object.c: fix memory overwrite.
1669
1670 2006-02-22  Dick Porter  <dick@ximian.com>
1671
1672         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1673         it doesn't work any more.
1674         (mono_threads_request_thread_dump): Fix unused variable warnings.
1675
1676 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1677
1678         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1679         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1680         the public header file.
1681
1682 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1683
1684         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1685
1686 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1687
1688         * class-internals.h, object.c: reduce the size of MonoVTable
1689         and store the interface_offsets array at negative offsets.
1690
1691 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1692
1693         * metadata.c: tweak table descriptors data structures to reduce
1694         size and runtime relocations.
1695
1696 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1697
1698         * marshal.c: fix some types and opcodes to be type-safe
1699         in marshaling wrappers.
1700
1701 2006-02-21  Ankit Jain  <jankit@novell.com>
1702
1703         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1704
1705 2006-02-21  Raja R Harinath  <rharinath@novell.com>
1706
1707         * metadata.c (get_constraints): Relax debugging checks for monodis.
1708
1709 2006-02-21  Ankit Jain  <jankit@novell.com>
1710
1711         * metadata.c (mono_metadata_load_generic_params): Move the code
1712         checking for ambiguous generic params from here to mono/dis/get.c
1713         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
1714
1715 2006-02-21  Raja R Harinath  <harinath@gmail.com>
1716
1717         Fix assertion triggered when compiling nemerle.
1718         * class.c (mono_get_shared_generic_inst): Rename from
1719         get_shared_inst and make non-static.
1720         * loader.c (mono_get_shared_generic_method): New.  Used to create
1721         the MonoGenericContext-equivalent of a MonoGenericContainer.
1722         (mono_get_method_from_token): Initialize the 'context' field of
1723         the created MonoGenericContainer.
1724         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
1725         * metadata.c (get_constraints): Add sanity check.
1726         * class-internals.h: Add new internal methods.
1727
1728         * reflection.c (verify_safe_for_managed_space): New sanity check.
1729         Currently checks that owner-less generic parameters aren't allowed
1730         in managed space.
1731         (mono_type_get_object): Use it.
1732         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
1733         that are now in mono_type_get_object.
1734         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
1735
1736 2006-02-19  Raja R Harinath  <harinath@gmail.com>
1737
1738         * metadata.c (mono_type_create_from_typespec): Rename from
1739         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
1740         argument and caching of types in the generic container.
1741         (unwrap_arrays, find_generic_param): Remove.
1742         * metadata-internals.h: Update.
1743         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
1744
1745 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
1746
1747         * class.c (mono_class_get_exception_for_failure): Fix a warning.
1748
1749         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
1750         return values. Fixes #77581.
1751
1752         * class.c (mono_fnptr_class_get): Switch name and name_space.
1753
1754         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
1755         classes and add support for [In, Out] attributes.
1756         (mono_marshal_free_asany): Ditto. Fixes #77524.
1757
1758 2006-02-18  Raja R Harinath  <harinath@gmail.com>
1759
1760         * class.c (mono_class_from_generic_parameter): Make more robust to
1761         incomplete MonoGenericContainers from monodis.
1762
1763 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1764
1765         * class-internals.h: added some more exception types.
1766         * class.c, metadata.c: added a few checks to handle missing
1767         types.
1768
1769 2006-02-17  Raja R Harinath  <rharinath@novell.com>
1770
1771         Use owner-less generic-params some more.
1772         * class.c (my_mono_class_from_generic_parameter): Remove.
1773         (mono_class_from_generic_parameter): Handle null image,
1774         param->name and param->owner.
1775         (mono_class_from_mono_type): Update.
1776         (mono_class_create_from_typespec): Remove 'container' parameter.
1777         If that parameter is non-null, the result is always inflated by
1778         'mono_class_get_full' anyway.
1779         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
1780         parameter.
1781         (mono_class_get_full): Update.
1782
1783         * class.c (inflate_generic_type) [GENERICINST]: If the generic
1784         instance is not open, don't bother inflating.
1785         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
1786         parse metadata for inflated classes.
1787         (_mono_class_get): Change GenericContext* parameter to
1788         GenericContainer*.
1789         (mono_class_create_from_typespec): Likewise.  Simplify, and
1790         implement trivially.  All the cases are handled in
1791         mono_class_from_mono_type.  Don't inflate returned class.
1792         (mono_class_get_full): Delegate GENERICINST optimization to
1793         inflate_generic_type.
1794         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
1795
1796 2006-02-16  Dick Porter  <dick@ximian.com>
1797
1798         * socket-io.c (create_object_from_sockaddr): Fix typo.
1799         (create_sockaddr_from_object): Check array lengths before
1800         potentially accessing items off the end.
1801         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
1802         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
1803         (ves_icall_System_Net_Sockets_Socket_Send_internal)
1804         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
1805         length checks to avoid wraparound overflows.
1806         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
1807         contents of the array of sockets
1808         (hostent_to_IPHostEntry2)
1809         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
1810         Check return value of inet_ntop ().
1811         (addrinfo_to_IPHostEntry): Fix typo
1812
1813 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1814
1815         Type metadata parsing doesn't use generic-instantiation information.
1816         * metadata.c (mono_metadata_parse_array_full): Change
1817         MonoGenericContext* parameter to MonoGenericContainer*.
1818         (mono_metadata_parse_type_full): Likewise.
1819         (mono_type_create_from_typespec_full): Likewise.
1820         (mono_metadata_parse_mh_full): Likewise.
1821         (mono_metadata_parse_generic_inst): Likewise.
1822         (do_mono_metadata_parse_generic_class): Likewise.
1823         (do_mono_metadata_parse_type): Likewise.
1824         * metadata-internals.h: Update to changes.
1825         * class.c (mono_class_find_enum_basetype): Likewise.
1826         (mono_class_setup_fields): Likewise.
1827         (mono_class_create_from_typespec): Likewise.
1828         * loader.c (method_from_methodspec): Likewise.
1829         (mono_get_method_from_token): Likewise.
1830         (mono_method_get_header): Likewise.
1831
1832 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1833
1834         * marshal.c: handle additional GENERICINST case (patch from
1835         Thong Nguyen <tum@veridicus.com>).
1836         Fix a few cases where LDIND_I/STIND_I was used for references.
1837
1838 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1839
1840         * reflection.c (mono_reflection_get_token): Remove unused variable.
1841
1842 2006-02-16  Martin Baulig  <martin@ximian.com>
1843
1844         * reflection.c (mono_reflection_get_token): Add support for fields
1845         in instantiated generic types.
1846
1847         * icall.c
1848         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
1849
1850 2006-02-15  Martin Baulig  <martin@ximian.com>
1851
1852         * icall.c
1853         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
1854         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
1855         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
1856         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
1857
1858 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1859
1860         * class.c, metadata.c, metadata.h, object.c, icall.c,
1861         marshal.c: changed mono_type_get_underlying_type () to do
1862         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
1863         Fixed handling of instantiated generic valuetypes (bug #75479).
1864
1865 2006-02-15  Raja R Harinath  <rharinath@novell.com>
1866
1867         * metadata.c (mono_metadata_decode_signed_value): Simplify.
1868         Delegate to mono_metadata_decode_value, and work on the returned value.
1869
1870         * icall.c (ves_icall_MonoType_GetGenericArguments):
1871         Add consistency check here too.
1872         
1873 2006-02-15  Ankit Jain  <jankit@novell.com>
1874
1875         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
1876         char/short etc.
1877
1878 2006-02-15  Ankit Jain  <jankit@novell.com>
1879
1880         * metadata.c (mono_metadata_decode_signed_value): New function to decode
1881         signed values, used only for representing lower bounds of arrays.
1882         (mono_metadata_parse_array_full): Use new
1883         mono_metadata_decode_signed_value to decode lower bounds.
1884
1885 2006-02-14  Martin Baulig  <martin@ximian.com>
1886
1887         * reflection.c
1888         (mono_reflection_get_token): Support "MonoGenericMethod" and
1889         "MonoGenericCMethod" and allow generic instances / methods.
1890
1891 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
1892
1893         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
1894         to obtain the terminal size using an ioctl.
1895
1896         * object.c (mono_nullable_init): Revert this as nullable reference
1897         types are not valid.
1898         (mono_nullable_box): Ditto.
1899
1900 2006-02-09  Dick Porter  <dick@ximian.com>
1901
1902         * threads.c (mono_thread_detach): Drop a reference to the thread
1903         we're detaching.
1904
1905 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
1906
1907         * object.c (mono_nullable_init): Handle nullable reference types.
1908         (mono_nullable_box): Ditto. Fixes #77446.
1909
1910 2006-02-07  Martin Baulig  <martin@ximian.com>
1911
1912         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
1913
1914 2006-02-07  Ankit Jain  <jankit@novell.com>
1915
1916         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
1917         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
1918         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
1919         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
1920         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
1921         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
1922
1923 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
1924
1925         * class.c (mono_class_create_generic): Set type_token as well.
1926
1927         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
1928         compatible with MS.
1929
1930 2006-02-02  Martin Baulig  <martin@ximian.com>
1931
1932         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
1933         has never been used so far.
1934
1935 2006-02-02  Martin Baulig  <martin@ximian.com>
1936
1937         * mono-debug-debugger.h: Changed comment at the top of this file;
1938         the header is not installed, but it's safe to #include it from
1939         within the JIT.
1940
1941         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
1942         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
1943
1944 2006-02-02  Martin Baulig  <martin@ximian.com>
1945
1946         * mono-debug.h
1947         (MonoSymbolTable): Removed the `metadata_info' field.
1948
1949         * mono-debug.c
1950         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
1951
1952         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1953         (mono_debugger_add_builtin_types): Removed.
1954         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
1955         (mono_debugger_create_notification_function): We now operate on a
1956         pre-allocated area; take a `gpointer' and return `void'.
1957
1958         * mono-debug-debugger.c
1959         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
1960         (mono_debugger_add_builtin_types): Removed.
1961
1962 2006-02-02  Martin Baulig  <martin@ximian.com>
1963
1964         * threads.c (mono_debugger_create_all_threads): New public method.
1965
1966 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1967
1968         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
1969         breaks on several platforms.
1970
1971 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
1972
1973         * assembly.c: the VS.NET build doesn't supply default values for
1974         MONO_ASSEMBLIES and MONO_CFG_DIR.
1975
1976 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
1977
1978         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
1979         helper function.
1980
1981         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
1982
1983         * loader.c (method_from_memberref): Fix a warning.
1984
1985         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
1986
1987         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
1988         with explicit layout. Fixes #77433.
1989
1990 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
1991
1992         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
1993         max_interface_id is initialized before using it. Fixes #77398.
1994         (ves_icall_Type_GetInterfaces): Ditto.
1995
1996 2006-01-30  Raja R Harinath  <rharinath@novell.com>
1997
1998         * metadata.c (mono_metadata_parse_method_signature_full): Don't
1999         allocate memory for parameter attributes when parsing memberref
2000         signatures.
2001         * loader.c (mono_loader_set_error_method_load): Don't warn.
2002         (method_from_memberref): Ensure MissingMethodException gets thrown
2003         if method is not found.  Make warning more informative.
2004
2005 2006-01-29  Raja R Harinath  <harinath@gmail.com>
2006
2007         Fix #77397
2008         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
2009         return true if is byref.
2010         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2011         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
2012         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2013
2014 2006-01-27  Raja R Harinath  <rharinath@novell.com>
2015
2016         Fix tests/find-method.2.il
2017         * loader.c (find_method, find_method_in_class): Remove is_inflated
2018         argument.  Revert 2006-01-18 change.
2019         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
2020         is generic, search for method in its generic definition.
2021         * class.c (mono_class_setup_vtable_general): Print generic
2022         arguments of generic types in debugging printf.
2023
2024 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
2025
2026         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
2027
2028         * threads.c (mono_threads_request_thread_dump): New helper function.
2029
2030 2006-01-25  Raja R Harinath  <rharinath@novell.com>
2031
2032         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
2033
2034 2006-01-25  Ankit Jain  <jankit@novell.com>
2035
2036         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
2037         move definition to ..
2038         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
2039         
2040 2006-01-25  Ankit Jain  <jankit@novell.com>
2041             Raja R Harinath  <rharinath@novell.com>
2042
2043         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
2044         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
2045         as necessary.
2046
2047 2006-01-25  Martin Baulig  <martin@ximian.com>
2048
2049         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
2050         `MonoDebuggerThread' into debug-debugger.c.
2051
2052 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
2053
2054         * profiler.c: fix printing of data.
2055
2056 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
2057
2058         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
2059           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
2060
2061 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2062
2063         * object.c: fix deadlock related to string interning.
2064
2065 2006-01-23  Martin Baulig  <martin@ximian.com>
2066
2067         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2068
2069         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
2070
2071 2006-01-23  Martin Baulig  <martin@ximian.com>
2072
2073         * mono-debug.h: Moved the prototypes of some functions which are
2074         used by the JIT here from mono-debug-debugger.h.
2075
2076 2006-01-21  Martin Baulig  <martin@ximian.com>
2077
2078         * Makefile.am: Don't install mono-debug-debugger.h.
2079
2080 2006-01-21  Martin Baulig  <martin@ximian.com>
2081
2082         * mono-debug-debugger.h: Enforce the private status of this header
2083         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
2084         Moved some stuff from mono-debugger-jit-wrapper.h here.
2085
2086 2006-01-20  Raja R Harinath  <rharinath@novell.com>
2087
2088         * class.c (mono_class_from_typeref): Add a sanity test to help
2089         catch lack of assembly load/search hooks.
2090
2091 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
2092
2093         * marshal.c (emit_struct_conv): Relax the fields with same offset
2094         check even more. Fixes #77230.
2095
2096 2006-01-18  Martin Baulig  <martin@ximian.com>
2097
2098         * loader.c (find_method_in_class): Added `gboolean is_inflated'
2099         argument; if false, we compare the uninstantiated signatures.
2100         (method_from_memberref): Compare the uninstantiated signatures;
2101         fixes #76417.
2102
2103 2006-01-18  Robert Jordan  <robertj@gmx.net>
2104
2105         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
2106         Clear the weak link. Fixes bug #77170.
2107
2108         * gc.c (mono_gchandle_free):
2109         Reflect *-gc.c changes (tiny optimization).
2110
2111 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
2112
2113         * metadata.c (mono_metadata_signature_dup): Applied patch from
2114         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
2115         Fixes #77288.
2116
2117 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
2118
2119         * marshal.c (emit_struct_conv): Allow fields with the same offset when
2120         marshalling from native to managed code. Fixes #77230.
2121
2122 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2123
2124         * threadpool.c: fix problem (Mac only) when more than one asynchronous
2125         connect. Fixes bug #77020.
2126
2127 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2128
2129         * class.c: fixed id assignement for nested interfaces (bug #77275).
2130         Added also better info for --print-vtable debugging.
2131
2132 2006-01-12  Martin Baulig  <martin@ximian.com>
2133
2134         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
2135         interfaces on-the-fly; fixes #76625.
2136
2137         * class-internals.h
2138         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
2139         don't need that anymore.
2140
2141 2006-01-12  Miguel de Icaza  <miguel@novell.com>
2142
2143         * socket-io.c
2144         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2145         To avoid initing the nested_classes when not needed I turned the
2146         PeerCredData as a toplevel internal class, as it has to be shared
2147         anyways. 
2148
2149         Fixes the CASA issue.
2150
2151 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
2152
2153         * domain.c: Accessors for MonoJitInfo
2154
2155         * profiler-private.h: Add jitinfo to the end jit hook
2156
2157         * profiler.[ch]: Define new hooks, called after jitting which give
2158         the MonoJitInfo that was compiled
2159
2160 2006-01-10  Martin Baulig  <martin@ximian.com>
2161
2162         * class.c (mono_class_setup_events): Add support for generic
2163         classes; fixes #76440.
2164
2165 2006-01-06  Raja R Harinath  <rharinath@novell.com>
2166
2167         Fix #77160.
2168         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
2169         on passed-in method.
2170
2171 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2172
2173         * object.c (mono_runtime_invoke_array): Add Nullable support.
2174
2175         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
2176
2177 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
2178
2179         * file-io.c: Don't consider sockets as directory and avoid an endless
2180         loop. Fix bug #76966.
2181
2182 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2183
2184         * object.c (mono_nullable_init): New helper function.
2185         (mono_nullable_box): Ditto.
2186
2187         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
2188
2189         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
2190
2191         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
2192         
2193 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
2194
2195         * class.c (mono_class_is_assignable_from): Make T assignable to 
2196         Nullable<T>.
2197
2198 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
2199
2200         * appdomain.c: Bump corlib version to 46.
2201         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
2202         serialization purpose) and changed ves_icall_System_Reflection_
2203         Assembly_get_code_base signature to accept a boolean (to escape, or 
2204         not, the assembly code base).
2205
2206 2005-12-23  Dick Porter  <dick@ximian.com>
2207
2208         * icall.c: 
2209         * threads-types.h: 
2210         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
2211         CreateEvent icall now returns "created" boolean parameter.
2212
2213 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
2214
2215         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
2216         #76967.
2217
2218         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
2219         when attr_klass is an interface. Fixes #77045.
2220
2221 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
2222
2223         * marshal.c (emit_struct_conv): Fix previous patch.
2224         
2225         * marshal.c (emit_struct_conv): Add a check for fields with the same
2226         offset.
2227
2228 2005-12-20  Raja R Harinath  <rharinath@novell.com>
2229
2230         Fix regression in Mono.C5.
2231         * class.c (mono_class_create_generic): If 'klass' is an interface
2232         set up the interface offsets.
2233         (mono_class_is_assignable_from): Don't throw away generic arguments.
2234
2235 2005-12-19  Raja R Harinath  <rharinath@novell.com>
2236
2237         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
2238         type parameters.
2239
2240 2005-12-15  Raja R Harinath  <rharinath@novell.com>
2241
2242         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
2243         dead store.
2244         (do_mono_metadata_parse_generic_class): Don't pass the current
2245         generic context when parsing the type being instantiated: it
2246         cannot use it, anyway.
2247
2248         * loader.c (method_from_memberref): Don't inflate a signature if
2249         it doesn't contain any type parameters.
2250
2251 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2252
2253         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
2254
2255 2005-12-14  Martin Baulig  <martin@ximian.com>
2256
2257         * class.c
2258         (mono_type_get_name_recurse): Don't return null for type
2259         parameters and open generic classes.
2260         (mono_class_setup_methods): Don't exclude generic instances.
2261         (mono_get_unique_iid): Use different IDs for different
2262         instantiations of the same generic type.
2263         (mono_class_setup_vtable): Only use setup_generic_vtable() for
2264         open generic instances; create a normal vtable for closed generic
2265         instances.
2266         (mono_class_setup_vtable_general): We're now also called for
2267         closed generic instances.
2268
2269         * reflection.c
2270         (mono_reflection_bind_generic_parameters): Correctly use
2271         mono_metadata_lookup_generic_inst() everywhere.
2272
2273 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
2274
2275         * object.c (mono_class_create_runtime_vtable): Call 
2276         mono_class_setup_vtable ().
2277
2278         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
2279         function.
2280         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
2281         #76959.
2282
2283         * loader.c (mono_loader_set_error_type_load): Print the type load
2284         warnings to the console so they are more visible to the user.
2285         (mono_loader_set_error_method_load): Ditto.
2286
2287         * reflection.c (ensure_runtime_vtable): Revert the last change as it
2288         is still broken.
2289         
2290         * reflection.c (ensure_runtime_vtable): Fix build.
2291
2292         * reflection.c (ensure_runtime_vtable): Disable an optimization which
2293         doesn't work in all cases.
2294
2295 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
2296
2297         * object.c (mono_array_new_full): Treat a single dimensional array
2298         with 0 lower bounds as an szarray. Fixes #76973.
2299
2300         * reflection.c (custom_attr_visible): Really fix this.
2301
2302 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
2303
2304         * reflection.c (custom_attr_visible): Allow nested public attributes
2305         as well.
2306
2307         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
2308         interface check.
2309
2310 2005-12-12  Raja R Harinath  <harinath@gmail.com>
2311
2312         * class.c (set_generic_param_owner): Delete.
2313         (mono_class_create_from_typedef): Don't set ->owner field of
2314         generic parameters to "param containers" of enclosing classes.
2315         * reflection.c (mono_reflection_initialize_generic_parameter):
2316         Likewise.
2317
2318 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
2319
2320         * reflection.c (custom_attr_visible): Fix build.
2321
2322 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
2323
2324         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
2325         private attributes.
2326         
2327         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
2328         handling of null parameter defaults.
2329
2330 2005-12-09  Raja R Harinath  <rharinath@novell.com>
2331
2332         * class.c (mono_class_from_generic_parameter): Don't set
2333         klass->generic_container.
2334         (my_mono_class_from_generic_parameter): Likewise.
2335
2336 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2337
2338         * reflection.c (load_public_key): Fix a warning.
2339         (method_encode_code): Fix unaligned accesses.
2340
2341 2005-12-07  Martin Baulig  <martin@ximian.com>
2342
2343         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
2344
2345         * reflection.c
2346         (write_generic_param_entry): Encode our custom attrs.
2347
2348         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
2349
2350 2005-12-07  Martin Baulig  <martin@ximian.com>
2351
2352         * reflection.c (encode_new_constraint): Removed; we don't use the
2353         `NewConstraintAttribute' anymore.
2354
2355 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2356
2357         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
2358         not fire a TypeResolve event when Assembly.GetType () is called.
2359
2360 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2361
2362         Beginning of support for nullable types in the runtime. Parts of
2363         this patch are from Martin.
2364
2365         * appdomain.c (MONO_CORLIB_VERSION): Bump
2366
2367         * domain.c (mono_init_internal): get the nullable type
2368
2369         * class.c (mono_class_is_nullable): New method
2370         (mono_class_get_nullable_param): New mehod
2371         (mono_class_create_generic): In types T? set cast_class to T
2372
2373         * class-internals.h (MonoDefaults): new nullable default class
2374         (mono_class_get_nullable_param, mono_class_get_nullable_param):
2375         new methods.
2376
2377 2005-12-05  Raja R Harinath  <rharinath@novell.com>
2378
2379         * metadata.c (select_container): New.  Refactor code to select the
2380         appropriate GenericContainer given the type of generic parameter
2381         we are looking for.
2382         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
2383         not a MonoGenericContext.  Use select_container.  Update parameters.
2384         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
2385         and MONO_TYPE_MVAR.
2386         (unwrap_arrays): Remove duplicate tests.
2387         (find_generic_param): Rename from 'has_same_context'.  Now walks a
2388         generic instantiated class to find any arguments that are generic
2389         parameters.
2390         (mono_type_create_from_typespec_full): Use find_generic_param to
2391         avoid evicting some generic instantiations from the typespec
2392         cache.
2393
2394 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
2395
2396         * reflection.c: fixed writing of doubles on ARM FPA.
2397
2398 2005-12-02  Robert Jordan  <robertj@gmx.net>
2399
2400         * icall.c: Fixed EventInfo.ReflectedType (#76829).
2401
2402 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2403
2404         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
2405         least on SUSE 10 they are not the same (on debian, they are just the
2406         same thing).
2407
2408 2005-12-01  Raja R Harinath  <rharinath@novell.com>
2409
2410         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
2411         DeclaringType for VARs and MVARs.
2412         * class.c (set_generic_param_owner): Fix initialization of owner
2413         fields.
2414
2415 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2416
2417         * icall.c: fixed Enum.ToObject() to correctly convert the values.
2418
2419 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2420
2421         * threadpool.c: workaround for a bug that shows up on the Mac:
2422         select()+connect() on a blocking socket is not like it should
2423         be, so we proceed to connect() in that case, wasting the I/O
2424         threadpool thread until connect succeedes. Fixes bug #75436.
2425
2426 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2427
2428         * threadpool.c: fix typo when setting file descriptor states.
2429
2430 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2431
2432         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
2433         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2434         create a temporary signature container.
2435         (mono_metadata_parse_generic_param): Update to changes.
2436         (mono_type_create_from_typespec_full): Update to changes.
2437         * loader.c (method_from_memberref): Don't use a
2438         MonoGenericContainer while parsing a memberref signature.
2439         (method_from_methodspec): Remove dead-store of the 'container'
2440         variable.  It's overwritten before use.
2441
2442         * metadata.c (mono_type_create_from_typespec_full): Make debugging
2443         checks tighter.
2444         (mono_metadata_parse_generic_param): Likewise.
2445         * loader.c (find_method_in_class): Does not need a
2446         MonoGenericContainer.  Use 'mono_method_signature' rather than
2447         'mono_method_signature_full'.
2448         (find_method, mono_get_method_constrained, method_from_memberref):
2449         Update to changes.
2450
2451         * metadata.c (mono_type_create_from_typespec_full): Ensure that
2452         owner-less generic-parameters are never evicted from the typespec
2453         cache.
2454
2455         * loader.c (method_from_memberref): Don't use the current context
2456         when parsing signatures.
2457         (method_from_methodspec, mono_get_method_from_token): Update to changes.
2458
2459         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
2460         side-effects in g_assert.
2461         * loader.c (mono_get_method_from_token): Resolve klass earlier so
2462         that we don't potentially lose information.
2463
2464 2005-11-26  Dick Porter  <dick@ximian.com>
2465
2466         * icall.c:
2467         * threads.c: icalls to implement basic (ie, not named)
2468         System.Threading.Semaphore.
2469
2470 2005-11-24  Dick Porter  <dick@ximian.com>
2471
2472         * process.c
2473         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2474         Use GetProcessId() if it's available.
2475
2476 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
2477
2478         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
2479
2480 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2481             Ankit Jain  <jankit@novell.com>
2482
2483         * loader.c (mono_get_method_from_token): Initialize 'method' field
2484         of all generic parameters before parsing the signature.  Remove
2485         code that "fixed"-up MVAR references.
2486
2487 2005-11-23  Ankit Jain  <jankit@novell.com>
2488
2489         * metadata.c (mono_metadata_has_generic_params):
2490         (mono_metadata_load_generic_param_constraints):
2491         (mono_metadata_load_generic_params): Move duplicate code ...
2492         (mono_metadata_get_generic_param_row): ... here. Returns the
2493         first row-id in GenericParam table for a given owner (token).
2494         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
2495         prototype.
2496
2497 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2498             Ankit Jain  <jankit@novell.com>
2499
2500         * metadata.c (mono_metadata_class_equal): Pass signature_only when
2501         comparing VARs too.
2502         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
2503         type->data.generic_param only if the type is an MVAR.
2504         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
2505         leak owner-less VARs and MVARs into managed space.
2506
2507 2005-11-21  Martin Baulig  <martin@ximian.com>
2508
2509         * class-internals.h
2510         (MonoMethod): Moved the `generic_container' here from
2511         `MonoMethodNormal' since we now also need it for
2512         `MonoMethodPInvoke';
2513         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
2514         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
2515         an union containing both `MonoMethodNormal' and
2516         `MonoMethodPInvoke'.
2517
2518         * loader.c
2519         (mono_get_method_from_token): Allow implementing generic methods
2520         as interncalls.
2521
2522         * threads.c
2523         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
2524         icall.
2525
2526 2005-11-17  Dick Porter  <dick@ximian.com>
2527
2528         * icall.c: 
2529         * process.h: 
2530         * process.c: Split the Process Start_internal icall into
2531         ShellExecuteEx_internal and CreateProcess_internal, which are
2532         called depending on whether UseShellExecute is true.  Fixes bug
2533         76670.
2534
2535         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2536
2537 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2538
2539         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2540         'msize' parameters, use the information in 'mspec' instead.
2541         (emit_object_to_ptr_conv): Ditto.
2542
2543         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2544         fields out of order. Fixes #76733.
2545
2546 2005-11-17  Ankit Jain  <jankit@novell.com>
2547
2548         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2549
2550 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2551
2552         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2553           bug #76575.
2554
2555 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2556
2557         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2558         for types with non-auto layout. Fixes #76717.
2559
2560 2005-11-16  Ankit Jain  <jankit@novell.com>
2561
2562         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2563         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2564         if generic_context is null.
2565           (mono_metadata_generic_param_equal): param->owner can be null.
2566           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2567         null.
2568
2569 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2570
2571         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2572         the correct value.
2573
2574 2005-11-15  Martin Baulig  <martin@ximian.com>
2575
2576         * object.c (set_value): Use mono_class_from_mono_type() instead of
2577         the hack for generic instances; fixes #76136.
2578
2579 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2580
2581         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2582         fields.
2583
2584         * image.c (load_metadata_ptrs): Initialize the new fields.
2585
2586         * reflection.c (create_dynamic_mono_image): Ditto.
2587
2588         * reflection.c (build_compressed_metadata): Use the new fields.
2589
2590         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2591         icall.
2592
2593         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2594         icall.
2595         
2596 2005-11-15  Ankit Jain  <jankit@novell.com>
2597             Raja R Harinath  <harinath@gmail.com>
2598
2599         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2600         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2601         new per-generic_container cache if the cached MonoType's context matches
2602         the current context.
2603           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2604         to the expected context.
2605           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2606
2607 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2608
2609         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2610         we changed the signature of an icall.
2611         * icall.c: Modify to mono_double_ParseImpl return true/false 
2612         depending on the success, instead of throwing the exception. This will
2613         help us in Double.TryParse methods.
2614         
2615 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2616
2617         * marshal.c (emit_marshal_object): Throw an exception when
2618         marshalling 'object' instead of crashing. Fixes #76696.
2619
2620 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2621
2622         * class-internals.h: Add prototype for mono_type_get_full_name ().
2623
2624 2005-11-11  Dick Porter  <dick@ximian.com>
2625
2626         * threads.c (mono_thread_manage): Make sure the main thread has
2627         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2628
2629 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2630
2631         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2632         console about the missing type.
2633         (mono_loader_set_error_method_load): Ditto.
2634
2635 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2636
2637         * mono-config.c (mono_get_config_dir): Set the system defaults if
2638         none is specified.
2639
2640         * assembly.c (mono_set_dirs): New API entry point to set the
2641         assembly and the config directory in one call
2642
2643 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2644
2645         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2646         the ftnptr was created from a delegate in a domain other than the
2647         current domain. Fixes #75377.
2648
2649         * exception.h exception.c: Add mono_get_exception_not_supported ().
2650
2651 2005-11-08  Martin Baulig  <martin@ximian.com>
2652
2653         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2654
2655 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2656
2657         * security-manager.h: Added definitions to deal with strongname key 
2658         pairs bigger (and smaller) than 1024 bits.
2659         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2660         adjust wrt the public key length being used.
2661
2662 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2663
2664         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2665           Windows build (r51396-51397).
2666
2667 2005-11-03  Martin Baulig  <martin@ximian.com>
2668
2669         * class.c (mono_class_setup_vtable_general): Also add generic
2670         methods to the vtable; fixes #76581.
2671
2672 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2673
2674         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2675         sure that we lookup GetString method from the System.Text.Encoding
2676         class, not the derived class or we get an empty method.
2677
2678         Fixed class #76612.
2679
2680 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2681
2682         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2683         if it has been previously set (embedders). 
2684
2685         Make mono_set_rootdir available also on Unix.
2686
2687 005-10-24  Robert Jordan  <robertj@gmx.net>
2688
2689         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2690
2691 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2692
2693         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2694         only calls which are made to native code use this flag.
2695
2696         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2697
2698 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2699
2700         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2701         Add support for FieldBuilders.
2702
2703 2005-10-29  Martin Baulig  <martin@ximian.com>
2704
2705         * mono-debug.c
2706         (mono_debug_using_mono_debugger): New public method; returns
2707         whether we're running inside the debugger.
2708
2709 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
2710
2711         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
2712         for Method/Constructor/FieldBuilders.
2713
2714 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2715
2716         * reflection.c (module_add_cattrs): Save custom attributes for global methods
2717         and fields as well.
2718
2719 2005-10-26  Martin Baulig  <martin@ximian.com>
2720
2721         * mono-debug-debugger.c
2722         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
2723
2724 2005-10-24  Raja R Harinath  <harinath@gmail.com>
2725
2726         * icall.c (base64_to_byte_array): Don't pass an out-of-range
2727         integer to isspace.
2728
2729 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2730
2731         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
2732         when passing valuetypes byref. Fixes #76502.
2733
2734 2005-10-19  Jackson Harper  <jackson@ximian.com>
2735
2736         * profiler.c: Don't put a . in front of types that are not in a
2737         namespace.
2738
2739 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
2740
2741         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
2742
2743 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
2744
2745         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
2746         #76436.
2747         (mono_marshal_get_ldflda_wrapper): Fix a warning.
2748
2749 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2750
2751         * assembly.c metadata-internals.h icall.c: Define an additional
2752         parameter for mono_assembly_name_parse_full, so we can avoid creating
2753         S.R.AssemblyName.Version when no version info wasn't passed.
2754         
2755 2005-10-09  Miguel de Icaza  <miguel@novell.com>
2756
2757         * class.c (mono_type_get_full_name): Reimplement method that was
2758         removed. 
2759
2760         * image.c: Some docs
2761
2762 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
2763
2764         * profiler.c (output_newobj_profile): Fix printing of Total memory
2765         on x86.
2766
2767 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2768
2769         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
2770
2771 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
2772
2773         * threads.c: remove debug output.
2774
2775 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2776
2777         * threads.c (mono_thread_manage): Fix crashes if more than 64
2778         threads need to be aborted. Hopefully fixes #75899.
2779
2780         * assembly.c (mono_stringify_assembly_name): New helper function.
2781
2782         * class.c: Use mono_stringify_assembly_name instead of the similar
2783         static function.
2784
2785         * assembly.h assembly.c: Add support for calling a postload search 
2786         hook if an assembly cannot be loaded.
2787
2788         * appdomain.c: Register new search hooks which call the AssemblyResolve
2789         events in AppDomain. Fixes #75231
2790
2791 2005-10-07  Martin Baulig  <martin@ximian.com>
2792
2793         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
2794         methods without debug info.
2795
2796 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
2797
2798         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
2799         wrappers.
2800
2801 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2802
2803         * file-io.c: now that we return symlinks, use lstat and, when the file
2804         is a symbolic link, stat, to get the file attributes. Also avoid the
2805         conversion to/from utf16/external.
2806
2807 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
2808
2809         * class.c (mono_class_layout_fields): Compute klass->has_references
2810         correctly if an embedded valuetype is not yet initialized. Fixes
2811         #76331.
2812
2813 2005-10-04  Martin Baulig  <martin@ximian.com>
2814
2815         * metadata.c
2816         (mono_metadata_load_generic_param_constraints): New public
2817         function; splitted the constraints loading out from
2818         mono_metadata_load_generic_params().
2819
2820         * class.c (mono_class_create_from_typedef): Call
2821         mono_metadata_load_generic_param_constraints() after setting up
2822         the type and creating our parent; fixes #75329.
2823
2824 2005-10-04  Martin Baulig  <martin@ximian.com>
2825
2826         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
2827         non-dynamic parent classes.
2828
2829 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2830
2831         * file-io.c : win32 build fix (ETXTBSY seems not found).
2832
2833 2005-10-04  Martin Baulig  <martin@ximian.com>
2834
2835         * reflection.c
2836         (mono_image_get_methodspec_token): Make the cache actually work;
2837         fixes #75974.
2838
2839 2005-10-04  Martin Baulig  <martin@ximian.com>
2840
2841         * class.c (mono_class_name_from_token): Removed the unneccessary
2842         `MonoGenericContext *' argument.
2843
2844 2005-10-04  Martin Baulig  <martin@ximian.com>
2845
2846         * loader.c
2847         (method_from_methodspec): Make the caching work again; fixes the
2848         performance regression from #76262.
2849
2850 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2851
2852         * file-io.c:
2853         * file-io.h:
2854         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
2855         GetFileSystemEntries that performs the same work but without going
2856         into io-layer, locking, etc.
2857
2858 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
2859
2860         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
2861         ThreadState_Stopped as well. Fixes #76047.
2862
2863 2005-09-29  Martin Baulig  <martin@ximian.com>
2864
2865         * class.c
2866         (inflate_generic_context): If the new context has a `gmethod', set
2867         its `container' that that gmethod's `container'.
2868
2869         * metadata.c
2870         (mono_metadata_parse_generic_param): Simplify things;
2871         `generic_container = generic_context->container;' is just fine.
2872
2873         * loader.c (method_from_methodspec): Code cleanups.
2874
2875 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
2876
2877         * decimal.c: fix warning (and let gcc generate correct
2878         code on ARM with optimizations).
2879
2880 2005-09-28  Martin Baulig  <martin@ximian.com>
2881
2882         * loader.c
2883         (method_from_memberref): Added `MonoGenericContext *class_context'
2884         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
2885         (method_from_methodspec): If we're a memberref, use the enclosing
2886         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
2887
2888 2005-09-28  Martin Baulig  <martin@ximian.com>
2889
2890         * object.c (mono_runtime_invoke_array): Added support for
2891         MONO_TYPE_GENERICINST; fixes #75917.
2892
2893 2005-09-27  Martin Baulig  <martin@ximian.com>
2894
2895         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
2896         `k->byval_arg.type' to determine the actual type.
2897
2898         * loader.c (method_from_methodspec): Removed some hacks.
2899
2900 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
2901
2902         * class-internals.h (mono_field_is_deleted): Do the test for
2903         rtspecialname before we check the actual name of the field. This
2904         prevents us from dereferencing a pointer into the string table,
2905         saving us from accessing a few pages
2906
2907         * *.c: Replace the use of {Enter,Leave}CriticalSection with
2908         macros. This will allow a deadlock debugger to easily be plugged
2909         in.
2910
2911 2005-09-27  Martin Baulig  <martin@ximian.com>
2912
2913         * loader.c (method_from_methodspec): Create a "signature"
2914         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
2915
2916 2005-09-27  Martin Baulig  <martin@ximian.com>
2917
2918         * class.c
2919         (inflate_generic_class): Correctly set the new context's
2920         container.
2921
2922         * loader.c
2923         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
2924         instead of a `MonoGenericContext *'.
2925         (mono_method_signature_full): Take a `MonoGenericContainer *'
2926         instead of a `MonoGenericContext *'.
2927
2928         * metadata.c
2929         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
2930         instead of a `MonoGenericContext *'.
2931         (mono_metadata_parse_method_signature_full): Likewise.
2932
2933 2005-09-26  Martin Baulig  <martin@ximian.com>
2934
2935         * class.c
2936         (mono_class_from_generic_parameter): Set `klass->generic_container'
2937         (mono_class_from_generic_parameter): Likewise.
2938         (mono_bounded_array_class_get): We inherit the generic container
2939         from the element class.
2940
2941         * loader.c
2942         (find_method, find_method_in_class): Take a `MonoGenericContext *'
2943         argument rather than computing it here.
2944         (method_from_memberref): Correctly set the generic context before
2945         parsing the signature.  Fixes #75681.
2946
2947 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
2948
2949         * object.c (mono_class_has_special_static_fields): Fix warnings.
2950
2951 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2952
2953         * assembly.c: Add parse_public_key function, to
2954         par the public keys. Also added mono_assembly_name_parse_full,
2955         to define it the parsed key should be freed or not.
2956         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
2957         to parse a long format assembly name.
2958         * metadata-internals.h: Keep mono_assembly_name_parse_full as
2959         private, since calling it to preserve the key requires
2960         freeing it manually.
2961         
2962 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2963
2964         * locales.c : removed HAVE_ICU part.
2965
2966 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
2967
2968         * object.c (mono_class_create_runtime_vtable): Avoid calling 
2969         field_is_special_static if the klass has no special static fields.
2970
2971         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
2972         (MonoCachedClassInfo): Likewise.
2973
2974         * object.c (mono_class_has_special_static_fields): New helper function.
2975
2976 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2977
2978         * class.c (mono_class_create_from_typedef): Don't call 
2979         interfaces_from_typedef_full for enums.
2980         (mono_class_create_from_typedef): Compute the base types of enums directly
2981         without calling mono_class_setup_fields ().
2982         (mono_class_find_enum_basetype): New helper function.
2983
2984         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
2985         one place inside the string heap.
2986         
2987 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
2988
2989         * class.c: locking fixes, code cleanups, some docs added.
2990         Allocate some data structures in the image mempool.
2991
2992 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2993
2994         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2995         the example code.
2996         
2997 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
2998
2999         * class-internals.h, class.c, reflection.c: reduce memory taken by
3000         MonoClass.
3001
3002 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
3003
3004         * metadata.c, metadata.h, loader.h: documentation updates, code and
3005         API cleanups.
3006
3007 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3008
3009         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3010         the example code.
3011
3012         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
3013         page faults caused by the runtime while reading metadata.
3014
3015 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3016
3017         * socket-io.c: the field names were changed 3 months ago and no one
3018         realized until bug #76077 got filed!
3019
3020 2005-09-20  Martin Baulig  <martin@ximian.com>
3021
3022         * icall.c (assembly_icalls): Removed some unused debugger icalls.
3023
3024 2005-09-20  Martin Baulig  <martin@ximian.com>
3025
3026         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
3027         write the rank into the class entry.
3028
3029 2005-09-20  Martin Baulig  <martin@ximian.com>
3030
3031         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
3032
3033 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
3034
3035         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3036
3037         * icall.c (custom_attrs_defined_internal): New icall.
3038
3039         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
3040         function.
3041         (mono_custom_attrs_construct_by_type): New helper function.
3042
3043 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
3044
3045         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
3046         terminate the resulting string. Fixes #76123.
3047
3048 2005-09-16  Martin Baulig  <martin@ximian.com>
3049
3050         * mono-debug.c
3051         (mono_debug_add_method): Ignore inflated methods for the moment.
3052
3053 2005-09-14  Martin Baulig  <martin@ximian.com>
3054
3055         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
3056
3057 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
3058
3059         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
3060         return a success/failure indication.
3061         (mono_metadata_interfaces_from_typedef_full): Ditto.
3062         (get_constraints): Ditto.
3063
3064 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
3065
3066         * marshal.c (emit_marshal_array): Fix handling of null arrays.
3067         
3068         * marshal.c (emit_marshal_array): Add support for returning string
3069         arrays from delegates. Fixes #76063.
3070
3071         * marshal.c: Use the emit_ldloc/stloc macros where possible.
3072
3073 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3074
3075         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
3076         icall.
3077
3078 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
3079
3080         * reflection.c icall.c: Fix after mono_get_exception_type_load
3081         signature change.
3082
3083         * assembly.c (mono_assembly_get_assemblyref): New helper function.
3084         (mono_assembly_load_reference): Use the new helper.
3085
3086         * class-internals.h (MonoLoaderError): New structure containing 
3087         information about type loading errors.
3088
3089         * class-internals.h loader.c: Add APIs to store per-thread loader
3090         error information.
3091
3092         * loader.c class.c: Set the loader error if needed.
3093
3094         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
3095
3096 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
3097
3098         * decimal.c: fixed to handle the broken ARM fp format.
3099
3100 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
3101
3102         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
3103         broken.
3104
3105 2005-09-06  Martin Baulig  <martin@ximian.com>
3106
3107         * domain.c (supported_runtimes): Added v2.0.50727.
3108
3109 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
3110
3111         * culture-info.h: reduce the size of some structures.
3112
3113 2005-09-05  Martin Baulig  <martin@ximian.com>
3114
3115         Reflect latest API changes in the August CTP.
3116
3117         * icall.c
3118         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
3119         ("MonoType.HasGenericArguments"): Removed.
3120         ("MonoMethod.BindGenericParameters"): Renamed to
3121         "MakeGenericMethod".
3122         ("MethodBuilder.BindGenericParameters"): Renamed to
3123         "MakeGenericMethod".    
3124
3125 2005-09-05  Martin Baulig  <martin@ximian.com>
3126
3127         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
3128
3129 2005-09-05  Martin Baulig  <martin@ximian.com>
3130
3131         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3132
3133         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
3134         generic_container is non-NULL.
3135
3136 2005-09-05  Martin Baulig  <martin@ximian.com>
3137
3138         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3139
3140         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
3141
3142 2005-08-29  Michal Moskal  <malekith@nemerle.org>
3143
3144         * reflection.c (encode_locals,
3145         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
3146         for large generic types.
3147
3148 2005-09-05  Martin Baulig  <martin@ximian.com>
3149
3150         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3151
3152         * class.c (mono_dup_array_type): New public method.
3153         (mono_metadata_signature_deep_dup): New public method.
3154         (dup_type): Correctly duplicate array and function types.
3155
3156 2005-09-05  Martin Baulig  <martin@ximian.com>
3157
3158         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3159
3160         * reflection.c (get_default_param_value_blobs): Handle generic types
3161         and generic methods.
3162
3163 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
3164
3165         * class.c: Fixed error reporting (method/class were inversed) for 
3166         inheritance demands.
3167         * security-manager.c|h: Added the AppDomain when calling the managed
3168         System.Security.SecurityManager.InheritanceDemand method.
3169
3170 2005-09-01  Raja R Harinath  <rharinath@novell.com>
3171
3172         * reflection.c (encode_marshal_blob): 'marshaltype' and
3173         'marshaltyperef' are alternate sources for the custom marshaler
3174         name.
3175
3176 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
3177
3178         * class.c: fix creation of array classes with rank == 1
3179         (patch by Ankit Jain <jankit@novell.com>).
3180
3181 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
3182
3183         * object.c: fix check for creating the bound data for arrays vs
3184         szarrays.
3185
3186 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3187
3188         * object.c: configuration file name is now based on the executable name,
3189         not the image name. Fixes bug #75931.
3190
3191 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
3192
3193         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
3194         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
3195
3196 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
3197
3198         * rand.c: Use wincrypt.h instead of WinCrypt.h.
3199
3200 2005-08-24  Ankit Jain  <jankit@novell.com>
3201             Raja R Harinath  <rharinath@novell.com>
3202
3203         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
3204           called by it recursively.
3205           (mono_class_init): Remove special case in pending_init handling, since it's
3206           superseded by the fix to mono_class_from_typeref.
3207
3208 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3209
3210         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
3211         BROKEN_THREAD_START stuff.
3212
3213 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
3214
3215         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
3216         trampoline.
3217
3218         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
3219         
3220         * object.c (mono_delegate_ctor): Replace the original function address with
3221         a delegate trampoline.
3222
3223 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
3224
3225         * icall.c: add boolean argument to base64_to_byte_array and 
3226         InternalFromBase64String to control whether a whitespace-only string
3227         is allowed (or should casue a FormatException to be thrown). We need
3228         this as the behavior has changed between MS.NET 1.x and 2.0, and we
3229         to match the MS behaviour in both profiles.
3230         * appdomain.c: Bump corlib version.
3231
3232 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3233
3234         This patch implements a big portion of publisher policy
3235         support, used to bind assembly versions and redirect
3236         one assembly from version A to version B.
3237
3238         * assembly.c:
3239         New GSList loaded_assembly_bindings, for storing the cached
3240         assembly bindings.
3241         (assembly_binding_maps_name): New static function for checking if a 
3242         assembly binding information maps an assembly name.
3243         (mono_assembly_binding_info_free): New function for freeing
3244         assembly binding information resources.
3245         (get_publisher_policy_info): New static function for retrieving 
3246         assembly binding information from a MonoImage.
3247         (compare_versions): New static function for comparing an assembly
3248         binding information data and the version of an assembly name.
3249         (check_policy_versions): New static function for checking if an
3250         assembly binding info mapping an assembly name is valid for it.
3251         (mono_assembly_load_publisher_policy): New static function for
3252         loading the 'policy.major.minor.MyAssembly' image for an assembly
3253         with an assembly name 'aname'.
3254         (mono_assembly_bind_version): New static function for updating
3255         assembly redirection.
3256         (mono_assembly_apply_binding): New static function for applying
3257         assembly binding.
3258         (search_binding_loaded): New static function for searching 
3259         loaded assembly binding infos in the cache domain.
3260         (mono_assembly_load_full): Don't apply assembly binding for
3261         reflection only assemblies.
3262
3263         * metadata-internals.h: Add MonoAssemblyBindingInfo,
3264         which contains information about assembly binding. Also
3265         declare signature for mono_config_parse_publisher_policy ()
3266         function, used to retrieve pub policy info.
3267         
3268         * mono-config.c:
3269         (publisher_policy_start): New static function used to parse publisher 
3270         policy config files.
3271         (publisher_policy_parser): New static MonoParseHandler containing 
3272         the functions used when parsing config files.
3273         (mono_config_parse_publisher_policy): New function for parsing
3274         publisher policy files.
3275         
3276 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3277
3278         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
3279
3280         * marshal.c (mono_delegate_free_ftnptr): Ditto.
3281
3282         * object.c (mono_get_addr_from_ftnptr): New helper function.
3283
3284         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
3285
3286         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3287
3288 2005-08-19  Dick Porter  <dick@ximian.com>
3289
3290         * threads.c, threads.h, appdomain.c, appdomain.h,
3291         profiler-private.h, monitor.c, object.c, object-internals.h,
3292         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
3293         store the thread ID, so it can hold a 64 bit value if needed.
3294
3295 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3296
3297         * reflection.c (mono_reflection_create_dynamic_method): Store the
3298         handle class into the method references as well so ldtoken works in
3299         dynamic methods.
3300
3301         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
3302         types.
3303
3304 2005-08-19  Ankit Jain <jankit@novell.com>
3305
3306         Fix #75847.
3307         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
3308           here rather than using the method signature of a arbitrary function
3309           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
3310           two arguments.
3311           Hack done with Harinath.
3312
3313 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3314
3315         * threadpool.c: disable printing stack traces when we get a exception
3316         in a threadpool thread. I need to do more testing to figure out which
3317         cases actually print this. Fixes bug #75828.
3318
3319 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3320
3321         * icall.c: there might be ignored whitespace after the last '='. This
3322         fixes length computation and bug #75840.
3323
3324 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
3325
3326         * assembly.c (mono_assembly_load_full): Consider .exe extension as
3327         well. Fixes #75809.
3328
3329         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
3330         #75784.
3331         
3332         * reflection.c (create_custom_attr_data): Ditto.
3333
3334 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
3335
3336         * locales.c, culture-info.h : removed RegionLCIDMap.
3337         * culture-info-tables.h : regenerated.
3338
3339 2005-08-16  Martin Baulig  <martin@ximian.com>
3340
3341         * class.c (mono_type_get_name_recurse): Small fix.
3342
3343 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3344
3345         * locales.c : indentation fixie.
3346
3347 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
3348
3349         * object-internals.h,
3350           locales.h,
3351           locales.c,
3352           culture-info.h,
3353           icall.c : added RegionInfo table support.
3354         * culture-info-table.h : regenerated for region support.
3355
3356 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
3357
3358         * reflection.c (resolve_object): handle all kinds of MonoMethod
3359         including generic ones
3360
3361 2005-08-12  Ankit Jain <jankit@novell.com>
3362
3363         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
3364           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
3365
3366 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
3367
3368         * process.c: Don't close a thread handle when it's NULL. This is a
3369         workaround for bug #75733.
3370
3371 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3372
3373         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
3374
3375 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
3376
3377         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
3378
3379 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3380
3381         * threadpool.c: if a work item in the thread pool has a callback that
3382         catches a exception, don't propagate it after invoking the callback.
3383         Fixes bug #75336.
3384
3385 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3386
3387         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
3388
3389         * class-internals.h (MonoCachedClassInfo): Add some new fields.
3390
3391         * class.c (mono_class_init): Load field info lazily in the AOT case.    
3392
3393         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
3394
3395 2005-08-03  Ankit Jain  <jankit@novell.com>
3396
3397         Fix #75683.
3398         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
3399           PInvoke calling convention is 0.
3400
3401 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
3402
3403         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
3404         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
3405
3406 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
3407
3408         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
3409         to handle threads not started by the GC (patch by Michael Meeks
3410         <michael.meeks@novell.com>).
3411
3412 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
3413
3414         * reflection.c: Make buffer used in emitting types larger for some
3415         big generic types (patch by Michal Moskal).
3416
3417 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3418
3419         * mono-debug.c: Fix some (not all) alignment problems.
3420
3421 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3422
3423         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
3424         Invoke mono_image_load_from_data_full passing the refonly
3425         parameter.
3426
3427         * assembly.c
3428         (mono_assembly_open_from_bundle): Add the refonly argument, 
3429         in order to pass it to other methods it calls to.
3430         (do_mono_assembly_open): Add the refonly argument, in order 
3431         to pass it to other methods it calls to.
3432         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
3433         the refonly parameter to it.
3434
3435         * image.c: Add loaded_images_refonly_hash and
3436         loaded_images_refonly_guid_hash to cache the reflection
3437         only loaded images.
3438         (mono_images_init): Initialize the hash tables used for
3439         caching the reflection only images.
3440         (load_modules): Invoke mono_image_open_full passing the refonly
3441         parameter to load the modules the correct way.
3442         (build_guid_table): Add the refonly argument, to re-build the 
3443         correct hash table.
3444         (do_mono_image_open): Added the refonly argument, in order to
3445         define it for the loaded image.
3446         (mono_image_loaded_full): New function, which receives an
3447         additional parameter to look for the image in the refonly or
3448         non-refonly section.
3449         (mono_image_loaded): Updated, using mono_image_loaded_full.
3450         (mono_image_loaded_by_guid_full): The same case that happens
3451         with mono_image_loaded_full.
3452         (mono_image_loaded_by_guid): Likewise.
3453         (register_image): Use the ref_only variable inside MonoImage
3454         to decide in which hash table store the current image.
3455         (mono_image_open_from_data_full): Rename
3456         mono_image_open_from_data to mono_image_open_from_data_full,
3457         adding the refonly argument, to define the ref_only variable 
3458         inside MonoImage.
3459         (mono_image_open_from_data): Return 
3460         mono_image_open_from_data_full.
3461         (mono_image_open_full): Rename mono_image_open to
3462         mono_image_open_full, receiving the new refonly argument,
3463         to pass it to inner methods.
3464         (mono_pe_file_open): Update this function, to open
3465         a MonoImage as a non-refonly image.
3466         (mono_image_close): Use the refonly variable inside
3467         MonoImage to remove the image from the correct caches.
3468
3469         * image.h: Add the signatures of mono_image_open_full,
3470         mono_image_open_from_data_full, mono_image_loaded_full,
3471         mono_image_loaded_by_guid_full.
3472
3473         * metadata-internals.h: Add the ref_only field to 
3474         MonoImage.
3475         
3476 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3477
3478         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
3479         Fix the last behavior, which used to load the assemblies and
3480         extract MonoReflectionAssemblyName information, instead of
3481         extract it from the metadata tables. Needed for Reflection
3482         Only assemblies.
3483         
3484 2005-07-29  Martin Baulig  <martin@ximian.com>
3485
3486         * mono-debug-debugger.c
3487         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
3488         not initialized.
3489
3490         * mono-debug.c
3491         (mono_debug_address_from_il_offset): Check whether we have
3492         debugging support before attempting to take the lock.
3493         (mono_debug_source_location_from_address): Likewise.
3494         (mono_debug_source_location_from_il_offset): Likewise.
3495         (mono_debug_il_offset_from_address): Likewise.
3496         (mono_debug_address_from_il_offset): Likewise.
3497
3498 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
3499
3500         * class.c (mono_class_from_name_case): Add support for dynamic images.
3501         Fixes #75650.
3502
3503         * object.c (mono_class_compute_gc_descriptor): Add a workaround
3504         for #75479.
3505
3506 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3507         
3508         * reflection.c (mono_method_get_object): Fix warning.
3509
3510 2005-07-28  Martin Baulig  <martin@ximian.com>
3511
3512         * mono-debug.c
3513         (mono_debug_add_wrapper): Also write the wrapper type.
3514
3515 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3516
3517         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
3518         
3519         * class.c (mono_class_init): Avoid reading nested classes if the AOT
3520         data indicates the class has none.
3521
3522 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
3523
3524         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
3525         loader lock with the debugger lock. Prevents deadlocks for beagle.
3526
3527         Beagle can now run on an smp box for a weekend without any
3528         issues. Woohoo!
3529
3530 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3531
3532         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3533         in a module. Fixes #75629.
3534
3535 2005-07-26  Martin Baulig  <martin@ximian.com>
3536
3537         * mono-debug.c (mono_debug_add_wrapper): New static method.
3538         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3539         interncall or a wrapper.
3540
3541         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3542         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3543         (MONO_DEBUGGER_VERSION): Bump to 51.
3544
3545         * mono-debug-debugger.c
3546         (mono_debugger_add_type): Removed this empty function.
3547         (mono_debugger_add_method): Likewise.
3548
3549 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3550
3551         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3552         before accessing method->slot.
3553
3554 2005-07-21  Jb Evain  <jbevain@gmail.com>
3555
3556         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3557         Fixes #75010.
3558
3559 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3560
3561         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3562         #75587.
3563
3564 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3565
3566         * image.h image.c: Add mono_image_get_guid () API function.
3567
3568 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3569
3570         There were issues when multiple threads tried to load
3571         assemblies. A deadlock was created between assemblies_mutex and
3572         mono_domain_assemblies_lock. This fixes the issue by making the
3573         assembly ref counting be lock free. See bug 75586.
3574         
3575         * image.c (mono_image_close): The add ref function here was using
3576         Interlocked operations while the unref was using a mutex and a
3577         --. I don't think this was ever a bug that would be exposed in a
3578         non-pendantic way (ie, by an embedder doing a ref on one thread
3579         and an unref on another), but for the sake of correctness, this is
3580         now Interlocked.
3581
3582         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3583         (mono_assembly_load_reference): Call mono_assembly_addref rather
3584         than touching the refcount ourselves.
3585         (mono_assembly_close): Use InterlockedDecrement to unref the
3586         assembly. Don't acquire the lock unless it is actually needed.
3587
3588 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3589
3590         * class.c (mono_class_layout_fields): Fix calculation of has_references
3591         for generic types.
3592
3593 2005-07-12  Martin Baulig  <martin@ximian.com>
3594
3595         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3596
3597         * metadata.c
3598         (mono_type_hash): Provide better hashing for generic instances.
3599         (mono_generic_inst_hash): Improve hashing.
3600         (mono_generic_class_hash): Likewise.
3601
3602         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3603         generic instances.
3604
3605 2005-07-12  Martin Baulig  <martin@ximian.com>
3606
3607         * reflection.c (mono_reflection_create_runtime_class): Remove the
3608         hack for generic type definitions and non-`Run' assemblies.
3609         (mono_reflection_bind_generic_parameters): Also use
3610         `klass->wastypebuilder' to check for TypeBuilders.
3611
3612 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3613
3614         * class.c (mono_class_layout_fields): Fix calculation of has_references
3615         for generic types.
3616
3617         * class.c (inflate_generic_class): Fix a leak.
3618         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3619         for generic types.
3620
3621 2005-07-11  Martin Baulig  <martin@ximian.com>
3622
3623         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3624         on error.
3625
3626 2005-07-11  Martin Baulig  <martin@ximian.com>
3627
3628         * loader.c (find_method): Also lookup in
3629         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3630
3631 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3632
3633         * appdomain.c (mono_domain_unload): Don't free the error message
3634         before passing it to mono_get_exception_...
3635
3636         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3637         
3638 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3639
3640         * threads.c: try to better guess an available RT signal (bug #75387).
3641
3642 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3643
3644         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3645         and CACHE_OBJECT.
3646
3647 2005-07-07  Martin Baulig  <martin@ximian.com>
3648
3649         * class.c (mono_type_get_name_full): Return NULL for
3650         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3651         fixes #75408.
3652
3653 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3654
3655         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3656         exit the appdomain as well being aborted.
3657
3658         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3659         change back to the root domain after calling managed code. This enables
3660         appdomains using threadpools to be unloaded.
3661
3662 2005-07-07  Martin Baulig  <martin@ximian.com>
3663
3664         * class-internals.h
3665         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3666         into `MonoDynamicGenericClass' since we only need it for dynamic
3667         types.
3668
3669         * reflection.c (mono_class_bind_generic_parameters): We don't need
3670         to compute the `parent' here.
3671
3672 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3673
3674         * culture-info-table.h : regenerated.
3675
3676 2005-07-06  Martin Baulig  <martin@ximian.com>
3677
3678         * icall.c
3679         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3680
3681         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3682
3683 2005-07-06  Martin Baulig  <martin@ximian.com>
3684
3685         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3686         we're doing a signature-only comparision; fixes #74945.
3687
3688 2005-07-06  Martin Baulig  <martin@ximian.com>
3689
3690         * class-internals.h (MonoGenericClass): Moved some things out into
3691         a new `MonoInflatedGenericClass' type.  
3692         (MonoInflatedGenericClass): New type; the `klass' of a
3693         `MonoGenericClass' is now computed lazyly in
3694         mono_get_inflated_generic_class().      
3695
3696         * class.c (mono_get_inflated_generic_class): New public function.
3697         (mono_class_inflate_generic_method): Removed the unused
3698         `MonoClass *' argument.
3699         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3700         all the methods.
3701         (mono_class_create_generic): Make this static and merge it with
3702         mono_class_create_generic_2(); we're now called automatically from
3703         mono_get_inflated_generic_class().
3704
3705         * loader.c (mono_method_signature): Call
3706         mono_get_inflated_method() here.
3707
3708 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
3709
3710         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
3711         type of fields with RVA.
3712
3713         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
3714         for this pseudo class.
3715         (my_mono_class_from_generic_parameter): Likewise.
3716         (mono_class_init): Allow interfaces to have cctors.
3717
3718 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3719
3720         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
3721         lazily for AOT methods.
3722
3723 2005-07-05  Martin Baulig  <martin@ximian.com>
3724
3725         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
3726         returns FALSE for a successful match, not TRUE.
3727
3728 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3729
3730         * loader.c (mono_method_get_index): Optimize this a bit.
3731
3732 2005-07-04  Martin Baulig  <martin@ximian.com>
3733
3734         * class.c
3735         (class_compute_field_layout): Move the check for generic type
3736         definitions into mono_class_layout_fields().  Fixes #74684.
3737         (mono_class_from_generic_parameter): Correctly compute
3738         `klass->parent'; fixes #75457.
3739
3740         * reflection.c (register_assembly, register_module): Make sure
3741         `domain->rejobject_hash' is already created.
3742
3743 2005-07-02  Martin Baulig  <martin@ximian.com>
3744
3745         * class-internals.h
3746         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
3747         `MonoDynamicGenericClass'.      
3748
3749 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
3750
3751         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
3752         returned by a field getter is null, since null is a valid value.
3753
3754 2005-07-01  Martin Baulig  <martin@ximian.com>
3755
3756         * reflection.c (mono_reflection_generic_class_initialize): Update
3757         the `dgclass->fields [i].parent' to the correct class.
3758         (mono_image_get_fieldref_token): Use the declaring type, not the
3759         reflected type.
3760
3761 2005-07-01  Martin Baulig  <martin@ximian.com>
3762
3763         * loader.c (find_method): Also look in the interfaces; fixes #75429.
3764
3765 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
3766
3767         * threads.c (thread_cleanup): assert that thread != NULL
3768         (wait_for_tids_or_state_change): We were using the wrong variable
3769         when accessing wait->threads. `i' was always out of the bounds of
3770         the array.
3771
3772 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3773
3774         * loader.c: map user32 and kernel32 to libMonoSupportW
3775
3776 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
3777
3778         * appdomain.c (unload_thread_main): Mark this as WINAPI.
3779
3780 2005-06-28  Martin Baulig  <martin@ximian.com>
3781
3782         * loader.c (method_from_methodspec): Fix #75334.
3783
3784 2005-06-28  Martin Baulig  <martin@ximian.com>
3785
3786         Fix #74953 - Arrays now implement the generic IList<T> interface
3787         on the 2.0 platform.
3788
3789         * class-internals.h (MonoDefaults): Added `generic_array_class'.
3790
3791         * reflection.c (mono_class_bind_generic_parameters): New public
3792         function; similar to mono_reflection_bind_generic_parameters(),
3793         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
3794
3795         * domain.c (mono_init_internal): Try to initialize.
3796         `mono_defaults.generic_array_class' here; this'll only succeed if
3797         we're using the 2.0 corlib.
3798
3799         * icall.c
3800         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
3801         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
3802         (mono_lookup_internal_call): Added support for nested classes.
3803
3804         * loader.c
3805         (mono_get_method_from_token): Set `result->signature->pinvoke' if
3806         we're an interncall and have generic arguments.
3807
3808         * class.c
3809         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
3810         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
3811         instance of System.Array.InternalArray<T> for arrays, so they
3812         implement the generic IList<T> interface.
3813
3814 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
3815
3816         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
3817         (chastamar@yahoo.com). Fixes #75374.    
3818
3819 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
3820
3821         * culture-info-table.h: regenerated.
3822
3823 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3824
3825         * icall.c: handle spaces correctly for base64 strings.
3826
3827 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
3828
3829         * *.c: Kill some warnings.
3830
3831 2005-06-23  Duncan Mak  <duncan@novell.com>
3832
3833         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
3834         that this builds on Solaris 10 (x86).
3835
3836 2005-06-23  Martin Baulig  <martin@ximian.com>
3837
3838         * class.c
3839         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
3840         generic type definitions.
3841
3842 2005-06-23  Martin Baulig  <martin@ximian.com>
3843
3844         Fix #75331.
3845
3846         * metadata.c (mono_class_get_overrides): Renamed to
3847         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
3848         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
3849         pass it to mono_get_method_full().
3850
3851 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
3852
3853         * reflection.c (mono_reflection_create_runtime_class): take the
3854         mono_domain_lock in this method. Prevents deadlocks
3855
3856 2005-06-22  Martin Baulig  <martin@ximian.com>
3857
3858         * loader.c (method_from_methodspec): Fix #75330.
3859
3860 2005-06-22  Martin Baulig  <martin@ximian.com>
3861
3862         * reflection.c (type_get_qualified_name): Use
3863         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
3864         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
3865         argument; use it if we don't have an assembly name.
3866
3867 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
3868
3869         * object.c: In mono_message_init, set "copy out" flag for in
3870         parameters with the [Out] flag.
3871
3872 2005-06-21  Martin Baulig  <martin@ximian.com>
3873
3874         * class.c
3875         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
3876         and MONO_TYPE_PTR.
3877
3878 2005-06-21  Martin Baulig  <martin@ximian.com>
3879
3880         * class.c (mono_class_init): Don't initialize `class->fields' for
3881         generic instances since they're initialized again in
3882         compute_field_layout(). 
3883         (compute_field_layout): Set the field's `generic_info' here; fix
3884         #75320. 
3885
3886 2005-06-21  Martin Baulig  <martin@ximian.com>
3887
3888         * class-internals.h
3889         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
3890
3891         * metadata.c (mono_metadata_generic_method_equal): Also
3892         distinguish the `generic_class'; fixes #75334.
3893
3894 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3895
3896         * domain.c:
3897         * appdomain.c:
3898         * domain-internals.h:
3899         * reflection.c: 'domain_assemblies' field is now protected by its own
3900         lock. Don't call into managed code to run the AssemblyLoad event if we
3901         now there are no registered delegates for it.
3902
3903 2005-06-20  Martin Baulig  <martin@ximian.com>
3904
3905         * class.c (mono_class_is_assignable_from): Use a custom version of
3906         mono_class_has_parent() to make things work for generic instances;
3907         fix #75300.
3908
3909 2005-06-20  Martin Baulig  <martin@ximian.com>
3910
3911         * loader.c (method_from_methodspec): Apply a patch from
3912         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
3913
3914 2005-06-20  Martin Baulig  <martin@ximian.com>
3915
3916         * class.c (mono_class_init): Reverted Zoltan's last change; it
3917         breaks generics.
3918
3919 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
3920
3921         * threads.c (wait_for_tids_or_state_change): Add missing locking.
3922
3923 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3924
3925         * socket-io.c: fix the index in the socket array for writable/error
3926         sockets. Fixes bug #75306.
3927
3928 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
3929
3930         * class.c (mono_class_init): Allow interfaces to have static ctors.
3931
3932 2005-06-17  Martin Baulig  <martin@ximian.com>
3933
3934         * loader.c (method_from_methodspec): Use `context->container' when
3935         parsing the `gmethod->inst'.
3936
3937 2005-06-17  Martin Baulig  <martin@ximian.com>
3938
3939         * class.c (mono_type_get_name_recurse): Don't add the assembly
3940         name for type arguments.
3941
3942 2005-06-15  Martin Baulig  <martin@ximian.com>
3943
3944         * reflection.c (mono_image_get_inflated_method_token): Encode
3945         correct klass; fixes #75260.
3946
3947 2005-06-13 Michal Moskal <malekith@nemerle.org>
3948
3949         * icall.c: Make GetCorrespondingMethod/Constructor take
3950         MonoReflectionMethod method not MonoMethod. Removed
3951         MonoType.GetCorrespondingField, and make
3952         MonoGenericType.GetCorrespondingField take name not
3953         MonoClassField.
3954
3955 2005-06-13  Michal Moskal <malekith@nemerle.org>
3956
3957         * reflection.c (field_encode_signature, encode_locals):
3958          Make sizes of buffers for types larger (for big generic types).
3959          (create_generic_typespec,
3960          mono_reflection_sighelper_get_signature_local,
3961          mono_reflection_sighelper_get_signature_field):
3962          Add asserts for too small buffers.
3963
3964 2005-06-15  Martin Baulig  <martin@ximian.com>
3965
3966         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
3967         if our parent is not a dynamic type.
3968
3969 2005-06-15  Martin Baulig  <martin@ximian.com>
3970
3971         * class-internals.h (MonoTypeNameFormat): New enum.
3972
3973         * class.c
3974         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
3975         (mono_type_get_full_name): Removed.
3976         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
3977         argument instead of the boolean's.
3978
3979         * icall.c (ves_icall_System_MonoType_getFullName):
3980         Added `gboolean assembly_qualified'.    
3981
3982         * reflection.h
3983         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
3984
3985         * reflection.c (mono_reflection_parse_type): Parse the new type
3986         name format.
3987
3988 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3989
3990         * icall.c: no need to convert from utf16 to utf8 and then back again
3991         after the call to GetLogicalDrives.
3992
3993 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3994
3995         * icall.c: frombase64. Fix problems exposed by new tests.
3996
3997 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3998
3999         * icall.c: added internal calls for converting char [] and strings in
4000         base64 into byte [].
4001
4002 2005-06-10  Martin Baulig  <martin@ximian.com>
4003
4004         * class.c (mono_class_create_generic_2): Read the nested classes
4005         from the metadata rather than from `gklass->nested_classes' since
4006         `gklass' might not be initialized yet.
4007
4008 2005-06-09  Duncan Mak  <duncan@novell.com>
4009
4010         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
4011         all public headers. Fixes #74919.
4012
4013 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
4014
4015         * domain.c: The key for proxy_vtable_hash is now a pointer
4016         array. Added new GHashFunc and GCompareFunc functions for this.
4017
4018         * class.h: The list of interfaces in MonoRemoteClass is known in
4019         advance and can't grow (we create a new MonoRemoteClass if needed),
4020         so now the interface array can be allocated together with
4021         MonoRemoteClass.
4022         
4023         * object.c: Added a new method create_remote_class_key.
4024         Fixed mono_remote_class so it does not depend on
4025         mono_upgrade_remote_class.
4026         Removed extend_interface_array.
4027         Added new method clone_remote_class(), which makes a copy of a remote
4028         class and adds a new interface or class to it.
4029         mono_upgrade_remote_class() now creates a new remote class (or gets
4030         it from the cache) if an vtable upgrade is needed. In this way
4031         we make sure that other objects sharing the same remote class
4032         don't get the new vtable with unwanted interfaces.
4033         
4034         * object-internals.h:
4035         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
4036         
4037         * marshal.c: Track changes in mono_upgrade_remote_class().
4038
4039 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
4040         * icall.c: Add runtime methods for obtaining members of inflated
4041         class, which were created from supplied non-inflated members. It
4042         is used in internal Get{Method,Constructor,Field} methods in
4043         System.Type
4044
4045 2005-06-09  Martin Baulig  <martin@ximian.com>
4046
4047         * reflection.c
4048         (mono_reflection_bind_generic_method_parameters): Fix #75169.
4049
4050 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4051         * reflection.c (mono_image_basic_init): Define
4052         Version in MonoDynamicAssembly. 
4053         
4054 2005-06-08  Martin Baulig  <martin@ximian.com>
4055
4056         Fix #75136.
4057
4058         * loader.c
4059         (mono_method_signature_full): New public method; takes a
4060         `MonoGenericContext *'.
4061         (find_method): Use mono_method_signature_full() and pass the
4062         klass'es context to it.
4063
4064         * class.c (mono_class_is_inflated_method): Use
4065         mono_method_signature_full() and pass the context to it.
4066
4067 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
4068
4069         * object.c: add proper locking in mono_remote_class_vtable(),
4070         fixes possible memory corruption.
4071
4072 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
4073
4074         * marshal.c (mono_remoting_marshal_init): set
4075         initialized after initialization.
4076
4077 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4078
4079         * locales.c : hush.
4080
4081 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
4082
4083         * object.c (extend_interface_array): fix really silly
4084         memory corrupting / comparison bug.
4085
4086 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4087
4088         * reflection.c: Functions added to support the creation
4089         of CustomAttributeData, which includes Attribute data
4090         used by ReflectionOnly methods.
4091
4092         * reflection.h:  mono_reflection_get_custom_attrs_data and
4093          mono_custom_attrs_data_construct added (functions exposed).
4094
4095          * icall.c: Added mono_reflection_get_custom_attrs_data
4096          as icall.
4097         
4098 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
4099
4100         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
4101         lupus's request.
4102
4103 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
4104
4105         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
4106
4107         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
4108         dynamic DllImportAttribute.
4109
4110         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
4111         dynamic DllImportAttribute.
4112
4113         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
4114         Fixes #75162.
4115
4116 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4117
4118         * threads.c: avoid segfault when an unstarted thread is aborted.
4119
4120 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
4121
4122         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
4123         Returns the name and version of the runtime for reporting.
4124
4125 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4126
4127         * appdomain.c: bump corlib version.
4128         * object-internals.h: new field in MonoReflectionAssembly.
4129
4130 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4131
4132         * object-internals.h: Carlos forgot to add this field.
4133
4134 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4135
4136         * icall.c: Added create_version to create instances
4137         of Version of MonoReflectionAssemblyName. This change helps
4138         the AssemblyName tests to keep running fine.
4139         
4140 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
4141   
4142         * object.c (mono_method_return_message_restore): A somehow less
4143         intrusive fix for #75138.
4144
4145 2005-06-03  Raja R Harinath  <rharinath@novell.com>
4146
4147         * object.c (mono_method_return_message_restore): Fix computation
4148         of expected number of out args.
4149
4150 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4151
4152         * reflection.c (mono_image_get_method_info): Fix the case when the
4153         charset is empty.
4154
4155 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
4156
4157         * object.c: Added missing null check in
4158           mono_method_return_message_restore.
4159
4160 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4161
4162         * reflection.c (mono_image_get_method_info): Handle the case when
4163         dllentry is empty.
4164
4165 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
4166
4167         * object.c: When creating the vtable for a proxy, take into account
4168         all inherited interfaces, not only the ones registered in
4169         iclass->interfaces. This fixs bug #74996.
4170         Also, in mono_method_return_message_restore, verify that the array
4171         of out args has the expected lengh.
4172
4173 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4174
4175         * socket-io.c: update the timeout in Poll when the call is interrupte.
4176
4177 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4178
4179         * socket-io.c: support abort/suspend in Select_internal after last
4180         change.
4181
4182 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4183
4184         * threadpool.c: remove warning.
4185
4186 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4187
4188         * icall.c:
4189         * socket-io.[ch]: Select_internal uses poll() now when available, thus
4190         removing the 1024 limit from select(). Runtime part of the fix for
4191         bug #71203.
4192
4193 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4194
4195         * socket-io.c: when resolving the addresses for the same
4196         host returned by gethostname(), get the local IPs from the interface
4197         list. Loopback addresses are discarded if the are interfaces up with
4198         non-loopback ones. Fixes bug #63265.
4199
4200 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
4201
4202         * appdomain.c, verify.c, object-internals.h, reflection.c:
4203         bumped corlib number to 36, and added new extra_flags field
4204         to ReflectionMethodBuilder and friends.  Fixes #75060.
4205
4206 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
4207
4208         * gc.c: register a new weak link only if the object is non-null
4209         (fixes bug#75047).
4210
4211 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4212
4213         * culture-info.h : short time pattern too.
4214
4215 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4216
4217         * culture-info.h : expand long time pattern string length.
4218
4219 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4220
4221         * culture-info-table.h : update (more French date format; #72788).
4222
4223 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
4224
4225         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
4226         the method is static. Fixes #75029.
4227
4228 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
4229
4230         * reflection.c: Update the table_idx field of method builders after
4231         saving the module, since it can change. This is a workaround for
4232         bug #74914. 
4233
4234 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4235
4236         * culture-info-table.h : update (additional French date format).
4237
4238 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4239
4240         * icall.c (ves_icall_type_Equals): Revert last change.
4241         
4242         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
4243
4244         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
4245
4246 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
4247
4248         * class-internals.h: Added executioncontext_class field to 
4249         MonoDefaults structure.
4250         * domain.c: Cache System.Threading.ExecutionContext class in 
4251         mono_defaults.
4252         * object.c: Capture the ExecutionContext for asynchroneous calls in
4253          mono_async_result_new.
4254         * object-internals.h: Added execution_context and original_context 
4255         fields to MonoAsyncResult. Added execution_context to MonoThread.
4256         * security-manager.c|.h: Added mono_get_context_capture_method to 
4257         return the capture method (if required by the security manager or by
4258         the framework version used).
4259         * threadpool.c: Apply capture (if present) ExecutionContext in 
4260         mono_async_invoke and revert to original context after it completes.
4261
4262 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
4263
4264         * culture-info-table.h : updated (real hacky solution for zh-CHT).
4265
4266 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
4267
4268         * culture-info-table.h : zh-CHT related workaround.
4269
4270 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4271
4272         * marshal.c (emit_marshal_custom): Add some error checking and call the
4273         methods in the ICustomMarshaler interface. Fixes #74875.
4274         
4275         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
4276         native->managed wrappers.
4277
4278 2005-05-12  Martin Baulig  <martin@ximian.com>
4279
4280         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
4281         here and use the loader lock.
4282
4283         * mono-debug.c: Properly lock when the debugger is not attached.
4284         (mono_debug_init): Release the initial lock if we're not running
4285         in the debugger.
4286
4287 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4288
4289         * marshal.c (emit_marshal_custom): Pass through NULL values without
4290         calling the custom marshalling routines.
4291
4292         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
4293         conversion in structures. Fixes #74882.
4294
4295 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
4296
4297         * culture-info-table.h : zh-* cultures were missing.
4298
4299 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
4300
4301         * threads.c: Added a new event background_change_event which is signaled
4302         when a thread changes its background mode.
4303         Moved here several checks previously done in managed code. The checks
4304         require the thread lock, and using the thread lock in managed code
4305         can result in deadlocks.
4306         Merged Start_internal and Thread_internal into a single method. Now 
4307         Thread_internal does all work of creating and starting a thread.
4308         Added icalls for setting and getting the state of the object. Moved from
4309         managed code to avoid locking there.
4310         Added wait_for_tids_or_state_change() which is called instad of
4311         wait_for_tids when waiting for non-backround threads to end. This method
4312         will return if one of the threads ends or the background_change_event
4313         is signaled.
4314         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
4315         the background mode. This method signals the background_change_event
4316         event.
4317         * icall.c:
4318         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
4319         removed Start_internal.
4320         
4321 2005-05-11  Martin Baulig  <martin@ximian.com>
4322
4323         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
4324         to order of some fields to get proper alignment on 64-bit machines.
4325
4326 2005-05-11  Martin Baulig  <martin@ximian.com>
4327
4328         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
4329         changes as they're broken and completely fuck up the debugger.
4330
4331         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
4332
4333 2005-05-10  Martin Baulig  <martin@ximian.com>
4334
4335         * reflection.c (mono_reflection_generic_class_initialize): Don't
4336         call mono_class_setup_parent() here.
4337
4338 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4339
4340         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
4341         send/receive timeout use an integer in milliseconds. We were using a
4342         struct timeval.
4343
4344 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4345
4346         * locales.c:
4347         (internal_get_cultures): reserve the first slot of the array for the
4348         InvariantCulture, which will be filled in managed code.
4349
4350 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
4351
4352         * reflection.c (mono_image_fill_module_table): Initialize the
4353         GENERATION field as well.
4354
4355 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4356
4357         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
4358         Monitor.Enter on the object.
4359
4360 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4361
4362         * threads.c: Enable the wait for running threads when exiting.
4363         * icall.c: Suspend all threads before exiting.
4364
4365 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4366
4367         * assembly.c (mono_assembly_load_reference): Fix warning.
4368
4369 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4370
4371         * threadpool.c: changed the default number of threads per cpu. From now
4372         on, the default will be 20 + (5 * number of cpus) instead of 50.
4373
4374 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
4375
4376         * loader.c (mono_method_get_signature_full): Add locking here.
4377
4378 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
4379
4380         * appdomain.c: Moved methods for parsing and freeing assembly
4381         names to assembly.c.
4382         * assembly.c, domain-internals.h: Created public methods for parsing
4383         assembly names. Fixed mono_assembly_load_with_partial_name:
4384         it now finds the best match, taking into account the version,
4385         token and culture specified in the partial name. Also return
4386         the latest version if no version information is specified.
4387
4388 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
4389
4390         * threadpool.c: replace check for SocketAsyncCall class.
4391
4392 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4393
4394         * threadpool-internals.h:
4395         * Makefile.am: added threadpool-internals.h
4396
4397         * threadpool.c: call mono_unhandled_exception on exceptions not handled
4398         that happen in threadpool threads (tested on MS).
4399         (mono_thread_pool_remove_socket): new function that dispatch any pending
4400         AIO call on a socket that is closing. By now only epoll really needs it,
4401         as select/poll wake up when the socket closes.
4402
4403
4404         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
4405
4406 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
4407
4408         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
4409
4410 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
4411
4412         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
4413
4414 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
4415
4416         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
4417         has an abort request, convert it into a suspend request.
4418
4419 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
4420
4421         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
4422         warning for the usage of `UnmanagedFunctionPointerAttribute' which
4423         is not supported yet.
4424
4425 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4426
4427         * image.c: register assemblies loaded from data (bundles) in the loaded
4428         assemblies hash. Fixes bug #74772.
4429
4430 2005-04-29  Martin Baulig  <martin@ximian.com>
4431
4432         * class.c (mono_type_get_name_recurse): Update to the new naming
4433         schema from the latest .NET 2.x beta2.
4434         (mono_class_setup_vtable_general): If we're a generic instance,
4435         copy the vtable from our generic type definition and inflate all
4436         the methods in it.
4437
4438         * loader.c (find_method): Update to the new naming schema from the
4439         latest .NET 2.x beta2.
4440
4441 2005-04-29  Raja R Harinath  <harinath@gmail.com>
4442
4443         * class.c (mono_class_init): Add a mono_loader_unlock to the
4444         #74734 fix.
4445
4446 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4447
4448         * icall.c (ves_icall_System_Environment_Exit): Remove the 
4449         suspend_all_other_threads () call for the time being, since it can hang.
4450
4451         * threads.c (mono_thread_manage): Similarly, disable the waiting for
4452         the background threads to exit, since it can also hang.
4453
4454         * class.c (mono_class_init): Applied patch from Ankit Jain 
4455         (radical@gmail.com). Avoid pending init errors when a field refers
4456         to a nested class using a typeref. Fixes #74734.
4457
4458         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
4459         this for dynamic modules.
4460
4461 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4462
4463         * threads.c: don't wait for threads that are in the process of aborting
4464         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
4465         and waiting for background threads to finish. This makes xsp and
4466         mod-mono-server exit without random length delays and/or hangs.
4467
4468 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4469
4470         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
4471
4472 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
4473
4474         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
4475         dynamic types to prevent infinite loops. Fixes #74727.
4476
4477         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
4478         ..._is_assignable_to.
4479
4480 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
4481
4482         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
4483
4484 2005-04-25  Martin Baulig  <martin@ximian.com>
4485
4486         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
4487
4488         * domain.c
4489         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
4490
4491         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
4492
4493         * reflection.c (build_compressed_metadata): Set metadata header
4494         version to 2.0.
4495
4496 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4497
4498         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
4499         number into an integral and a decimal part. Fixes #70473.
4500
4501         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
4502
4503 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
4504
4505         * culture-info-table.h : reflected the latest locale-builder output.
4506
4507 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4508
4509         * threadpool.c: check for SuspendRequested too when deciding if
4510         mono_thread_interruption_checkpoint should be called.
4511
4512 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4513
4514         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
4515         * threads.c: remove interruption_mutex and use Interlocked instead. When
4516         suspending all the threads, wait for all the suspended events at once.
4517         If we're shutting down and get an APC that is going to be queued,
4518         call mono_thread_execute_interruption immediately, as the thread might
4519         be sleeping on a pthread condition or mutex.
4520
4521         * icall.c: call mono_runtime_set_shutting_down before suspending the
4522         threads.
4523
4524         Fixes bug #74693. And now xsp is happier when exiting.
4525
4526 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4527
4528         * loader.c (mono_stack_walk): Fix #74690.
4529
4530 2005-04-22  Martin Baulig  <martin@ximian.com>
4531
4532         * mono-debug.h (MonoDebugMethodJitInfo): Added
4533         `MonoDebugMethodJitInfo *jit'.
4534
4535         * mono-debug.c (mono_debug_read_method): Cache the
4536         MonoDebugMethodJitInfo in `address->jit'.
4537         (mono_debug_free_method_jit_info): New public method.
4538
4539 2005-04-22  Martin Baulig  <martin@ximian.com>
4540
4541         * class.c (mono_class_is_assignable_from): Disallow
4542         type parameter -> interface.
4543
4544 2005-04-21  Dick Porter  <dick@ximian.com>
4545
4546         * threads.c (mono_thread_create): Turn an assertion into an error.
4547
4548 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4549
4550         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4551         
4552         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4553         Fix some gcc 4.0 warnings.
4554
4555 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4556
4557         * file-io.c: fix alt dir separator char on unix systems
4558         and cleanup (fixes bug #71214).
4559
4560 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4561
4562         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4563         a call to a remote domain, since the method may be an
4564         interface method in the client domain. This fixes bug #74192.
4565
4566 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4567
4568         * threadpool.c: recv/send are now performed before going back to managed
4569         code to save one transition.
4570
4571 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4572
4573         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4574
4575         * metadata/threadpool.c: removed hack to workaround the bug above.
4576
4577         Fixes bug #74618.
4578
4579 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4580
4581         * reflection.c reflection.h: Fix handling of parameter defaults in
4582         dynamic methods. Also fixes handling of parameter attributes.
4583         Fixes #74609.
4584
4585         * mono-debug.c (mono_debug_close_image): Fix warning.
4586
4587 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4588
4589         * socket-io.h: replaced old unused field with new 'blocking'.
4590         * threadpool.c: restore socket blocking state on windows(tm).
4591
4592 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4593
4594         * icall.c: don't return the codebase in the AssemblyName[] returned by
4595         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4596         * object-internals.h: Removed FIXME (fields were presents) and fixed
4597         versioncompat declaration.
4598
4599 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4600
4601         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4602         not closed, so don't cleanup when it happens.
4603
4604 2005-04-13  Chris Toshok  <toshok@ximian.com>
4605
4606         * mono-debug-debugger.h: change prototype for
4607         mono_debugger_lookup_type.
4608
4609         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4610         this function, although it should probably be named
4611         mono_debugger_init_type.
4612
4613 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4614
4615         * threadpool.c: fix non-AIO case.
4616
4617 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4618
4619         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4620         the built-in profiler to measure just JIT compilation times.
4621
4622 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4623
4624         * threadpool.c: the epollfd might be closed by another thread at
4625         any time, so ignore EBADF at treat it as a "we're closing" sign.
4626
4627 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4628
4629         * threadpool.c: release the semaphores with a count equals to the number
4630         of working threads in both IO and regular pools. Fixed typo that messed
4631         up the count of IO pool threads. Don't initialize the pipe handles if
4632         we're using epoll.
4633
4634 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4635
4636         * threadpool.c: some systems don't like a NULL when deleting the socket
4637         from epoll.
4638
4639 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4640
4641         * threadpool.c: fix semaphore allocation.
4642
4643 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4644
4645         * threadpool.c: added epoll() based implementation for asynchronous IO
4646         that is used instead of the default poll() when available.
4647         It can be disabled by setting MONO_DISABLE_AIO.
4648
4649 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4650
4651         * threadpool.c: windows needs 'closesocket' and instead of returning
4652         0 when the stream is closed while in select, it returns -1. Fixes bug
4653         #74573.
4654
4655 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4656
4657         * class.c (class_compute_field_layout): Fix the regression caused by
4658         the previous try.
4659
4660 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4661
4662         * threadpool.c: separate pool for socket async. IO.
4663         * threadpool.h: mono_max_worker_threads is not a global any more.
4664
4665 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4666
4667         * class.c (class_compute_field_layout): Fix #74549.
4668
4669 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4670
4671         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4672         use 2 connected sockets instead.
4673
4674 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4675
4676         * mono-config.c: Add new entry point for mkbundle
4677         mono_config_parse_memory. 
4678
4679 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4680
4681         * threadpool.c: removed another unused function.
4682
4683 2005-04-08  Ankit Jain  <radical@corewars.org>
4684
4685         * reflection.c (get_default_param_value_blobs): Add 'types'
4686         parameter to get the types encoded in the constant table.
4687         (mono_param_get_objects): Use the type from the constant table,
4688         not the type of the parameter, when creating default values.
4689         Handle null default values correctly.
4690
4691 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4692
4693         * file-io.c:
4694         * file-io.h:
4695         * threadpool.c:
4696         * threadpool.h:
4697         * icall.c:
4698         * socket-io.c: removed dead code for async IO.
4699
4700 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4701
4702         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4703
4704         * threadpool.c: intercept socket async. calls and pass them to a thread
4705         that is polling and dispatching the job items to the threadpool as
4706         socket become ready. Fixes bugs #71217, #71933.
4707
4708         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
4709         between char and short/ushort arrays.
4710
4711         * socket-io.c: remove dead code.
4712
4713 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4714
4715         * locales.c,
4716           icall.c : removed InternalToUpper_Comp() and
4717           InternalToLower_Comp().
4718
4719 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4720
4721         * char-conversions.h : The tables were incorrectly generated. Should
4722           be generated against invariant culture.
4723
4724 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4725
4726         * object.c (mono_runtime_invoke_array): Fix return value when 
4727         passing pre-created valuetype objects to ctors.
4728
4729         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
4730         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
4731         Fixes #74338.
4732
4733 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
4734
4735         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
4736         only used with --security and hides the wrong corlib version error.
4737
4738 2005-03-30  Joshua Tauberer  <tauberer@for.net>
4739
4740         * class.c: Changed mono_class_name_from_token so that types
4741         outside of a namespace don't have an initial period.  Improved
4742         the g_warning message used in _mono_class_get when loading
4743         fails.
4744         * assembly.c: In mono_assembly_load_reference, when an assembly
4745         can't be found, "No such file or directory" is misleading and
4746         unhelpful because a few paths were checked for the presence of
4747         the assembly.  When that happens (ENOENT), display a nicer
4748         message indicating the directories that were searched.  In all
4749         cases, the warning is made easier to read for non-hackers.
4750
4751 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
4752
4753         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
4754         project/solution.
4755         * appdomain.h|domain.c: Removed inline from functions.
4756         * appdomain.c: Reduced warnings when compiling on windows.
4757         * icall.c: Fixed output_debug declaration to gunichar2*.
4758         * mono-config.c: Reduced warnings when compiling on windows.
4759         * rand.c: Added missing "windows.h". Added missing return value.
4760         * rawbuffer.c: Added missing winsock2.h for windows.
4761         * sysmath.h: Added mono-compiler.h header to allow/ease 
4762         compilation with non-GCC compilers.
4763         * threads.c: Fixed declarations to compile with VS.NET C compiler.
4764         Removed cast warnings.
4765
4766         Adapted from the work of J Lothian (for VC6).
4767
4768 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4769
4770         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
4771         from default_path.
4772
4773 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
4774
4775         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
4776         the 2.0 profile.
4777
4778 2005-03-27  Raja R Harinath  <harinath@gmail.com>
4779
4780         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
4781         has to be in $(exec_prefix).  $(prefix) is for arch-independent
4782         stuff, and it would probably use $(prefix)/share rather than
4783         $(prefix)/lib.
4784
4785 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4786
4787         * console-io.c: added 2 includes that might be missing.
4788
4789 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4790
4791         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
4792         profile.
4793
4794         * reflection.c (create_custom_attr): Allocate the params array using
4795         alloca so it gets GC tracking.
4796
4797 2005-03-23  Chris Toshok  <toshok@ximian.com>
4798
4799         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
4800         out some spew.
4801
4802 2005-03-24  Raja R Harinath  <rharinath@novell.com>
4803
4804         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
4805         changes to pick up any changes in prefix, etc.
4806
4807 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4808
4809         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
4810         
4811         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
4812         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
4813
4814 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4815
4816         * class-internals.h object-internals.h class.c reflection.c: Extend the
4817         mono_lookup_dynamic_token () function to return the class of the
4818         token as well. 
4819
4820         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
4821         well. Fixes #73848.
4822
4823 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
4824
4825         * security-manager.c: Skip inheritance checks for intra-corlib
4826         class inheritance and method overrides. This skips a lot of checks
4827         and (anyway) permissions cannot work until corlib is loaded.
4828
4829 2005-03-23  Martin Baulig  <martin@ximian.com>
4830
4831         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
4832         MONO_TYPE_GENERICINST.  
4833
4834 2005-03-23  Martin Baulig  <martin@ximian.com>
4835
4836         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
4837
4838 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4839
4840         * class.c: added locking comments to some functions.
4841         Cache the interface offsets arrays (saves about 20 KB
4842         of runtime memory in a typical app).
4843         Reduce the time overhead in mono_class_setup_supertypes ().
4844
4845 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
4846
4847         * icall.c: speedup and fix leaks in GetMethodsByName and
4848         GetPropertiesByName.
4849
4850 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
4851
4852         * reflection.c: some locking fixes.
4853
4854 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
4855
4856         * metadata.c: added missing break in case statement.
4857
4858 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
4859
4860         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4861         typedbyref return values. Fixes #73941.
4862
4863 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
4864
4865         * security-manager.c|h: Added demandunmanaged method and 
4866         suppressunmanagedcodesecurity class to MonoSecurityManager.
4867         Renamed aptc class to allowpartiallytrustedcallers.
4868
4869 2005-03-17  Martin Baulig  <martin@ximian.com>
4870
4871         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
4872
4873 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4874
4875         * file-io.c: disabled file async. IO using aio_*. It uses the
4876         threadpool now. Workaround for bug #73718.
4877
4878 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
4879
4880         * assembly.h, mono-config.c: added code to deal with bundled configs
4881         for bundled assemblies.
4882
4883 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
4884
4885         * *.c, private.h: cleanup, removing old private.h header file.
4886
4887 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
4888
4889         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
4890         and throw_on_unmappable_char attributes.
4891
4892 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
4893
4894         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
4895         _ProcessName_internal.
4896
4897 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
4898
4899         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
4900         #73631.
4901
4902         * icall.c threads.c threads-types.h: Remove slothash icalls as they
4903         are no longer used.
4904
4905 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
4906
4907         * object.c (compute_class_bitmap): Add support for generics. Fixes
4908         #73527.
4909
4910 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4911
4912         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
4913
4914 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4915
4916         * filewatcher.c: commented out the code for windows watcher, as we don't
4917         use it (we use the managed implementation instead).
4918
4919 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4920
4921         * object-internals.h (MonoThread): Remove 'unused1' field.
4922
4923         * appdomain.c: Bump corlib version.
4924
4925         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
4926
4927         * reflection.c (mono_reflection_create_runtime_class): Remove the
4928         AssemblyBuilder.Save optimization since it causes too many problems.
4929
4930 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
4931
4932         * exception.c|h: Added mono_get_exception_reflection_type_load to
4933         create a ReflectionTypeLoadException object.
4934         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
4935         to return NULL is a InheritanceDemand fails during reflection. Updated
4936         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
4937         ReflectionTypeLoadException if an InheritanceDemand fails during 
4938         reflection. Added icall mapping for GetLinkDemandSecurity.
4939         * security-manager.c|h: Added ves_icall_System_Security_
4940         SecurityManager_GetLinkDemandSecurity internal call to return the
4941         class and methods permissions set for a LinkDemand. Removed unused
4942         fields in MonoSecurityManager.
4943
4944 2005-03-10  Martin Baulig  <martin@ximian.com>
4945
4946         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
4947         it's a generic instance.
4948
4949 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
4950
4951         * reflection.c (mono_get_object_from_blob): Applied patch from
4952         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
4953
4954         * class.c (mono_class_is_assignable_from): Another try at fixing 
4955         #73469 without breaking anything.
4956
4957 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
4958
4959         * class.c: (mono_class_is_assignable_from): Revert the last changes
4960         since they don't work with generics.
4961         
4962         * class.c (mono_class_is_assignable_from): Fix build bustage.
4963
4964         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
4965         the managed IsAssignableFrom method. Fixes #73469.
4966
4967         * reflection.c (mono_reflection_call_is_assignable_from): New helper
4968         function.
4969
4970 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
4971
4972         * object.c (mono_load_remote_field_new): Fix returning uninitialized
4973         memory when the remoting callback does not sets the out arguments.
4974         Fixes #73007.
4975
4976         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
4977         by mistake.
4978
4979         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
4980
4981         * object-internals.h (MonoStackFrame): Sync with managed object layout.
4982
4983         * appdomain.c: Bump corlib version.
4984
4985 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
4986
4987         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
4988         function.
4989
4990         * threads.c (mono_thread_attach): Detect threads which are not started
4991         by the GC pthread wrappers.
4992
4993 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
4994
4995         * icall.c: Added new icall for RNG.
4996         * rand.c|h: Added new icall to open the RNG. This allows to share a 
4997         single handle on Linux to access /dev/urandom and fix #73183.
4998
4999 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
5000
5001         * object.c: setting the new vtable in a transparent proxy object must
5002         not change the GC descriptor.
5003
5004 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5005
5006         * object.c: fixed compilation without GCJ support.
5007         * reflection.c: for runtime-created types ensure klass->has_references
5008         is correct (bug #73215).
5009
5010 2005-03-02  Martin Baulig  <martin@ximian.com>
5011
5012         * class.c (mono_class_is_assignable_from): Make this work if
5013         `oklass' is a generic instance; fixes #72831.
5014
5015 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5016
5017         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
5018         with hasthis set.
5019         
5020         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
5021
5022         * marshal.c: Reorganize native->managed marshalling code to also use
5023         the emit_marshal_... functions.
5024
5025 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5026
5027         * object.c: typed allocs have issues with bitmap sizes > 30,
5028         so check for max_set >= 30.
5029
5030 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5031
5032         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
5033         managed code. Fixes #73012.
5034
5035         * metadata.h (MonoMarshalSpec): Add elem_mult field.
5036
5037         * metadata.c reflection.c: Load/Emit elem_mult as well.
5038         
5039         * metadata.h (MonoMarshalSpec): Add comment.
5040
5041         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
5042
5043         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
5044         num_elem to -1 if not given.
5045
5046         * object-internals.h (MonoReflectionMarshal): Add has_size field.
5047
5048         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
5049         given values.
5050
5051 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
5052
5053         * null-gc.c (mono_gc_free_fixed): Was not compilable.
5054
5055 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
5056
5057         * reflection.c (encode_marshal_blob): Encode param_num field as well.
5058
5059         * object-internals.h (MonoReflectionMarshal): Add param_num field.
5060
5061 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5062
5063         * object.c: generalized the reference bitmap creation
5064         and added hooks for the new GC.
5065         * class-internals.c: removed the gc_bitmap field from MonoClass.
5066
5067 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5068
5069         * domain.c: help the compiler to produce better code
5070         in mono_jit_info_table_find ().
5071
5072 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5073
5074         * object.c: make all allocations look typed.
5075
5076 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5077
5078         * socket-io.c: load Mono.Posix if it's not loaded already
5079         (fixes bug#73033).
5080
5081 2005-02-24  Martin Baulig  <martin@ximian.com>
5082
5083         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
5084         * reflection.c (dup_type): Likewise.
5085
5086 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
5087
5088         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
5089         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
5090
5091 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5092
5093         * domain.c, threads.c, object-internals.h: make the critical thread
5094         local vars use the fast access mode (even when we're compiled in
5095         a lib). Provide accessors to be used by the jit during codegen.
5096
5097 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5098
5099         * appdomain.c: Changed hook functios behavior to include
5100         support for the reflection only assemblies. Some icalls were changed
5101         to support the mentioned assemblies too. Signatures of static methods
5102         try_assembly_resolve and real_load now have an additional parameter:
5103         refonly.
5104
5105         * assembly.c: General changes to mono_assembly_ methods to support
5106         reflection only api. Functions mono_assembly_open, mono_assembly_load,
5107         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
5108         suffix, to support an additional gbool parameter to specify whether
5109         the assembli is reflection only or not. Created some new hook functions 
5110         to add support for reflection only assemblies. Signatures of static 
5111         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
5112         have now an additional parameter: refonly.
5113
5114         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
5115         indicating whether the assembly is reflection only or not.
5116
5117         * exception.c: Add mono_get_exception_invalid_operation.
5118
5119         * icall.c: Throw an InvalidOperationException when trying to invoke
5120         a property/method/event, or trying to set/get the value of a field.
5121         Also add an icall to retrieve the ref_only flag to the
5122         MonoReflectionAssembly.
5123
5124 2005-02-23  Chris Toshok  <toshok@ximian.com>
5125
5126         Part of fix for #72827.
5127         * mono-debug.c (mono_debug_add_method): add lexical block data to
5128         the info we write.  Kind of a hack at the moment - we copy the
5129         lexical block info from the MonoDebugMethodInfo to the
5130         MonoDebugMethodJitInfo here, before writing it.
5131         (mono_debug_read_method): read the lexical block info.
5132
5133         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
5134
5135         * debug-mono-symfile.h: add lexical block support.
5136
5137         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
5138         support.
5139
5140 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5141
5142         * loader.c (mono_lookup_pinvoke_call): Fix warning.
5143
5144         * object.c (mono_runtime_free_method): Call mono_free_method () and
5145         put the TODOs there.
5146
5147         * loader.c (mono_free_method): Free up most memory allocated for 
5148         dynamic methods.
5149
5150 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5151
5152         * reflection.c: properly flag a Type argument to a
5153         named custom attr value (bug #72248).
5154
5155 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5156
5157         * reflection.c: reduce code duplication in named custom
5158         attribute encoding.
5159
5160 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
5161
5162         * reflection.c: properly encode custom attrs of type object
5163         (bug #72649).
5164
5165 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5166
5167         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
5168
5169 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
5170
5171         * socket-io.c: load System.dll if it's not loaded already
5172         (bug #72850 and #70477).
5173
5174 2005-02-21  Martin Baulig  <martin@ximian.com>
5175
5176         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5177         generic instances.
5178
5179 2005-02-21  Martin Baulig  <martin@ximian.com>
5180
5181         * reflection.c (mono_image_build_metadata): We also need to
5182         "fixup" the MethodImpl table after we computed the final method
5183         indices.  Call fixup_methodimpl() to do that.
5184         (fixup_methodimpl): New private method.
5185
5186 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5187
5188         * assembly.c: special case mscorlib.dll (bug#72536),
5189         patch from Carlos Alberto Cortez.
5190
5191 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
5192
5193         * threads-types.h threads.c: Fix build bustage.
5194
5195         * threads.c: Use a union for long<->double conversions.
5196
5197         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
5198         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
5199
5200         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
5201         containing the checkpoint call with NOT_TAKEN.
5202         
5203         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
5204         checkpoint before pushing the arguments, so they won't have to be
5205         spilled to stack.
5206
5207 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5208
5209         * domain.c, assembly.c, domain-internals.h: make some data
5210         const and relocation-free.
5211
5212 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
5213
5214         * object.c, appdomain.c, class-internals.h: introduce the
5215         MonoClassRuntimeInfo structure to hold the info needed to
5216         use a class at runtime. Made mono_class_vtable() lock-free
5217         for all the appdomains.
5218
5219 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
5220
5221         * metadata-internals.h, image.c: introduce a per-image mempool to
5222         be used for memory that has the same lifetime as the image.
5223
5224 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
5225
5226         * domain.c: In mono_init_internal(), instead of selecting the first
5227         runtime version supported by an executable, get a list of all
5228         supported versions and select the one for which an mscorlib exists
5229         (since even if the runtime supports a given version, it doesn't mean
5230         that the framework for that version is installed).
5231         Modified get_runtimes_from_exe to support this behavior.
5232         In supported_runtimes, added information about additional system
5233         assembly versions.
5234         
5235         * assembly.c: Added support for more than one system assembly version
5236         per runtime version. Updated the assembly list.
5237         In mono_assembly_remap_version, removed the initial version check,
5238         since we don't know to which version we need to compare until we
5239         get the version set on which the assembly is based.
5240         Moved the code for loading corlib into the new method
5241         mono_assembly_load_corlib(), so it can be used by the initialization
5242         code.
5243         
5244         * domain-internals.h: Updated data structures and added declaration
5245         for mono_assembly_load_corlib.
5246
5247 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5248
5249         * reflection.c (resolve_object): Fix the creation of the signature in 
5250         the SignatureHelper case.
5251
5252         * assembly.c (mono_assembly_remap_version): Fix binary search.
5253         
5254 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
5255  
5256         * class.c: Added inheritance check when a method is overloaded (from a
5257         virtual method or when implementing an interface) and when a class is
5258         inherited. Added functions to set a failure for a class and to 
5259         retreive the exception from a failure.
5260         * class-internals.h: Added fields to MonoClass to keep the exception
5261         information status for inheritance (or other exceptions) to be thrown
5262         later (i.e. not at load time).
5263         * object.c: Throw the inheritance SecurityException when a type is to 
5264         be created with either class or method inheritance violations.
5265         * reflection.c|h: Fix when getting declsec from a class. Removed 
5266         unrequired code for class. Improved sanity in parameter naming.
5267         * security-manager.c|h: Added functions to check for class and method
5268         inheritance.
5269
5270 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5271
5272         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
5273         and has_finalize in dynamic types as well.
5274
5275 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
5276
5277         * culture-info-table.h : fixed currency format for en-GB (and so on).
5278
5279 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
5280
5281         * gc.c: ensure the GC handles never have 0 as a value.
5282
5283 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5284
5285         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
5286         a pointer to a struct to unmanaged code. Fixes #72625.
5287
5288 2005-02-16  Martin Baulig  <martin@ximian.com>
5289
5290         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
5291
5292 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5293
5294         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
5295
5296 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5297
5298         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
5299
5300         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
5301         UnmanagedFunctionPointerAttribute, use it for determining calling convention
5302         etc. Fixes #71471.
5303
5304         * reflection.c (mono_custom_attrs_get_attr): New helper function.
5305
5306         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
5307
5308 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
5309
5310         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
5311         changes to make the current context a field in MonoThread.
5312
5313 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5314
5315         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
5316         the last change.
5317         
5318         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
5319         extracted from mono_marshal_get_native_wrapper.
5320
5321         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
5322         to create wrappers around native functions.
5323
5324         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
5325         delegates for arbitrary function pointers. Fixes #71472.
5326
5327 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5328
5329         * threads.c: cleaned up the code a little.
5330
5331 2005-02-15  Martin Baulig  <martin@ximian.com>
5332
5333         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
5334         the data table.
5335
5336         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
5337         allocate larger chunks if needed.
5338
5339 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5340
5341         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
5342         in by mistake.
5343
5344 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
5345
5346         * domain.c: keep the domains in an array and ensure the domain ids
5347         are kept small, so they can be used as indexes to domain-specific data
5348         with a small memory overhead.
5349
5350 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5351
5352         * icall.c: Handle byref types in Type icalls. Fixes #72544.
5353
5354 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
5355
5356         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
5357
5358 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
5359
5360         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
5361
5362         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
5363         values.
5364
5365         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
5366         
5367 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
5368
5369         * domain-internals.h: add the hashtable here.
5370
5371         * class-internals.h: Remove `info' from MonoMethod
5372
5373         * domain.c: Add a new hashtable, jit_trampoline_hash
5374
5375 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5376
5377         * object.c: don't set the value of static fields
5378         (fixes bug#72494).
5379
5380 2005-02-11  Martin Baulig  <martin@ximian.com>
5381
5382         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
5383         (mono_debug_add_method): Silently ignore the method if it's too big.
5384         (mono_debug_add_type): Likewise.
5385
5386 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
5387
5388         * threads.c, appdomain.c: remove #ifdefs from the code.
5389
5390 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
5391
5392         * metadata-internals.h: Added flags to MonoAssembly to cache the most
5393         common security informations. This allows us to stay in unmanaged code
5394         when doing LinkDemand and it's special cases (except for the first 
5395         time for initialization). The flags a very much used with --security.
5396         * reflection.c|h: Added code to get declarative security attributes 
5397         for LinkDemand and InheritanceDemand. This required to refactor the
5398         existing code for Demand.
5399         * security-manager.c|h: Added new method fields for the special cases
5400         of LinkDemand.
5401
5402 2005-02-10  Martin Baulig  <martin@ximian.com>
5403
5404         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
5405         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
5406
5407 2005-02-10  Martin Baulig  <martin@ximian.com>
5408
5409         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
5410         debugging code; this is almost a complete rewrite.
5411
5412         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
5413
5414 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5415
5416         * domain.c, object.h: expose mono_string_equal () and 
5417         mono_string_hash ().
5418         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
5419         it's implemented in managed code.
5420
5421 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5422
5423         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
5424         lo leak objects between appdomains.
5425
5426 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5427
5428         * assembly.c: old compilers compilation fix from 
5429         robertj@gmx.net (Robert Jordan).
5430
5431 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
5432
5433         * class-internals.h: Little reminder for the future.
5434
5435         * debug-helpers.c: Fix up wrapper_type_names
5436
5437 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5438
5439         * image.c, metadata-internals.h: when loading an image from a file,
5440         mmap all of it and use the same codepaths as when using a
5441         in-memory image: the code is simpler and we use less memory
5442         (both writable and readonly).
5443
5444 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5445
5446         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
5447         API to alloc runtime data structures that need to be tracked by the
5448         GC and contain pointers.
5449         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
5450         make the code more readable and eventually use a different GC.
5451
5452 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
5453
5454         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
5455         for out arguments.
5456         
5457 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
5458
5459         * object.c: In release_type_locks(), don't release the cctor lock
5460         if it has already been released. This fixes a crash in the
5461         thread5 test.
5462
5463 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5464
5465         * gc.c, marshal.c, icall.c: register a delegate for finalization
5466         only when the native function pointer has been allocated for it.
5467
5468 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5469
5470         * object.c: cleaned up some code, allocate objects that are
5471         pointer free with the atomic malloc variant. Allocate memory
5472         for static data from the mempool if it's pointer-free.
5473         Allocate the bounds array at the end of the array data, when needed.
5474         * object-internals.h, object.h: move a private function in a private
5475         header.
5476         * class.c: handle missing case in tracking references in fields.
5477
5478 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5479
5480         * class.c, class-internals.h: keep track if a type has
5481         reference fields in either the instance or static fields.
5482
5483 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
5484
5485         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
5486         and renamed to MonoRuntimeInfo. Added fields to store the expected
5487         framework assembly version. Changed mono_get_framework_version and
5488         mono_get_runtime_version for a single mono_get_runtime_info method.
5489         
5490         * assembly.c: Added method to remap system assembly versions to the
5491         current executing runtime version. Removed old mapping code.
5492         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
5493         
5494         * icall.c, reflection.c: Track api changes.
5495
5496 2005-02-06  Miguel de Icaza  <miguel@novell.com>
5497
5498         * loader.c (method_from_memberref): Improve error reporting,
5499         produce the class name instead of the typeref/typedef index. 
5500
5501 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
5502
5503         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
5504
5505 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5506
5507         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
5508         stdcall and charset name mangling.  Reorganize the code and add
5509         some tracing stuff.
5510
5511 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5512
5513         * monodiet.c: More iters!
5514
5515         * marshal.c: Iter usage.
5516
5517         * icall.c: Iter usage.
5518
5519         * object.c: Use iters.
5520
5521         * debug-helpers.c: More iters
5522
5523 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5524
5525         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
5526         under win32.
5527
5528 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5529
5530         * mono-debug-debugger.c: use iters
5531
5532         * class.c, class-internals.h: mono_class_setup_events is static
5533         now
5534
5535         * All callers: use iters
5536
5537 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5538
5539         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5540         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5541
5542 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5543
5544         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5545
5546         * marshal.h: Add prototypes for ldfld/stfld_remote.
5547
5548         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5549         this is called during startup.
5550         
5551 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5552
5553         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5554         MonoThreadsSync struct private in monitor.c. Changed the way
5555         MonoThreadsSync is allocated so it's faster and there is no
5556         need to keep track of it with a finalizer and it uses less memory.
5557         This also finally allows us to allocate mono objects as ptrfree when
5558         there are no reference fields.
5559
5560 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5561
5562         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5563         disappearing link to the GC interface and use them to simplify
5564         the gchandles code.
5565
5566 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5567
5568         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5569         stfld_remote which call mono_load/store_field_new. This allows methods
5570         calling ldfld/stfld wrappers to be AOTed.
5571
5572         * console-io.c: Include sys/filio.h under solaris.
5573         
5574         * console-io.c: Include curses.h if needed correctly.
5575
5576 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5577         
5578         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5579         method->klass as well.
5580
5581         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5582
5583         * class.c (mono_class_init): Switch on lazy initialization of 
5584         methods.
5585
5586         * class.c (mono_class_get_finalizer): Handle the case when the 
5587         finalizer is inherited.
5588
5589 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5590
5591         * console-io.c: <curses.h> is needed by term.h on solaris.
5592
5593 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5594
5595         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5596         mono_class_setup_properties where possible. Remove this ftn from
5597         the header file, and make it static.
5598
5599 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5600
5601         * loader.c: Add missing setup_... call.
5602
5603         * class.c: Add missing setup_... calls.
5604
5605         * class.c (mono_class_init): Switch on lazy initialization of 
5606         the generic vtable.
5607         
5608         * class.c (mono_class_init): Fix generics broken by the recent changes.
5609
5610         * monodiet.c (handle_type): Add missing setup_... calls.
5611
5612         * class.c: Back out garbage in previous patch.
5613         
5614         * class.c: Add missing setup_... calls.
5615
5616         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5617         mono_class_setup_methods () if possible.
5618
5619         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5620
5621         * class-internals.h (MonoCachedClassInfo): New structure.
5622
5623         * class.c: Initialize properties and events fields of MonoClass lazily.
5624
5625         * class.c: Add infrastructure for lazily initializing the methods and
5626         vtable fields of MonoClass. Not yet used.
5627
5628         * class.c (mono_class_get_finalizer): New helper function.
5629
5630         * class.c: Add infrastructure for loading some class related data from
5631         an AOT file.
5632
5633         * object.c: Add infrastructure for initializing the vtable from data
5634         in the AOT file.
5635
5636         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5637
5638         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5639         appropriate initialization function before accessing parts of the
5640         MonoClass structure.
5641
5642         * marshal.c: Fix warnings.
5643         
5644         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5645
5646         * mono-debug-debugger.c (get_exception_message): Use 
5647         mono_class_get_method_from_name_flags ().
5648
5649 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5650
5651         * reflection.c, appdomain.c: Replace a few manual searches that
5652         Zoltan missed. (Paolo approved this part of my initial patch).
5653
5654 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5655
5656         * profiler.c: disable recording statistical events at report time.
5657
5658 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5659
5660         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5661         to byteswap arrays of enum values, too (bug #72080).
5662
5663 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5664
5665         * appdomain.c (set_domain_search_path): Allow this to be called if
5666         domain->setup is not yet set.
5667
5668         * loader.c (mono_method_get_index): New helper function.
5669
5670         * loader.c reflection.c: Use mono_method_get_index ().
5671
5672         * class.c (mono_class_get_method_from_name_flags): New helper method.
5673
5674         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5675         this.
5676
5677         * class.c (mono_class_get_cctor): New helper method.
5678
5679         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5680         mono_class_get_method () to look up methods.
5681
5682 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5683
5684         * console-io.c: Fix the build, this should work on Windows.
5685
5686 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5687
5688         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5689         be set to null to keep things valid
5690
5691 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5692
5693         * icall.c: added Console 2.0 icalls.
5694         * Makefile.am: added console-io.[ch]
5695         * console-io.[ch]: internal calls for Console 2.0 API.
5696
5697 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5698
5699         * class.c: make sure we consider all the interfaces
5700         when calculating max_interface_id (bug found by
5701         Jeroen Frijters running ikvm).
5702
5703 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5704
5705         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
5706         valuetype fields to null.
5707
5708         * object.c (set_value): Ditto. Fixes #71669.    
5709
5710 2005-01-31  Martin Baulig  <martin@ximian.com>
5711
5712         * metadata.c (mono_metadata_has_generic_params): New public
5713         function; checks whether something is a generic method.
5714
5715 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
5716
5717         * appdomain.c: fix infinite recursion when adding assemblies.
5718
5719 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
5720
5721         * object.c: Fix small typo to return all items for Environment.
5722         GetCommandLineArgs.
5723
5724 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5725
5726         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5727         reflection.c: more domain and assembly-unload related fixes
5728         and memory leaks plugs.
5729
5730 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
5731
5732         * 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.
5733
5734 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
5735
5736         * loader.c (mono_method_signature): Make this method lazy
5737         (mono_get_method_from_token): Don't computate the signature here.
5738
5739         Doing this saves quite a bit of memory. I got 90 kb on starting up
5740         monodoc. It should also save some disk reads on startup.
5741
5742         * *: MonoMethod->signature might be NULL now. You *MUST* use
5743         mono_method_signature.
5744
5745 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
5746
5747         * object.c (mono_runtime_get_main_args): Return an array from the
5748         current domain here. Fixes #71938.
5749
5750 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
5751
5752         * monitor.c: formatting changes to comply with the
5753         mono coding style and remove #ifdefs from the code.
5754
5755 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5756
5757         * metadata.c, private.h: remove some unneeded data
5758         and use a more compact representation for table schemas.
5759
5760 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
5761
5762         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
5763         to get a better distribution in hash tables.
5764         * *.c: use mono_aligned_addr_hash() where appropriate.
5765         * assembly.c: make var static.
5766
5767 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
5768
5769         * domain-internals.h: Put MonoJitInfo on a diet.
5770
5771         * domain.c: Fix a warning.
5772
5773 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5774
5775         * gc.c: rework the gc handles code to reuse handles
5776         when freed.
5777
5778 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5779
5780         * domain.c: fixed long standing bug in mono_string_equal() which
5781         was brought to light with the ldstr changes.
5782
5783 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
5784
5785         * reflection.c: Remove warning by adding missing include for marshal.h
5786
5787 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5788
5789         * domain.c, object.c: change the ldstr_table to hold
5790         MonoString* as keys: makes the runtime isinterned lookup
5791         faster and simplifies memory management.
5792
5793 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
5794  
5795         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
5796         possible to add imperative security checks before calling the icall.
5797         * reflection.c: Return security attributes on the original MonoMethod
5798         (and not the wrapped one). This fix permissions on icalls.
5799
5800 2005-01-25  Dick Porter  <dick@ximian.com>
5801
5802         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
5803         the check for mktime() support actually test the mktime() return
5804         value.  "Fixes" bug 71682, though the output is still different to
5805         MS.
5806
5807 2005-01-25  Martin Baulig  <martin@ximian.com>
5808
5809         * class.c (mono_class_is_assignable_from): Make this work for
5810         generic instances.
5811
5812 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
5813
5814         * marshal.c (mono_string_utf8_to_builder)
5815         (mono_string_builder_to_utf16): We might not have ownership of the
5816         string. In thise case, we need to create a new buffer.
5817
5818         * object-internals.h (mono_stringbuilder_capacity): sb->str might
5819         be null, in which case, use the default capacity.
5820
5821 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5822
5823         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
5824         GC events to the profiler.
5825
5826 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5827
5828         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
5829         if you don't want the GC to run.
5830
5831 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
5832
5833         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
5834         start providing a GC API and keeping different implementations in
5835         their own file.
5836         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
5837
5838 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
5839
5840         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
5841         mmap rather than allocating a huge buffer.
5842         (mono_debug_close_mono_symbol_file): Free the buffer allocated
5843         above.
5844
5845 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
5846
5847         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
5848         and CheckExecutionRights.
5849         * reflection.c|h: Keep the index of the declarative security to be 
5850         used, instead of the pointer, when AOT compiler is used. Also add 
5851         class initialization when requesting demands.
5852         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
5853         CheckExecutionRights. Both properties are now FALSE by default, and
5854         unmodifiable, unless the --security option is used.
5855
5856 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5857
5858         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
5859         reflection.c: properly refcount images and assemblies, many leaks fixed.
5860
5861 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5862
5863         * threadpool.c: increase the timeout for threads in the thread pool to
5864         10s.  Fixes bug #67159.
5865
5866 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5867
5868         * class-internals.h: Sun's compiler insists on explicit
5869         signed on bit fields to handle then correctly.
5870
5871 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
5872
5873         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
5874         Make the size of the array fit only the number of invalid path
5875         chars that we have.
5876
5877         * class.c (_mono_class_get): Improve the error reporting when a
5878         class referenced is not found, to assist debugging. 
5879
5880 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
5881
5882         * threads.c: fix off-by-one error.
5883         * domain.c: free data allocated in the domain.
5884
5885 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5886
5887         * reflection.c (mono_method_body_get_object): Fill out exception info
5888         as well.
5889
5890         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
5891         structure.
5892         
5893 2005-01-19  Martin Baulig  <martin@ximian.com>
5894
5895         * loader.c (mono_get_method_constrained): Make this work again.
5896
5897 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5898
5899         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
5900         guint16 to match the managed side.
5901
5902         * reflection.c (mono_reflection_body_get_object): Fill out local
5903         variables array.
5904
5905         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
5906         as well.
5907
5908         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
5909         'local_var_sig_token'.
5910
5911 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
5912
5913         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
5914         System.Drawing.
5915
5916         * reflection.c (mono_method_body_get_object): Handle abstract and
5917         runtime methods.
5918
5919 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
5920
5921         * marshal.c, loader.c, class-internals.h, reflection.c:
5922         store the emthod data for a wrapper in an array instead of a list.
5923
5924 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
5925
5926         * marshal.c: change the code to allocate memory more
5927         conservatively for method wrappers.
5928
5929 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
5930
5931         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
5932         fields from MonoClass to the marshal info structure where they belong.
5933
5934 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5935
5936         * class.c, object.c, class-internals.h, marshal.c: rearrange
5937         some fields and tweak some types to lower memory usage.
5938
5939 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
5940
5941         * threads.c (signal_thread_state_change): Handle the case when the
5942         target thread is the current thread.
5943
5944         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
5945
5946         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
5947         emit_ptr_to_object_conv. 
5948
5949         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
5950         marshalling. Fixes #71352.
5951
5952 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5953
5954         * metadata.h, blob.h: move table enum to blob.h so it can be included
5955         in any header.
5956         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
5957         cut the size of MonoImage/MonoDynamicImage.
5958
5959 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
5960
5961         * profiler.c (mono_profiler_install_simple): Fix default arguments.
5962
5963 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5964
5965         * reflection.c, reflection.h, icall.c: add a function to check
5966         if an attribute type is defined for a metadata object.
5967
5968 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
5969
5970         * object-internals.h: Added some needed fields from StringBuilder class.
5971         * marshal.c: Set the maxCapacity when creating a StringBuilder.
5972
5973 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
5974
5975         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
5976         threads before shutting down the runtime.
5977
5978         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
5979
5980 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5981
5982         * object-internal.h, threads.c: implement stacksize and 
5983         parameterized thread start functionality (requires
5984         matching corlib). Marked broken code for later removal.
5985
5986 2005-01-12  Martin Baulig  <martin@ximian.com>
5987
5988         * class-internals.h (MonoGenericClass): Moved the `initialized'
5989         flag to MonoDynamicGenericClass, removed `init_pending'.
5990         (MonoGenericInst): Added `is_reference' flag.
5991
5992 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
5993
5994         * reflection.c (mono_image_create_pefile): Only set the pe_offset
5995         inside the MSDOS header. Fixes #71201.
5996
5997         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
5998         gc thread.
5999         (mono_domain_finalize): Ditto.
6000
6001 2005-01-12  Martin Baulig  <martin@ximian.com>
6002
6003         * class.c (mono_get_shared_generic_class): Use the cache for
6004         non-dynamic generic classes.
6005
6006         * class-internals.h (mono_class_create_generic_2): Removed
6007         function prototype, this function is now static inside class.c.
6008
6009         * class.c (mono_class_create_generic_2): Made this static, only
6010         call it from mono_class_init() and mono_class_setup_parent().
6011         (collect_implemented_interfaces_aux): Call mono_class_init() on
6012         the interfaces we collect.
6013         (mono_class_setup_vtable): Call mono_class_init (class->parent).
6014
6015 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6016
6017         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
6018         it a real thread handle.
6019
6020         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
6021         MonoJitExceptionInfo, since each catch clause needs its own variable.
6022         
6023 2005-01-11  Dick Porter  <dick@ximian.com>
6024
6025         * image.c (mono_pe_file_open): New variant on mono_image_open()
6026         that does not set up the CLI metadata; used for FileVersionInfo so
6027         it can get the data for windows binaries too.
6028         
6029         * process.c (process_read_string_block): Don't read off the end of
6030         the StringTable block.
6031
6032         These both fix bug 70766.
6033
6034 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
6035
6036         * gc.c: set some fields to NULL at GC cleanup time.
6037         * threads.c: if we quit the main thread, call exit ().
6038
6039 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6040
6041         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
6042
6043 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
6044
6045         * threads.h, threads.c, object.c: added accessor and settor for
6046         main_thread. Handle it specially when exiting from it: wait
6047         for other foreground threads to exit.
6048
6049 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
6050
6051         * process.c, verify.c: remove some bloat.
6052
6053 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
6054
6055         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
6056         the calling convention to cdecl under win32.
6057
6058 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
6059
6060         * object.c (mono_object_get_size): New function to get the size of
6061         an object instance.
6062
6063         * profiler.c (simple_allocation): Use above.
6064
6065 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
6066
6067         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
6068         ves_icall_System_AppDomain_getRootDomain (as it's not required to
6069         get an appdomain by it's id and we can't assume the root's id is 0).
6070         * domain-internals.h: Change the function prototype to match.
6071         * icall.c: Change the icall table for AppDomain.
6072
6073 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
6074
6075         * locales.c (string_invariant_compare_char): Only compute
6076         GUnicodeTypes in the case where we need them.  Test for ordinality
6077         first and return if so.
6078
6079         From the commit:
6080
6081                 /*
6082                  * FIXME: here we must use the information from c1type and c2type
6083                  * to find out the proper collation, even on the InvariantCulture, the
6084                  * sorting is not done by computing the unicode values, but their
6085                  * actual sort order.
6086                  */
6087
6088 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6089
6090         * loader.c: for P/Invoke methods, allow the "Internal" shared
6091         library name to refer to the calling process symbol namespace.
6092
6093 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
6094
6095         * Makefile.am: Add the security manager to the build.
6096         * security-manager.c|h: New. Initialization of the security manager.
6097
6098 2005-01-07  Dick Porter  <dick@ximian.com>
6099
6100         * threads.c: 
6101         * monitor.c: Update thread state during Monitor and WaitHandle
6102         waits.  Fixes bug 71031.
6103
6104 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
6105
6106         * reflection.c (property_encode_signature): Correctly handle when the
6107         property has no methods.
6108
6109 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
6110
6111         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
6112         
6113         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
6114         fields from mb, not rmb. Fixes #71017.
6115
6116         * marshal.c (emit_ptr_to_str_conv): Add support for 
6117         ByValTStr -> string conversion. Fixes #71015.
6118
6119         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
6120
6121         * mempool.c (mono_mempool_contains_addr): New helper function.
6122
6123 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6124
6125         * metadata.c (mono_metadata_compute_size): Fix size calculation of
6126         HasSematics encoded fields.
6127         
6128         * metadata.c (mono_type_to_unmanaged): Improve error message for 
6129         invalid string marshalling.
6130
6131         * metadata.c: Fix warnings.
6132         
6133 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6134
6135         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
6136         profiler support.
6137
6138 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6139
6140         * domain.c object.c domain-internals.h: Revert part of r38077 since the
6141         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
6142         tests.
6143
6144 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
6145
6146         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
6147         so methods containing these can be AOTed.
6148
6149 2005-01-03  Martin Baulig  <martin@ximian.com>
6150
6151         * loader.c (find_method): Removed the hack for generic instances.
6152         (method_from_memberref): If our parent is a generic instance, pass
6153         its generic type definition to find_method() and then inflate the
6154         method.
6155         (mono_get_method_constrained): Pass the generic type definition to
6156         find_method() and inflate the method later.
6157
6158         * class-internals.h (MonoStats): Added `generic_class_count'.
6159
6160         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
6161         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
6162
6163         * reflection.c (mono_custom_attrs_from_params): Don't ignore
6164         generic type definitions.
6165
6166 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
6167
6168         * loader.c icall.c: Fix warnings.
6169
6170 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
6171
6172         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
6173         blittable types. Fixes #70864.
6174
6175 2004-12-29  Martin Baulig  <martin@ximian.com>
6176
6177         * icall.c
6178         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
6179
6180         * reflection.c (mono_method_get_object): Create a
6181         "System.Reflection.MonoGenericMethod" for inflated methods; don't
6182         call mono_get_inflated_method().
6183
6184         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
6185
6186 2004-12-27  Martin Baulig  <martin@ximian.com>
6187
6188         * class-internals.h (MonoMethod): Added `is_inflated' flag.
6189         (MonoMethodInflated): Added `inflated' field.
6190
6191         * class.c (mono_class_inflate_generic_method): Don't really
6192         inflate the method here; just set the `is_inflated' flag in the
6193         MonoMethod.
6194         (mono_class_get_inflated_method): Actually inflate the method here
6195         if it's not already inflated; we use the MonoMethodInflated's new
6196         `inflated' field as a cache.
6197
6198 2004-12-26  Martin Baulig  <martin@ximian.com>
6199
6200         * class.c
6201         (inflate_generic_class): Moved some code out of inflate_generic_type().
6202         (mono_class_inflate_generic_method): If we're already inflated,
6203         inflate the context and use the declaring method; ie. make sure
6204         the declaring method of an inflated method is always the generic
6205         method definition.
6206         (mono_class_create_from_typedef): Create
6207         `class->generic_container->context->gclass'.
6208
6209 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
6210
6211         * metadata-internals.h, marshal.c, reflection.c: More
6212         MonoGHashTable->GHashTable.
6213
6214         * domain-internals.h, class.c: Change MonoGHashTable's into
6215         GHashTables for some cases where no gc stuff is used
6216
6217         All users: update apis
6218
6219 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
6220
6221         * metadata.c (builtin_types): Make this `const'. Makes this get
6222         put into the shareable section.
6223         (mono_metadata_init): Casts to make gcc happy.
6224
6225 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
6226
6227         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
6228
6229 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
6230
6231         * icall.c: Added an internal call to retrieve the position and length
6232         of assembly-level declarative security attributes (RequestMinimum, 
6233         RequestOptional and RequestRefuse). This is used by the Assembly class
6234         to re-create the corresponding permission sets.
6235
6236 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
6237
6238         * marshal.c: fix the stelemref wrapper to be type correct
6239         (and faster).
6240
6241 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
6242
6243         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
6244         to do key & 0x7fffffff. Hashtable already does this. It just
6245         results in longer code.
6246
6247 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
6248
6249         * appdomain.c: Bump corlib version.
6250         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
6251         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6252         * reflection.c|h: Add functions to get declarative security infos
6253         (blob position and length) for assemblies, classes and methods.
6254
6255 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
6256
6257         * reflection.c: sort the constant table (bug #70693).
6258
6259 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
6260
6261         * object-internals.h, threads.c, domain.c: add accessors for
6262         the MonoThread and MonoDomain tls keys.
6263
6264 2004-12-18  Martin Baulig  <martin@ximian.com>
6265
6266         * class.c (inflate_generic_type): If we're inflating a generic
6267         instance, set `ngclass->context->container = context->container';
6268         ie. the container we inflated into.
6269
6270         * metadata.c (mono_metadata_parse_generic_param): Reflect above
6271         inflate_generic_type() changes.
6272
6273 2004-12-17  Martin Baulig  <martin@ximian.com>
6274
6275         * class-internals.h
6276         (MonoGenericClass): Replaced `MonoType *generic_type' with
6277         `MonoClass *generic_class'.  Removed `dynamic_info'; if
6278         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
6279         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
6280
6281 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
6282
6283         * exception.c (mono_exception_from_token): New helper function.
6284
6285 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
6286
6287         * assembly.c (mono_assembly_load_with_partial_name): Call 
6288         mono_assembly_loaded before invoking the preload hooks. Fixes
6289         #70564.
6290
6291         * object-internals.h (MonoThread): Change culture_info and 
6292         ui_culture_info into an array.
6293
6294         * threads.c: Cache culture info objects from more than one appdomain.
6295
6296         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
6297         current UI culture.
6298
6299 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
6300
6301         * threads.h threads.c appdomain.c: Clear the culture_info field of
6302         all threads during unloading if they point to an object in the dying
6303         appdomain.
6304
6305 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
6306
6307         * culture-info.h (TextInfoEntry): New struct
6308         * object-internals.h: sync with managed
6309         * locales.c: fill the `text_info_data' field
6310         * culture-info-tables.h: update
6311
6312 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
6313
6314         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
6315         collector.
6316
6317 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
6318
6319         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
6320         (ves_icall_ModuleBuilder_getMethodToken): Ditto
6321
6322 2004-12-12  Martin Baulig  <martin@ximian.com>
6323
6324         * mono-debug-debugger.c (write_type): If we're an enum and the
6325         builtin types have already been initialized, call mono_class_init().
6326
6327 2004-12-11  Martin Baulig  <martin@ximian.com>
6328
6329         * metadata.c (mono_metadata_load_generic_params): Added
6330         `MonoGenericContainer *parent_container' argument; automatically
6331         compute `container->is_method'; pass the correct owner to
6332         get_constraints().      
6333
6334         * reflection.c (compare_genericparam): Sort the GenericParam table
6335         according to increasing owners. 
6336
6337 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
6338
6339         * profiler.c: allow disabling the default profiler.
6340
6341 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
6342
6343         * decimal.c, icall.c: allow disabling System.Decimal support.
6344
6345 2004-12-09  Marek Safar <marek.safar@seznam.cz>
6346
6347         * reflection.c: Add support for null attribute arguments.
6348
6349 2004-12-09  Martin Baulig  <martin@ximian.com>
6350
6351         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
6352         names to get rid of compiler warnings.
6353
6354 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6355
6356         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
6357         mono_marshal_load_type_info (). Fixes #69625.
6358         (mono_marshal_get_ptr_to_struct): Likewise.
6359
6360 2004-12-08  Martin Baulig  <martin@ximian.com>
6361
6362         * mono-debug.h: Bumped version number to 47.
6363
6364         * mono-debug-debugger.c
6365         (mono_debugger_event_handler, mono_debugger_event): Take two
6366         guint64 arguments insteed of a gpointer and a guint32.  
6367
6368 2004-12-08  Martin Baulig  <martin@ximian.com>
6369
6370         * debug-mono-symfile.h
6371         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
6372         `address' to `native_offset'.
6373
6374 2004-12-08  Martin Baulig  <martin@ximian.com>
6375
6376         * class.c (mono_class_create_from_typespec): Only inflate if we
6377         either have `context->gclass' or `context->gmethod'.
6378
6379 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6380
6381         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
6382
6383         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
6384
6385         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
6386
6387         * reflection.c (mono_assembly_get_object): Remove the workaround put
6388         in for the release.
6389         
6390         * appdomain.c: Use the corlib_internal field from MonoAssembly.
6391
6392         * appdomain.c: Bump corlib version.
6393
6394         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
6395         be visible in other appdomains.
6396
6397 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
6398
6399         * threads.c: Interlocked inc and dec for longs were messed up,
6400         use a KISS based impl for this. Fixes 70234
6401
6402 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
6403
6404         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
6405
6406 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6407
6408         * icall.c: fix to follow policy not to allow struct
6409         arguments in icalls.
6410
6411 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6412
6413         * process.c: make the patch that handles spaces in file paths work
6414         on mono/windows too.
6415
6416 2004-12-06  Martin Baulig  <martin@ximian.com>
6417
6418         * class.c (mono_class_create_generic): Call
6419         mono_class_setup_supertypes() if we're dynamic.
6420         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
6421
6422 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
6423
6424         * object-internals.h: Add new fields to MonoThread.
6425
6426         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6427
6428         * icall.c threads-types.h threads.c: Add new icalls.
6429
6430         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
6431
6432         * object-internals.h (MonoReflectionAssembly): Sync object layout with
6433         managed side.
6434
6435         * appdomain.c: Bump corlib version.
6436
6437         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
6438         internal assemblies. Fixes #69181.
6439
6440 2004-12-05  Martin Baulig  <martin@ximian.com>
6441
6442         * class.c (mono_class_inflate_generic_signature): Make this a
6443         no-op if `context' is NULL or we don't have any type parameters;
6444         also copy `sentinelpos'.        
6445
6446 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
6447
6448         * image.c: Add unbox_wrapper_cache.
6449
6450         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
6451
6452         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
6453         function generator.
6454         
6455         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
6456         Fixes #70173.
6457
6458         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
6459         
6460 2004-12-04  Martin Baulig  <martin@ximian.com>
6461
6462         * loader.c (mono_method_get_signature_full): New public function;
6463         like mono_method_get_signature(), but with an additional
6464         `MonoGenericContext *' argument.
6465
6466         * class.c (mono_class_inflate_generic_signature): Formerly known
6467         as inflate_generic_signature(); make this public.
6468
6469 2004-12-04  Martin Baulig  <martin@ximian.com>
6470
6471         * metadata.c
6472         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
6473         instead of a `MonoGenericContainer *'.  
6474         (mono_metadata_parse_array_full): Likewise.
6475         (mono_metadata_parse_signature_full): Likewise.
6476         (mono_metadata_parse_method_signature_full): Likewise.
6477         (mono_metadata_parse_generic_inst): Likewise.
6478         (mono_metadata_parse_generic_param): Likewise.
6479         (mono_metadata_parse_mh_full): Likewise.
6480         (mono_type_create_from_typespec_full): Likewise.
6481
6482 2004-12-03  Martin Baulig  <martin@ximian.com>
6483
6484         * class-internals.h (MonoGenericContainer): Replaced the
6485         `MonoGenericContext * pointer with a `MonoGenericContext'
6486         structure and made it the first element.
6487
6488 2004-12-03  Martin Baulig  <martin@ximian.com>
6489
6490         * class.c
6491         (inflate_generic_type): Set the `context->container' when creating
6492         a new MonoGenericContext.
6493         (mono_class_inflate_generic_method): Likewise.
6494         (mono_class_create_from_typespec): Just use `context->container'
6495         to get the container.
6496
6497         * loader.c (method_from_methodspec): Set `context->parent' from
6498         `context->container' - and if that's a method container, use its
6499         parent.  Also set the `context->container' when creating a new
6500         MonoGenericContext.
6501         (mono_get_method_from_token): Use just `context->container' to get
6502         the container.
6503
6504         * metadata.c (do_mono_metadata_parse_generic_class): Also set
6505         `gclass->context->container'.
6506
6507         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
6508         the `context->container' when creating a new MonoGenericContext.
6509
6510 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
6511
6512         * reflection.c (compare_genericparam): Sort params with identical
6513         owner by their number. Fixes gen-111 on sparc.
6514
6515 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6516
6517         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
6518         around the domain changes.
6519
6520         * appdomain.c (mono_domain_unload): Handle the case when the thread
6521         calling Unload is itself being aborted during unloading. Fixes #70022.
6522
6523         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
6524
6525         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
6526         checkpoint_func as an icall so it gets a wrapper.
6527         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
6528         in the cross-appdomain wrappers too.
6529
6530         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6531
6532         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6533
6534         * reflection.c: Fix some memory leaks.
6535         
6536 2004-12-02  Martin Baulig  <martin@ximian.com>
6537
6538         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6539
6540         * metadata.c (generic_class_cache): New static hashtable.
6541         (mono_metadata_lookup_generic_class): New public method.
6542
6543 2004-12-02  Martin Baulig  <martin@ximian.com>
6544
6545         * class.c (mono_class_create_from_typedef): Call
6546         mono_class_setup_parent() and mono_class_create_mono_type() before
6547         parsing the interfaces.
6548
6549 2004-12-02  Martin Baulig  <martin@ximian.com>
6550
6551         * metadata.c (generic_inst_cache): New static hashtable.
6552         (mono_metadata_lookup_generic_inst): New public function.
6553         (mono_metadata_inflate_generic_inst): New public function.
6554         (mono_metadata_parse_generic_inst): New public function.
6555         (do_mono_metadata_parse_generic_class): Use the new
6556         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6557         since this'll also use the cache.
6558
6559         * reflection.c (mono_reflection_bind_generic_method_parameters):
6560         Use mono_metadata_lookup_generic_inst() to use the new cache.
6561
6562         * class.c (inflate_mono_type): Use
6563         mono_metadata_inflate_generic_inst() to inflate a generic
6564         instance; this'll also use the new cache.
6565
6566         * loader.c (method_from_methodspec): Use
6567         mono_metadata_parse_generic_inst() and
6568         mono_metadata_inflate_generic_inst() rather than parsing it
6569         manually, so we can use the new cache.
6570
6571 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6572
6573         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6574         the wait times out.
6575
6576 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6577
6578         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6579         iter->args based on whether parameters are passed in registers (i.e.
6580         MONO_ARCH_REGPARMS is defined)
6581
6582 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6583
6584         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6585         the exception message. Fixes #70070.
6586         (method_from_methodspec): Fix warnings.
6587
6588 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6589
6590         * process.c: (complete_path) return the path quoted
6591
6592 2004-12-01  Martin Baulig  <martin@ximian.com>
6593
6594         * class-internals.h (MonoGenericInst): New structure.
6595         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6596         `is_open' with `MonoGenericInst *inst'.
6597         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6598         `is_open' with `MonoGenericInst *inst'.
6599
6600 2004-11-30  Martin Baulig  <martin@ximian.com>
6601
6602         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6603
6604         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6605         to `generic_class_cache'.
6606
6607         * metadata.c
6608         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6609         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6610         (mono_generic_inst_is_valuetype): Renamed to
6611         mono_generic_class_is_valuetype().
6612
6613         * class-internals.h
6614         (MonoGenericInst): Renamed to MonoGenericClass.
6615         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6616         (MonoClass): Renamed `generic_inst' to `generic_class'.
6617         (MonoGenericContext): Renamed `ginst' to `gclass'.
6618
6619         * object-internals.h
6620         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6621
6622         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6623         mono_reflection_generic_class_initialize().
6624
6625         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6626         now known as "System.Reflection.MonoGenericClass".
6627         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6628
6629 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6630
6631         * class-internals.h: Added a flag field to MonoClass to cache the
6632         declarative security attributes actions associated with the class.
6633         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6634         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6635         applicable to the JITted method.
6636         * reflection.c|h: Added functions to extract (as flags) which security
6637         actions are available (declaratively) for a method, class or assembly.
6638         * metadata.c|h: Added functions to search the declarative security
6639         table in the metadata.
6640         
6641 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6642
6643         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6644         EXPORTEDTYPES are already in the class name cache, so there is no
6645         need to add extra code here to look at them. Just removes a bit of
6646         cruft.
6647
6648         (ves_icall_System_Environment_get_TickCount): No need for #if
6649         WINDOWS. We already have the code in io-layer.
6650
6651 2004-11-28  Martin Baulig  <martin@ximian.com>
6652
6653         * loader.c
6654         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6655         Fixes gen-112.cs.
6656
6657 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6658
6659         * assembly.c (do_mono_assembly_open): Instead of having a
6660         conditional WITH_BUNDLE, incorporate support for bundles here, by
6661         having a global `bundles' variable holding a pointer to the actual
6662         bundles. 
6663
6664         (mono_register_bundled_assemblies): New API call used by the
6665         bundle code. 
6666
6667         See mkbundle.1 for details.
6668         
6669 2004-11-27  Martin Baulig  <martin@ximian.com>
6670
6671         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6672         the vtable for generic methods.
6673
6674 2004-11-26  Martin Baulig  <martin@ximian.com>
6675
6676         * metadata.c
6677         (mono_metadata_generic_method_hash): New public function.
6678         (mono_metadata_generic_method_equal): Likewise.
6679
6680         * class-internals.h
6681         (MonoGenericContainer): Added `GHashTable *method_hash'.
6682
6683         * reflection.c (ReflectionMethodBuilder): Added
6684         `MonoGenericContainer *generic_container'.
6685         (reflection_methodbuilder_to_mono_method): Don't create a new
6686         MonoGenericContainer each time we're called.
6687         (mono_reflection_bind_generic_method_parameters): Use
6688         `container->method_hash' to cache the results so we don't create a
6689         different method if we're called several times with the same
6690         arguments.
6691
6692         * loader.c (method_from_methodspec): Use the new
6693         `container->method_hash' here, too.
6694
6695 2004-11-26  Martin Baulig  <martin@ximian.com>
6696
6697         * class.c (inflate_generic_signature): Correctly compute
6698         `res->has_type_parameters'.
6699         (mono_class_vtable): Use the `has_type_parameters' flag to
6700         determine whether we're a generic method.
6701
6702         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6703
6704 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6705
6706         * object.c (mono_runtime_run_main): Fix a small memory leak.
6707
6708 2004-11-25  Martin Baulig  <martin@ximian.com>
6709
6710         * class.c (set_generic_param_owner): Fixed the loop.
6711
6712 2004-11-25  Martin Baulig  <martin@ximian.com>
6713
6714         * object.c (mono_class_vtable): Don't create any JIT wrappers for
6715         generic methods.
6716
6717 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
6718
6719         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
6720         names. Fixes #69787.
6721
6722 2004-11-24  Martin Baulig  <martin@ximian.com>
6723
6724         * class.c (mono_class_create_generic_2): If we don't have a
6725         `ginst->parent', inflate `gklass->parent' to get our parent.
6726
6727 2004-11-24  Martin Baulig  <martin@ximian.com>
6728
6729         * reflection.c (compare_genericparam): Correctly sort the
6730         GenericParam table; fixes #69779.
6731
6732 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
6733
6734         * reflection.c: When writing a PE file, don't create a huge
6735         buffer in memory. Just write the arrays we have to the file.
6736         This reduces memory usage.
6737
6738         * metadata-internals.h: MonoDynamicStream pefile is no longer used
6739         globally.
6740
6741 2004-11-17  Martin Baulig  <martin@ximian.com>
6742
6743         * class.c (mono_class_init): Don't setup `class->parent' for
6744         dynamic instances; moved this to mono_class_generic_2().
6745         (mono_class_create_generic): Also set `klass->inited' for dynamic
6746         generic instances.
6747         (mono_class_create_generic_2): Don't do anything for dynamic
6748         generic instances.  Set `klass->parent' here and also call
6749         mono_class_setup_parent() here. 
6750
6751         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
6752         `MonoType *parent' argument; set `ginst->parent' before calling
6753         mono_class_create_generic_2(), so we set the correct parent.
6754
6755 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
6756
6757         * reflection.c: allow getting attributes from ModuleBuilder
6758         (used by ikvm).
6759
6760 2004-11-17  Martin Baulig  <martin@ximian.com>
6761
6762         * class.c (mono_class_create_from_typedef): If a type parameter is
6763         inherited from an outer class, set its owner to that class.
6764
6765 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
6766
6767         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
6768           for (int*) written size. This fixes bug #69592.
6769
6770 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
6771
6772         * icall.c: Added IsAuthenticodePresnet internal call.
6773         * image.c|h: New function that check a MonoImage for an Authenticode
6774         signature in the certificate PE data directory.
6775         * security.c|h: New internal call to ask the runtime if an 
6776         Authenticode signature seems referenced in the PE header.
6777
6778 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
6779
6780         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
6781
6782         * reflection.c (mono_image_create_pefile): Free the assembly streams
6783         after writing out the assembly file.
6784
6785         * object.c (mono_runtime_run_main): Fix small memory leak.
6786
6787         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
6788         property access modifiers. Fixes #69389.
6789
6790 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
6791
6792         * domain.c, object.c, object-internals.h, domain-internals.h,
6793         object.h, marshal.c: keep dynamic code info per domain.
6794
6795 2004-11-15  Martin Baulig  <martin@ximian.com>
6796
6797         * class.c (mono_type_get_name_recurse): Put type arguments in
6798         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
6799         see bug #68387.
6800
6801 2004-11-15  Martin Baulig  <martin@ximian.com>
6802
6803         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
6804         (mono_class_setup_vtable): When computing `the_cname' for a
6805         generic instance, don't include the namespace since we'd otherwise
6806         add it twice.
6807
6808 2004-11-15  Martin Baulig  <martin@ximian.com>
6809
6810         * class.c (mono_class_create_generic): Changed return type to void.
6811         (mono_class_create_generic_2): New public function; setup
6812         `class->method', `class->field' and `class->interfaces' here
6813         instead of in mono_class_init().
6814
6815         * class.h (mono_class_create_generic): Moved to class-internals.h.
6816
6817 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
6818
6819         * reflection.c (mono_image_create_pefile): take a file HANDLE.
6820         rather than writing to memory, write to this file. Right now,
6821         we are just writting into a buffer, and copying that. However
6822         we can avoid the buffer later.
6823
6824         (mono_dynamic_stream_reset): new function
6825
6826         * icall.c, object-internals.h: update for the above.
6827
6828 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
6829
6830         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
6831         have been using gc'd memory. First it is slower, unlikely
6832         the comment in the source code said, secondly, it increases
6833         our footprint to do it in the gc.
6834
6835         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
6836         the method so that it does not have to copy to managed code.
6837
6838 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
6839
6840         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
6841
6842 2004-11-12  Martin Baulig  <martin@localhost>
6843
6844         * reflection.c (mono_image_create_token): Allow generic method
6845         definitions here, since they may appear in an `.override'; see
6846         gen-98/gen-99 for an example.
6847
6848 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
6849
6850         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
6851         #69365.
6852
6853         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
6854         descriptive.
6855
6856 2004-11-11  Martin Baulig  <martin@ximian.com>
6857
6858         * class.c (mono_class_setup_vtable): In an explicit interface
6859         implementation, the method name now includes the arity.
6860
6861 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
6862
6863         * object.c (mono_array_full_copy): Fix warning.
6864
6865 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
6866
6867         * appdomain.c: Removed look_for_method_by_name(). Use the new method
6868         mono_class_get_method_from_name() instead.
6869         
6870         * class-internals.h: Added two new types of wrappers. 
6871         Added MonoRemotingTarget enum. Added new trampoline function type, which
6872         takes an additional MonoRemotingTarget value as parameter, so it is
6873         possible to request a trampoline for a specific target.
6874         
6875         * class.c: Added new mono_class_get_method_from_name() method.
6876         
6877         * class.h: In MonoRemoteClass, we can have now to vtables, one for
6878         general remoting sinks and one specific for cross domain calls.
6879         
6880         * debug-helpers.c: Added new wrapper names.
6881         
6882         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
6883         of a remote class.
6884         
6885         * image.c: Porperly delete value objects form the remoting invoke hashtable.
6886         
6887         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
6888         with several other methods (mono_marshal_get_xappdomain_dispatch,
6889         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
6890         and others) can generate a fast remoting wrapper for cross domain calls.
6891         More information can be found in docs/remoting.
6892         Other changes: Removed mono_find_method_by_name, and used
6893         mono_class_get_method_from_name instead.
6894         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
6895         is stored in the remoting invoke hashtable.
6896         
6897         * marshal.h: published the new method for getting the xdomain wrapper,
6898         and also added a method for getting the adequate wrapper for a given
6899         method and target.
6900         
6901         * object-internals.h, object.c: Added a couple of methods for capying and
6902         cloning arrays.
6903         Modified mono_install_remoting_trampoline, which takes the new remoting
6904         trampoline that has a remoting target as parameter.
6905         mono_class_proxy_vtable now also takes a remoting target as parameter, and
6906         will return the most suitable vtable for the target.
6907         Added mono_remote_class_vtable, which returns the vtable of a remote class
6908         (which can be the normal remoting vtable or the xdomain vtable).
6909         
6910         * threads.c: the xdomain invoke and dispatch wrappers must also be
6911         protected against interruptions.
6912
6913 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6914
6915         * icall.c: use memmove in BlockCopyInternal when the source and
6916         destination arrays are the same.
6917
6918 2004-11-09  Martin Baulig  <martin@ximian.com>
6919
6920         * class-internals.h (MonoGenericContainer): Removed `method' and
6921         `signature', replaced them with `is_method' and `is_signature'
6922         flags.  Added `context'.
6923
6924         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
6925         instead of a `MonoGenericContainer *'.
6926
6927         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
6928         for dynamic type parameters.
6929         (mono_metadata_load_generic_params): Setup `container->context'.
6930
6931         * reflection.c (mono_reflection_setup_generic_class): Setup
6932         `tb->generic_container->context'.
6933         (do_mono_reflection_bind_generic_parameters): Use
6934         mono_class_inflate_generic_type() to correctly inflate types,
6935         rather than using our own hack just for MONO_TYPE_VAR.
6936
6937 2004-11-09  Martin Baulig  <martin@ximian.com>
6938
6939         * class.c (mono_class_inflate_generic_method): Small fix; don't
6940         crash here.
6941
6942         * icall.c
6943         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
6944         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
6945         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
6946         (ves_icall_Type_BindGenericParameters): Likewise.
6947         (ves_icall_Type_get_IsGenericInstance): Likewise.
6948         (ves_icall_Type_GetGenericParameterPosition): Likewise.
6949         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
6950         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6951         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6952
6953 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
6954
6955         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
6956         assembly versions and public key tokens. Fixes #69113.
6957
6958 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
6959
6960         * metadata.c: fix bug introduced with the type cache changes
6961         on 2004-11-06.
6962
6963 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
6964
6965         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
6966         the MonoClass pointer instead of the token in exception clauses.
6967         * reflection.c: updates for the above and make the code not depend
6968         on the structure of MonoExceptionClause.
6969
6970 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
6971
6972         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
6973         Add support for dynamic assemblies. Fixes #69114.
6974
6975         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
6976
6977 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
6978
6979         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
6980         since most only those methods use it. the code member of
6981         MonoMethodPInvoke was dead, so that can be removed too. Also,
6982         remove inline_count (again, not used), and move slot so that it
6983         can share bits with some other flags. This saves 8 bytes in the
6984         structure and gives us about 50 kb back for mcs helloworld.cs
6985
6986         * *.[ch]: Do naming changes for the above.
6987
6988         * loader.c (mono_method_get_header): Lazily init the header
6989         on first access.
6990         (mono_get_method_from_token): don't init the header here
6991         (mono_free_method): the header may never be allocated
6992
6993         Overall, this saves 150 kb of unmanaged allocations
6994         for mcs helloworld.cs. That accounts for 10% of the unmanaged
6995         memory at runtime.
6996         
6997         * loader.c, loader.h (mono_method_get_header): new accessor.
6998
6999         * *.[ch]: use the above method. Prepares us to lazily load
7000         the header.
7001
7002         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
7003         three warnings, which are actual bugs (see 69206).
7004
7005         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
7006         unused. Saves a cool 4 bytes / method.
7007
7008 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
7009
7010         * metadata.c (builtin_types): Add types for System.Object here.
7011         (mono_metadata_parse_type_full): Cache MonoType*'s that are
7012         for a class or valuetype from klass->this_arg or klass->byval_arg.
7013
7014         On mcs for a hello world, this gets us down from 21836 MonoType's
7015         to 14560.
7016
7017         (mono_metadata_free_type): Account for the above change.
7018
7019 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
7020
7021         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
7022         exception instead of asserting if name is null.
7023         (ves_icall_System_AppDomain_GetData): Ditto.
7024
7025 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
7026
7027         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
7028         EnumBuilder.
7029
7030         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
7031         Return NULL when the domain does not have entry_assembly set.
7032
7033         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
7034         Add a 'resource_modules' argument.
7035         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
7036
7037         * reflection.c (mono_reflection_create_runtime_class): Move setting
7038         of wastypebuilder here, so mono_get_type_object () returns a MonoType
7039         for enums too.
7040
7041         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
7042         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
7043         Throw an ArgumentNullException if 'ptr' is null.
7044
7045         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
7046         assemblies here. Fixes #69020.
7047
7048 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
7049
7050         * reflection.c (build_compressed_metadata): Fix the previous patch for
7051         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
7052         the stack.
7053
7054 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
7055
7056         * assembly.c (mono_assembly_names_equal): Allow a match if one of
7057         the cultures is false. Fixes #69090.
7058
7059         * reflection.c (build_compressed_metadata): Fix invalid memory read 
7060         detected by valgrind.
7061         
7062         * reflection.c (mono_reflection_get_type): Avoid triggering a 
7063         TypeResolve multiple times for the same type. Fixes #65577.
7064
7065 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
7066
7067         * marshal.c: Avoid using ldftn to call managed functions. It is
7068         much slower than just a call.
7069
7070         * reflection.c (mono_module_get_object): free the basename we
7071         allocate here from glib.
7072         
7073         * reflection.c (ensure_runtime_vtable): make sure to free
7074         overrides.  Also, we were allocating an array of MonoMethod not an
7075         array of MonoMethod*.
7076
7077         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
7078
7079         * image.c (mono_image_close): free image->guid here.
7080
7081 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
7082
7083         * reflection.c: Fix some spec conformance issues with the PE file
7084         structures so mcs compiled apps run on the Net 2.0 beta.
7085
7086 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
7087
7088         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
7089         Implement this. Fixes #67264.
7090
7091         * debug-helpers.h debug-helpers.c marshal.c: Move 
7092         mono_find_method_by_name to debug-helpers.c.
7093
7094 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
7095
7096         * object.c (mono_release_type_locks): type_initialization_hash is
7097         a GHashTable.
7098
7099         * reflection.c object.c object-internals.h: Fix warnings.
7100
7101         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
7102         without accessors. Fixes #61561.
7103
7104         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
7105         application base from the root domain if not set. Fixes #65641.
7106         (mono_runtime_init): Fix warning.
7107
7108 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7109
7110         * appdomain.c: call mono_thread_pool_init.
7111         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
7112         of worker threads based on the number of CPUs and the environment
7113         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
7114         for non-windows (windows) systems.
7115
7116 2004-10-27  Chris Toshok  <toshok@ximian.com>
7117
7118         * mono-debug-debugger.c (write_class): don't call mono_class_init
7119         here, as even with the check for (!klass->init_pending), we get
7120         into a situation where we're hitting cycles in class
7121         initialization.  Fixes #68816.
7122
7123 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
7124
7125         * image.c: Avoid overwriting values in the loaded_images_hash when an
7126         assembly is loaded multiple times. Fixes #61152.
7127
7128         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
7129         so multiple satellite assemblies for the same name can be loaded.
7130         Fixes #68259.
7131
7132         * mono_domain_assembly_preload: Actually return the loaded assembly, 
7133         not NULL.
7134
7135         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
7136         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
7137
7138         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
7139         pending finalizers are not invoked after the appdomain has been 
7140         unloaded. Fixes #67862.
7141
7142 2004-10-22  Martin Baulig  <martin@ximian.com>
7143
7144         * mono-debug-debugger.c
7145         (mono_debugger_runtime_invoke): Don't box valuetypes.
7146
7147 2004-10-22  Chris Toshok  <toshok@ximian.com>
7148
7149         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
7150         don't hide private methods.
7151
7152 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
7153
7154         * icall.c: Allows the runtime to "share" (when known) the public key
7155         token of an assembly. This avoid the need to recalculate the token 
7156         (from the public key) in managed code.
7157
7158 2004-10-21  Chris Toshok  <toshok@ximian.com>
7159
7160         * debug-helpers.c (append_class_name): argh, revert last patch.
7161         
7162 2004-10-21  Chris Toshok  <toshok@ximian.com>
7163
7164         * debug-helpers.c (append_class_name): use '+' as the delimiter,
7165         not '/', so that it matches what the debugger uses to look up
7166         methods.
7167
7168 2004-10-21  Martin Baulig  <martin@ximian.com>
7169
7170         * mono-debug-debugger.c (mono_debugger_throw_exception): New
7171         public method; this is called each time an exception is thrown and
7172         allows the debugger to use exception catch points.
7173
7174 2004-10-21  Martin Baulig  <martin@ximian.com>
7175
7176         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
7177         the stack pointer and the exception object in some struct and pass
7178         that to the debugger.
7179
7180 2004-10-21  Chris Toshok  <toshok@ximian.com>
7181
7182         * mono-debug-debugger.c (do_write_class): add instance/static
7183         event support.  We don't expose "raise" or "other" yet.
7184         (event_is_static): new method.
7185
7186 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
7187
7188         * mono-debug-debugger.c
7189         (mono_debugger_handle_exception): Remove
7190         bogus return value for fussy compilers.
7191
7192 2004-10-20  Martin Baulig  <martin@ximian.com>
7193
7194         * mono-debug-debugger.c
7195         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
7196         (mono_debugger_handled_exception): Likewise.
7197
7198 2004-10-20  Martin Baulig  <martin@ximian.com>
7199
7200         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7201         MONO_DEBUGGER_EVENT_EXCEPTION.
7202
7203         * mono-debug-debugger.c (mono_debugger_handle_exception): New
7204         public function to send the debugger a notification for an
7205         exception and inform it about a catch/finally clause.
7206
7207 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
7208
7209         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
7210         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
7211         fix 2.95 build. 
7212
7213         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
7214
7215 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
7216
7217         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
7218         marshalled as [In,Out]. Fixes #58325.
7219
7220 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
7221
7222         * reflection.c (mono_method_body_get_object): Implement some fields.
7223
7224 2004-10-12  Martin Baulig  <martin@ximian.com>
7225
7226         * reflection.c (mono_reflection_bind_generic_parameters): Small
7227         fix, correctly retrieve our parent from a generic instance.
7228
7229 2004-10-12  Martin Baulig  <martin@ximian.com>
7230
7231         * metadata.c (mono_metadata_generic_param_equal): We always have
7232         an owner.
7233
7234         * class.c
7235         (mono_class_from_generic_parameter): We need to have an owner.
7236         (my_mono_class_from_generic_parameter): Likewise.
7237
7238         * reflection.c (mono_reflection_setup_generic_class): Renamed to
7239         mono_reflection_create_generic_class() and added a new
7240         mono_reflection_setup_generic_class().  
7241         (mono_reflection_initialize_generic_param): If we're a nested
7242         generic type and inherited from the containing class, set our
7243         owner to the outer class.
7244
7245 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
7246
7247         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
7248
7249         * reflection.c (mono_method_body_get_object): New function to create
7250         a MethodBody object.
7251
7252         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
7253
7254 2004-10-11  Martin Baulig  <martin@ximian.com>
7255
7256         * metadata.c (_mono_metadata_type_equal): Renamed to
7257         do_mono_metadata_type_equal() and made static.
7258
7259 2004-10-11  Martin Baulig  <martin@ximian.com>
7260
7261         * appdomain.c: Bump corlib version number to 28.
7262
7263 2004-10-10  Martin Baulig  <martin@ximian.com>
7264
7265         * class-internals.h
7266         (MonoGenericInst): Added `MonoGenericContainer *container'.
7267         (MonoGenericMethod): Likewise.
7268         (MonoGenericContext): Likewise.
7269         (MonoGenericParam): Added `MonoGenericContainer *owner'.
7270
7271         * metadata.c
7272         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
7273         (do_mono_metadata_parse_generic_inst): Likewise.
7274         (mono_metadata_parse_type_full): New public method.  This is the actual
7275         mono_metadata_parse_type() implementation - with an additional
7276         `MonoGenericContainer *' argument.
7277         (mono_metadata_parse_array_full): Likewise.
7278         (mono_metadata_parse_signature_full): Likewise.
7279         (mono_metadata_parse_method_signature_full): Likewise.
7280         (mono_metadata_parse_mh_full): Likewise.
7281         (mono_type_create_from_typespec): Likewise.
7282         (mono_metadata_interfaces_from_typedef_full): New public method;
7283         this is similar to the other _full() methods, but we take a
7284         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
7285         (mono_metadata_parse_generic_param): Take an additional
7286         `MonoGenericContainer *' argument and lookup the MonoGenericParam
7287         from that container.
7288         (mono_metadata_generic_param_equal): New static method to compare
7289         two type parameters.
7290         (_mono_metadata_type_equal): New static method; takes an
7291         additional `gboolean signature_only' argument - if true, we don't
7292         compare the owners of generic parameters.
7293         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
7294         with a TRUE argument - do a signature-only comparision.
7295
7296         * loader.c: Use the new _full() methods and pass the
7297         MonoGenericContainer to them.
7298
7299         * object-internals.h (MonoReflectionTypeBuilder): Added
7300         `MonoGenericContainer *generic_container' field.
7301         (MonoReflectionMethodBuilder): Likewise.
7302
7303 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
7304
7305         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
7306         case initial images of dynamic assemblies.
7307
7308         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
7309
7310         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
7311
7312         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
7313         length of event->other array.
7314         (typebuilder_setup_events): Ditto.
7315
7316         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
7317         'assembly_by_name' and add an 'assemblies' list.
7318
7319         * assembly.h assembly.c: Add a new search hook for determining whenever
7320         an assembly is already loaded. Use this instead of searching in the
7321         loaded_assemblies list.
7322
7323         * domain.c appdomain.c: Implement the new search hook so loaded 
7324         assemblies are now scoped by appdomain. Fixes #67727.
7325
7326 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
7327
7328         * threads.c (mono_thread_attach): Initialize synch_lock field so
7329         mono_thread_detach works again.
7330
7331         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
7332         'lib' too. Fixes #63130.
7333
7334 2004-10-06  Jackson Harper  <jackson@ximian.com>
7335
7336         * culture-info-tables.h: regenerated.
7337
7338 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
7339
7340         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
7341         implemented by other interfaces in the result. Fixes #65764.
7342         
7343         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7344         Handle unloadable modules without crashing.
7345
7346         * image.c (load_modules): Revert the previous patch since modules must
7347         have a fixed index inside the array.
7348         
7349         * image.c (load_modules): Don't include native modules in the modules
7350         array.
7351
7352 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
7353
7354         * reflection.h: Add param_defaults field.
7355
7356         * reflection.c: Add support for parameter defaults in dynamic methods.
7357         Fixes #64595.
7358
7359         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
7360         an empty string when a type has no namespace. Fixes #64230.
7361
7362 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
7363
7364         * tabledefs.h: Added "internal" security actions to support non-CAS
7365         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
7366         Note: they do not seems to be used anymore in 2.0 (new metadata format)
7367
7368 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7369
7370         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
7371         constructor of abstract class. Fixes #61689.
7372
7373 2004-10-04  Martin Baulig  <martin@ximian.com>
7374
7375         * class-internals.h (MonoGenericContainer): New type.
7376         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
7377         `MonoGenericContainer *generic_container'.
7378         (MonoClass): Replaced `gen_params' and `num_gen_params' with
7379         `MonoGenericContainer *generic_container'.
7380
7381         * metadata.c (mono_metadata_load_generic_params): Return a
7382         `MonoGenericContainer *' instead of a `MonoGenericParam *';
7383         removed the `num' argument.
7384
7385 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
7386
7387         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
7388         for dynamic images.
7389
7390         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
7391         machine fields.
7392
7393         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
7394
7395         * reflection.c: Save pe_kind and machine values into the generated
7396         image file.
7397
7398         * appdomain.c: Bump corlib version number.
7399
7400         * object-internals.h: Reorganize layout of LocalBuilder.
7401
7402         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
7403         New helper function.
7404
7405         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
7406         created MonoType for dynamic types. Fixes #66180.
7407
7408 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
7409
7410         * threadpool.c: the ares hashtable needs a critical section around it.
7411         this prevents some nasty segfaults
7412
7413 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
7414
7415         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
7416         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
7417         bug 67324).
7418         
7419 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7420
7421         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
7422         
7423 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
7424
7425         * image.c: Always canonicalize image file names, to avoid loading
7426         the same assembly twice when referenced using a relative path.
7427
7428 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7429
7430         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
7431
7432         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
7433
7434         * marshal.c: Fix warnings.
7435
7436 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
7437
7438         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
7439         attempting to marshal the delegate_trampoline as the method_addr.
7440         This patch has a static hashtable of marshalled delegates so that 
7441         we can map delegate_trampoline addresses back to delegates.  This
7442         allows a delegate passed to managed code to be passed back into native
7443         code.  Fixes #67039
7444
7445 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7446
7447         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
7448
7449         * reflection.c (method_encode_code): Align method headers properly.
7450         Fixes #66025.
7451
7452 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7453
7454         * marshal.c: In the runtime invoke wrapper, reset the abort
7455         exception if it is cached. This avoids the automatic rethrowal of 
7456         the exception after the catch of the wrapper. Also check for pending
7457         interruptions before calling the managed method. This is done using
7458         the new method emit_thread_force_interrupt_checkpoint, since the
7459         normal checkpoint method is ignored when running the invoke wrapper.
7460         * object.c: If the abort exception is rethrown, set the abort_exc
7461         field of the thread, so it will be rethrown aftere every catch.
7462         * threadpool.c: Only run an interruption checkpoint if what has been
7463         requested is a stop of the thread (aborts will be ignored).
7464         * threads.c: By default, a thread will now never be interrumped while
7465         running the runtime invoke wrapper (this ensures that runtime_invoke
7466         will always return to the caller if an exception pointer is provided).
7467         There is a new special method mono_thread_force_interruption_checkpoint()
7468         to force an interruption checkpoint even if running a protected
7469         wrapper, which is used by the same runtime invoke wrapper to do a check
7470         at a safe point.
7471
7472 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7473
7474         * object.c, object-internals.h: Implemented mono_release_type_locks,
7475         which releases the cctor locks held by a thread.
7476         * threads.c, threads.h: In thread_cleanup, release cctor locks held
7477         by a thread. Added mono_thread_exit() method to be used to safely stop
7478         a thread.
7479
7480 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7481
7482         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7483         Move null check before dereference.  Avoid indexing beyond the end
7484         of the 'modules' array.
7485
7486 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7487
7488         * metadata-internals.h (MonoImage): Add module_count field.
7489         * image.c (load_modules): Set image->module_count.
7490         (mono_image_load_file_for_image): Use image->module_count.
7491         * reflection.c (mono_image_load_module): Append to image->modules array 
7492         of dynamic assembly.
7493         (mono_module_get_object): Fix loop to actually increment index.
7494         Use image->module_count.
7495         * assembly.c (mono_assembly_load_references): Use image->module_count.
7496         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7497         Likewise.
7498
7499 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7500
7501         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
7502         Avoid assert on generic types.
7503
7504 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
7505
7506         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
7507
7508         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
7509
7510         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
7511         function to convert a MarshalSpec structure to its managed counterpart.
7512
7513         * reflection.c: Fix warnings.
7514         
7515         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
7516         field.
7517
7518         * icall.c (mono_create_icall_signature): Fix build.
7519
7520 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
7521
7522         * icall.c: Add MakePointType icall.
7523
7524         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
7525         warnings.
7526
7527 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7528
7529         * threadpool.c: reuse allocated slots in the queue.
7530
7531 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7532
7533         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7534
7535         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7536
7537         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7538         previous change.
7539
7540         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7541         ThrowOnUnmappableChar.
7542
7543         * icall.c (ves_icall_Type_GetPacking): New icall.
7544
7545 2004-09-24  Martin Baulig  <martin@ximian.com>
7546
7547         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7548
7549 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7550
7551         * appdomain.c:
7552         (mono_domain_set): allow setting a domain that is being unloaded.
7553         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7554         being unloaded.
7555
7556 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7557
7558         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7559         the GetCustomAttributes icall.
7560
7561 2004-09-23  Martin Baulig  <martin@ximian.com>
7562
7563         * object-internals.h (MonoReflectionGenericParam): Replaced
7564         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7565         with `guint32 attrs'.
7566
7567 2004-09-23  Martin Baulig  <martin@ximian.com>
7568
7569         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7570
7571 2004-09-23  Martin Baulig  <martin@ximian.com>
7572
7573         * object-internals.h (GenericParameterAttributes): New enum.
7574
7575 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7576
7577         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7578         
7579         * class.c (init_events): Fill out event->other field.
7580
7581         * class.c: Fix warnings.
7582
7583         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7584
7585 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7586
7587         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7588         walk which doesn't supply the IL offset.
7589
7590 2004-09-22  Martin Baulig  <martin@ximian.com>
7591
7592         * reflection.c (mono_reflection_setup_internal_class): If we're
7593         System.ValueType, System.Object or System.Enum, set
7594         `klass->instance_size' and create the vtable.
7595         (mono_reflection_create_internal_class): If we're an enum type,
7596         get the base class from our current corlib.
7597
7598 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7599
7600         * reflection.h (MonoResolveTokenError): New type.
7601
7602         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7603         icall.
7604
7605         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7606
7607 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7608
7609         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7610         Support also calling constructors, but only for already allocated objects.
7611
7612 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7613
7614         * reflection.c (type_get_qualified_name): If the klass is null
7615         return the typename to avoid a NullRefEx.
7616         (encode_cattr_value): Get the qualified name of the boxed type,
7617         not the underlying enumtype.  Fixes #62984.
7618
7619 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7620
7621         * marshal.c: Fix problems with previous checkin.
7622
7623 2004-09-21    <vargaz@freemail.hu>
7624
7625         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7626         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7627
7628         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7629
7630 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7631
7632         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7633         should only return a type for pointers, arrays, and passbyref types.
7634         Fixes bug #63841.
7635
7636 2004-09-21  Martin Baulig  <martin@ximian.com>
7637
7638         * domain.c (mono_debugger_check_runtime_version): New public
7639         function.
7640
7641         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7642
7643 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7644
7645         * reflection.c: Added missing sort to the declarative security 
7646         attributes table. MS implementation stops seeing the attributes if the
7647         token number regress in the table (as shown by ildasm and permview).
7648
7649 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7650
7651         * object-internals.h (MonoReflectionModule): Add 'token' field.
7652         
7653         * reflection.c (mono_reflection_get_token): Add support for Module
7654         and Assembly.
7655         (mono_module_get_object): Set 'token' field.
7656         (mono_module_file_get_object): Set 'token' field.
7657
7658         * icall.c: Add new Assembly and Module icalls.
7659
7660         * appdomain.c: Bump corlib version.
7661
7662 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7663
7664         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7665         tokens of metadata objects.
7666
7667         * reflection.h reflection.c (mono_reflection_get_token): New function
7668         to obtain the token of a metadata object.
7669
7670         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7671
7672 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7673
7674         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7675         
7676         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7677
7678 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7679
7680         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7681         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7682         AssemblyBuilder to access the permissions set in the class lib.
7683         * reflection.c: Added security attributes encoding step in 
7684         mono_image_build_metadata.
7685         * tabledefs.h: Added new security actions defined in 2.0:
7686         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7687
7688 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7689
7690         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7691         macro parameter.
7692
7693 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7694  
7695         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7696           finalized. There where random SIGSEVs at program termination, when
7697           an object being finalized was trying to do a string comparison and
7698           the current culture was already finalized.
7699  
7700 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7701
7702         * threads.c: call thread_cleanup before finishing the thread if we get
7703         there.
7704
7705 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
7706
7707         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
7708         assemblies from the parent. Fixes #65665.
7709
7710 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
7711
7712         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
7713         modifiers.
7714
7715 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
7716
7717         * reflection.h: add prototype for mono_get_dbnull_object
7718         * reflection.c: add prototypes for get_default_param_value_blobs 
7719         and mono_get_object_from_blob for fussier compilers
7720
7721 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
7722  
7723         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
7724         false deadlock checks in class initialization.
7725  
7726 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
7727
7728         * image.c (mono_image_addref): Fix comment.
7729
7730         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
7731         possible.
7732
7733 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
7734
7735         * reflection.c (mono_param_get_objects): Modified to return
7736         ParameterInfo.DefaultValue object.
7737
7738         (get_default_param_value_blobs):
7739         (mono_get_object_from_blob):
7740         (mono_get_dbnull_object): New helper routines. 
7741
7742         * object.c (mono_get_constant_value_from_blob): New helper routine
7743         carved out from get_default_field_value ()
7744
7745         * object-internals.h (mono_get_constant_value_from_blob): Added
7746         function declaration.
7747
7748 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
7749
7750         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
7751         referenced assemblies. Fixes #62135.
7752
7753         * exception.h exception.c (mono_get_exception_file_not_found2): New
7754         helper function.
7755
7756 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
7757
7758         * class.h class.c: Add mono_type_get_underlying_type ().
7759
7760 2004-09-09  Geoff Norton <gnorton@customerndna.com>
7761
7762         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
7763         Fix GetTypes() to support dynamically created assemblies.
7764
7765 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
7766
7767         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
7768         
7769         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
7770         previous patch.
7771
7772         * reflection.h reflection.c loader.c: Allow dynamic construction of
7773         pinvoke methods. Fixes #65571.
7774         
7775         * reflection.c (mono_reflection_get_type): Revert previous change since
7776         it causes regressions.
7777
7778 2004-09-08  Martin Baulig  <martin@ximian.com>
7779
7780         * class.c (class_compute_field_layout): Don't call
7781         mono_class_layout_fields() for open generic instances.
7782
7783 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
7784         * threads.c appdomain.c: fix typo in GC macro
7785
7786 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7787
7788         * threads.c: don't call mono_thread_detach() in start_wrapper(),
7789         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
7790
7791 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
7792
7793         * image.c (mono_image_close): Applied patch from 
7794         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
7795         assembly is loaded multiple times from data.
7796         
7797         * image.c (mono_image_open): Fix warning.
7798
7799 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7800
7801         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
7802         once. Fixes #58334.
7803         
7804         * reflection.c (mono_reflection_create_runtime_class): Initialize
7805         klass->nested_classes. Fixes #61224.
7806
7807 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
7808
7809         * threads.c: sched_yield() on exit, to allow threads to quit.
7810
7811 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7812
7813         * object.c (mono_unhandled_exception): Remove leftover debug code.
7814
7815 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
7816
7817         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
7818
7819 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7820
7821         * marshal.c (emit_marshal_array): Really null terminate string arrays.
7822         
7823         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
7824
7825 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7826
7827         * marshal.c (emit_marshal_array): Null terminate string arrays.
7828         
7829         * marshal.c (raise_auto_layout_exception): Fix warning.
7830
7831         * reflection.c (mono_param_get_objects): Initialize the default value
7832         with DBNull.Value, not null. Fixes #62123.
7833
7834 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
7835
7836         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
7837         throw an exception with a cute explanation.
7838
7839 2004-09-06  Dick Porter  <dick@ximian.com>
7840
7841         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
7842         Close the new process's thread handle, as we don't use it.  The
7843         handle stays around forever otherwise.
7844
7845 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7846
7847         * object.c (arith_overflow): Fix warning.
7848
7849         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
7850         calling conventions in method refs. Fixes #65352.
7851
7852         * reflection.c: Fix warnings.
7853
7854 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7855
7856         * icall.c: Add a new icall for Array.Clear
7857
7858 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7859
7860         * object.c: When allocating an array, we have to throw
7861         an overflow exception if any of the lengths are < 0.
7862
7863 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7864
7865         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
7866         properly. Also move implementation of string array marshalling to 
7867         managed code. Fixes #42316.
7868
7869 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7870
7871         * assembly.c: provide more information when loading an assembly fails.
7872
7873 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7874
7875         * filewatcher.c: don't expect the development fam package to be
7876         installed.
7877
7878 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
7879
7880         * marshal.c: Make a copy of the signature cookie since it will be
7881         freed by the caller.
7882         
7883         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
7884
7885         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
7886
7887         * metadata.c (mono_metadata_free_marshal_spec): New function to free
7888         marshal specs.
7889
7890         * marshal.c: More refactoring.
7891         
7892         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
7893         smaller functions.
7894
7895 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
7896
7897         * object.c: In mono_message_invoke, fill the output parameter array after
7898           calling the managed method (it was done before the call). This fixes
7899           bug #59299.
7900
7901 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7902
7903         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
7904         as well.
7905
7906 2004-09-02  Martin Baulig  <martin@ximian.com>
7907
7908         * class.c (mono_class_instance_size): Don't allow generic type
7909         definitions or open generic instances.
7910         (mono_class_array_element_size): If we're a value type, call
7911         mono_class_instance_size() on the original class.
7912
7913         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
7914         handle generic instances.
7915
7916         * mono-debug-debugger.c (write_type): Handle generic instances
7917         like classes.
7918
7919 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7920
7921         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
7922         the allocation request fails. Fixes #65089.
7923
7924         * object.c (mono_runtime_free_method): Do not call mono_free_method.
7925         
7926         * object.c (mono_runtime_free_method): New function to free a dynamic
7927         method.
7928
7929         * marshal.c (mono_delegate_free_ftnptr): New function to free the
7930         delegate trampoline.
7931
7932         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
7933         with hasthis as dynamic,
7934
7935         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
7936
7937         * domain.c (mono_jit_info_table_remove): New function to remove an
7938         entry from the jit info table.
7939
7940         * class-internals.h (MonoMethod): Add 'dynamic' field.
7941
7942         * loader.c: Fix warnings.
7943
7944 2004-09-01  Martin Baulig  <martin@ximian.com>
7945
7946         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
7947         instead of mono_debugger_lock() because the latter one is a no-op
7948         unless running in the debugger.
7949
7950 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7951
7952         * class.c (class_compute_field_layout): Classes with auto-layout or
7953         reference fields are not blittable.
7954         
7955 2004-09-01  Dick Porter  <dick@ximian.com>
7956
7957         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
7958         mono_image_get_filename() to get the assembly location.
7959
7960         * icall.c:
7961         * metadata.h: Fix compile warnings
7962
7963 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7964
7965         * class.c (class_compute_field_layout): System.Object is blittable.
7966
7967         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
7968         as in/out. Fixes #59909.
7969
7970 2004-09-01  Martin Baulig  <martin@ximian.com>
7971
7972         * metadata.h (MONO_TYPE_ISREFERENCE): Call
7973         mono_metadata_generic_inst_is_valuetype() if we're a generic
7974         instance to check whether our underlying type is a reference type.
7975
7976 2004-09-01  Martin Baulig  <martin@ximian.com>
7977
7978         * metadata.c (mono_type_size): If we're a generic instance, call
7979         mono_class_value_size() for value types.
7980
7981 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
7982
7983         * marshal.c: Implement more custom marshalling functionality. Fixes
7984         #64915.
7985
7986 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
7987
7988         * mono-debug.c, debug-mono-symfile.c: add some locking love.
7989
7990 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
7991
7992         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
7993
7994         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
7995
7996         * icall.c: Fix some warnings.
7997
7998         * threads.c (abort_appdomain_thread): Fix unref errors.
7999         (mono_thread_current): Fix THREAD_DEBUG define.
8000
8001 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
8002
8003         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
8004
8005         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
8006
8007 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
8008
8009         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
8010         string arrays.
8011
8012 2004-08-28  Martin Baulig  <martin@ximian.com>
8013
8014         * metadata.c
8015         (mono_metadata_generic_inst_is_valuetype): New public function.
8016
8017         * metadata.h (MONO_TYPE_ISSTRUCT): Call
8018         mono_metadata_generic_inst_is_valuetype() if we're a generic
8019         instance to check whether our underlying type is a valuetype.
8020
8021 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
8022
8023         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
8024         #63768.
8025
8026 2004-08-25  Martin Baulig  <martin@ximian.com>
8027
8028         * loader.c (mono_get_method_from_token): Abstract methods can also
8029         be generic and thus have type parameters.
8030
8031         * metadata-internals.h
8032         (MonoDynamicImage): Added `GPtrArray *gen_params'.
8033
8034         * reflection.c (mono_image_get_generic_param_info): Don't create a
8035         metadata row, just add an entry to the `gen_params' array.
8036         (build_compressed_metadata): Sort the `gen_params' array and then
8037         actually create the metadata.
8038
8039 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8040
8041         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
8042
8043 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
8044
8045         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
8046
8047 2004-08-24  Martin Baulig  <martin@ximian.com>
8048
8049         * class.cs (mono_class_is_subclass_of): Like an interface, a
8050         generic instance also derives from System.Object.
8051
8052 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
8053
8054         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
8055         custom modifiers to be in any order. Fixes #61990.
8056
8057 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
8058
8059         * object.c: Register mono_object_new_fast icall.
8060         
8061         * object.c (mono_class_get_allocation_ftn): Return to calling
8062         mono_object_new_fast, since it seems faster to compute the object 
8063         size in unmanaged code than passing it as a parameter.
8064
8065         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
8066
8067         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
8068         this function with Boehm as the oom handler, so we don't have to check
8069         the result of GC_malloc.
8070
8071         * object.c: Remove checks for oom.
8072
8073         * object.h object.c (mono_class_get_allocation_ftn): New function to
8074         return the icall which can be used to allocate an instance of a given
8075         class. 
8076
8077         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
8078
8079         * class-internals.h: Add 'enabled' field.
8080
8081 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
8082
8083         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
8084
8085 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
8086         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
8087         value 0x0010.
8088
8089 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
8090
8091         * appdomain.c: use the Tls function for appdomain too,
8092         at Zoltan's request. Actually return in mono_context_get
8093
8094         * appdomain.c, profiler.c, threads.c: use __thread
8095
8096 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
8097
8098         * appdomain.c threads.c: Call GC_CreateThread on windows.
8099
8100         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
8101         multiple libraries since this don't work on windows.
8102
8103 2004-08-18  Martin Baulig  <martin@ximian.com>
8104
8105         * class-internals.h
8106         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
8107         MonoMethodHeader.
8108
8109         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
8110         MonoMethodNormal since we also need it for abstract and interface
8111         methods.
8112
8113         * reflection.c
8114         (build_compressed_metadata): Sort the GenericParam table.
8115         (mono_image_create_token): Added `gboolean create_methodspec'
8116         argument; this is false when generating a MethodImpl token.
8117         (reflection_methodbuilder_to_mono_method): Abstract and interface
8118         methods may also have generic parameters.
8119
8120 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
8121
8122         * appdomain.c: thread local alloc
8123
8124 2004-08-17  Martin Baulig  <martin@ximian.com>
8125
8126         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
8127
8128         * icall.c
8129         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
8130         argument.
8131
8132         * class.c (mono_type_get_full_name): New public function.
8133         (mono_type_get_name): Don't include the type arguments.
8134
8135 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
8136
8137         * Makefile.am: Build static versions of libmetadata and libmonoruntime
8138         for inclusion into the mono executable.
8139
8140 2004-08-16  Martin Baulig  <martin@ximian.com>
8141
8142         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
8143         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
8144
8145 2004-08-14  Martin Baulig  <martin@ximian.com>
8146
8147         * class.c (dup_type): Also copy the `byref' field.
8148
8149 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
8150
8151         * reflection.c (create_dynamic_mono_image): Revert the last change 
8152         since it breaks bootstrap.
8153
8154 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
8155
8156         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
8157
8158         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
8159         not free them with g_free.
8160
8161 2004-08-11  Martin Baulig  <martin@ximian.com>
8162
8163         * reflection.c (mono_reflection_setup_internal_class): Also call
8164         mono_class_setup_mono_type() if we already have a `tb->type.type'.
8165
8166 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
8167
8168         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
8169         called during default (first) AppDomain creation. Keep track of
8170         Evidence when loading assemblies.
8171
8172 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8173
8174         * opcodes.c, opcodes.h: reduce runtime relocations.
8175
8176 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
8177
8178         * culture-info.h, locales.c: fixes and chages to sue the new
8179         optimized format of the locale data.
8180         * culture-info-tables.h: regenerated.
8181
8182 2004-08-06  Geoff Norton <gnorton@customerdna.com>
8183         
8184         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
8185
8186 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
8187
8188         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
8189         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
8190         * domain-internals.h: icall declaration.
8191         * icall.c: icall registration.
8192         * object-internals.h: New fields in MonoAssembly for CAS.
8193
8194 2004-08-05  Duncan Mak  <duncan@ximian.com>
8195
8196         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
8197         CEE_LDELEM_ANY.
8198
8199 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8200
8201         * reflection.c: fix to deal with object[] arrays in custom ctors
8202         (bug #62550).
8203
8204 2004-08-05  Martin Baulig  <martin@ximian.com>
8205
8206         * class.c (mono_class_array_element_size): Added support for
8207         generic instances and correctly handle "recursive" types.
8208
8209 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
8210
8211         * assembly.c: Fix warnings.
8212
8213 2004-08-04  Martin Baulig  <martin@ximian.com>
8214
8215         * class.c
8216         (mono_type_get_name_recurse): Added `gboolean include_arity'
8217         argument specifying whether or not we should include the generic
8218         arity in the type name.
8219         (_mono_type_get_name): New static function.
8220         (mono_class_setup_vtable): If we're a generic instance, don't
8221         include the generic arity in the names of explicit method
8222         implementations.        
8223
8224 2004-08-03  Martin Baulig  <martin@ximian.com>
8225
8226         * class.c (mono_type_get_name_recurse): Enclose the generic type
8227         arguments in `<', '>'.
8228
8229 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8230
8231         * gc.c: make GC warning messages use the trace API, they are just
8232         noise to most of the users.
8233
8234 2004-08-03  Martin Baulig  <martin@ximian.com>
8235
8236         * debug-mono-symfile.c (read_string): Correctly read the string.
8237
8238 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
8239
8240         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
8241         
8242         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
8243         icalls.
8244         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
8245
8246 2004-07-30  Martin Baulig  <martin@ximian.com>
8247
8248         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
8249         Reflect latest symbol writer changes.   
8250
8251 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8252
8253         * object.c: always create an object if null is passed
8254         to Invoke() where a valuetype is expected.
8255
8256 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
8257
8258         * marshal.c (mono_marshal_init): make managed
8259         signatures match native ones better for 64bits.
8260
8261 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8262
8263         * appdomain.c: hack to build correctly the private bin path on windows.
8264         Fixes bug #61991.
8265
8266 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
8267
8268         * assembly.c: Load mscorlib from the correct framework directory
8269           (mono/<version>/mscorlib.dll).
8270         * appdomain.h: Added prototypes for new functions.
8271         * internals.h: Added some prototypes.
8272         * domain.c: When initializing the runtime, get from the executable and
8273           the configuration files the runtime version that the app supports.
8274           Added support methods for reading app.exe.config. Added list of versions
8275           supported by the JIT. Added two new methods: mono_init_from_assembly,
8276           which initializes the runtime and determines the required version from
8277           the provided exe file, and mono_init_version, which initializes
8278           the runtime using the provided version.
8279         * icall.c: Get machine.config from version-specific directory.
8280         * reflection.c: When generating an image, embed the version number
8281           of the current runtime.
8282
8283 2004-07-28  Dick Porter  <dick@ximian.com>
8284
8285         * socket-io.c
8286         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
8287         returned sockaddr size before creating the remote address object.
8288         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
8289         61608.
8290
8291 2004-07-28  Dick Porter  <dick@ximian.com>
8292
8293         * locales.c (string_invariant_compare_char): Fix invariant char
8294         compares between upper and lower cases.  Fixes bug 61458.
8295
8296 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
8297         
8298         * marshal.c: actually cache stelem.ref wrappers.
8299         
8300 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
8301
8302         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
8303         sections and remove the mono_cli_rva_map () function.
8304
8305 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8306
8307         * debug-mono-symfile.c: fix one more endianess issue, from a patch
8308         by Geoff Norton (<gnorton@customerdna.com>).
8309
8310 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8311
8312         * class.c: fix class loads for pointer types (typeof(int) !=
8313         typeof(int*)).
8314
8315 2004-07-27  Martin Baulig  <martin@ximian.com>
8316
8317         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
8318         reading the debugging information from an external ".mdb" file.
8319
8320 2004-07-24  Martin Baulig  <martin@ximian.com>
8321
8322         * reflection.c (mono_image_get_type_info): Only write a class
8323         layout entry if we actually have a size or a packing size.
8324
8325 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8326
8327         * reflection.c (type_get_fully_qualified_name): 
8328         insert cast to get type checking of ?: with non-gcc compilers
8329
8330 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8331
8332         * rand.c: use g_getenv for both lookups of
8333         MONO_EGD_SOCKET
8334
8335 2004-07-17  Martin Baulig  <martin@ximian.com>
8336
8337         * reflection.c (mono_reflection_bind_generic_method_parameters):
8338         Set `gmethod->reflection_info'.
8339
8340 2004-07-17  Martin Baulig  <martin@ximian.com>
8341
8342         * class.c (mono_class_create_from_typedef): Insert the newly
8343         created class into the hash table before computing the interfaces
8344         since we could be called recursively.
8345
8346 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
8347
8348         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
8349         function to implement stelem.ref in managed code
8350         * class-internals.h, debug-helpers.c: a new wrapper type
8351         for the above.
8352
8353 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8354
8355         * gc.c: allow GC handles to work even when no GC is compiled in.
8356         Fix part of bug #61134 (GetAddrOfPinnedObject).
8357
8358 2004-07-13  Peter Williams  <peter@newton.cx>
8359  
8360         * process.c (complete_path): Make sure we don't attempt to execute
8361         directories.
8362  
8363 2004-07-12  Geoff Norton <gnorton@customerdna.com>
8364
8365         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
8366           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
8367           and will add/subtract the hour if needed
8368
8369 2004-07-12  Martin Baulig  <martin@ximian.com>
8370
8371         * reflection.c (mono_field_get_object): If we have
8372         `field->generic_info', take the attributes from
8373         `field->generic_info->generic_type'.    
8374
8375 2004-07-12  Martin Baulig  <martin@ximian.com>
8376
8377         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
8378         This function must be called before initializing the runtime.
8379         (mono_debug_init_1): New function; call this after initializing
8380         the runtime, but before loading the assembly.  It tells the
8381         debugger to load corlib and the builtin types.
8382
8383         * mono-debug-debugger.c: Did some larger changes in the debugging
8384         code; support recursive class declarations, make sure we actually
8385         add all classes.
8386
8387 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8388
8389         * debug-helpers.c: undo my previous patch and fixed the real issue in
8390         ../mini/exceptions-x86.c
8391
8392 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8393
8394         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
8395         when no HOME env. variable was set and a NullRef was thrown in a .cctor
8396         called from other .cctors.
8397
8398 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
8399
8400         * loader.c: Removed the mono_loader_wine_init hack now that we are
8401         doing a managed version of Windows.Forms.
8402
8403 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
8404
8405         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
8406         threadpool.c, threads.c: remove static data from rootset.
8407
8408 2004-07-09  Dick Porter  <dick@ximian.com>
8409
8410         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
8411         Don't do any more processing if the matched length was 0.  It was
8412         increasing the size of the string before.  Fixes bug 61167.
8413
8414 2004-07-09  Dick Porter  <dick@ximian.com>
8415
8416         * socket-io.h:
8417         * socket-io.c
8418         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8419         Add support for SO_PEERCRED if its available.
8420
8421 2004-07-09  Peter Bartok <pbartok@novell.com>
8422         * loader.c: winelib.exe.so error message is now only displayed if
8423         MONO_DEBUG is set. To help us avoid questions when people are trying
8424         out the new Managed.Windows.Forms.
8425
8426 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
8427
8428         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
8429         for isinst and castclass wrappers.
8430
8431         * class-internals.h icall.c: Move registration and lookup of JIT icalls
8432         to libmetadata from the JIT, so they could be used by the marshalling
8433         code and the interpreter.
8434
8435         * marshal.c: Register marshalling related JIT icalls here instead of
8436         in mini.c. Use CEE_MONO_ICALL instead of the family of 
8437         CEE_MONO_PROC<x> opcodes to call marshalling functions.
8438
8439         * metadata.h: Remove unneeded marshalling conversions.
8440
8441         * opcodes.c: Update for new opcodes.
8442         
8443 2004-07-08  Martin Baulig  <martin@ximian.com>
8444
8445         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
8446         (mono_debug_get_domain_data): Make this function static.
8447
8448 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8449
8450         * gc.c, object.h: add nice GC handle API for embedders.
8451
8452 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
8453
8454         * reflection.c: more changes for the new api
8455
8456         * object.c: When we reflect on a field w/ a constant value, it
8457         will not have a memory location, so we must access metadata. Also,
8458         allow easier reading of strings so that we can read them from
8459         the constant data.
8460
8461         * class.c (mono_class_layout_fields): no need for literal fields here.
8462
8463         * class-internals.h: api changes for const fields
8464
8465         * icall.c (ves_icall_get_enum_info): use new apis for const fields
8466
8467 2004-07-06  Martin Baulig  <martin@ximian.com>
8468
8469         * mono-debug.h: Increment version number to 44.
8470
8471         * mono-debug.c (mono_debug_add_wrapper): The second argument is
8472         now a gpointer, rewrote this whole method.
8473
8474         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
8475         function.  Add information about the wrapper in a new "misc table".
8476
8477         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
8478         for the new misc table.
8479
8480 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
8481
8482         * metadata-internals.h image.c: Add a cache for helper signatures.
8483
8484         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
8485
8486 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
8487
8488         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
8489         delegates from a delegate. Fixes #61033.
8490         
8491         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
8492         marshalling of stringbuilder arrays. Fixes #59900.
8493
8494 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
8495
8496         * icall.c: Add EnumBuilder:setup_enum_type icall.
8497
8498 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
8499
8500         * icall.c: Added a new icall for the property version of
8501         OffsetOfStringData.
8502
8503 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
8504
8505         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
8506         it has a constant size across platforms.
8507
8508         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
8509         stack trace.
8510
8511 2004-06-29  Martin Baulig  <martin@ximian.com>
8512
8513         * mono-debug.c (mono_debug_add_method): Protect the whole function
8514         in mono_debugger_lock(), not just parts of it.
8515
8516 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8517
8518         * reflection.c: make sure padding bytes in heaps are zeroed.
8519
8520 2004-06-24  David Waite  <mass@akuma.org>
8521
8522         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
8523         image.c, loader.c, locales.c, marshal.c, metadata.c,
8524         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
8525         string-icalls.c, threads.c: change to C90-style comments from C99 /
8526         C++ -style
8527
8528 2004-06-24  Dick Porter  <dick@ximian.com>
8529
8530         * threads.c
8531         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8532         return createdNew.  Fixes bug 60412.
8533
8534         * threads-types.h: 
8535         * icall.c: Add createdNew parameter to CreateMutex icall
8536
8537 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8538
8539         * reflection.c, object-internals.h: save default value in params.
8540
8541 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8542
8543         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8544         no need to build a new path combining that with the application base.
8545         Fixes bug #60442.
8546
8547 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8548
8549         * reflection.c: fixed minor standard compliance issues.
8550
8551 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8552
8553         * reflection.c: fixed issue with encoding some custom attributes
8554         (arrays in properties and fields, bug #60411).
8555
8556 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8557
8558         * reflection.c: fix start address when copying the public key token.
8559
8560 2004-06-23  Martin Baulig  <martin@ximian.com>
8561
8562         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8563         the `exc' object in a static object to put it into the GC's root set.
8564
8565 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8566
8567         * reflection.c: make mono_reflection_setup_internal_class ()
8568         callable a second time to setup a new parent class.
8569
8570 2004-06-23  Dick Porter  <dick@ximian.com>
8571
8572         * threads.c: Check for WAIT_IO_COMPLETION return values.
8573
8574 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8575
8576         * appdomain.c: Removed the g_free on the public key token. Now copy 
8577         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8578         * assembly.c: Added public key token string value when loading 
8579         assemblies. Fix bug #60439.
8580         * icall.c: Added missing informations (like public key) in 
8581         GetReferencedAssemblies. Fix #60519.
8582         * image.h: Changed definition for public key token from const char*
8583         public_tok_value to guchar public_key_token [17];
8584         * reflection.c: Updated for changes to public key token.
8585
8586 2004-06-22  Lluis Sanchez Gual
8587
8588         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8589         for the field in base classes.
8590
8591 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8592
8593         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8594         mark headers as not supported, they are installed only for use by the
8595         debugger.
8596
8597 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8598
8599         * *.c, *.h: avoid namespace pollution in public headers.
8600
8601 2004-06-21  Martin Baulig  <martin@ximian.com>
8602
8603         * exception.c (mono_get_exception_security): It's in
8604         "System.Security", not in "System".
8605
8606         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8607         the exception classes.
8608
8609 2004-06-21  Martin Baulig  <martin@ximian.com>
8610
8611         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8612         Protect the exception object from being finalized.
8613
8614 2004-06-21  Martin Baulig  <martin@ximian.com>
8615
8616         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8617         public function.
8618
8619 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8620
8621         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8622         if it was not loaded before. Fix parts of #60439.
8623
8624 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8625
8626         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8627         code that was broken since Ben's change: wrappers are now
8628         dependent on the method signature only again.
8629
8630 2004-06-21  Martin Baulig  <martin@ximian.com>
8631
8632         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8633         added interface support.
8634
8635 2004-06-21  Martin Baulig  <martin@ximian.com>
8636
8637         * class.c (mono_vtable_get_static_field_data): New public method.
8638
8639 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8640
8641         * filewatcher.c : Windows build fix to be compliant with API changes.
8642
8643 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8644
8645         * class.h, class.c: more accessors.
8646         * metadata.h, metadata.c: prepare for hiding MonoType and
8647         MonoMethodSignature: people should use the accessors from now on
8648         outside of the tree.
8649
8650 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8651
8652         * *.c, *.h: more API cleanups.
8653
8654 2004-06-18  Jackson Harper  <jackson@ximian.com>
8655
8656         * assembly.c: Trace loading assemblies.
8657         * loader.c: Trace loading native libraries.
8658         * mono-config.c: Trace loading config files.
8659         
8660 2004-06-18  Dick Porter  <dick@ximian.com>
8661
8662         * locales.c: Tell ICU the lengths of strings, it can cope with
8663         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8664
8665 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8666
8667         * image.c: swapped name/filename;
8668
8669 2004-06-18  Martin Baulig  <martin@ximian.com>
8670
8671         * mono-debug-debugger.c (write_class): Write the parent class at
8672         the end of the header.
8673
8674 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8675
8676         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8677
8678 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8679
8680         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8681         (bundle_obj): New conditional define.
8682         (BUILT_SOURCES): Remove.
8683         ($(bundle_srcs)): Make parallel-make safe.
8684         (libmonoruntime_la_LIBADD): Make unconditional.
8685         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8686         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8687
8688 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8689
8690         * culture-info-tables.h: It was inconsistent with the latest
8691           supp info files.
8692
8693 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8694
8695         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8696         be loaded.
8697
8698         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8699         with gcc 2.95.
8700
8701 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8702
8703         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8704         cleaned up public header threads.h.
8705
8706 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8707
8708         * Makefile.am, *.c, *.h: more API cleanups.
8709
8710 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
8711
8712         * Makefile.am: removed monosn from compilation.
8713         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
8714         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
8715         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
8716         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
8717         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
8718         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
8719
8720 2004-06-15  Jackson Harper  <jackson@ximian.com>
8721
8722         * assembly.c: Make locales lower case when searching the GAC for
8723         assemblies. gacutil will always make locales lowercase when
8724         installing so this effectively makes them case insensitive.
8725         
8726 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
8727
8728         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
8729         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
8730           parameter which allows to choose whether the wait can be interrupted or 
8731           not. Also added the method mono_monitor_enter(), which locks the monitor
8732           using an infinite wait and without allowing interruption.
8733           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
8734           interrupted.
8735         * object.h: Added new fields in MonoThread. suspend_event holds the event
8736           used to susped/resume the thread. synch_lock is the lock object to use for
8737           modifying the thread state.
8738         * threads.c: Use the new synch_lock object for locking, instead of "this",
8739           which can generate deadlocks.
8740           Moved thread state change in Thread.Sleep and Thread.Join from managed
8741           to unmanaged code. This avoids a deadlock when the thread was suspended
8742           just after acquiring the thread lock.
8743           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
8744           Implemented Thread.Suspend using an event instead of ThreadSuspend,
8745           which is not fully implemented in the io-layer.
8746         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
8747
8748 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
8749
8750         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
8751         threads-types.h: more API cleanups.
8752
8753 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8754
8755         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
8756         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
8757         threadpool.c, threads.c: first pass at the exported API cleanup.
8758
8759 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
8760
8761         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
8762
8763 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8764
8765         * icall.c: added internalGetHome.
8766
8767 2004-06-14  Dick Porter  <dick@ximian.com>
8768
8769         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
8770         possible to return successfully when '.' or '..' were the only
8771         entries in a directory, but were skipped.  The MonoIOStat was not
8772         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
8773         Fixes bug 59574.
8774
8775 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8776
8777         * reflection.c: make binaries run on .Net 1.1 by default.
8778
8779 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
8780
8781         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
8782
8783 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
8784
8785         * marshal.c: keep track of struct size with explicit layout
8786         (bug #59979).
8787
8788 2004-06-12  Martin Baulig  <martin@ximian.com>
8789
8790         * mono-debug-debugger.c: Comment out a debugging g_message().
8791
8792 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8793
8794         * reflection.c, reflection.h: do not free custom attrs that are cached.
8795         * icall.c: use braces to make code clearer.
8796
8797 2004-06-11  Martin Baulig  <martin@ximian.com>
8798
8799         * class.h (MonoInflatedField): New type.
8800         (MonoClassField): Replaced `MonoType *generic_type' with
8801         `MonoInflatedField *generic_info'.
8802
8803         * icall.c
8804         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
8805
8806 2004-06-11  Martin Baulig  <martin@ximian.com>
8807
8808         * reflection.c (mono_image_create_method_token): Correctly encode
8809         varargs methods.
8810
8811 2004-06-11  Martin Baulig  <martin@ximian.com>
8812
8813         * metadata.c (mono_metadata_parse_method_signature): When parsing
8814         a MethodDef which has VarArgs, also set sentinelpos if we don't
8815         have any parameters.
8816
8817 2004-06-11  Martin Baulig  <martin@ximian.com>
8818
8819         * verify.c (mono_method_verify): In CEE_CALL, use
8820         mono_method_get_signature() to get the method's signature, unless
8821         we're a PInvoke method.
8822
8823 2004-06-10  Jackson Harper  <jackson@ximian.com>
8824
8825         * assembly.c: Use <path>/lib/mono/gac for the extra paths
8826         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
8827         logical name as the supplied path is just a prefix to the gac not
8828         the direct path to it.
8829         
8830 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
8831
8832         * reflection.c: make the token for a created method match
8833         the token of the MethodBuilder it was created from
8834         (IKVM requires this behaviour now).
8835
8836 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
8837
8838         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
8839         reflection.c, socket-io.c: leak fixes.
8840
8841 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
8842
8843         * icall.c: handle sentinel pos in vararg methods in position different
8844         from 0.
8845
8846 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8847
8848         * culture-info-tables.h: freshly generated.
8849
8850 2004-06-09  Martin Baulig  <martin@ximian.com>
8851
8852         * loader.c (mono_get_method_constrained): Call `mono_class_init
8853         (constrained_class)'.   
8854
8855 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
8856
8857         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
8858         any methods. Fixes #59629.
8859
8860 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8861
8862         * culture-info-tables.h: reflecting locale-builder updates.
8863
8864 2004-06-08  Dick Porter  <dick@ximian.com>
8865
8866         * object.h:
8867         * locales.c: Fixed compile warnings, including a real bug in
8868         CompareInfo_internal_compare.
8869         
8870 2004-06-08  Dick Porter  <dick@ximian.com>
8871
8872         * locales.c
8873         (ves_icall_System_Globalization_CompareInfo_internal_index):
8874         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8875         Double-check the resuls of usearches, because ICU currently
8876         ignores most of the collator settings here.  Fixes bug 59720.
8877         
8878 2004-06-08  Dick Porter  <dick@ximian.com>
8879
8880         * locales.c
8881         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8882         Fix memory leak and segfault-causing typo.  No idea how this one
8883         lasted so long without being noticed.
8884
8885 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
8886
8887         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
8888         any methods. Fixes #59629.
8889
8890 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8891
8892         * assembly.c:
8893         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
8894         own the critical section before). Removed dead code (that's done
8895         in the preload hook).
8896
8897         (mono_assembly_load_with_partial_name): call the preload hook.
8898
8899 2004-06-08  Martin Baulig  <martin@ximian.com>
8900
8901         * metadata.c (mono_metadata_signature_alloc): Default
8902         `sentinelpos' to -1.
8903
8904         * reflection.c (mono_image_get_array_token): Likewise.
8905
8906 2004-06-08  Martin Baulig  <martin@ximian.com>
8907
8908         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
8909
8910         * metadata.c (mono_metadata_parse_method_signature): When parsing
8911         a MethodDef which has VarArgs, set sentinelpos.
8912
8913         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
8914         `gint16' since we're using -1 for non-varargs methods.
8915
8916         * reflection.c
8917         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
8918         (method_encode_signature): Added varargs support.
8919         (method_builder_encode_signature): Likewise.
8920         (mono_image_get_varargs_method_token): New static method.
8921         (mono_image_create_method_token): New public method; this is
8922         called via an icall instead of mono_image_create_token() when
8923         calling a varargs method.       
8924
8925 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
8926
8927         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
8928
8929 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8930
8931         * culture-info-tables.h : Reflecting the latest locale-builder that
8932           fixed empty array representation ({} to {0}).
8933
8934 2004-06-07  Jackson Harper  <jackson@ximian.com>
8935
8936         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
8937         looking up extra gac paths. This allows MONO_GAC_PATH to act
8938         exactly like a prefix.
8939         
8940 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8941
8942         * reflection.c (mono_reflection_type_from_name): Make a copy of the
8943         type name before modifying it. Fixes #59405.
8944
8945 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8946
8947         * culture-info.h: added fields for "all datetime patterns".
8948         * locales.c: (  ves_icall_System_Globalization_CultureInfo
8949           _construct_datetime_format ()): fill xxx_patterns fields.
8950         * object.h: added fields for "all datetime patterns" to
8951           MonoDateTimeFormatInfo.
8952         * culture-info-tables.h: reflecting locale-builder updates.
8953
8954 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8955
8956         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
8957         the event has no add and remove methods. Fixes #59629.
8958
8959 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
8960
8961         * object.c: Fixed possible integer overflow when allocating large
8962         strings.
8963
8964 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8965
8966         * culture-info-tables.h: reflecting locale-builder updates.
8967
8968 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8969
8970         * culture-info-tables.h: reflecting locale-builder updates.
8971
8972 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
8973
8974         * culture-info-tables.h: reflecting locale-builder updates.
8975
8976 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
8977
8978         * threads.c: Made Thread.Sleep abortable.
8979
8980 2004-06-02  Martin Baulig  <martin@ximian.com>
8981
8982         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
8983
8984         * debug-mono-symfile.h: Bumped symbol file version number to 37.
8985
8986 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
8987
8988         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
8989
8990 2004-05-30  Jackson Harper  <jackson@ximian.com>
8991
8992         * reflection.c: Do not hardcode assembly versions or public key
8993         tokens anymore. All of this except the corlib section was dead
8994         code anyways.
8995         
8996 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
8997
8998         * object.c (mono_runtime_invoke_array): Automatically create boxed
8999         objects for byref valuetypes if needed. Fixes #59300.
9000         
9001         * object.c (mono_method_return_message_restore): Handle 
9002         MONO_TYPE_OBJECT as well.
9003
9004 2004-05-28  Jackson Harper  <jackson@ximian.com>
9005
9006         * reflection.c: The modified type encoding was causing build
9007         problems. Reverted for now.
9008         
9009 2004-05-28  Jackson Harper  <jackson@ximian.com>
9010
9011         * reflection.c/h: Take an assembly ref so that we dont create
9012         fully qualified names when encoding types in the same assembly as
9013         the custom attribute being emitted.
9014         * appdomain.c: Increment version number.
9015         
9016 2004-05-26  Duncan Mak  <duncan@ximian.com>
9017
9018         * icall.c
9019         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9020         Set the full version number (major, minor, build, revision).
9021
9022 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
9023
9024         * marshal.c (emit_struct_conv): increment src/dst after blit
9025         (mono_marshal_get_managed_wrapper,
9026         mono_marshal_get_native_wrapper): make sure we have marshalling
9027         info before marshalling params (info computation affects
9028         blittable)
9029
9030         * class.c (class_compute_field_layout): correctly deal with
9031         blittable
9032         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
9033         value types (as per what windows dows by default)
9034         (mono_class_setup_mono_type): System.ValueType is blittable
9035         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
9036         blittable
9037
9038         * marshal.c (mono_marshal_load_type_info): flag types  as
9039         non-blittable if the native layout doesn't match the managed
9040         layout
9041
9042 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9043
9044         * appdomain.c: don't add stuff in the private search path that is
9045         above the application base. If application base is not set, there's
9046         no private search path.
9047
9048 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
9049
9050         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
9051         byref struct arguments in native->managed marshalling.
9052
9053 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
9054
9055         * marshal.c (mono_marshal_get_runtime_invoke): correctly
9056         cache methods using signature (special case for methods
9057         that are value type or string class)
9058         
9059         * image.c (mono_image_close): clean up allocated GSList's
9060         in runtime_invoke_cache.
9061
9062 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9063
9064         * mono-config.c: set the correct path for mono_cfg_dir on windows when
9065         there's no MONO_CFG_DIR environment variable defined.
9066
9067 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9068
9069         * threads.c: windows version must be >= 0x0500 to include OpenThread.
9070
9071 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
9072
9073         * threadpool.c: Really wait for 500ms after the async call, even if the wait
9074           is interrumped.
9075         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
9076           before waiting for it, and call CloseHandle after the wait to unref it.
9077           This will make sure that handles are not disposed too early.
9078
9079 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9080
9081         * appdomain.c:
9082         * appdomain.h:
9083         * icall.c: removed
9084         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
9085         needed now.
9086
9087         * object.c: se the application_base only for the domain that runs
9088         Main. Fixes bug #59216,
9089
9090 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9091
9092         * appdomain.c:
9093         * object.c: only the domain in which Main is run have
9094         SetupInformation.ConfigurationFile set, so moved a few lines from
9095         appdomain.c to object.c.
9096
9097 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9098
9099         * appdomain.c: we tried to load [name].(dll|exe), but according
9100         to bug #57710, we must also try [culture]/[name].(dll|exe) and
9101         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
9102         There's a test case attached to bug #58922.
9103
9104 2004-05-27  Dick Porter  <dick@ximian.com>
9105
9106         * icall.c:
9107         * file-io.c: Implemented icalls for locking and unlocking regions
9108         in a file.
9109         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
9110         FALSE on error (fixes both compiler warning and real bug.)
9111
9112 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
9113
9114         * culture-info-tables.h: reflecting locale-builder updates.
9115
9116           (Added missing ChangeLog entry for 05/26)
9117
9118 2004-05-27  Jackson Harper  <jackson@ximian.com>
9119
9120         * locales.c: Fix some cut and paste errors.
9121         
9122 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9123
9124         * mono-config.c: set the correct path for config. directory on windows.
9125
9126 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9127
9128         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
9129           on win32.
9130
9131 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9132
9133         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
9134         from pinvoke functions.
9135         
9136         * marshal.c (mono_ftnptr_to_delegate): Implement this.
9137
9138 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9139
9140         * culture-info-tables.h: reflecting locale-builder updates.
9141
9142 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9143
9144         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
9145         #59086.
9146
9147 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
9148
9149         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
9150         * icall.c: Modified icalls for RNG.
9151         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
9152         Windows (CryptoAPI).
9153
9154 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9155
9156         * locales.c: Fix build.
9157
9158 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9159
9160         * culture-info-tables.h: reflecting locale-builder updates.
9161
9162 2004-05-25  Jackson Harper  <jackson@ximian.com>
9163
9164         * locales.c: When creating the current culture use the $LANGs
9165         specific culture. So DateTimeFormat and NumberFormat entries are created.
9166         
9167 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9168
9169         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
9170         a char array as parameter.
9171
9172 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
9173
9174         * image.c: In mono_image_open(), always use an absolute path name to
9175           look for already loaded images.
9176
9177 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
9178
9179         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
9180         missing in the windows build (like older cygwin include files).
9181
9182 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
9183
9184         * icall.c: Fixed check for possible integer overflow in Buffer_
9185         BlockCopy icall. Replaced comments style // by /* */.
9186
9187 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
9188
9189         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
9190         
9191         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
9192         check after MONO_VTADDR. Fixes pinvoke2.exe.
9193
9194         * marshal.h marshal.c metadata.h: Add beginnings of support for
9195         ftnptr -> delegate marshalling.
9196
9197 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
9198
9199         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
9200         * threads.c: Fix warnings.
9201
9202 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
9203
9204         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
9205         * icall.c: Registered icalls for Suspend and Resume.
9206         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
9207           Thread.Abort.
9208         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
9209         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
9210         * process.c: Use WaitForSingleObjectEx.
9211         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
9212           checkpoints.
9213         * threads.c, threads.h: Make use of new Ex wait methods. Improved
9214           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
9215           for Suspend and Resume. Added new mono_thread_stop, used for stoping
9216           background threads. Added basic support for Abort in Windows.
9217           Start new threads using a managed delegate invoke wrapper. This wrapper
9218           has an interruption checkpoint that is needed since an interruption
9219           can be requested before the thread leaves the unmanaged code that starts 
9220           the thread.
9221         * marshal.c: Added interruption checkpoint after every native call, and
9222           also before managed calls for wrappers called from unmanaged code to
9223           go into managed code.
9224         * object.h: Added new field in MonoThread to keep track of interruption
9225           requests.
9226
9227 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
9228
9229         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
9230         calls.
9231
9232 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9233
9234         * appdomain.c:
9235         * assembly.c:
9236         * gc.c:
9237         * locales.c:
9238         * mono-config.c:
9239         * rand.c: getenv -> g_getenv (windows!)
9240
9241         * process.c: complete_path is also used on non-windows platforms.
9242
9243 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9244
9245         * icall.c: new signature for Process_Start.
9246
9247         * process.[ch]: new signature for Process_Start. If we're on windows
9248         and UseShellExecute is false, we have to search for the program by
9249         ourselves if we don't get a full path.
9250
9251 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
9252
9253         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
9254         marshalling and call CleanUpNativeData if needed. Fixes #58646.
9255
9256 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9257
9258         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
9259         Fixes bug #58373.
9260
9261 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9262
9263         * process.c: use double quotes to quote program name and arguments on
9264         windows. Fixes bug #58575.
9265
9266 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9267
9268         * file-io.c: don't return "." and ".." when using windows Find*File.
9269
9270 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
9271
9272         * marshal.c: Don't pass wrappers to message init because method 
9273         addressed used to lookup metadata. part of remoting[2|3] fix.
9274
9275 2004-05-15  Jackson Harper  <jackson@ximian.com>
9276
9277         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
9278         path is essentially the same as MONO_PATH except that it points to
9279         GACs instead of lib directories.
9280         * loader.h: The user gac is gone so we dont need function to
9281         enable/disable it.
9282         * mono-config.c: user gac option is now gone.
9283         
9284 2004-05-15  Jackson Harper  <jackson@ximian.com>
9285
9286         * culture-info.h: Make defines more consistent, add calendar data
9287         to the culture info table.
9288         * culture-info-tables.h: Add basic calendar data. Basically
9289         everyone gets default gregorian until all the data is
9290         updated.
9291         * locales.c: Use the new consistent defines. Set calendar data for
9292         culture info objects.
9293         * object.h: add a field for calendar data to CultureInfo
9294         
9295 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
9296
9297         * image.c: image->runtime_invoke_cache is keyed on signatures now.
9298         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
9299         a signature.
9300         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
9301         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
9302         an extra param that is the pointer of the method to invoke. The IL for
9303         the invoke method is no longer specific to the method, but to the
9304         signature of the method. Thus, we can share the same code for multiple
9305         methods. This reduces the number of methods that have to be compiled.
9306
9307 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
9308
9309         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
9310
9311         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9312
9313         * icall.c: Optimize Buffer.BlockCopy.
9314
9315 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9316
9317         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
9318         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
9319         quote). Changed them to "MMMM yyyy".
9320
9321 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
9322
9323         * rand.c
9324         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
9325
9326 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
9327
9328         * reflection.h: Updated after changes to managed structures.
9329
9330         * appdomain.c: Bump corlib version.
9331
9332 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9333
9334         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
9335         windows.
9336
9337 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9338
9339         * Makefile.am: link to ../os/libmonoos.la on windows.
9340
9341         * assembly.c:
9342                 -If MONO_DEBUG, warn about non-existing directories in
9343                 MONO_PATH.
9344                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
9345                 compile time variable.
9346                 -Removed init_default_path and call mono_set_rootdir from
9347                 libmonoos.a instead (windows only).
9348
9349         * assembly.h: declare mono_assembly_getrootdir().
9350
9351         * domain.c:
9352         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
9353
9354         * loader.c: s/getenv/g_getenv/
9355
9356 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
9357
9358         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
9359
9360         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
9361
9362         * metadata.h: Add new marshalling conversions.
9363
9364         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
9365         function.
9366
9367         * reflection.c (mono_reflection_get_type): Lookup the type in all
9368         modules of a multi-module assembly. Fixes #58291.
9369
9370 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
9371
9372         * threads.c: Before aborting a background, set the StopRequested
9373         state.  This avoids throwing the Abort exception.
9374         In mono_thread_manage, don't continue with the shutdown until all
9375         aborted threads have actually stopped.
9376
9377 2004-05-10  Jackson Harper  <jackson@ximian.com>
9378
9379         * locales.c: Remove the modifier from culture names.
9380         
9381 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9382
9383         * Makefile.am: monosn is not installed any more. It has been deprecated
9384         in favor of sn.
9385
9386 2004-05-07  Jackson Harper  <jackson@ximian.com>
9387
9388         * locales.c
9389         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
9390         Fix array construction, add bailout if the length is 0.
9391
9392 2004-05-07  Dick Porter  <dick@ximian.com>
9393
9394         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
9395         machine doesn't have a DNS entry.  Patch by Urs Muff
9396         (umuff@quark.com), fixes bug 57928.
9397
9398 2004-05-06  Jackson Harper  <jackson@ximian.com>
9399
9400         * reflection.c: Handle null PublicTokens properly. alloc mem for
9401         assembly names culture so we dont crash when freeing it.
9402         
9403 2004-05-06  Jackson Harper  <jackson@ximian.com>
9404
9405         * assembly.c: Check the usergac when loading with partial names.
9406         
9407 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9408
9409         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
9410         does nothing for now (not required for Linux/Windows) but the class
9411         library can call it (and a newer or modified runtime could need it).
9412         * icall.c: Registred icall.
9413
9414 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9415
9416         * loader.c: prints a message on module loading error we set MONO_DEBUG
9417         environment variable.
9418
9419 2004-05-05  Jackson Harper  <jackson@ximian.com>
9420
9421         * appdomain.c: Handle PublicKeyToken=null properly.
9422         
9423 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9424
9425         * environment.c|h: Added icall ves_icall_System_Environment_
9426         GetOSVersionString to get the current OS version as a string.
9427         * icall.c: Registred icall.
9428
9429 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
9430
9431         * object.c: in mono_object_get_virtual_method(), take into account that
9432         non-virtual methods don't have a slot in the vtable. Check needed when
9433         the object is a proxy.
9434
9435 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
9436
9437         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
9438         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
9439
9440         * object.c (mono_class_compute_gc_descriptor): Fix warning.
9441
9442         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
9443         passed when a valuetype is expected.
9444
9445         * object.c (mono_unhandled_exception): Only set the exit code if the
9446         exception happens in the main thread. Fixes thread5.exe.
9447
9448         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
9449         invalid names. Fixes #58047.
9450
9451 2004-05-03  Jackson Harper  <jackson@ximian.com>
9452
9453         * assembly.c: This line was committed accidently and is unneeded.
9454         
9455 2004-05-03  Jackson Harper  <jackson@ximian.com>
9456
9457         * icall.c: Add new icall for Assembly::LoadWithPartialName
9458         * assembly.c/.h: new function that probes the GAC to load partial
9459         assembly names by Paolo Molaro.
9460         
9461 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9462
9463         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
9464         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
9465         (type_get_fully_qualified_name): Added PublicKeyToken when building a
9466         full type name.
9467
9468 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9469
9470         * appdomain.c: fixed check for 'neutral' culture and removed warning.
9471         * reflection.c: fix bug when parsing a full type name and Version is not
9472         the last thing in the string.
9473
9474 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
9475
9476         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
9477         crashes when it is freed.
9478
9479 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9480
9481         * assembly.c: print the compat warning to stderr.
9482
9483 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
9484
9485         * assembly.c (mono_assembly_load_references): Add a compatibility
9486         hack to run old applications that might be still referencing the
9487         3300-based assemblies, only do this for System.xxx.
9488
9489 2004-05-01  Jackson Harper  <jackson@ximian.com>
9490
9491         * appdomain.c: If the culture is neutral we set it to "".
9492         
9493 2004-04-29  Jackson Harper  <jackson@ximian.com>
9494
9495         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
9496
9497 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
9498  
9499         * string-icalls.c: added low overhead function for copying chars
9500         * icall.c: added needed icall for the above function
9501  
9502 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9503
9504         * icall.c: fix return value of get_global_assembly_cache.  Implemented
9505         Environment.GetLogicalDrives.
9506
9507 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
9508
9509         * rand.c: try and talk to egd or prngd
9510         for random bytes if opening devices fail.
9511
9512 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
9513
9514         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
9515         alignment for the type using the native alignment of its members 
9516         instead of using klass->min_align.
9517
9518         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
9519
9520 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9521
9522         * file-io.c:
9523         * socket-io.c: added check for sys/aio.h.
9524
9525 2004-04-28  Dick Porter  <dick@ximian.com>
9526
9527         * threads.c: Don't abort a thread thats already aborting, when
9528         terminating everything.
9529
9530 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9531
9532         * icall.c: added 2 new async calls for Socket.
9533
9534         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9535         IO on *nix systems.
9536
9537         * threadpool.c: removed unused variable.
9538
9539 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9540
9541         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9542
9543 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9544
9545         * locales.c: put back string_invariant_tolower () and
9546         string_invariant_toupper ().
9547
9548 2004-04-26 David Waite <mass@akuma.org>
9549
9550         * file-io.h:
9551         * socket-io.h:
9552         * threads.h:
9553         * unicode.h: remove comma from end of enumeration declarations
9554
9555 2004-04-26 David Waite <mass@akuma.org>
9556
9557         * debug-mono-symfile.h:
9558         * decimal.c:
9559         * mono_debug.h:
9560         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9561
9562
9563 2004-04-26  Jackson Harper  <jackson@ximian.com>
9564
9565         * appdomain.c: Increment version number.
9566         
9567 2004-04-26  Jackson Harper  <jackson@ximian.com>
9568
9569         * appdomain.c: Set assembly references public token value when
9570         PublicKeyToken is specified, not the hash_value. Free public token
9571         values when free assembly name data. Previously the public key
9572         token was hex decoded, however we are using hex encoded public key
9573         tokens, so this is not neccasary.
9574         * assembly.c: Lookup assemblies in the gac if their public token
9575         value is set. Add function to allow enabling user gac
9576         lookups. Specify whether or not the assembly was loaded from the
9577         GAC. Compare full assembly names when checking the cache for
9578         assemblies (Temporarily disabled see comment in code). Remove
9579         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9580         specifies trace-loader they get extra info to stdout on the
9581         loading of assemblies.
9582         * image.h: Add a field for an assembly references public token
9583         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9584         whether an assembly has been loaded from the GAC.
9585         * image.c: Remove a corlib -> mscorlib name mapping.
9586         * loader.h: Add function to enable/disable the user gac.
9587         * mono-config.c: Check if the usergac is enabled in the config
9588         file.
9589         * icall.c: New icall to determine whether or not an assembly has
9590         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9591         * tabldefs.h: Add constant for assemblyref flag that specifies a
9592         full public key is used instead of a public token.
9593         * reflection.c: Remove mscorlib -> corlib mappings. Set
9594         PublicTokenValue instead of hash value. This value is a hex
9595         string so it does not need to be expanded.
9596
9597 2004-04-26  Martin Baulig  <martin@ximian.com>
9598
9599         * mono-debug-debugger.c (mono_debugger_initialize): Set
9600         `mono_debugger_initialized' before calling mono_debug_lock().
9601
9602 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9603
9604         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9605           InternalToUpper/InternalToLower.
9606         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9607           removed invariant culture shortcut.  This is now done in managed code.
9608         * locales.c: (string_invariant_toupper/tolower) removed.
9609
9610 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9611
9612         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9613         Added Poll internal call.
9614
9615         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9616         call for Poll. Select was too heavy for polling a single socket.
9617
9618         * threadpool.[ch]: added mono_threadpool_cleanup.
9619         * threads.c: use it. Don't use Thread_Abort on windows.
9620
9621 2004-04-23  Martin Baulig  <martin@ximian.com>
9622
9623         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9624
9625 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9626
9627         * icall.c: Registred new icalls for key pair protection and added an
9628         icall for Environment.GetFolderPath on Windows.
9629         * security.c|h: Added new icalls for key pair protection.
9630
9631 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9632
9633         * socket-io.c: don't display the non-supported family warning for known
9634         families. Now this is not displayed on windows when checking support
9635         for IPv4/IPv6.
9636
9637 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9638
9639         * class.c: don't display the layout warning for static fields.
9640
9641 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9642
9643         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9644         * locales.c, locales.h: Added new icalls for culture-specific
9645         Char.ToLower and Char.ToUpper.
9646
9647 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9648
9649         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9650         by David Waite.
9651
9652 2004-04-20  Martin Baulig  <martin@ximian.com>
9653
9654         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9655         of the type name before passing it to mono_reflection_type_from_name().
9656
9657 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9658
9659         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9660         encodings here. Fixes #56965.
9661
9662 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9663
9664         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9665         fix test on strstr result not that I can see anything that
9666         relies on the result.
9667
9668 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9669
9670         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9671         Fixes #57081.
9672
9673         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9674
9675         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9676         function to determine which marshalling to use for strings. Fixes
9677         #56965.
9678
9679         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9680
9681         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9682
9683 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9684
9685         * icall.c: #include mono-config.h
9686
9687 2004-04-15  Jackson Harper  <jackson@ximian.com>
9688
9689         * culture-info-tables.h: Fix date formats for en-US culture.
9690         
9691 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9692
9693         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9694         ThreadPool.SetMinThreads.
9695         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9696         ThreadPool.SetMinThreads.
9697
9698 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9699
9700         * mono-config.c: also load the .config file in the directory
9701         where the assembly was found.
9702
9703 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9704
9705         * assembly.c: load per-assembly config files.
9706         * icall.c: decrapified code to get the config dir and moved to
9707         mono-config.c.
9708         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
9709         per-assembly config files. When doing a dll map lookup give precedence
9710         to the per-assembly data.
9711
9712 2004-04-14  Martin Baulig  <martin@ximian.com>
9713
9714         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
9715         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
9716         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
9717
9718         * mono-debugger-debugger.c: While the debugger is locked, remember
9719         whether the symbol tables have changes and send one single
9720         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
9721
9722 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
9723
9724         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
9725
9726         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
9727         function.
9728
9729         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
9730         account when marshalling string arrays. Fixes #56965.
9731
9732 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
9733
9734         * icall.c: Add new icalls mapping for security.
9735         * security.c|h: Add internal calls for WindowsIdentity,
9736         WindowsImpersonationContext and WindowsPrincipal.
9737
9738 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
9739
9740         * class.c: Added comment to ensure the System.MonoDummy class
9741         is removed when no longer necessary
9742
9743 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
9744
9745         * appdomain.c: Pass arguments to the bootstraping exceptions to
9746         minimize JITed methods at boot
9747
9748         * metadata.c (mono_exception_from_name_two_strings): Allow for the
9749         second string to be null.
9750
9751         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9752         Change the protocol to minimize the JIT methods at startup.  Now
9753         it Returns the internal codepage, if the value of "int_code_page"
9754         is 1 at entry, and we can not compute a suitable code page
9755         number, returns the code page as a string.
9756
9757 2004-04-13  Jackson Harper  <jackson@ximian.com>
9758
9759         * culture-info-tables.h: Fix number of decimal digits for all
9760         english locales.
9761
9762 2004-04-13  Jackson Harper  <jackson@ximian.com>
9763
9764         * icall.c: Clairfy out of sync error message. It is not always
9765         your corlib that is out of sync.
9766
9767 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
9768
9769         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
9770         properties when only the set accessor is overriden. Fixes #55874.
9771
9772 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
9773
9774         * assembly.c (mono_assembly_load_references): Make this thread safe.
9775         Fixes #56327.
9776
9777 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
9778
9779         * monosn.c: Add missing initialization calls.
9780
9781 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
9782
9783         * locales.c:
9784         ves_icall_System_Globalization_CultureInfo_construct_number_format
9785         Fix g_assert so it compiles on fussier compilers re int/ptr
9786         mismatch
9787
9788 2004-04-08  Dick Porter  <dick@ximian.com>
9789
9790         * socket-io.h:
9791         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
9792         53992.  Also rearrange the code so that the internal calls return
9793         an error value and exceptions are thrown from managed code.
9794
9795         * icall.c: Add type info to the socket icalls.
9796
9797 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9798
9799         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
9800         owes me a beer.
9801
9802 2004-04-07  Martin Baulig  <martin@ximian.com>
9803
9804         * class.c (mono_class_from_generic_parameter): Don't default
9805         `klass->parent' to `mono_defaults.object_type'.
9806
9807 2004-04-07  Martin Baulig  <martin@ximian.com>
9808
9809         * reflection.c (mono_reflection_initialize_generic_parameter): Set
9810         `param->pklass->reflection_info'.       
9811
9812 2004-04-07  Jackson Harper  <jackson@ximian.com>
9813
9814         * culture-info-tables.h: Fix date separator symbol.
9815         
9816 2004-04-07  Martin Baulig  <martin@ximian.com>
9817
9818         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
9819         from System.Type to System.MonoType.
9820
9821 2004-04-07  Martin Baulig  <martin@ximian.com>
9822
9823         * reflection.h
9824         (MonoReflectionGenericParam): Added `has_reference_type' and
9825         `has_value_type' fields.
9826
9827         * reflection.c (mono_image_get_generic_param_info): Encode the
9828         correct flags if we have the `class' or `struct' constraint.
9829
9830 2004-04-07  Martin Baulig  <martin@ximian.com>
9831
9832         * reflection.h
9833         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
9834
9835 2004-04-07  Jackson Harper  <jackson@ximian.com>
9836
9837         * appdomain.c: Revert extra patches, just wanted to bump the
9838         version number.
9839         
9840 2004-04-07  Jackson Harper  <jackson@ximian.com>
9841
9842         * Makefile.am: Add culture-info private headers.
9843         * icall.c: Add new icalls for contructing locales.
9844         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
9845         * locales.h: Declare new culture info construction methods.
9846         * object.h: Add new fields used to avoid the CultureMap to
9847         MonoCultureInfo.
9848         * culture-info.h: Definition of structs used in the culture info
9849         tables.
9850         * culture-info-tables.h: Autogenerated tables that contain culture
9851         info data. This file was generated with the locale-builder tool.
9852         * appdomain.c: Incement corlib version number.
9853         
9854 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
9855
9856         * appdomain.c: (mono_runtime_init) move mono_thread_init
9857         to before mono_object_new calls so critical sections
9858         are initialized before use.
9859
9860 2004-04-07  Martin Baulig  <martin@ximian.com>
9861
9862         * icall.c
9863         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
9864         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
9865         (ves_icall_MonoGenericParam_initialize): Removed.
9866         (monogenericparam_icalls): Removed.
9867         (generictypeparambuilder_icalls): Added new table for
9868         System.Reflection.Emit.GenericTypeParameterBuilder.
9869
9870         * reflection.c
9871         (mono_reflection_define_generic_parameter): Removed.
9872         (mono_reflection_initialize_generic_parameter): This is now called
9873         from GenericTypeParameterBuilder's .ctor.
9874
9875 2004-04-06  Martin Baulig  <martin@ximian.com>
9876
9877         * class.c (mono_class_init): Don't inflate nested classes in a
9878         generic instance.
9879         (mono_type_get_name_recurse): Include the generic arguments for
9880         generic instances and generic type declarations.
9881         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
9882         (_mono_class_get_instantiation_name): Removed.
9883         (mono_class_create_generic): Always use `gklass->name' as our name.
9884
9885         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
9886
9887         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
9888         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
9889         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
9890         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
9891         closed generic methods here.
9892
9893         * reflection.c
9894         (mono_reflection_generic_inst_get_nested_types): Removed.
9895         (inflate_mono_method): Copy the generic parameters from the
9896         MonoMethodHeader into out MonoGenericMethod.
9897
9898 2004-04-06  Martin Baulig  <martin@ximian.com>
9899
9900         * row-indexes.h
9901         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
9902
9903         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
9904
9905         * reflection.c (build_compressed_metadata): If we have any entries
9906         in the GenericParam, MethodSpec or GenericParamConstraint tables,
9907         set the header version to 1.1.
9908
9909 2004-04-06  Martin Baulig  <martin@ximian.com>
9910
9911         * class.c (mono_class_init): If we're a generic instance,
9912         initialize our nested classes, too.
9913         (_mono_class_get_instantiation_name): Deal with the new `!%d'
9914         suffix. 
9915
9916 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9917
9918         * process.c: quote the argument passed to the shell on windows.
9919
9920 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
9921
9922         * threads.c (mono_alloc_special_static_data): Allow this to be
9923         called during startup.
9924
9925 2004-04-02  Martin Baulig  <martin@ximian.com>
9926
9927         * icall.c
9928         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
9929
9930 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
9931
9932         * icall.c: Fix build.
9933
9934 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
9935
9936         * Makefile.am: Added security.c|h.
9937         * icall.c: Added icall for get_UserName;
9938         * security.c: New file for security related icalls. Added function
9939         get_UserName for System.Environment (fix #56144).
9940         * security.h: New. Header file for security.c
9941
9942 2004-04-02  Dick Porter  <dick@ximian.com>
9943
9944         * icall.c: Deleted the icalls that were obsoleted some time ago
9945         by the ICU string code, and which were mixed into the icall
9946         rearranging.  Fixes bug 55969.
9947
9948         * string-icalls.h: 
9949         * string-icalls.c: Deleted the code that those icalls reference.
9950
9951 2004-04-01  Martin Baulig  <martin@ximian.com>
9952
9953         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
9954
9955         * class.c (mono_class_from_generic_parameter): Don't set 
9956         TYPE_ATTRIBUTE_INTERFACE.
9957         (my_mono_class_from_generic_parameter): Likewise.
9958
9959 2004-04-01  Martin Baulig  <martin@ximian.com>
9960
9961         * loader.c (find_method): Added an optional `MonoClass *ic'
9962         argument to search in a specific interface.
9963         (mono_get_method_constrained): New public function.
9964
9965 2004-04-01  Martin Baulig  <martin@ximian.com>
9966
9967         * reflection.c (mono_image_get_generic_field_token): Use the
9968         `handleref' cache here.
9969
9970 2004-04-01  Martin Baulig  <martin@ximian.com>
9971
9972         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
9973
9974         * reflection.c (create_generic_typespec): Use the `typespec' hash
9975         here, not the `typeref' one.    
9976
9977 2004-04-01  Martin Baulig  <martin@ximian.com>
9978
9979         * class.c (mono_class_inflate_generic_type): Moved the
9980         functionality into a new static inflate_generic_type() which
9981         returns NULL if it didn't do anything.  Only increment the
9982         `mono_stats.inflated_type_count' if we actually inflated
9983         something.
9984         (mono_class_get_full): Check the classes type to see whether we
9985         need to inflate it; also inflate MONO_TYPE_(M)VAR.
9986
9987 2004-04-01  Jackson Harper  <jackson@ximian.com>
9988
9989         * reflection.c: Set culture for assembly references.
9990         
9991 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
9992
9993         * reflection.[ch], icall.[ch], Fix support for pinning variables.
9994
9995 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9996
9997         * assembly.c:
9998         (do_mono_assembly_open): the critical section also covers
9999         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
10000
10001 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10002
10003         * threads.c:
10004         (mono_manage_threads): abort the background threads when finishing.
10005         Fixes bug #47232.
10006
10007 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10008
10009         * gc.c: only close the done_event handle if there was no timeout.
10010         C-ified comments.
10011
10012 2004-03-30  Martin Baulig  <martin@ximian.com>
10013
10014         * icall.c (icall_entries): It's called "System.Activator", not
10015         "System.Activation".    
10016
10017 2004-03-30  Martin Baulig  <martin@ximian.com>
10018
10019         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
10020         (mono_class_create_from_typespec): Likewise.
10021
10022 2004-03-30  Martin Baulig  <martin@ximian.com>
10023
10024         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
10025         `has_ctor_constraint' and `initialized'.
10026
10027 2004-03-30  Martin Baulig  <martin@ximian.com>
10028
10029         * reflection.c (encode_new_constraint): New static function to add
10030         the constructor constraint attribute to a type parameter.
10031         (encode_constraints): Call encode_new_constraint() if necessary.
10032
10033         * reflection.h
10034         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
10035
10036         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
10037         
10038 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
10039
10040         * reflection.c, icall.c: add support for pinning variables. 
10041
10042 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
10043
10044         * marshal.c (mono_marshal_get_managed_wrapper):
10045         init bool local with zero rather than null.
10046
10047 2004-03-29  Martin Baulig  <martin@ximian.com>
10048
10049         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
10050         the "official" behavior here.
10051         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
10052
10053 2004-03-29  Martin Baulig  <martin@ximian.com>
10054
10055         * icall.c: Reflect latest API changes.
10056
10057 2004-03-29  Martin Baulig  <martin@ximian.com>
10058
10059         * loader.c (mono_get_method_from_token): Also call
10060         mono_metadata_load_generic_params () for abstract and interface
10061         methods; replace the type arguments in the method signature with
10062         the ones which are loaded from the metadata.
10063
10064 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
10065
10066         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
10067         of the lock is not the current thread. MS.NET don't do it, in spite of
10068         what the documentation says. See bug #56157.
10069
10070 2004-03-28  Martin Baulig  <martin@ximian.com>
10071
10072         * class.c (mono_class_init): Don't call init_properties() and
10073         init_events() for generic instances; set `prop->parent' when
10074         inflating properties.
10075
10076         * reflection.c (mono_generic_inst_get_object): Call
10077         `mono_class_init (ginst->klass)'.
10078         (mono_type_get_object): Only create a MonoGenericInst if your
10079         generic type is a TypeBuilder.
10080         (do_mono_reflection_bind_generic_parameters): Only set
10081         `ginst->is_dynamic' if our generic type is a TypeBuilder.
10082
10083 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
10084
10085         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
10086         Fixes #56091.
10087
10088 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10089
10090         * icall.c: added Kill_internal icall.
10091         * process.[ch]: added Kill_internal icall.
10092
10093 2004-03-25  Martin Baulig  <martin@ximian.com>
10094
10095         * class.h (MonoStats): Added `generic_instance_count',
10096         `inflated_method_count', `inflated_type_count' and
10097         `generics_metadata_size'.       
10098
10099 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10100
10101         * reflection.c: no warnings now.
10102
10103 2004-03-25  Martin Baulig  <martin@ximian.com>
10104
10105         * class.c (mono_class_get_full): New public function; does a
10106         mono_class_get(), but also takes a `MonoGenericContext *'.
10107
10108         * loader.c (mono_field_from_memberref): Renamed to
10109         `field_from_memberref', made static and added `MonoGenericContext *'
10110         argument.
10111         (mono_field_from_token): Added `MonoGenericInst *' argument.
10112         (method_from_memberef): Likewise.
10113         (mono_get_method_from_token): Likewise.
10114         (mono_get_method_full): New public function; does a
10115         mono_get_method(), but also takes a `MonoGenericContext *'.
10116
10117         * verify.c (mono_method_verify): Get the method's generic context
10118         and pass it to mono_field_from_token(), mono_get_method_full() and
10119         mono_class_get_full().
10120
10121 2004-03-25  Martin Baulig  <martin@ximian.com>
10122
10123         * class.c (mono_class_inflate_generic_type): Take a
10124         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
10125         `MonoGenericMethod *'.
10126
10127 2004-03-25  Martin Baulig  <martin@ximian.com>
10128
10129         * loader.h (MonoMethodInflated): Store the MonoGenericContext
10130         instead of the MonoGenericMethod here.
10131
10132 2004-03-25  Martin Baulig  <martin@ximian.com>
10133
10134         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
10135         each time we create a new MonoGenericInst, we also create a new
10136         context which points back to us.
10137
10138         * class.c (inflate_method): Use `ginst->context' instead of
10139         creating a new context.
10140
10141         * loader.c (method_from_memberref): Use
10142         `klass->generic_inst->context' instead of creating a new context.
10143
10144 2004-03-25  Martin Baulig  <martin@ximian.com>
10145
10146         * class.h (MonoGenericContext): New struct.
10147         (MonoGenericMethod): Removed `generic_inst'.
10148
10149         * class.c (mono_class_inflate_generic_method): Take a
10150         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
10151
10152 2004-03-25  Martin Baulig  <martin@ximian.com>
10153
10154         * loader.h (MonoMethodInflated): New typedef.
10155
10156         * metadata.h (MonoMethodSignature): Removed `gen_method', make
10157         `generic_param_count' consume just 30 bits, added `is_inflated'
10158         and `has_type_parameters' flags (one bit each).
10159
10160         * class.c (mono_class_inflate_generic_method): Create a
10161         MonoMethodInflated instead of a MonoMethodNormal and set
10162         `is_inflated' in the method signature.
10163
10164         * class.h (MonoGenericMethod): Removed `generic_method'.
10165
10166 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
10167
10168         * image.c: Make sure the name of a MonoImage is always an absolute path.
10169           This fixes bug #54415.
10170
10171 2004-03-24  Martin Baulig  <martin@ximian.com>
10172
10173         * class.c (mono_class_setup_vtable): If we're a generic instance,
10174         use our generic type's vtable size.
10175
10176 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
10177
10178         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
10179         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
10180         problems.
10181
10182 2004-03-23  Martin Baulig  <martin@ximian.com>
10183
10184         * class.h (MonoDynamicGenericInst): Added `int count_events' and
10185         `MonoEvent *events'.
10186
10187         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
10188         (typebuilder_icalls): Added "get_event_info"; calls
10189         mono_reflection_event_builder_get_event_info(). 
10190
10191         * reflection.c (mono_reflection_generic_inst_initialize): Added
10192         `MonoArray *events'.
10193         (mono_reflection_event_builder_get_event_info): New function.
10194
10195 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
10196
10197         * object.h: add mono_type_initialization_init
10198
10199         * object.c (mono_runtime_class_init): 
10200         implement class constructor synchronization rules
10201         to cope with threading issues.  
10202         add mono_type_initialization_init
10203
10204         * appdomain.c (mono_runtime_init): call 
10205         mono_type_initialization_init
10206
10207         * class.h: removing initializing field from MonoVTable
10208
10209 2004-03-23  Martin Baulig  <martin@ximian.com>
10210
10211         * class.c (my_mono_class_from_generic_parameter): Use
10212         `param->name' if it's not NULL. 
10213
10214 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
10215
10216         * class.c: do not insert non-virtual methods in the vtable.
10217         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
10218         that means the method is non-virtual. This never would have
10219         happened before.
10220
10221 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
10222
10223         * profiler.c: Added lock for accessing coverage_hash.
10224
10225 2004-03-22  Martin Baulig  <martin@ximian.com>
10226
10227         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
10228         `method->method->signature->generic_param_count != 0' to make it
10229         work for interface methods.
10230
10231 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10232
10233         * process.c: quote the string passed to the shell using g_shell_quote.
10234
10235 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10236
10237         * threads.c:
10238         (mono_threads_manage): don't remove the finalizer thread and self
10239         from the threads hash table so that mono_thread_manage can be called
10240         more than once.
10241
10242 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10243
10244         * process.c: quote the arguments when UseShellExecute is true. Fixes
10245         bug #55790.
10246
10247 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10248
10249         * threads.c: set mono_thread_detach as a cleanup routine for every
10250         thread. This way it's always executed upon thread termination, either
10251         aborted or finished normally. No more xsp hangs!
10252
10253 2004-03-17  Martin Baulig  <martin@ximian.com>
10254
10255         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
10256         `int count_nested' and a `MonoType **nested'.
10257
10258         * reflection.c (mono_reflection_bind_generic_parameters): Moved
10259         most of the functionality into a new static
10260         do_mono_reflection_bind_generic_parameters() and don't take a
10261         `MonoType *nested_in' argument any more.  Don't compute nested
10262         types here.
10263         (mono_reflection_generic_inst_get_nested_types): New public method
10264         to get nested types.
10265
10266         * class.c (mono_class_create_generic): Set `klass->nested_in' if
10267         we're a nested class.
10268
10269         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
10270         mono_reflection_generic_inst_get_nested_types() to compute the
10271         nested types.
10272
10273 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10274
10275         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
10276         descriptive error message under windows.
10277         
10278 2004-03-17  Martin Baulig  <martin@ximian.com>
10279
10280         * class.c (dup_type): Added `const MonoType *original' argument;
10281         copy the attrs from the original type.
10282
10283 2004-03-17  Martin Baulig  <martin@ximian.com>
10284
10285         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
10286         `m->generic_inst_cache' here.
10287
10288 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10289
10290         * exception.h exception.c: Add stack_overflow_exception.
10291
10292 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10293
10294         * threadpool.c:
10295         (overlapped_callback): call SetEvent *after* invoking the callback.
10296         No need to call CloseHandle.
10297
10298 2004-03-16  Martin Baulig  <martin@ximian.com>
10299
10300         * reflection.c (mono_image_get_fieldref_token): Take a
10301         `MonoReflectionField *' instead of a `MonoClassField *' and a
10302         `MonoClass *'; store the `MonoReflectionField *' in the hash.
10303
10304 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10305
10306         * appdomain.c: don't add the culture to the filename we're looking for
10307         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
10308
10309 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10310
10311         * locales.c: don't ignore symbols when doing case insensitive compares.
10312         Thanks Dick! Fixes bug #54046.
10313
10314         * threads.c: surround 'threads' usage with enter/leave in
10315         mono_thread_manage.
10316
10317 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
10318
10319         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
10320         implicitly marshalled as [Out]. Fixes #55450.
10321
10322         (mono_marshal_get_runtime_invoke): Zero out the result if there is
10323         an exception.
10324
10325 2004-03-16  Martin Baulig  <martin@ximian.com>
10326
10327         * class.c (mono_class_from_generic_parameter): Use the actual
10328         parameter name. 
10329
10330 2004-03-16  Martin Baulig  <martin@ximian.com>
10331
10332         * reflection.c (type_get_signature_size): New static function.
10333         Compues the size of the type in a method signature.
10334         (method_get_signature_size): New static function; calls
10335         type_get_signature_size() to compute the actual size of the
10336         method's signature.
10337         (method_encode_signature): Use method_get_signature_size() to get
10338         the signature's size rather than using `nparams * 10'.
10339
10340 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10341
10342         * file-io.h: define here WapiOverlapped on windows. I don't want the
10343         regular OVERLAPPED one.
10344
10345         * file-io.c:
10346         * threadpool.c: somehow, BindIoCompletionCallback is not found.
10347         Disabling AIO on windows.
10348
10349 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10350
10351         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
10352         bug #55385.
10353
10354 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10355
10356         * appdomain.c: upgraded corlib version.
10357
10358         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
10359         and BeginWrite. Allow opening files for asynchrnous operations.
10360
10361         * file-io.h: new struct that maps FileStreamAsyncResult.
10362         * icall.c: added new icalls.
10363         * process.[ch]: support setting child process environment variables
10364         and use the SHELL or COMSPEC when UseShellExecute is true.
10365
10366         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
10367         callback for async. IO is here and also BindHandle.
10368
10369         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
10370         from here.
10371
10372 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
10373
10374         * reflection.c (create_custom_attr): Allow len == 0.
10375
10376         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
10377         computation on big-endian machines.
10378
10379 2004-03-13  Martin Baulig  <martin@ximian.com>
10380
10381         * class.h (MonoGenericInst): Added `int count_ifaces'.
10382
10383         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
10384         `ginst->count_ifaces' instead `klass->interface_count' since we
10385         may get called before the vtable is created.
10386
10387         * loader.c (mono_method_get_param_names): If we're a generic
10388         instance, return and don't initialize the class.
10389
10390         * reflection.c (mono_reflection_setup_generic_class): Don't call
10391         ensure_runtime_vtable().
10392         (mono_reflection_bind_generic_parameters): Set
10393         `ginst->count_ifaces'.
10394
10395 2004-03-11  Jackson Harper <jackson@ximian.com>
10396
10397         * icall.c:
10398         * unicode.c:
10399         * unicode.h: Remove unused System.Char icalls.
10400         
10401 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
10402
10403         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
10404         code when we P/Invoke the first library in Windows.Forms, instead
10405         of when we first open the assembly.
10406
10407         * assembly.c: Drop the lookup from here.
10408
10409 2004-03-10  Martin Baulig  <martin@ximian.com>
10410
10411         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
10412         class for properties, fields and events.  Finally fixes #54945.
10413
10414 2004-03-10  Martin Baulig  <martin@ximian.com>
10415
10416         * metadata.c (mono_metadata_class_equal): New static function;
10417         checks whether two generic instances or two generic parameters are
10418         equal.
10419         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
10420         compare classes.        
10421
10422 2004-03-10  Martin Baulig  <martin@ximian.com>
10423
10424         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
10425
10426         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
10427         argument and write it into the `reflection_info' field.
10428
10429         * icall.c
10430         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
10431         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
10432
10433 2004-03-09  Jackson Harper  <jackson@ximian.com>
10434
10435         * char-conversions.h: use 8 bits for numeric data its all we need
10436         * icall.c: numeric data is only 8 bits now.
10437
10438 2004-03-09  Martin Baulig  <martin@ximian.com>
10439
10440         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
10441
10442         * class.c (init_properties, init_events): Initialize the new
10443         `parent' field.
10444
10445         * reflection.c (typebuilder_setup_properties): Likewise.
10446         (typebuilder_setup_events): Likewise.
10447
10448         * reflection.h (MonoEventInfo): Replaced `parent with
10449         `declaring_type' and `reflected_type'.
10450
10451         * icall.c (ves_icall_get_property_info): Distinguish between
10452         declaring and reflected type.
10453         (ves_icall_get_event_info): Likewise.
10454
10455 2004-03-09  Martin Baulig  <martin@ximian.com>
10456
10457         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
10458         (ves_icall_Type_GetField): Correctly set field->klass.
10459
10460 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
10461
10462         * loader.h: Fix warning.
10463
10464 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
10465
10466         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
10467         library routine if present.  Notice that it will still continue
10468         executing even if its missing, for those working on the Gtk#
10469         edition of Windows.Forms.
10470
10471         * assembly.c (do_mono_assembly_open): If loading the
10472         System.Windows.Forms call mono_loader_wini_init.
10473
10474 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
10475
10476         * class.h: Added MonoRemoteClass struct.
10477         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
10478         function for MonoStrings.
10479         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
10480         Added internal call for getting the proxy type.
10481         * marshal.c: Get the type of transparent proxies from its remote_class.
10482         Added methods that generate the IL for type checks and casts:
10483         mono_marshal_get_isinst, mono_marshal_get_castclass, 
10484         mono_marshal_get_proxy_cancast.
10485         * marshal.h: Declaration of the previous new methods.
10486         * object.c: Added new moethods for creating and updating MonoRemoteClass
10487         instances: mono_remote_class, mono_upgrade_remote_class, 
10488         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
10489         * verify.c: FIx transparent_proxy_fields layout.
10490         * appdomain.c: Bump corlib version.
10491
10492 2004-03-04  Jackson Harper  <jackson@ximian.com>
10493
10494         * icall.c: Add icall to access char conversion tables.
10495         * char-conversions.h: Character conversion tables.
10496         * Makefile.am: Add char-conversions.h private header file.
10497         
10498 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
10499
10500         * appdomain.c (unload_thread_main): Increase unloading timeout to
10501         10 sec as a temporary workaround for Nant problems.
10502
10503 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
10504
10505         * gc.c: Add checks for GC_enable and GC_disable.
10506
10507         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
10508         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
10509         (bug #54988).
10510         
10511 2004-02-27  Martin Baulig  <martin@ximian.com>
10512
10513         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10514         `MonoReflectionType *' instead of a `MonoType *'.
10515
10516 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
10517
10518         * gc.c (run_finalize): Avoid finalizing the object representing the
10519         finalizer thread.
10520         (finalizer_thread): Fix warning.
10521
10522 2004-02-25  Martin Baulig  <martin@ximian.com>
10523
10524         * class.c (_mono_class_get_instantiation_name): Added `int offset'
10525         argument for nested types.
10526         (mono_class_create_generic): Added support for nested generictypes.
10527
10528         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
10529         `GList *nested'.
10530
10531         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10532
10533         * reflection.c (method_encode_signature): Increase the minimum
10534         value of `size' from 10 to 11.
10535         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10536         and `MonoType **types' arguments instead of the `MonoArray
10537         *types'; added `MonoType *nested_in'.  Recursively instantiate
10538         nested classes. 
10539
10540 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10541
10542         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10543         stack_overflow_ex members which are used by exception handling.
10544
10545         * appdomain.c (mono_runtime_init): Initialize the new members.
10546
10547         * gc.c (mono_gc_enable): New helper function.
10548         * gc.c (mono_gc_disable): New helper function.
10549
10550 2004-02-23  Martin Baulig  <martin@ximian.com>
10551
10552         * icall.c: I must have been really stupid - make it actually work
10553         this time ;-)
10554
10555 2004-02-23  Martin Baulig  <martin@ximian.com>
10556
10557         * loader.c (method_from_memberref): Only inflate the method if
10558         it's in another klass.
10559
10560 2004-02-23  Martin Baulig  <martin@ximian.com>
10561
10562         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10563         (mono_class_init): If we're a generic instance and an interface,
10564         compute `class->interface_id'; also create `class->interfaces'
10565         here and inflate them.
10566
10567         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10568         `ginst->is_open'.
10569         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10570
10571         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10572
10573 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10574
10575         * reflection.c (method_encode_code): Improved the error message
10576         generated by the exception.
10577
10578 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10579
10580         * icall.c: Martin did not do what he said in the ChangeLog for
10581         2004-02-18, but put back the changes for properties and events.
10582         Commenting those changes out again and adding comment to bug #54518.
10583         
10584         * process.c: removed warning.
10585
10586 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10587
10588         * marshal.c (emit_struct_conv): Print an error message instead of
10589         asserting when a type does not have the StructLayout attribute.
10590
10591 2004-02-20  Martin Baulig  <martin@ximian.com>
10592
10593         * reflection.c (mono_type_get_object): Also use the cache for
10594         generic instances.
10595         (mono_reflection_bind_generic_parameters): Always compute
10596         `ginst->ifaces'.        
10597
10598 2004-02-20  Martin Baulig  <martin@ximian.com>
10599
10600         * class.h (MonoGenericMethod): Removed `klass'.
10601
10602         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10603         *klass' argument.
10604
10605 2004-02-20  Martin Baulig  <martin@ximian.com>
10606
10607         * reflection.c (method_encode_methodspec): Actually use the
10608         uninflated signature for the memberref.
10609
10610 2004-02-20  Martin Baulig  <martin@ximian.com>
10611
10612         * class.h (MonoGenericMethod): Removed `declaring'.
10613
10614         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10615         is NULL, compute it here.
10616
10617 2004-02-20  Martin Baulig  <martin@ximian.com>
10618
10619         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10620
10621         * metadata.c (mono_metadata_generic_inst_hash): New method.
10622         (mono_metadata_generic_inst_equal): New method.
10623
10624         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10625         `klass->image->generic_inst_cache' cache to avoid creating
10626         duplicate MonoGenericInst's.
10627
10628         * class.c (mono_class_inflate_generic_type): Use the cache.
10629
10630 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10631
10632         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10633
10634 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10635
10636         * icall.c: added Socket.WSAIoctl icall.
10637
10638         * socket-io.[ch]: implemented
10639         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10640
10641 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10642
10643         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10644
10645 2004-02-18  Urs C Muff  <umuff@quark.com>
10646
10647         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10648         this work on PPC and other big-endian architectures.
10649
10650         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10651         fields with an underscore to make sure they're only accessed by
10652         the read32() macro.
10653
10654 2004-02-18  Martin Baulig  <martin@ximian.com>
10655
10656         * icall.c: Put the klass->refclass changes back for methods and
10657         fields, but not for properties and events.  We're currently not
10658         distinguishing between DeclaringType and ReflectedType for
10659         properties and events, that's what caused the regressions.
10660
10661 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10662
10663         * object.c:
10664         (mono_async_result_new): the handle can be NULL.
10665
10666         * threadpool.c: Use an event instead of a semaphore, don't initialize
10667         it until needed. This saves quite a few semaphores from being created
10668         when using the threadpool.
10669
10670 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10671
10672         * object.c (mono_string_is_interned_lookup): Fix interning of long
10673         strings. Fixes #54473.
10674
10675         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10676
10677         * icall.c: Revert the klass->refclass changes since they introduce
10678         regressions (bug #54518).
10679
10680 2004-02-18  Martin Baulig  <martin@ximian.com>
10681
10682         * class.c (mono_class_init): If we're a generic instance and don't
10683         come from a TypeBuilder, inflate our members here.
10684         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10685         (mono_class_create_generic): New public method.
10686         (mono_class_initialize_generic): Removed.
10687         (get_instantiation_name): Renamed to
10688         _mono_class_get_instantiation_name() and made it public.
10689
10690 2004-02-18  Martin Baulig  <martin@ximian.com>
10691
10692         * class.c (mono_class_inflate_generic_type): Clear the new
10693         instance's `nginst->klass' when inflating a generic instance.
10694         (mono_class_is_subclass_of): Added (basic) support for generic
10695         instances.
10696
10697 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10698
10699         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10700         MonoMempool to hold compiled native code.
10701
10702 2004-02-17  Martin Baulig  <martin@ximian.com>
10703
10704         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10705         `properties'.
10706
10707         * reflection.c (mono_reflection_generic_inst_initialize): Added
10708         `MonoArray *properties' argument.
10709
10710         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
10711
10712 2004-02-17  Martin Baulig  <martin@ximian.com>
10713
10714         * icall.c (ves_icall_Type_GetFields): Renamed to
10715         ves_icall_Type_GetFields_internal() and added a
10716         `MonoReflectionType *rtype' argument; pass it to
10717         mono_field_get_object() to set the field's "reflected" type.
10718         (ves_icall_Type_GetConstructors): Likewise.
10719         (ves_icall_Type_GetEvents): Likewise.
10720         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
10721         argument; pass it to mono_method_get_object() to set the method's
10722         "reflected" type.       
10723
10724 2004-02-17  Martin Baulig  <martin@ximian.com>
10725
10726         * class.h (MonoDynamicGenericInst): New type.
10727         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
10728
10729         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
10730         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
10731         (ves_icall_MonoGenericInst_GetFields): New interncall.
10732
10733         * class.c (mono_class_from_generic): Don't call
10734         mono_class_initialize_generic() if this is a dynamic instance;
10735         ie. it's being created from a TypeBuilder.
10736         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
10737         `class->byval_arg.type'.
10738
10739         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
10740         to `inflate_method' and made static.
10741         (mono_reflection_inflate_field): Removed.
10742         (mono_reflection_generic_inst_initialize): New public method.
10743
10744         * reflection.h (MonoReflectionGenericInst): Removed `methods',
10745         `ctors' and `fields'; added `initialized'.
10746
10747 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
10748
10749         * debug-helpers.c (mono_method_full_name): Fix output for empty
10750         namespaces.
10751
10752 2004-02-12  Martin Baulig  <martin@ximian.com>
10753
10754         * class.h (MonoClassField): Added `MonoType *generic_type'.
10755
10756         * reflection.c (mono_image_get_fieldref_token): Added support for
10757         instantiated generic types.
10758         (field_encode_inflated_field): Removed.
10759         (mono_image_get_inflated_field_token): Removed.
10760         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
10761
10762         * reflection.h (MonoReflectionInflatedField): Removed.
10763
10764 2004-02-12  Martin Baulig  <martin@ximian.com>
10765
10766         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
10767         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
10768
10769         * reflection.c (mono_image_get_methodspec_token): Take a
10770         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
10771         (mono_image_create_token): Check whether we have a
10772         `method->signature->gen_method' and call
10773         mono_image_get_methodspec_token() if appropriate.
10774         (inflated_method_get_object): Removed.
10775         (mono_reflection_bind_generic_method_parameters): Return a
10776         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
10777         (mono_reflection_inflate_method_or_ctor): Likewise.
10778
10779         * reflection.h (MonoReflectionInflatedMethod): Removed.
10780
10781 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
10782
10783         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
10784         for custom valuetype marshalling.
10785
10786         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
10787
10788 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10789
10790         * icall.c: fixed WSAGetLastError_internal name.
10791
10792 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
10793
10794         * threads.c (mono_thread_attach): Allow this to be called multiple
10795         times for a thread.
10796         
10797         * threads.c (build_wait_tids): Do not wait for ourselves.
10798
10799         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
10800         appdomain list is empty.
10801
10802         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
10803         memory returned by mono_string_builder_to_utf16, since it points into
10804         managed memory. Thanks to Bernie Solomon for noticing this.
10805
10806         * icall.c: Add AppDomainSetup icalls.
10807
10808         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
10809
10810         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
10811         types.
10812
10813         * reflection.c (reflection_methodbuilder_to_mono_method): Save
10814         custom attributes to the method_aux struct. Also fix array indexes etc.
10815
10816         * loader.c (mono_method_get_param_names): Make dynamic case work again.
10817         
10818 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
10819
10820         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
10821         (both static and runtime) and reduce startup time.
10822
10823 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
10824
10825         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
10826         AsAny marshalling conversion instead of crashing.
10827
10828         * marshal.c: Fix warnings.
10829
10830 2004-02-09  Martin Baulig  <martin@ximian.com>
10831
10832         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
10833
10834         * reflection.h (MonoReflectionInflatedMethod): Removed the
10835         `declaring' field, it's now in the unmanaged MonoGenericMethod.
10836
10837         * reflection.c (method_encode_methodspec): Removed the `method'
10838         argument; we get it from `gmethod->declaring'.
10839         (inflated_method_get_object): Removed the `declaring' argument.
10840
10841 2004-02-09  Martin Baulig  <martin@ximian.com>
10842
10843         * class.h (MonoGenericMethod): New type.
10844         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
10845         `generic_method'.
10846
10847         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
10848         a `MonoGenericMethod *gen_method' one.
10849
10850         * class.c (mono_class_inflate_generic_type): Take an additional
10851         `MonoGenericMethod * argument.  This is only non-NULL if we're
10852         inflating types for a generic method.   
10853         (mono_class_inflate_generic_signature): Renamed to
10854         inflate_generic_signature() and made static; take a
10855         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10856         (inflate_generic_header): Take a `MonoGenericMethod *' argument
10857         instead of a `MonoGenericInst *' one.
10858         (mono_class_inflate_generic_method): Likewise.
10859
10860         * reflection.c (encode_generic_method_sig): Take a
10861         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10862         (method_encode_methodspec): Likewise.
10863         (inflated_method_get_object): Likewise. 
10864
10865         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
10866         field with a `MonoGenericMethod *gmethod' one.  
10867
10868 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
10869
10870         * class.h (mono_class_has_parent): add parens to expansion
10871         so you can ! this.
10872
10873 2004-02-08  Martin Baulig  <martin@ximian.com>
10874
10875         * image.h (MonoImage): Removed `generics_cache'.
10876
10877         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
10878         instead of a `MonoType *' argument; removed the `inflate_methods'
10879         argument.  Don't inflate methods here.
10880
10881         * loader.c (find_method): If it's a generic instance, call
10882         mono_class_init() on the `sclass->generic_inst->generic_type'.
10883
10884         * metadata.c (mono_type_size): Make this work on uninitialized
10885         generic instances; call it on the `ginst->generic_type's class.
10886
10887         * reflection.c (mono_reflection_bind_generic_parameters): Call
10888         mono_class_from_generic() to create the `ginst->klass'.
10889
10890 2004-02-08  Martin Baulig  <martin@ximian.com>
10891
10892         * class.h (MonoClass): Changed type of `generic_inst' from
10893         `MonoType *' to `MonoGenericInst *'.
10894
10895 2004-02-08  Martin Baulig  <martin@ximian.com>
10896
10897         * icall.c (ves_icall_Type_BindGenericParameters): Just call
10898         mono_type_get_object(), this is now creating a `MonoGenericInst'
10899         for MONO_TYPE_GENERICINST.
10900         (ves_icall_MonoGenericInst_GetParentType): Likewise.
10901         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
10902
10903         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
10904         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
10905         (inflated_method_get_object): Added `MonoClass *refclass' argument.
10906         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
10907         and reflected type.
10908
10909         * reflection.h (MonoReflectionInflatedMethod): Removed
10910         `declaring_type' and `reflected_type'.
10911
10912 2004-02-08  Martin Baulig  <martin@ximian.com>
10913
10914         * class.h (MonoGenericInst): Added `MonoType *parent' and
10915         `MonoType **ifaces'.
10916
10917         * reflection.h (MonoReflectionGenericInst): Removed `klass',
10918         `parent' and `interfaces'.
10919
10920         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10921         `MonoType *' argument and return a `MonoType *'.
10922
10923         * icall.c
10924         (ves_icall_MonoGenericInst_GetParentType): New interncall.
10925         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
10926
10927 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10928
10929         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
10930         valuetype marshalling.
10931
10932 2004-02-06  Martin Baulig  <martin@ximian.com>
10933
10934         * class.c
10935         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
10936         (my_mono_class_from_generic_parameter): Likewise.
10937
10938 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10939
10940         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
10941         contents of the symbol files lazily.
10942
10943         * object.h (MonoThread): Add 'name' and 'name_len' fields.
10944
10945         * threads.h threads.c icall.c: New icalls for getting and setting the
10946         threads name.
10947
10948 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
10949
10950         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
10951         Raise an exception when the domain is not found.
10952
10953 2004-02-03  Martin Baulig  <martin@ximian.com>
10954
10955         * reflection.c (mono_image_get_methodspec_token): Use the
10956         uninflated signature; fixes gen-33.
10957
10958 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
10959
10960         * gc.c threads.c: Make the finalizer thread a normal managed thread so
10961         the finalizer code can use thread functionality.
10962
10963         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
10964         the finalizer thread.
10965
10966         * threads.c: Make some functions more robust.
10967
10968         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
10969
10970         * metadata.h: Add new marshalling conventions.
10971
10972         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
10973         stringbuilder marshalling. Fixes #53700.
10974
10975         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
10976
10977         * reflection.c (mono_image_get_type_info): Save declarative security
10978         info.
10979
10980         * reflection.c (mono_image_get_field_info): Handle uninitialized 
10981         unmanaged fields as well.
10982
10983         * appdomain.c: Bump corlib version.
10984
10985 2004-02-01  Martin Baulig  <martin@ximian.com>
10986
10987         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
10988         method type arguments.  
10989
10990 2004-01-30  Duncan Mak  <duncan@ximian.com>
10991
10992         * marshal.h: Add prototype for
10993         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
10994         and
10995         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
10996         fix the build.
10997
10998 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
10999
11000         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
11001         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
11002
11003 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11004
11005         * marshal.c (mono_marshal_get_native_wrapper): Add support for
11006         custom marshalling of valuetypes.
11007
11008         * marshal.c: Fix some warnings.
11009
11010 2004-01-29  Martin Baulig  <martin@ximian.com>
11011
11012         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
11013         for generic method parameters.
11014
11015         * reflection.c (method_encode_methodspec): Write the uninflated
11016         signature into the methodspec table.
11017         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
11018         is always the uninflated method.
11019         (reflection_methodbuilder_to_mono_method): Copy the generic
11020         parameters from the MethodBuilder into `header->gen_params'.
11021
11022 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11023
11024         * class.c (mono_class_from_generic_parameter): Fix warning.
11025
11026 2004-01-27  Martin Baulig  <martin@ximian.com>
11027
11028         * class.c (mono_class_from_generic_parameter): Don't create
11029         `klass->methods' here.  
11030
11031 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
11032
11033         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
11034         extension since it does not work with libraries named lib<FOO>.dll.so.
11035
11036 2004-01-25  Martin Baulig  <martin@ximian.com>
11037
11038         * class.c (mono_class_inflate_generic_type): Added support for
11039         MONO_TYPE_GENERICINST.
11040
11041         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
11042         inflate methods on open constructed types.      
11043
11044 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11045
11046         * object.c: fire ProcessExit event in the root AppDomain after running
11047         Main. Fixes bug #53299.
11048
11049 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
11050
11051         * socket-io.c: include the new socket-wrappers.h header.
11052         Use the wrappers instead of the unix socket functions to make the code
11053         more clear.
11054
11055 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
11056
11057         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
11058
11059         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11060         Fixes #22532.
11061
11062 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
11063
11064         * reflection.c (mono_image_create_pefile): Handle the case when the
11065         entry point is not a MethodBuilder.
11066
11067         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11068         field to ReflectionMethod since it is not allways a builder.
11069
11070         * reflection.c (type_get_fully_qualified_name): New helper function to
11071         return the fully qualified name of a type.
11072
11073         * reflection.c (encode_marshal_blob): Always emit the fully qualified
11074         type name for custom marshallers.
11075
11076         * reflection.c (mono_marshal_spec_from_builder): Ditto.
11077
11078         * class.c (mono_class_setup_vtable): If a parent class already 
11079         implements an interface, use the implementing methods from that class.
11080         Fixes #53148.
11081
11082 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11083
11084         * threadpool.c: just return instead of ExitThread to allow for thread
11085         clean up earlier.
11086
11087 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
11088
11089         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
11090         when closing resource modules.
11091
11092         * reflection.c (mono_image_create_pefile): Handle the case when the
11093         entry point is not a MethodBuilder.
11094
11095         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11096         field to ReflectionMethod since it is not allways a builder.
11097
11098 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11099
11100         * marshal.c (mono_marshal_get_managed_wrapper): 
11101         mono_marshal_alloc takes native int so CONV_I
11102         the arg for 64bits.
11103
11104 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
11105
11106         * reflection.c (fixup_cattrs): New function to fixup the methoddef
11107         tokens in the cattr table. Fixes #53108.
11108
11109 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11110
11111         * loader.c: don't trim ".dll" before looking up in the config file.
11112         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
11113
11114 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
11115
11116         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
11117         Return the module which contains the resource as well.
11118         (ves_icall_System_Reflection_Module_Close): New icall.
11119
11120         * appdomain.c: Bump corlib version number.
11121
11122         * image.c (mono_image_addref): New public function.
11123
11124         * assembly.c: Call mono_image_addref.
11125
11126         * reflection.c (mono_module_get_object): Increase reference count of 
11127         the image.
11128
11129         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11130         Fixes #22532.
11131
11132         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
11133         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
11134         proper exceptions on DllImport problems.
11135
11136 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
11137
11138         * class.c, metadata.c: eliminate CSIZE macro.
11139
11140 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
11141
11142         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
11143         * object.h: Added async_callback field in MonoAsyncResult.
11144         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
11145         * verify.c: Added async_callback in MonoAsyncResult layout.
11146
11147 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
11148
11149         * reflection.c (mono_reflection_get_custom_attrs): Add support
11150         for Modules.
11151
11152 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11153
11154         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
11155         marshalling.
11156         (mono_marshal_method_from_wrapper): Add null pointer check.
11157
11158 2004-01-16  Martin Baulig  <martin@ximian.com>
11159
11160         * debug-mono-symfile.h: Set version number to 36 and reflect
11161         latest symbol writer changes.
11162
11163 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11164
11165         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
11166         multi-dimensional arrays.
11167         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
11168         (mono_class_from_mono_type): Use bounded_array_class_get.
11169         
11170         * class.c (mono_bounded_array_class_get): New function which takes
11171         a 'bounded' bool argument to distinguish vectors from one dimensional
11172         arrays.
11173
11174         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
11175         bounded_array_class_get if the array has bounds.
11176
11177         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11178         Search modules loaded using AssemblyBuilder:AddModule as well.
11179
11180 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11181
11182         * appdomain.c: increased corlib version.
11183         * filewatcher.c: removed g_print.
11184         * icall.c:
11185         (get_property_info): only allocate what is actually requested.
11186         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
11187
11188 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11189
11190         * Makefile.am: added filewatcher.[ch]
11191         * filewatcher.[ch]: FileSystemWatcher runtime support.
11192         * icall.c: added new FSW icalls.
11193
11194 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
11195
11196         * string-icalls.c: fix stringbuilder regression as suggested by
11197         Iain McCoy <iain@mccoy.id.au>.
11198
11199 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
11200
11201         * process.c (process_read_stringtable_block): Recognize '007f' as
11202         a language neutral stringtable block.
11203
11204 2004-01-12  Patrik Torstensson
11205
11206         * object.h (MonoStringBuilder) : Changed layout to support our
11207         new stringbuilder class.
11208         * marshal.c: Change marshalling to support the new layout of 
11209         string builder.
11210         * appdomain.c: increased version number because new layout of
11211         string builder.
11212
11213 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
11214
11215         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
11216         assembly name as an string instead of an AssemblyName, since it is
11217         easier to extract info from it.
11218
11219         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
11220         the culture subdirectories too. Fixes #52231.
11221
11222 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11223
11224         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
11225         It takes 2 new parameters with an optional name for the method to look
11226         for and case ignoring info.
11227
11228         * threadpool.c: removed unused variable.
11229
11230 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11231
11232         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
11233         It takes 2 new parameters with an optional name for the property to look
11234         for and case ignoring info.
11235         Fixes bug #52753.
11236
11237 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
11238
11239         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
11240         Fix #52451.
11241
11242 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11243
11244         * appdomain.c:
11245         * assembly.c: escape the uri before passing it to g_filename_from_uri.
11246         Fixes bug #52630.
11247
11248 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
11249
11250         * reflection.c: Add support for more than one unmanaged resource.
11251
11252         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
11253         in field->def_value, as done in all other cases.
11254
11255         * reflection.c (mono_reflection_get_custom_attrs): Add support for
11256         TypeBuilders.
11257
11258         * reflection.c (mono_reflection_create_runtime_class): Remove 
11259         errorneous assignment to klass->element_class, since it is already
11260         done in mono_reflection_setup_internal_class.
11261
11262 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11263
11264         * gc.c: added missing LeaveCriticalSection.
11265         * icall.c: indented a couple of lines.
11266         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
11267         if we call EndInvoke inside a callback. Fixes bug #52601.
11268
11269 2004-01-07  Martin Baulig  <martin@ximian.com>
11270
11271         * mono-debug-debugger.h
11272         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
11273
11274 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
11275
11276         * appdomain.c: Use messages in NotImplementedException.
11277
11278         * exception.c (mono_get_exception_not_implemented): Now this takes
11279         a message argument.
11280
11281         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
11282         exception instead of g_asserting an aborting when something is not
11283         implemented.
11284
11285         Add some inline docs.
11286
11287 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
11288
11289         * reflection.h: Update after changes to object layout.
11290
11291         * reflection.c: Implement saving of unmanaged aka win32 resources.
11292
11293         * appdomain.c: Bump version number.
11294
11295         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
11296         Handle missing domains gracefully.
11297
11298 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
11299
11300         * file-io.c : On Windows, there are much more invalid_path_chars.
11301
11302 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
11303
11304         * class.h, object.c: prepare for GetType () speedup.
11305
11306 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
11307
11308         * profiler.c: workaround for --profile null reference exception on
11309           cygwin. Patch by Patrik Torstensson.
11310
11311 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
11312
11313         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
11314         make work for unaligned access.
11315
11316 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
11317
11318         * class.c: small cleanup (class->fields [i] -> field).
11319         * image.c: check address of metadata is valid.
11320
11321 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
11322
11323         * assembly.h assembly.c (mono_assembly_loaded): New public function to
11324         search the list of loaded assemblies.
11325
11326         * reflection.c (mono_reflection_type_from_name): Use 
11327         mono_assembly_loaded instead of mono_image_loaded.
11328
11329         * reflection.c: Fix warnings.
11330
11331 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
11332
11333         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
11334         is dynamic. This is needed since an assembly can contain both dynamic and
11335         non-dynamic images.
11336
11337         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
11338         assembly->dynamic.
11339
11340         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
11341
11342         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
11343         to store modules loaded using AddModule.
11344
11345         * reflection.c (mono_image_fill_file_table): Generalize this so it works
11346         on Modules.
11347
11348         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
11349
11350         * reflection.c (mono_image_fill_export_table_from_module): New function to
11351         fill out the EXPORTEDTYPES table from a module.
11352
11353         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
11354         into a separate function. Also handle loaded non-dynamic modules.
11355
11356         * reflection.c (mono_image_basic_init): Fix memory allocation.
11357
11358         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11359
11360         * assembly.c (mono_assembly_load_references): Make this public.
11361
11362 2003-12-19  Martin Baulig  <martin@ximian.com>
11363
11364         * class.c (mono_class_initialize_generic): Made this static, take
11365         a `MonoGenericInst *' instead of a `MonoClass *'.
11366         (mono_class_from_generic): Call mono_class_initialize_generic()
11367         unless we're already initialized or being called from
11368         do_mono_metadata_parse_generic_inst().
11369
11370         * class.h (MonoGenericInst): Added `initialized' and
11371         `init_pending' flags.
11372
11373         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
11374         `mono_class_init (gklass)' or mono_class_initialize_generic()
11375         here; set `generic_inst->init_pending' while parsing the
11376         `type_argv'.
11377
11378 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
11379
11380         * locales.c: include string.h for memxxx prototypes
11381
11382 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
11383
11384         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
11385         constructor when accessing literal fields.
11386
11387 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
11388
11389         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11390
11391         * reflection.c (assembly_add_resource_manifest): New function to fill
11392         the MANIFESTRESOURCE table.
11393
11394         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
11395
11396         * reflection.h: Update to changes in class layout.
11397
11398         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
11399         Reenable call to mono_runtime_is_shutting_down ().
11400
11401         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
11402         determine if the runtime is shutting down.
11403
11404 2003-12-16  Jackson Harper <jackson@ximian.com>
11405
11406         * icall.c: comment out call to mono_runtime_is_shutting_down to
11407         fix build.
11408         
11409 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
11410
11411         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
11412         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
11413
11414 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
11415
11416         * reflection.c: move definition of swap_with_size
11417         to before its first call
11418
11419 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
11420
11421         * appdomain.c (mono_runtime_is_shutting_down): New public function.
11422
11423         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
11424         icall.
11425
11426         * object.c: Fix warnings.
11427
11428         * icall.c (ves_icall_Type_Get...): Only consider inherited static
11429         members if FlattenHierarchy is set.
11430
11431         * reflection.c (mono_image_add_decl_security): New function to emit
11432         declarative security.
11433
11434         * reflection.h reflection.c: Add support for declarative security.
11435
11436         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11437         
11438 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
11439
11440         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11441         
11442         * appdomain.c verify.c: Moved corlib version checking into its own
11443         function in appdomain.c since it needs to create vtables etc.
11444
11445 2003-12-13  Patrik Torstensson <p@rxc.se>
11446
11447         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
11448         instead of unwrapped server.
11449
11450 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
11451
11452         * verify.c (check_corlib): Fix field index.
11453
11454 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
11455
11456         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
11457         GetGacPath icall.
11458
11459 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
11460
11461         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
11462         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
11463         cope with sizeof(size_t) != sizeof(guint32).
11464
11465 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11466
11467         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
11468         in case of failure.
11469
11470 2003-12-10  Mark Crichton <crichton@gimp.org>
11471
11472         * icall.c: removed the GetNonZeroBytes.  We now handle this case
11473         in managed code.
11474
11475         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
11476
11477 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
11478
11479         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
11480         marked as deleted.
11481
11482 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
11483
11484         * verify.c (check_corlib): Handle the case when the version field is 
11485         initialized by a static constructor.
11486
11487 2003-12-08  Patrik Torstensson  <p@rxc.se>
11488
11489     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
11490
11491 2003-12-08  Martin Baulig  <martin@ximian.com>
11492
11493         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
11494         a MonoReflectionGenericParameter, also take the parameter index
11495         and name as arguments.
11496         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
11497         (ves_icall_MonoGenericParam_initialize): New interncall.
11498         (ves_icall_Type_make_byref_type): New interncall.
11499
11500         * reflection.h (MonoReflectionGenericParam): Derive from
11501         MonoReflectionType, not just from MonoObject.  Added `refobj' and
11502         `index' fields.
11503
11504         * reflection.c (mono_reflection_define_generic_parameter): Create
11505         and return a new MonoReflectionGenericParam; don't initialize the
11506         constraints here.
11507         (mono_reflection_initialize_generic_parameter): New public method;
11508         initializes the constraints and creates the `param->pklass'.
11509
11510 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
11511
11512         * reflection.h reflection.c: Use the new fields 'num_types', 
11513         'num_fields' and 'num_methods' to track the number of types etc.
11514
11515         * verify.c (check_corlib): Check corlib version number.
11516
11517 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
11518
11519         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
11520         function works on all methods.
11521
11522 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
11523
11524         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
11525         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
11526         the custom_type_info flag of the transparent proxy.
11527         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
11528         objects that supports IRemotingTypeInfo.
11529         * object.h: Added custom_type_info field in transparent proxy.
11530
11531 2003-12-06  Martin Baulig  <martin@ximian.com>
11532
11533         * class.c (mono_class_create_from_generic): Removed.
11534         (mono_class_from_generic): Check `ginst->klass' before doing
11535         anything else.  This is important to fully support "recursive"
11536         generic types.
11537
11538         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11539         empty `generic_inst->klass' before doing anything else.
11540
11541 2003-12-06  Dick Porter  <dick@ximian.com>
11542
11543         * verify.c: 
11544         * object.h:
11545         * icall.c:
11546         * locales.c: Use C structs to access class fields.  Don't do a
11547         conversion between MonoString and UChar because both are
11548         platform-endian UTF-16.  Compare now takes startindex and count
11549         parameters.  Add a char overload for IndexOf.  Speed up the
11550         invariant string IndexOf.
11551
11552 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11553
11554         * Makefile.am (monosn_LDADD): Fix parallel build.
11555
11556 2003-12-04  Martin Baulig  <martin@ximian.com>
11557
11558         * icall.c
11559         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11560         (ves_icall_Type_make_array_type): New interncall.       
11561
11562 2003-12-04  Martin Baulig  <martin@ximian.com>
11563
11564         * locales.c: also change it in the !HAVE_ICU case.
11565
11566 2003-12-04  Dick Porter  <dick@ximian.com>
11567
11568         * icall.c:
11569         * locales.c: construct_compareinfo is now in CompareInfo, not
11570         CultureInfo.
11571
11572 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11573
11574         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11575         image->files array.
11576
11577         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11578         table as well.
11579
11580         * assembly.c (mono_assembly_load_references): Only load references
11581         once.
11582
11583         * class.c (mono_class_from_name): Avoid linear search of the 
11584         EXPORTEDTYPE table.
11585
11586         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11587
11588 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11589
11590         * image.h (MonoImage): Add 'field_cache' field.
11591
11592         * loader.c (mono_field_from_token): Cache field lookups.
11593         
11594         * reflection.c (mono_module_get_object): Fix name property.
11595
11596         * icall.c (ves_icall_get_enum_info): Update after changes to 
11597         mono_metadata_get_constant_index ().
11598
11599         * icall.c: Get rid of get_type_info icall, use a separate icall for
11600         each type property to avoid needless memory allocations. Fixes #51514.
11601
11602         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11603         to avoid needless binary searches.
11604
11605         * class.c (class_compute_field_layout): Move the initialization of
11606         field->def_value to mono_class_vtable ().
11607
11608         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11609         non-corlib types.
11610
11611         * object.c (mono_object_allocate): Make it inline.
11612
11613         * object.c (mono_object_allocate_spec): Make it inline.
11614         
11615 2003-12-02  Dick Porter  <dick@ximian.com>
11616
11617         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11618         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11619
11620 2003-12-01  Dick Porter  <dick@ximian.com>
11621
11622         * threads.c: Fix signature and call in CreateMutex and
11623         CreateEvent.
11624
11625 2003-12-01  Dick Porter  <dick@ximian.com>
11626
11627         * icall.c: 
11628         * locales.c: Implement string compares and searching
11629
11630         * object.h: Add extra Thread field
11631
11632 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11633
11634         * reflection.c (fixup_method): Add support for MonoCMethod.
11635
11636 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11637
11638         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11639
11640         * reflection.c (assembly_name_to_aname): Allow extra characters in
11641         assembly names. Fixes #51468.
11642
11643 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11644
11645         * exception.c (mono_exception_from_name_domain): New helper function.
11646
11647         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11648         exception object in the correct domain.
11649
11650         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11651         formatting + make a copy a the input data.
11652
11653         * loader.c (mono_get_method_from_token): Methods which contain
11654         native code do not have entries in the ImplMap.
11655
11656         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11657         Thanks to Gonzalo for spotting this.
11658         
11659         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11660         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11661
11662         * assembly.h (mono_assembly_load_from): Split the second part of 
11663         assembly loading into a new public function.
11664
11665         * exception.h (mono_get_exception_bad_image_format): New function.
11666
11667 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11668
11669         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11670         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11671         
11672         * icall.c: Add new icall for creating dynamic methods.
11673
11674         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11675
11676         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11677
11678         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11679         create a dynamic method.
11680
11681         * reflection.c (resolve_object): New helper function.
11682
11683         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11684         which manipulate it so they can also work on dynamic methods.
11685
11686         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11687         creating the MonoReflectionMethodAux structure if it is not needed.
11688         
11689         * reflection.h verify.c: Update after changes to object layout.
11690
11691         * reflection.c (method_builder_encode_signature): Fix compilation on
11692         gcc 2.95.x.
11693
11694 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11695
11696         * appdomain.h: Added support for context static fields. Added static_data
11697           field to MonoAppContext and renamed thread_static_fields to a more
11698           generic special_static_fields in MonoAppDomain, since it can now contain
11699           context static fields.
11700         * domain.c: Updated hashtable name.
11701         * object.c: Replaced field_is_thread_static() for a more generic
11702           field_is_special_static() which also checks for context static attribute.
11703           In mono_class_vtable(), added support for static context fields.
11704         * threads.c: Changed methods that manage thread static fields to more
11705           generic methods so they can be reused both for thread and context static
11706           data.
11707         * threads.h: Declared some new methods.
11708
11709 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
11710
11711         * reflection.h: Update after changes to the managed types.
11712
11713         * reflection.c (encode_custom_modifiers): New helper function.
11714
11715         * reflection.c (method_encode_signature): Emit custom modifiers.
11716
11717         * reflection.c (field_encode_signature): Emit custom modifiers.
11718
11719 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
11720
11721         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
11722
11723         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
11724         implementation.
11725
11726         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
11727         icall.
11728
11729         * object.c (mono_field_get_value_object): New function.
11730
11731         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
11732         specific.
11733
11734 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
11735
11736         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
11737         return a preallocated out-of-memory exception instance.
11738
11739         * object.c (out_of_memory): Use the new function.
11740
11741         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
11742         flag is before the custom modifiers. Fixes #49802.
11743
11744 2003-11-16  Martin Baulig  <martin@ximian.com>
11745
11746         * class.c (mono_class_is_open_constructed_type): Implemented the
11747         MONO_TYPE_GENERICINST case.
11748
11749 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
11750
11751         * assembly.c (mono_assembly_fill_assembly_name): New function to
11752         fill out the MonoAssemblyName structure.
11753         (mono_assembly_open): Use the new function.
11754
11755         * icall.c (fill_reflection_assembly_name): New helper function.
11756
11757         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
11758         new function.
11759
11760         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
11761
11762 2003-11-15  Martin Baulig  <martin@ximian.com>
11763
11764         * class.c (mono_class_is_open_constructed_type): New public
11765         function; checks whether a type is an open constructed type,
11766         ie. whether it still contains type parameters.
11767         (mono_class_inflate_generic_type): If we're a type parameter and
11768         the inflated type is also a MONO_TYPE_(M)VAR, return the original
11769         type.
11770
11771         * class.h (MonoGenericInst): Added `guint32 is_open'.
11772
11773         * loader.c (method_from_methodspec): Check whether we're an open
11774         or closed constructed type and set `ginst->is_open'.
11775
11776         * reflection.c (mono_reflection_bind_generic_parameters): Check
11777         whether we're an open or closed constructed type and set
11778         `ginst->is_open'.
11779         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
11780         from open constructed types.
11781
11782 2003-11-15  Martin Baulig  <martin@ximian.com>
11783
11784         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11785         a generic instance (instead of a generic type declaration) with
11786         unbound generic parameters, bind them to our actual types.
11787
11788 2003-11-14  Martin Baulig  <martin@ximian.com>
11789
11790         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
11791
11792         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11793         an interface type, populate `res->interfaces' with instantiated
11794         versions of all the interfaces we inherit.
11795
11796 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
11797
11798         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
11799         when MONO_PATH is set but doesn't contain the install dir.
11800
11801 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11802
11803         * icall.c:
11804         (ves_icall_Type_GetInterfaces): don't return an interface twice when
11805         it's also implemented in base classes. Fixes bug #50927.
11806
11807 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
11808
11809         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
11810         if this method is called from a finalizer. Fixes #50913.
11811
11812 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
11813
11814         * threads.c: Implement VolatileRead/VolatileWrite
11815
11816         * icall.c: Add new icalls for VolatileRead/VolatileWrite
11817
11818 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11819
11820         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
11821         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
11822         2.95.3.
11823
11824         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
11825         from Peter Ross (pro@missioncriticalit.com).
11826         
11827 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
11828
11829         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
11830
11831 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11832
11833         * assembly.c (mono_assembly_load_references): Disable check because it
11834         triggers on older corlibs which lots of people have.
11835
11836 2003-11-12  Jackson Harper  <jackson@ximian.com>
11837
11838         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
11839         load corlib.dll if mscorlib.dll is not found.
11840         * assembly.h: Remove corlib name define.
11841         * class.c:
11842         * domain.c:
11843         * image.c: Change corlib name to mscorlib.
11844         
11845 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11846
11847         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
11848
11849 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
11850
11851         * appdomain.h: Added loader_optimization here to sync with the C#
11852         code, and add disallow_binding_redirects field.
11853
11854 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11855
11856         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
11857
11858         * reflection.c (mono_image_build_metadata): Fix crash on modules
11859         with no types.
11860
11861         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
11862
11863         * icall.c (ves_icall_get_method_info): Return callingConvention as
11864         well.
11865
11866         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
11867         namespaces from the EXPORTEDTYPE table as well.
11868
11869         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
11870         from all modules inside the assembly.
11871         
11872 2003-11-11  Martin Baulig  <martin@ximian.com>
11873
11874         * reflection.c (mono_reflection_bind_generic_parameters): Make
11875         this work for interfaces.
11876
11877 2003-11-11  Martin Baulig  <martin@ximian.com>
11878
11879         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
11880
11881 2003-11-11  Martin Baulig  <martin@ximian.com>
11882
11883         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
11884         "MonoInflatedMethod" and "MonoInflatedCtor".
11885
11886 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11887
11888         * reflection.c (resolution_scope_from_image): Use the assembly table
11889         from the manifest module, since other modules don't have it.
11890
11891         * debug-helpers.c (mono_type_full_name): New helper function.
11892
11893         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
11894
11895         * image.c (mono_image_load_file_for_image): New public function which
11896         is a replacement for the load_file_for_image in class.c.
11897
11898         * assembly.c (mono_assembly_load_module): A wrapper for the function
11899         above which does assembly association and reference loading too.
11900
11901         * class.c (mono_class_from_name): Call mono_assembly_load_module.
11902
11903 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11904
11905         * appdomain.c: not all of the attributes for the full assembly name
11906         are required and the order doesn't matter. Fixes bug #50787.
11907
11908 2003-11-10  Dick Porter  <dick@ximian.com>
11909
11910         * locales.c: Use platform-endian UTF16
11911
11912 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11913
11914         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11915         
11916 2003-11-10  Martin Baulig  <martin@ximian.com>
11917
11918         * metadata.c
11919         (mono_metadata_load_generic_params): Make this actually work.
11920
11921         * reflection.c (mono_reflection_bind_generic_parameters): If our
11922         parent is a generic instance, pass all the `types' to it, no
11923         matter whether it has the same number of type parameters or not.
11924
11925 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11926
11927         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11928
11929         * assembly.c (mono_assembly_load_references): Move the image<->assembly
11930         assignment code to this function so it gets called recursively for all
11931         modules.
11932
11933         * image.c (load_modules): Remove the assembly assignment since it is
11934         now done by mono_assembly_load_references.
11935         
11936         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11937         Add 'module' argument.
11938         (mono_module_get_types): New helper function.
11939         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
11940
11941 2003-11-08  Martin Baulig  <martin@ximian.com>
11942
11943         * class.c (mono_class_inflate_generic_method): Interface method
11944         don't have a header.
11945
11946         * reflection.c (mono_image_get_methodspec_token): Take an
11947         additional `MonoGenericInst *' argument instead of reading it from
11948         the header; this is necessary to support interfaces.
11949         (mono_image_create_token): Pass the `MonoGenericInst *' from the
11950         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
11951         (inflated_method_get_object): Take an additional `MonoGenericInst *'
11952         argument.
11953
11954         * reflection.h (MonoReflectionInflatedMethod): Added
11955         `MonoGenericInst *ginst'.
11956
11957 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
11958
11959         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
11960
11961 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
11962
11963         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
11964
11965 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
11966
11967         * reflection.c 
11968         (reflection_methodbuilder_from_method_builder):
11969         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
11970         initialize a ReflectionMethodBuilder structure.
11971         (mono_image_get_methodbuilder_token):
11972         (mono_image_get_ctorbuilder_token): New functions to emit memberref
11973         tokens which point to types in another module inside the same assembly.
11974
11975         * reflection.c: Use the new helper functions.
11976         
11977         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
11978
11979         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
11980         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
11981
11982         * reflection.c (resolution_scope_from_image): Emit a moduleref if
11983         neccesary.
11984
11985         * reflection.c (mono_image_build_metadata): Emit metadata only for the
11986         current module. Emit the manifest only for the main module.
11987
11988         * reflection.c (mono_image_create_token): Add assertion when a 
11989         memberref needs to be created.
11990
11991         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
11992
11993         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
11994         larger buffer for the custom attribute blob. Fixes #50637.
11995         
11996 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11997
11998         * threadpool.c: notify listener on async processing handles after
11999         invoking the async callback. Thanks to Zoltan.
12000
12001 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12002
12003         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
12004         avoid code duplication.
12005
12006         * reflection.h (MonoDynamicImage): New type which is currently unused,
12007         but will be used through the ref.emit code in place of 
12008         MonoDynamicAssembly.
12009
12010         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12011         object layout.
12012
12013         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
12014         a MonoDynamicImage instead of just a MonoImage.
12015         
12016         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
12017         icalls to ModuleBuilder but keep their semantics, so they will work
12018         with moduleb->assemblyb. This will change later.
12019         
12020 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12021
12022         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12023         object layout.
12024
12025         * reflection.c (mono_image_build_metadata): Avoid creation of a default
12026         main module, since it is now done by the managed code.
12027
12028 2003-11-03  Martin Baulig  <martin@ximian.com>
12029
12030         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
12031         `ginst->klass' here.
12032         (method_encode_methodspec): Don't use the `ginst->generic_method's
12033         klass if it's a generic instance, use `ginst->klass' in this case.
12034
12035 2003-11-03  Martin Baulig  <martin@ximian.com>
12036
12037         * reflection.c (mono_image_get_generic_method_param_info):
12038         Removed, use mono_image_get_generic_param_info() instead.
12039         (mono_image_get_type_info): Write the GenericParam table before
12040         the Method table.  This is neccessary because in the GenericParam
12041         table, type parameters of the class (ie. '!0' etc.) must come
12042         before the ones from its generic methods (ie. '!!0' etc).
12043
12044 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12045
12046         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
12047
12048 2003-11-02  Martin Baulig  <martin@ximian.com>
12049
12050         * reflection.c (create_generic_typespec): Take a
12051         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
12052         the generic parameters from it.
12053
12054 2003-11-02  Martin Baulig  <martin@ximian.com>
12055
12056         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
12057         instead of a `MonoClassField *' since we just need the type.
12058         (create_generic_typespec): New static function.  Creates a
12059         TypeSpec token for a generic type declaration.
12060         (mono_image_get_generic_field_token): New static function.
12061         (mono_image_create_token): If we're a FieldBuilder in a generic
12062         type declaration, call mono_image_get_generic_field_token() to get
12063         the token.
12064
12065 2003-11-02  Martin Baulig  <martin@ximian.com>
12066
12067         * reflection.h
12068         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
12069         `MonoReflectionGenericInst *declaring_type' and
12070         `MonoReflectionGenericInst *reflected_type' fields.
12071
12072         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
12073         `MonoReflectionGenericInst *declaring_type' and a
12074         `MonoReflectionGenericInst *reflected_type' argument instead of a
12075         single `MonoReflectionGenericInst *type' one.  Set
12076         `res->declaring_type' and `res->reflected_type' from them.
12077         (mono_reflection_inflate_field): Likewise.      
12078
12079 2003-11-02  Martin Baulig  <martin@ximian.com>
12080
12081         * class.c (mono_class_setup_vtable): Don't store generic methods
12082         in the vtable.  
12083
12084 2003-11-02  Martin Baulig  <martin@ximian.com>
12085
12086         * reflection.h (MonoReflectionGenericInst): Added
12087         `MonoReflectionType *declaring_type'.
12088
12089         * reflection.c (mono_reflection_bind_generic_parameters): Use
12090         `if (tb->parent)' instead of `klass->parent'.
12091
12092 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
12093
12094         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
12095         with an empty ASSEMBLY table.
12096
12097         * reflection.c (mono_image_build_metadata): Avoid using the same loop
12098         variable in the inner and outer loops.
12099
12100 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
12101
12102         * metadata.h (mono_metadata_make_token): Put parentheses around macro
12103         argument.
12104
12105         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
12106         
12107         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
12108         icalls. Instead, do everything in managed code. This is needed since
12109         it is hard to restore the original domain etc. in unmanaged code in the
12110         presence of undeniable exceptions.
12111
12112         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
12113         New icalls to push and pop appdomain refs.
12114
12115 2003-10-31  Martin Baulig  <martin@ximian.com>
12116
12117         * class.c (inflate_generic_type): Renamed to
12118         mono_class_inflate_generic_type() and made it public.
12119
12120         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
12121         New interncall.
12122
12123         * loader.c (mono_field_from_memberref): Also set the retklass for
12124         typespecs.
12125
12126         * fielder.c (mono_image_get_inflated_field_token): New static
12127         method; creates a metadata token for an inflated field.
12128         (mono_image_create_token, fixup_method): Added support for
12129         "MonoInflatedField".
12130         (fieldbuilder_to_mono_class_field): New static function.
12131         (mono_reflection_inflate_field): New public function.
12132
12133         * reflection.h
12134         (MonoReflectionGenericInst): Added `MonoArray *fields'.
12135         (MonoReflectionInflatedField): New typedef.     
12136
12137 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
12138
12139         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
12140         for Solaris and other platforms without s6_addr16
12141
12142 2003-10-30  Martin Baulig  <martin@ximian.com>
12143
12144         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
12145         argument instead of two.
12146         (mono_class_inflate_generic_signature): Likewise.
12147         (inflate_generic_header): Likewise.
12148         (mono_class_inflate_generic_method): Likewise.  In addition, if
12149         `ginst->klass' is set, it becomes the new `method->klass'.
12150
12151         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
12152         field.
12153
12154         * reflection.c (encode_generic_method_sig): Write a 0xa as the
12155         first byte. [FIXME]
12156         (method_encode_methodspec): If we have generic parameters, create
12157         a MethodSpec instead of a MethodRef.
12158         (fixup_method): Added support for "MonoInflatedMethod" and
12159         "MonoInflatedCtor".
12160         (mono_image_create_token): Added support for "MonoInflatedMethod"
12161         and "MonoInflatedCtor".
12162         (inflated_method_get_object): New static function; returns a
12163         managed "System.Reflection.MonoInflatedMethod" object.
12164         (mono_reflection_bind_generic_method_parameters): Return a
12165         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
12166         (mono_reflection_inflate_method_or_ctor): Likewise.
12167         (mono_image_get_generic_method_param_info): Initialize unused
12168         fields to zero.
12169         (mono_image_get_generic_param_info): Likewise.
12170
12171         * reflection.h (MonoReflectionInflatedMethod): New public
12172         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
12173         "S.R.MonoInflatedCtor" classes.
12174
12175         * loader.c (method_from_memberref): If we're a TypeSpec and it
12176         resolves to a generic instance, inflate the method.
12177
12178 2003-10-28  Dick Porter  <dick@ximian.com>
12179
12180         * object.c (mono_runtime_run_main): Convert command-line arguments
12181         into utf8, falling back to the user's locale encoding to do so.
12182
12183 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
12184
12185         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
12186         at this time.
12187
12188         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
12189
12190         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
12191         up icalls at method definition time. Partially fixes #33569.
12192
12193 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
12194
12195         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
12196         marshalling of arrays. Fixes #50116.
12197
12198         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
12199
12200         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
12201         points to a vtable in the dying appdomain.
12202
12203         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
12204         listeners into unmanaged code inside the lock.
12205
12206         * object.c (mono_class_vtable): Turn off typed allocation in non-root
12207         domains and add some comments.
12208
12209 2003-10-25  Martin Baulig  <martin@ximian.com>
12210
12211         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
12212
12213         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
12214
12215         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
12216         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
12217         currently parsing.  Create the generic class and store it in
12218         `generic_inst->klass' before parsing the type arguments.  This is
12219         required to support "recursive" definitions; see mcs/tests/gen-23.cs
12220         for an example.
12221         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
12222         to support recursive typespec entries.
12223
12224         * class.c (mono_class_setup_parent): If our parent is a generic
12225         instance, we may get called before it has its name set.
12226         (mono_class_from_generic): Splitted into
12227         mono_class_create_from_generic() and mono_class_initialize_generic().
12228
12229 2003-10-25  Martin Baulig  <martin@ximian.com>
12230
12231         * icall.c (ves_icall_Type_BindGenericParameters): Return a
12232         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
12233         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
12234         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
12235
12236         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
12237         (create_typespec): Likewise.
12238         (mono_reflection_bind_generic_parameters): Return a
12239         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
12240         (mono_reflection_inflate_method_or_ctor): New public function.
12241
12242         * reflection.h (MonoReflectionGenericInst): New typedef.        
12243
12244 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
12245
12246         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
12247         inside the domain lock. Fixes #49993.
12248         
12249         * object.c (mono_class_vtable): When typed allocation is used, 
12250         allocate vtables in the GC heap instead of in the mempool, since the
12251         vtables contain GC descriptors which are used by the collector even
12252         after the domain owning the mempool is unloaded.
12253
12254         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
12255
12256         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
12257         reflect what it does. Also invalidate mempools instead of freeing
12258         them if a define is set.
12259
12260         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
12261         of the appdomain.
12262         
12263         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
12264         hold the finalizable objects in this domain.
12265
12266         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
12267         appdomain.
12268
12269         * appdomain.c (mono_domain_set): New function to set the current
12270         appdomain, but only if it is not being unloaded.
12271
12272         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
12273         appdomain which is being unloaded.
12274         
12275         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
12276         unloading of the root appdomain.
12277
12278         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
12279         icall to execute a method in another appdomain. Intended as a 
12280         replacement for InternalSetDomain, which can confuse the code 
12281         generation in the JIT.
12282
12283         * appdomain.c (mono_domain_is_unloading): New function to determine
12284         whenever an appdomain is unloading.
12285
12286         * appdomain.c (mono_domain_unload): New function to correctly unload
12287         an appdomain.
12288
12289         * assembly.c (mono_assembly_load_references): Check that an assembly
12290         does not references itself.
12291
12292         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
12293         domain manually, it asks the finalizer thread to do it, then waits for
12294         the result. Also added a timeout.
12295
12296         * icall.c: Register the new icalls.
12297
12298         * threads.h threads.c: Export the mono_gc_stop_world and 
12299         mono_gc_start_world functions.
12300         
12301         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
12302         function to fill out the mempool with 0x2a.
12303
12304 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
12305
12306         * reflection.h (MonoReflectionMethodAux): New structure to store
12307         information which is rarely used, thus is not in the MonoMethod
12308         structure.
12309
12310         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
12311         store the aux info.
12312
12313         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
12314         and marshalling info into the aux structure.
12315
12316         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
12317         from the aux structure.
12318
12319         * loader.c (mono_method_get_param_names): Retrieve the param names from
12320         the aux structure.
12321         
12322 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
12323
12324         * exception.h exception.c: Add AppDomainUnloadedException && fix 
12325         warning.
12326
12327 2003-10-21  Dick Porter  <dick@ximian.com>
12328
12329         * socket-io.c
12330         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
12331         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
12332
12333 2003-10-21  Martin Baulig  <martin@ximian.com>
12334
12335         * reflection.c (mono_reflection_bind_generic_parameters):
12336         `klass->parent' is NULL for interfaces.
12337
12338 2003-10-21  Martin Baulig  <martin@ximian.com>
12339
12340         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12341
12342 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
12343
12344         * exception.c (mono_exception_from_name_msg): New helper function for
12345         creating exceptions and initializing their message field.
12346
12347         * exception.c: Simplify functions using the new helper.
12348
12349         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
12350         New function.
12351
12352         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
12353         mono_raise_exception, since otherwise gcc doesn't generate the function
12354         epilog for raise_exception, confusing the stack unwinding in the JIT.
12355         Fixes #45043.
12356
12357         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
12358         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
12359         Fixes #49499.
12360
12361 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12362
12363         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
12364         utf8.
12365
12366 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
12367
12368         * icall.c: Removed GetUninitializedObject method because
12369           AllocateUninitializedClassInstance does the same.
12370
12371 2003-10-18  Martin Baulig  <martin@ximian.com>
12372
12373         * class.c (inflate_generic_signature): Renamed to
12374         mono_class_inflate_generic_signature() and made it public.
12375         (my_mono_class_from_generic_parameter): New static function; if we
12376         don't already have the generic parameter's MonoClass, create a
12377         very simple one which is just used internally in the runtime and
12378         not passed back to managed code.
12379
12380         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
12381
12382         * metadata.h (MonoMethodSignature): Moved the
12383         `MonoGenericParam *gen_params' to the MonoMethodHeader.
12384         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
12385
12386         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
12387         ves_icall_MonoMethod_GetGenericArguments(); this is now an
12388         interncall on the MonoMethod class, not on MethodInfo.
12389         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
12390         calling mono_reflection_bind_generic_method_parameters() directly.
12391
12392         * loader.c (mono_method_get_signature): If this is a MethodSpec;
12393         return the already computed `method->signature'.
12394         (method_from_methodspec): New static function to load a method
12395         from a MethodSpec entry.
12396         (mono_get_method_from_token): Call the new method_from_methodspec()
12397         for MethodSpec tokens.  
12398         (mono_get_method_from_token): If we're a generic method, load the
12399         type parameters.
12400
12401         * reflection.c (mono_image_get_memberref_token): Allow
12402         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
12403         table.
12404         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
12405         (mono_image_create_token): First check whether it's a generic
12406         method (so we'd need to create a MethodSpec), then do the other
12407         two alternatives.
12408         (mono_reflection_bind_generic_method_parameters): Return a
12409         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
12410         called directly from the interncall.
12411
12412 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
12413
12414         * reflection.c (load_public_key): Move loading of the public key
12415         into managed code.
12416
12417         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
12418
12419         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
12420         fields.
12421
12422         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
12423         culture, hash_alg and public_key. Fixes #49555.
12424
12425 2003-10-17  Martin Baulig  <martin@ximian.com>
12426
12427         * class.h (MonoGenericInst): Moved this declaration here and added
12428         `MonoMethod *generic_method'.
12429
12430         * icall.c
12431         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
12432         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
12433
12434         * metadata.c (mono_metadata_type_equal): Two types of
12435         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
12436         index; ie. don't compare the address of the `MonoGenericParam'
12437         structure.
12438         (mono_metadata_load_generic_params): Removed the `MonoMethod
12439         *method' argument.
12440
12441         * metadata.h (MonoGenericInst): Moved declaration to class.h.
12442         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
12443
12444         * reflection.c (method_encode_signature): Encode the number of
12445         generic parameters.
12446         (encode_generic_method_sig): New static function.
12447         (method_encode_methodspec): New static function; creates an entry
12448         in the MethodSpec table for a generic method.
12449         (mono_image_get_methodspec_token): New static function.
12450         (mono_image_create_token): Call mono_image_get_methodspec_token()
12451         for generic methods.
12452         (mono_reflection_bind_generic_method_parameters): New public
12453         function.  Instantiates a generic method.
12454
12455 2003-10-16  Martin Baulig  <martin@ximian.com>
12456
12457         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
12458         *gen_params' here from MonoMethodHeader.
12459
12460         * metadata.c (mono_metadata_parse_method_signature): If we have
12461         generic parameters, initialize `method->gen_params' and then set
12462         the correct `type->data.generic_param' in all the parameters.
12463
12464 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
12465
12466         * threads.c (mono_threads_get_default_stacksize): New function to 
12467         return the default stacksize.
12468
12469         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
12470         termination of the finalizer thread, since the previous method had
12471         race conditions. Fixes #49628.
12472
12473         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
12474         as for the other managed threads.
12475
12476 2003-10-16  Martin Baulig  <martin@ximian.com>
12477
12478         * class.c (inflate_generic_signature): Copy `generic_param_count'
12479         and `gen_params'.
12480
12481         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
12482         New interncall.
12483
12484         * metadata.c (mono_metadata_parse_method_signature): Actually set
12485         the `method->generic_param_count' here.
12486         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
12487
12488 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
12489
12490         * object.h: Add a new field to TypedRef to simplify the implementation
12491         of the REFANY opcodes in the JIT.
12492
12493         * icall.c: Make use of the new field.
12494
12495         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
12496         dynamically.
12497
12498 2003-10-15  Martin Baulig  <martin@ximian.com>
12499
12500         * class.c (mono_class_from_gen_param): Renamed to
12501         mono_class_from_generic_parameter() and moved most of the
12502         functionality from mono_reflection_define_generic_parameter()
12503         here; ie. we create a "real" class here.
12504         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
12505         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
12506         previously been called.
12507
12508         * class.h (MonoGenericParam): Moved the declaration of this struct
12509         here from metadata.h and added `MonoMethod *method'.
12510
12511         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
12512         interncall.
12513
12514         * loader.c (mono_get_method_from_token): If we have any generic
12515         parameters, call mono_metadata_load_generic_params() to read them
12516         from the MONO_TABLE_GENERICPAR.
12517
12518         * metadata.c (mono_metadata_load_generic_params): Added
12519         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
12520
12521         * metadata.h (MonoMethodSignature): Replaced
12522         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
12523         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
12524
12525         * reflection.c (mono_reflection_define_generic_parameter): Moved
12526         most of the functionality into the new
12527         mono_class_from_generic_parameter(); set the `method' field if
12528         we're a method parameter.       
12529
12530 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12531
12532         * marshal.c (emit_struct_conv): if native size is 0
12533         emit no code.
12534
12535 2003-10-14  Martin Baulig  <martin@ximian.com>
12536
12537         * icall.c: The generics API has changed in the spec since it was
12538         added to System.Type; these modifications make it match the spec
12539         again.
12540         (ves_icall_Type_GetGenericParameters): Renamed to
12541         `ves_icall_Type_GetGenericArguments'.
12542         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12543         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12544         `ves_icall_MonoType_get_HasGenericArguments'.
12545         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12546         `ves_icall_MonoType_get_IsGenericParameter'.
12547         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12548         this is no interncall anymore.
12549         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12550         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12551
12552 2003-10-14  Martin Baulig  <martin@ximian.com>
12553
12554         * reflection.c (mono_reflection_bind_generic_parameters): Also
12555         inflate generic methods if we're reading the class from IL.
12556
12557 2003-10-13  Martin Baulig  <martin@ximian.com>
12558
12559         * reflection.c (mono_reflection_define_generic_parameter): This
12560         method isn't called directly from the icall anymore; take a
12561         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12562         method generic parameters.
12563         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12564         (method_builder_encode_signature): Encode generic parameters.
12565         (mono_image_get_method_info): Write generic params to the
12566         MONO_TABLE_GENERICPARAM table.
12567
12568         * reflection.h (MonoReflectionMethodBuilder): Added
12569         `MonoArray *generic_params'.
12570
12571         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12572
12573         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12574         wrapper for mono_reflection_define_generic_parameter().
12575         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12576
12577 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12578
12579         * marshal.h: Add missing function to fix build.
12580
12581         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12582         the SetLastError pinvoke attribute.
12583
12584         * marshal.c (mono_marshal_set_last_error): New helper function called
12585         by the generated code.
12586         
12587         * marshal.c (mono_mb_emit_branch): New helper function.
12588
12589         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12590
12591         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12592         classes as parameters and return values of delegates. Fixes #29256. 
12593
12594 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12595
12596         * locales.c: use gint32 in non HAVE_ICU case
12597
12598 2003-10-11  Martin Baulig  <martin@ximian.com>
12599
12600         * mono-debug.c (mono_debug_add_method): Added a workaround for
12601         bug #48591.
12602
12603 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12604
12605         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12606         delegates passed to native code must use the STDCALL calling 
12607         convention. Fixes #35987.
12608
12609 2003-10-10  Martin Baulig  <martin@ximian.com>
12610
12611         * class.c (inflate_generic_type): If we're inflating for a generic
12612         type instance (and not for a generic method), return
12613         MONO_TYPE_MVAR unchanged.
12614
12615 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12616
12617         * string-icalls.c: Join ignores null strings in the source array.
12618         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12619         * threads.c: GetAvailableTheads is slightly more accurate.
12620
12621 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12622
12623         * threads.h threads.c : add mono_threads_set_default_stacksize
12624         and pass default to CreateThread calls.
12625
12626 2003-10-09  Dick Porter  <dick@ximian.com>
12627
12628         * icall.c:
12629         * locales.h:
12630         * locales.c: Internal calls for constructing CultureInfo and
12631         related objects from libicu (if its available.)
12632
12633 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12634
12635         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12636
12637 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12638
12639         * threadpool.c: added an argument to async_invoke_thread that is the
12640         item to process, pass the MonoAsyncResult to the thread start function
12641         when creating a new thread. This way we don't need to acquire any lock
12642         when we're creating a new thread. Readded a semaphore for faster
12643         response times (instead of that Sleep i added).
12644
12645 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12646
12647         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12648         get daylight change dates better on Windows, fix handling
12649         of platforms without tm_gmtoff.
12650
12651 2003-10-06  Martin Baulig  <martin@ximian.com>
12652
12653         * class.c (inflate_generic_method): Renamed to
12654         mono_class_inflate_generic_method() and made public.
12655         (mono_class_init): Don't inflate the generic methods here.
12656         (mono_class_from_generic): Added `gboolean inflate_methods'
12657         argument.  Inflate the methods here.
12658
12659         * loader.c (mono_method_get_param_names): Ignore instances of
12660         generic types for the moment.
12661
12662         * reflection.c (fixup_method): Added support for inflated methods.
12663         (mono_image_create_token): Use mono_image_get_methodref_token()
12664         for inflated methods.
12665         (mono_custom_attrs_from_param): Ignore instances of generic types
12666         for the moment.
12667         (mono_reflection_bind_generic_parameters): New public function.
12668         Moved all the functionality from
12669         ves_icall_Type_BindGenericParameters() here and added support for
12670         dynamic types.
12671         (mono_reflection_define_generic_parameter): Initialize
12672         `klass->methods' here.
12673
12674         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12675         functionality into mono_reflection_define_generic_parameter().
12676         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12677         TypeBuilder, return that TypeBuilder.
12678
12679 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12680
12681         * appdomain.c: removed mono_delegate_semaphore.
12682
12683         * threadpool.c:
12684         (mono_thread_pool_add): moved hash table creation inside and the thread 
12685         creation outside of the critical region.
12686         (mono_thread_pool_finish): removed obsolete code.
12687         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12688         continue or exit the thread depending on the queue.
12689
12690 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12691
12692         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12693         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12694         handle more bool marshalling options
12695
12696 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12697
12698         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12699         arrays of structs. Also add a more descriptive error message when
12700         a structure member is marshalled as LPArray.
12701
12702 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12703
12704         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12705         marshalling arrays of complex types. Fixes #29098. Also remove an
12706         usused and incomplete function.
12707
12708 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12709
12710         * gc.c: report heap_size - free_bytes as total memory allocated
12711         (bug#49362).
12712
12713 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
12714
12715         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
12716         fix timezone handling problems on Windows.
12717         
12718         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
12719         asserts when the year is outside the range handled by ms the functions.
12720
12721         * class.c (setup_interface_offsets): If the class is an interface,
12722         fill out its interface_offsets slot.
12723
12724 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12725
12726         * threadpool.c: mark threadpool threads as background.
12727
12728 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
12729
12730         * decimal.c - define DECINLINE to nothing if not using GCC
12731
12732 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
12733
12734         * assembly.c: More refcount fixes.
12735
12736 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12737
12738         * string-icalls.c: if we're not trimming, return the same string.
12739         When not splitting, don't create a new string.
12740
12741 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12742
12743         * image.c:
12744         (mono_image_open): increment the ref_count inside the critical section.
12745
12746 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
12747
12748         * image.c (mono_image_open): Fix reference counting bug.
12749
12750 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
12751
12752         * marshal.c (mono_marshal_type_size) struct alignment changed for 
12753         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
12754         64bits. Avoid leak in mono_marshal_get_native_wrapper when
12755         mono_lookup_pinvoke_call throws.        
12756
12757 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
12758
12759         * reflection.c (mono_reflection_parse_type): Fix #49114.
12760
12761         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
12762         temporary workaround for cygwin header problem.
12763
12764         * object.c (mono_object_isinst): Synchronize this with the code
12765         generated by the JIT for casts.
12766
12767 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
12768
12769         * reflection.c (encode_type): Fix #38332.
12770
12771 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
12772
12773         * marshal.c (mono_marshal_method_from_wrapper): New function to return
12774         the original method from the wrapper method.
12775
12776 2003-09-25  Martin Baulig  <martin@ximian.com>
12777
12778         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
12779         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
12780         (ves_icall_Type_get_IsGenericInstance): New interncall.
12781
12782 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
12783
12784         * object.c: fix cast warning in big endian code.
12785
12786 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
12787
12788         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
12789         
12790 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12791
12792         * assembly.c: don't call check_env from mono_assembly_load. It's
12793         already done once in mono_assemblies_init and may cause headaches when
12794         multiple threads are loading assemblies.
12795
12796 2003-09-19  Martin Baulig  <martin@ximian.com>
12797
12798         * reflection.c (mono_reflection_define_generic_parameter): Don't
12799         allocate `klass->methods', set `klass->flags' to
12800         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
12801
12802 2003-09-18  Martin Baulig  <martin@ximian.com>
12803
12804         * class.c (mono_class_init): Don't create `class->methods' if it's
12805         already initialized.
12806
12807         * metadata.c (mono_metadata_load_generic_params): Make this
12808         actually work.
12809
12810         * reflection.c (mono_reflection_define_generic_parameter): Set
12811         parent class and interfaces from the constraints.
12812
12813         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
12814         to keep this struct in sync with the declaration in TypeBuilder.cs.
12815
12816 2003-09-17  Martin Baulig  <martin@ximian.com>
12817
12818         * metadata.h (MonoType): Replaced the data's `int type_param'
12819         field with `MonoGenericParam *generic_param'.
12820         (MonoGenericParam): Added `MonoClass *klass'.
12821
12822         * class.c (mono_class_from_gen_param): Removed the
12823         `MonoImage *image' and `int type_num' arguments.
12824
12825         * metadata.c (mono_metadata_parse_generic_param): New static
12826         method; creates a MonoGenericParam which just contains the index.
12827         (do_mono_metadata_parse_type): Call
12828         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
12829         MONO_TYPE_MVAR.
12830
12831         * reflection.c (mono_image_typedef_or_ref): Generic type
12832         parameters may be in the same assembly, but never use a typedef
12833         for them.
12834         (mono_reflection_define_generic_parameter): We're now creating a
12835         "real" class for the type parameter; it's now safe to call
12836         mono_class_from_mono_type() on the class'es type, it'll do the
12837         right thing.
12838
12839 2003-09-16  Martin Baulig  <martin@ximian.com>
12840
12841         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
12842         `symfile->range_entry_size' and `symfile->class_entry_size' here;
12843         the `symfile' data structure must be fully initialized before it
12844         gets added to the table.
12845
12846 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
12847
12848         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
12849
12850         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
12851         class init trampolines.
12852
12853 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
12854
12855         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
12856         to the built-in profiler to turn off time and allocation profiling
12857         respectively.
12858
12859 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
12860
12861         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
12862         g_direct_equal.
12863
12864         * debug-helpers.c (mono_method_full_name): Print the wrapper type
12865         in human readable form.
12866
12867 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
12868
12869         * reflection.c icall.c: Fixed warnings.
12870
12871         * image.c (load_class_names): Use a temporary hash table to hold the
12872         namespaces in order to avoid doing many string comparisons.
12873
12874         * image.h: Fix typo.
12875
12876         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
12877         Pass NULL instead of g_direct_equal to the GHashTable constructor 
12878         since the NULL case is short-circuited inside g_hash_table_lookup, 
12879         leading to better performance.  
12880
12881         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
12882         obtain the first custom attribute for a given index. Depends on the
12883         CustomAttribute table being sorted by the parent field.
12884
12885         * reflection.c (mono_custom_attrs_from_index): Use the new function 
12886         for better performance.
12887
12888 2003-09-07  Martin Baulig  <martin@ximian.com>
12889
12890         * class.c (mono_class_init): If we're a generic instance, inflate
12891         all our methods instead of loading them from the image.
12892         (mono_class_from_generic): Set `class->methods = gklass->methods'.
12893
12894 2003-09-07  Martin Baulig  <martin@ximian.com>
12895
12896         * mono-debug-debugger.c: Added support for constructors.
12897
12898 2003-09-06  Martin Baulig  <martin@ximian.com>
12899
12900         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
12901         New interncall.
12902
12903         * reflection.c (mono_reflection_setup_generic_class): Call
12904         ensure_runtime_vtable() to create the vtable.
12905
12906 2003-09-05  Martin Baulig  <martin@ximian.com>
12907
12908         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
12909         MONO_TYPE_MVAR.
12910
12911 2003-09-04  Martin Baulig  <martin@ximian.com>
12912
12913         * reflection.c (mono_reflection_define_generic_parameter): Generic
12914         parameters start with zero.
12915
12916 2003-09-04  Martin Baulig  <martin@ximian.com>
12917
12918         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12919
12920         * reflection.h (MonoReflectionGenericParam): New typedef.
12921         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
12922         the generic parameters from the managed TypeBuilder.
12923
12924         * reflection.c (mono_reflection_define_generic_parameter): New function.
12925         (mono_reflection_create_runtime_class): Encode generic parameters.
12926         (mono_reflection_setup_generic_class): New function; this is
12927         called after adding adding all generic params to the TypeBuilder.
12928         (encode_type): Added MONO_TYPE_VAR.
12929
12930 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
12931
12932         * class.h class.c (mono_class_needs_cctor_run): Moved this method
12933         here from the JIT.
12934
12935         * assembly.h assembly.c: Moved the AOT loading code into an assembly
12936         load hook.
12937
12938 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
12939
12940         * reflection.h reflection.c class.h class.c: Delete duplicate 
12941         definition of mono_type_get_name () from reflection.c and export the
12942         one in class.c.
12943
12944         * class.c: Class loading fixes from Bernie Solomon 
12945         (bernard@ugsolutions.com).
12946
12947         * reflection.c: Endianness fixes from Bernie Solomon 
12948         (bernard@ugsolutions.com).
12949         
12950 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
12951
12952         * assembly.h assembly.c: Define a file format version for AOT
12953         libraries.
12954         
12955         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
12956
12957         * appdomain.h (MonoJitInfo): New field to determine whenever the
12958         code is domain neutral.
12959         
12960 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
12961
12962         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
12963
12964 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
12965
12966         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
12967         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
12968         Avoid caching the result since strings must be domain specific. Fixes
12969         #48050.
12970
12971 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
12972
12973         * marshal.c (mono_marshal_init): Make this callable multiple times
12974         since it is hard to find a correct place to call it.
12975
12976         * object.c (mono_runtime_class_init): Execute static constructors in
12977         the correct appdomain.
12978
12979         * image.c (build_guid_table): Handle the case when multiple images have
12980         the same GUID.
12981
12982 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12983
12984         * icall.c: added a couple of icalls for System.Web.
12985
12986 2003-08-28  Martin Baulig  <martin@ximian.com>
12987
12988         * icall.c (ves_icall_Type_BindGenericParameters): Use
12989         `klass->generic_inst' instead of `&klass->byval_arg' in the
12990         mono_type_get_object() call.  The returned type must be
12991         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
12992
12993 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
12994
12995         * NOTES: New file.
12996
12997         * object.c (mono_class_proxy_vtable): Make it thread safe.
12998
12999         * pedump.c: Fix warning.
13000
13001         * object.c appdomain.h: Get rid of metadata_section. 
13002         It is no longer needed and it was causing deadlocks with domain->lock.
13003
13004         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
13005
13006 2003-08-26  Martin Baulig  <martin@ximian.com>
13007
13008         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
13009
13010 2003-08-26  Martin Baulig  <martin@ximian.com>
13011
13012         * pedump.c (main): Call mono_metadata_init(),
13013         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
13014         and mono_loader_init().
13015
13016 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
13017
13018         * loader.h: Add missing include to fix build.
13019
13020         * image.h: mono_image_load_references is no more.
13021
13022         * assembly.c: Reworked assembly loading to make it really thread safe.
13023         After these changes, the assembly returned by mono_assembly_open is
13024         fully initialized, i.e. all its references assemblies are loaded.
13025
13026         * assembly.c (mono_image_load_references): Renamed to 
13027         mono_assembly_load_references, and made private, since clients no
13028         longer need to call it.
13029
13030         * class.c: Removed calls to mono_assembly_load_references, since it was
13031         a source of deadlocks.
13032
13033         * loader.h loader.c class.h class.c: Protect data structures using a 
13034         new lock, the loader lock.
13035
13036         * class.c (mono_class_setup_vtable): Create temporary hash tables and
13037         GPtrArrays only when needed.
13038
13039         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
13040         into empty structures by mcs. Fixes pinvoke7.cs.
13041         
13042         * domain.c (mono_init): Call a new initialization function.
13043
13044         * appdomain.c (mono_runtime_init): Call the new initializer function
13045         of the marshal module.
13046
13047         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
13048         inserted into empty structures by mcs. Fixes pinvoke7.cs.
13049
13050         * marshal.h marshal.c: Added locks around the wrapper caches to make
13051         this module thread safe.
13052
13053         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
13054         this argument. Fixes pinvoke1.exe.
13055
13056 2003-08-25  Lluis Sanchez <lluis@ximian.com>
13057
13058         * object.h: Added call_type field to MonoMethodMessage and the corresponding
13059         enumeration of values. Removed fields to store remote call output values in
13060         MonoAsyncResult. Not needed any more.
13061         * object.c: Initialize call_type and async_result fields in mono_message_init.
13062         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
13063         dispatching the message.
13064         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
13065         async call to finish. To do it use a message with EndInvoke call type.
13066
13067 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
13068
13069         * loader.h loader.c (mono_method_hash_marhal_info): New function which
13070         determines whenever a method has marshalling info.
13071
13072 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13073
13074         * assembly.c: fix the build on windows.
13075
13076 2003-08-22 Lluis Sanchez <lluis@ximian.com>
13077
13078         * object.cs: Fixed bug #47785.
13079
13080 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
13081
13082         * string-icalls.c (StringReplace): If their are no occurances of
13083         the old string found return a reference to the supplied
13084         string. This saves some memory and matches MS behavoir.
13085         
13086 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13087
13088         * socket-io.c: fixed compilation for systems that define AF_INET6
13089         and don't define SOL_IP/SOL_IPV6.
13090
13091 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
13092
13093         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
13094         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
13095
13096         * rawbuffer.c rawbuffer.h: Make this module thread safe.
13097
13098         * domain.c: Make this module thread safe.
13099
13100         * domain.c (mono_init): Call new initialization function.
13101
13102         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
13103         reference types too. Fixes #38812.
13104
13105         * image.c (mono_image_init): Fixed warnings.
13106
13107         * class.c (mono_class_from_typeref): Handle assembly load failure
13108         correctly.
13109
13110         * appdomain.c (add_assemblies_to_domain): Handle the case when
13111         the references of an assembly are not yet loaded.
13112
13113         * metadata.c image.c assembly.c: Moved initialization of global
13114         variables to a separate function called at startup since lazy 
13115         initialization of these variables is not thread safe.
13116         
13117         * image.c assembly.c: Made this module thread safe by adding locks in 
13118         the appropriate places.
13119
13120         * domain.c (mono_init): Call the new initialization functions of the
13121         three modules.
13122
13123 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
13124
13125         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
13126           make a direct call. It is proxy's work to make the call asynchronous.
13127           mono_delegate_end_invoke(): If the targe is a proxy, just collect
13128           the return values.
13129         * object.cs: mono_method_call_message_new(): read AsyncResult and
13130           state object from parameters list, if this info is requested.
13131         * object.h: Added fields to store remote call output values in
13132           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
13133
13134 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13135
13136         * object.h: add needed fields to MonoThread.
13137         * threads.c, threads.h: allow registering a function to cleanup data
13138         allocated per thread by the JIT.
13139
13140 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13141
13142         * loader.h: portability fix by Bernie Solomon
13143         * <bernard@ugsolutions.com>.
13144
13145 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
13146
13147         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
13148         return a MonoArray. This simplifies the code and also ensures that
13149         the cache allways contains an object reference as a value.
13150
13151         * icall.c (ves_icall_get_parameter_info): Simplified using the new
13152         function.
13153
13154 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13155
13156         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
13157         fixes a problem with byte ordering when getting the address family for
13158         a socket.
13159
13160 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
13161
13162         * .cvsignore: Added monosn.
13163
13164         * reflection.h reflection.c loader.c: Added support for parameter
13165         marshalling to dynamically created types. Fixes #47295.
13166
13167 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
13168
13169         * rand.c: remove useless warnings.
13170
13171 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13172
13173         * class.c: implemented ldtoken for methods and fieldrefs.
13174
13175 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13176
13177         * threadpool.c: when mono_async_invoke was called, no one took care of
13178         monitoring the queue. So if the method invoked took some time and we
13179         got new async invoke requests after 500 ms (the thread created waited
13180         that long in WaitForSingleObject), the new async invoke was not called
13181         until the previous one finished.
13182
13183         This is fixed now. Thanks to Totte for helping with it.
13184
13185 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13186
13187         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
13188
13189 2003-08-11  Martin Baulig  <martin@ximian.com>
13190
13191         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
13192
13193 2003-08-06  Martin Baulig  <martin@ximian.com>
13194
13195         * mono-debug-debugger.c: Added support for static fields,
13196         properties and methods.
13197
13198 2003-08-06  Martin Baulig  <martin@ximian.com>
13199
13200         * mono-debug-debugger.c: Don't store the MonoString's vtable to
13201         make this work for applications with multiple application domains.
13202
13203 2003-08-04  Martin Baulig  <martin@ximian.com>
13204
13205         * mono-debug-debugger.c: Completely reworked the type support; the
13206         most important thing is that we're now just using one single
13207         `MonoType' instance per type.
13208
13209 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
13210
13211         * mono-endian.h, mono-endian.c, icall.c: Added icall
13212         ves_icall_System_Double_AssertEndianity to assert double word endianity
13213         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
13214
13215 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13216
13217         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
13218         support, icalls and fixes.
13219
13220 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
13221
13222         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
13223         classes that are a punctuation character in .NET is not the same a
13224         g_unichar_ispunct.
13225
13226 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13227
13228         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
13229
13230 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
13231
13232         * icall.c: Add new MemCopy internalcall.
13233         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
13234         Simplified code; It is not necessary to handle all the cases here,
13235         as the C# code takes care of it.  Only handle the case of the name
13236         resource embedded into the assembly.
13237
13238         Changed signature to return the data pointer and the size of the
13239         data. 
13240
13241 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
13242
13243         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
13244         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
13245
13246 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13247
13248         * socket-io.c: ignore EINTR error in select.
13249
13250 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13251
13252         * class.h, class.c: removed unused subclasses field in MonoClass.
13253
13254 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13255
13256         * icall.c: improve fix of get_base_definition(). If the parent class
13257           doesn't have the mehod, look at the parent of the parent.
13258         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
13259           to check if a parameter is an in or out parameter
13260           (PARAM_ATTRIBUTE_IN is not set by default).
13261           mono_method_return_message_restore(): Use mono_class_value_size to
13262           get the size of a value type. mono_type_stack_size (parameterType)
13263           does not return the correct value if parameterType is byRef.
13264           mono_load_remote_field(), mono_load_remote_field_new(),
13265           mono_store_remote_field(), mono_store_remote_field_new():
13266           raise exception if the remote call returns an exception.
13267
13268 2003-07-28  Martin Baulig  <martin@ximian.com>
13269
13270         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
13271         method.  This is a wrapper around mono_runtime_invoke() which
13272         boxes the instance object if neccessary.
13273
13274 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13275
13276         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
13277         metadata.h, row-indexes.h, verify.c: first cut of generics support.
13278
13279 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13280
13281         * icall.c: disable mcs bug workaround.
13282
13283 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
13284
13285         * object.c (mono_runtime_class_init): Take the metadata_section
13286         mutex before obtaining the domain mutex.
13287
13288         * appdomain.h: Added definition of metadata_section mutex here. 
13289
13290         * object.c: define metadata_mutex here.
13291
13292 2003-07-24  Ravi Pratap  <ravi@ximian.com>
13293
13294         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
13295         fixed.
13296
13297 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
13298
13299         * reflection.c: Fix bug #46669
13300
13301 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13302
13303         * exception.c:
13304         * exception.h:
13305         * icall.c:
13306         * object.h: fill in the type name for TypeLoadException.
13307
13308 2003-07-23  Ravi Pratap  <ravi@ximian.com>
13309
13310         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
13311         relationship between TypeBuilders while compiling corlib) and bug
13312         45993 (Array types returned from the runtime while compiling
13313         corlib were from the loaded corlib).
13314
13315 2003-07-22  Martin Baulig  <martin@ximian.com>
13316
13317         * mono-debug-debugger.c: Reworked the type support a bit more;
13318         distinguish between types and classes.
13319
13320 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
13321
13322         * icall.c: add IsArrayImpl icall.
13323
13324 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
13325
13326         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
13327         initializing real_size only once. Also fix bug #46602.
13328
13329 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
13330
13331         * object.c: Renamed mono_metadata_section to metadata_section.
13332
13333 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
13334
13335         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
13336           empty array if the type is an array. Fixed.
13337           ves_icall_MonoMethod_get_base_definition: if the base method
13338           is abstract, get the MethodInfo from the list of methods of
13339           the class.
13340         * reflection.c: ParameterInfo.PositionImpl should be zero-based
13341           and it was 1-based. Fixed in mono_param_get_objects.
13342
13343 2003-07-20  Martin Baulig  <martin@ximian.com>
13344
13345         * mono-debug.h: Set version number to 31.
13346         (mono_debug_init): Added `MonoDomain *' argument.
13347
13348         * mono-debug-debugger.c: Reworked the type support; explicitly
13349         tell the debugger about builtin types; pass the `klass' address to
13350         the debugger.
13351
13352 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
13353
13354         * image.c: Allow new metadata tables to be loaded without a
13355         warning. Also update the warning message to give the new constant value.
13356                 
13357 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
13358
13359         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
13360         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
13361         array type representation changes.
13362
13363 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13364
13365         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
13366         on Environment.Exit () call.
13367
13368 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13369
13370         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
13371         requires a matching corlib.
13372
13373 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13374
13375         * Changelog: My editor decided to add a CR to each line. Sorry about that.
13376           Committed again without the CRs.
13377         
13378 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13379
13380         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
13381           getting it from the "this" socket instance. Did not work
13382           if the socket is a subclass of Socket.
13383           Also fixed bug #35371.
13384
13385 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13386
13387         * metadata.c: fixed size for TypedByRef.
13388         * loader.c: when searching for a method, consider the vararg amrker.
13389         * unicode.c, decimal.c: constify some arrays.
13390
13391 2003-07-15  Dick Porter  <dick@ximian.com>
13392
13393         * socket-io.c: Fixed compilation for gcc < 3.2.
13394
13395         Fixed compilation for machines that don't have AF_INET6 (thanks to
13396         Bernie Solomon <bernard@ugsolutions.com> for that part.)
13397
13398         Fixed compile warnings.
13399         
13400         Fixed formatting and line endings.
13401
13402 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
13403
13404         * socket-io.h:
13405         * socket-io.c: Added IPv6 support.
13406
13407 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
13408
13409         * class.c (mono_class_is_assignable_from): New function to implement
13410         the is_assignable_from logic. Used by mono_object_isinst, 
13411         Type::IsAssignableFrom () and the interpreter.
13412
13413         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
13414         Object, even interfaces.
13415         
13416         * object.c (mono_object_isinst): Implement in terms of 
13417         is_assignable_from.
13418
13419         * icall.c (ves_icall_type_is_assignable_from): New icall.
13420
13421 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
13422
13423         * domain.c (foreach_domain): fix compiler warning.
13424
13425 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
13426
13427         * image.c (load_metadata_ptrs): use g_strndup because strndup is
13428         not available on all plattforms
13429
13430 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
13431
13432         * image.h image.c: Store the metadata version string in MonoImage.
13433         * icall.c: New icall to retrieve the image version.
13434         * reflection.c (create_dynamic_image): Fill in the image version field
13435         * reflection.c (build_compressed_metadata): Use the image version
13436         from the image structure.
13437
13438 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13439
13440         * appdomain.c: modified comment.
13441         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
13442         That will be its last iteration when mono_gc_cleanup is called from
13443         mono_runtime_cleanup and before the domain is unloaded.
13444
13445         Fixes bug #45962.
13446
13447 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
13448
13449         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
13450         attributes.
13451
13452 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13453
13454         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
13455         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
13456         Bernie Solomon <bernard@ugsolutions.com>.
13457
13458 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13459
13460         * object.c, object.h: provide mono_object_new_fast() for faster
13461         allocation in some special cases.
13462
13463 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
13464
13465         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
13466         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
13467
13468 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
13469
13470         * threadpool.c: fix leaks.
13471
13472 2003-07-01  Dick Porter  <dick@ximian.com>
13473
13474         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
13475         using MonoGHashTables.  Fixes threadpool bug posted to list.
13476
13477 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13478
13479         * image.h, image.c: added support to load an assembly from a byte array.
13480         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
13481         assembly bundle support.
13482
13483 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
13484
13485         * threadpool.c (mono_thread_pool_add): keep a reference to the
13486         AsyncResult to prevent GC
13487
13488 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13489
13490         * class.c: leak fix.
13491
13492 2003-06-25  Dick Porter  <dick@ximian.com>
13493
13494         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
13495         for the async object, the WaitHandle object will close the handle.
13496         Fixes bug 45321.
13497
13498 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13499
13500         * class.c: in mono_array_class_get (), lookup from the hash with the
13501         same type we insert: this works around a bug in
13502         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
13503         lluis. The real fix will have to wait for after the release.
13504
13505 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13506
13507         * icall.c: fix memory leak when getting type members.
13508
13509 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13510
13511         * reflection.c: added more pubtoken special cases.
13512
13513 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
13514
13515         * class.c: handle field offset correctly when class size
13516         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
13517
13518 2003-06-20  Martin Baulig  <martin@ximian.com>
13519
13520         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
13521         *image' field.
13522
13523 2003-06-20  Martin Baulig  <martin@ximian.com>
13524
13525         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
13526
13527 2003-06-20  Martin Baulig  <martin@ximian.com>
13528
13529         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13530         just distinguish between variables in registers and variables at
13531         an offset relative to a register.
13532
13533 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13534
13535         * icall.c: #ifdef out latest changes until mcs is fixed.
13536
13537 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13538
13539         * icall.c: return members in metadata order.
13540
13541 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13542
13543         * icall.c: avoid infinite loop in GetTimeZoneData.
13544
13545 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13546
13547         * icall.c: added Marshal.Prelink/All icalls.
13548
13549 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13550
13551         * object.c, object.h: fix warnings and do some overflow checking
13552         when creating arrays.
13553
13554 2003-06-17  Dick Porter  <dick@ximian.com>
13555
13556         * file-io.h:
13557         * file-io.c: File attributes need to be tweaked slightly when
13558         passed from the managed to the w32 world.
13559
13560 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13561         * profiler.h profiler-private.h profiler.c: Rework last patch
13562         based on suggestion by Paolo.
13563         
13564 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13565
13566         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13567         instruction level coverage data collection.
13568         * profiler.h profiler.c (: Added new callback function which can be
13569         used by the profiler to limit which functions should have coverage
13570         instrumentation.
13571         * profiler.c (mono_profiler_load): Call g_module_build_path to
13572         generate the file name of the profiler library.
13573
13574 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13575
13576         * profiler.c, profiler.h, profiler-private.h: added basic block 
13577         coverage profiling API.
13578
13579 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13580
13581         * reflection.c (mono_reflection_create_runtime_class): Add support
13582         for events in dynamically generated code.
13583
13584         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13585         not allocated.
13586
13587 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13588
13589         * icall.c: when getting timezone info, return reasonable values if we
13590         can't get the actual data.
13591
13592 2003-06-14  Dick Porter  <dick@ximian.com>
13593
13594         * threads.c (start_wrapper): Remove the reference to the thread
13595         object in the TLS data, so the thread object can be finalized.
13596         This won't be reached if the thread threw an uncaught exception,
13597         so those thread handles will stay referenced :-( (This is due to
13598         missing support for scanning thread-specific data in the Boehm GC
13599         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13600
13601 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13602
13603         * reflection.c: ensure streams and tables are first allocated with
13604         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13605
13606 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13607
13608         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13609
13610 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13611
13612         * reflection.c (mono_reflection_create_runtime_class): Add support for
13613         properties to dynamically created classes.
13614         * reflection.c: Fix a few places where non-MonoObjects were inserted
13615         into the tokens hashtable.
13616
13617 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13618
13619         * object.c: some support to handle out of memory exceptions.
13620
13621 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13622
13623         * marshal.c (mono_marshal_get_native_wrapper): support reference
13624         return types
13625
13626 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13627
13628         * object.h, object.c: more portability stuff from Bernie Solomon.
13629         Unexport mono_object_allocate(). Added mono_object_unbox ().
13630         Set exitcode when an unhandled exception is thrown.
13631
13632 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13633
13634         * marshal.c (mono_marshal_get_native_wrapper): use custom
13635         marshaler for return types.
13636
13637 2003-06-10  Dick Porter  <dick@ximian.com>
13638
13639         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13640         ip_mreq is available
13641
13642 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13643
13644         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13645         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13646         by Bernie Solomon <bernard@ugsolutions.com>.
13647
13648 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13649
13650         * gc.c (mono_gc_init): Avoid error message on shutdown when
13651         GC_DONT_GC=1 is used.
13652
13653         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13654         New icall to return the GUID of a module.
13655
13656 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13657
13658         * class.c: ensure instance size always includes the parent's size
13659         even whem class size is set explicitly (fixes bug#44294).
13660
13661 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13662
13663         * profiler.h, profiler.c: made the simple profiler thread-safe,
13664         get more accurate timing info. Allow the loading of an
13665         externally-developed profiler module.
13666
13667 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13668
13669         * marshal.c (mono_marshal_get_native_wrapper): improved
13670         class/byref arguments.
13671         (mono_marshal_get_native_wrapper): better string marshaling support.
13672
13673 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13674
13675         * class.c: ensure .pack and .size are handled correctly and
13676         simplified layout of static fields.
13677
13678 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13679
13680         * appdomain.c
13681         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13682
13683         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13684         current directory (fix bug 44008)
13685
13686 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13687
13688         * marshal.c (mono_marshal_get_native_wrapper): started support for
13689         custom marshalers.
13690         (mono_delegate_to_ftnptr): consider marshalling specifications
13691
13692 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13693
13694         * reflection.c, reflection.h: emit custom marshal info.
13695
13696 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13697
13698         * object.c: free the GError.
13699         * icall.c: added CloseEvent_internal.
13700         * threads.[ch]:
13701         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13702         call.
13703
13704 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13705
13706         * loader.c (mono_method_get_signature): Add support for dynamic
13707         assemblies.
13708
13709 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
13710
13711         * reflection.c: fixed bug #43905.
13712
13713 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13714
13715         * class.c, domain.c, icall.c, metadata.h, object.h: support for
13716         handling TypedReference and ArgIterator.
13717         * loader.c, loader.h: added function to get signature at call site.
13718
13719 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13720
13721         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
13722         data readonly. Buglets and warning fixes. Some MethodSpec support.
13723
13724 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13725
13726         * class.h, class.c, object.c: remove relative numbering support.
13727
13728 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
13729
13730         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
13731         free the string, until we get a chance to fix Gtk#
13732
13733 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13734
13735         * marshal.c: revert last patch.
13736
13737 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
13738
13739         * icall.c: updates for new mono_class_vtable() not calling
13740         the type constructor anymore.
13741
13742 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13743
13744         * object.h, object.c: separate vtable creation from type
13745         initialization. Make running the .cctor thread safe.
13746
13747 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
13748
13749         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
13750
13751 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
13752
13753         * loader.c (mono_get_method): consider calling convention
13754
13755 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
13756
13757         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
13758         to return the invisible global type for a module.
13759
13760         * reflection.c (mono_image_build_metadata): Emit global fields too.
13761
13762 2003-05-20  Peter Williams  <peterw@ximian.com>
13763
13764         * loader.c (mono_lookup_internal_call): Add a few newlines.
13765
13766 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
13767
13768         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
13769         literal strings.
13770
13771         * appdomain.c (set_domain_search_path): Recalculate search path when
13772         AppDomainSetup.PrivateBinPath changes.
13773
13774         * object.c (mono_class_compute_gc_descriptor): It turns out some
13775         parts of the class libs (like System.Thread) holds pointers to
13776         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
13777         to treat native int a pointer type here.
13778         
13779 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
13780
13781         * appdomain.h, domain.c: add hashtable for jump target resolution.
13782
13783 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
13784
13785         * reflection.h reflection.c icall.c: Added new icalls 
13786         GetManifestResourceInfoInternal, GetModulesInternal and support
13787         infrastructure.
13788
13789 2003-05-16  Dick Porter  <dick@ximian.com>
13790
13791         * icall.c:
13792         * file-io.h:
13793         * file-io.c: Implement System.IO.MonoIO::GetTempPath
13794
13795 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
13796
13797         * object.c: mono_store_remote_field: little fix to previous patch.
13798
13799 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13800
13801         * class.c: add constructors to array classes.
13802         * icall.c: special case array construction for InternalInvoke (),
13803
13804 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
13805
13806         * class.h class.c reflection.c object.c: Added support for field
13807         defaults in dynamically generated classes.
13808
13809 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
13810
13811         * reflection.c: properly encode charset for ddlimport.
13812
13813 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
13814
13815         * threads.c: allow compiling without GC.
13816
13817 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13818
13819         * appdomain.h, object.c, object.h, threads.c, threads.h: added
13820         handling of thread static data.
13821
13822 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13823
13824         * reflection.h, reflection.c: added mono_custom_attrs_free ().
13825
13826 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
13827
13828         * class.c (mono_array_class_get): always set the serializable flags
13829         (mono_array_class_get): always set the SEALED attribute for array types
13830
13831 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
13832
13833         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
13834         attributes (fix for bug 42021).
13835
13836 2003-05-12  Dick Porter  <dick@ximian.com>
13837
13838         * gc.c: Don't run finalizers when the finalizer thread is
13839         finishing up, because the default domain has already been
13840         destroyed.
13841
13842 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
13843
13844         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
13845         value is null, we should throw an exception.   This is slightly
13846         different than the other conventions used for the constructor.
13847
13848 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13849
13850         * socket-io.c: fixed windows build.
13851
13852 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13853
13854         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
13855
13856 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
13857
13858         * object.c (mono_string_new_wrapper): Compatibility fix for MS
13859         compilers.
13860
13861 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
13862
13863         * class.c (mono_class_layout_fields): Add experimental GC aware
13864         auto layout facility. Requires class library changes to work correctly.
13865
13866         (mono_class_setup_vtable): Avoid overriding explicit interface
13867         method implementations. Fixes iface3.exe test.
13868
13869         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
13870         object reference.
13871         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
13872         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
13873
13874         * metadata.h: Add new type classification macro which determines
13875         whenever the type holds an object reference.
13876
13877 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
13878
13879         * marshal.c (mono_marshal_get_native_wrapper): cleanups
13880
13881 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
13882
13883         * gc.c (finalizer_thread): Work around a GC bug.
13884
13885 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
13886
13887         * marshal.c (emit_struct_conv): allow unions
13888
13889         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
13890
13891 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
13892
13893         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
13894
13895 2003-05-06  Martin Baulig  <martin@ximian.com>
13896
13897         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
13898
13899 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13900
13901         * socket-io.c:
13902         (Select_internal): allow NULLs, don't create arrays if not needed.
13903         Coupled with Socket.cs changes.
13904
13905         * threadpool.c:
13906         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
13907         register a finalizer for it that will close the semaphore handle. This
13908         fixes the leak and make Lupus' test run with > 4080 loops.
13909
13910 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
13911
13912         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
13913         Jerome Laban (bug #42287)
13914
13915 2003-05-02  Martin Baulig  <martin@ximian.com>
13916
13917         * debug-mono-symfile.h
13918         (MonoSymbolFile): Moved declaration into mono-debug.h.
13919         (MonoDebugMethodJitInfo): Likewise.
13920         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
13921         argument.
13922         (_mono_debug_address_from_il_offset): Take a
13923         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
13924
13925         * mono-debug.h
13926         (MonoDebugDomainData): New struct.
13927         (mono_debug_get_domain_data): New function.
13928         (mono_debug_add_method): Take an additional `MonoDomain *'
13929         argument.
13930         (mono_debug_source_location_from_address): Likewise.
13931         (mono_debug_il_offset_from_address): Likewise.
13932         (mono_debug_address_from_il_offset): Likewise.
13933
13934 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
13935
13936         * reflection.c: one more check for null type in custom attrs.
13937
13938 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13939
13940         * reflection.c: avoid warning (comparison is always false due to limited
13941         range of data type).
13942
13943 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13944
13945         * icall.c: throw an exception in Type.GetField if the argument 'name'
13946         is NULL.
13947
13948 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
13949
13950         * reflection.c: fixed handling of enums in named arguments to custom
13951         attributes (bug #42123).
13952
13953 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
13954
13955         * reflection.c: use the right array element type and handle
13956         a null for a Type argument, too.
13957
13958 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
13959
13960         * reflection.c: handle arrays as arguments to custom attributes.
13961
13962 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13963
13964         * reflection.c: handle a string value in a custom attr
13965         ctor that takes an object.
13966
13967 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
13968
13969         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
13970         (fix bug #42063)
13971
13972 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
13973
13974         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
13975
13976 2003-04-27  Martin Baulig  <martin@ximian.com>
13977
13978         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
13979         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
13980         MONO_DEBUGGER_EVENT_BREAKPOINT.
13981         (mono_breakpoint_trampoline_code): Removed.
13982         (mono_debugger_event_handler): The last argument is now a
13983         `guint32'.
13984         (mono_debugger_insert_breakpoint_full): Removed the
13985         `use_trampoline' argument.
13986         (mono_debugger_method_has_breakpoint): Likewise.
13987         (mono_debugger_trampoline_breakpoint_callback): Renamed to
13988         mono_debugger_breakpoint_callback(); take the method and
13989         breakpoint number as arguments.
13990
13991 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
13992
13993         * metadata.c: fix off by one when loading parameters attributes.
13994
13995 2003-04-24  Martin Baulig  <martin@ximian.com>
13996
13997         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
13998
13999 2003-04-24  Martin Baulig  <martin@ximian.com>
14000
14001         * mono-debug-debugger.c: Moved all code which interacts with the
14002         Mono Debugger here.
14003
14004         * debug-mono-symfile.c: This code now just deals with the symbol
14005         file itself, the debugger code is now in mono-debug-debugger.c.
14006
14007 2003-04-23  Martin Baulig  <martin@ximian.com>
14008
14009         * mono-debug.c (mono_debug_source_location_from_il_offset):
14010         New method; like mono_debug_source_location_from_address(), but
14011         takes an IL offset instead of a machine address.
14012
14013 2003-04-23  Martin Baulig  <martin@ximian.com>
14014
14015         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
14016         `line' field; this is now computed by the debugger.
14017
14018 2003-04-23  Martin Baulig  <martin@ximian.com>
14019
14020         * mono-debug.[ch]: New files.  This is the new debugging interface.
14021
14022         * mono-debug-debugger.[ch]: New files.  Moved all code which
14023         interacts with the Mono Debugger here.
14024
14025 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
14026
14027         * domain.c (mono_init): initialize mono_defaults.monitor_class
14028
14029 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
14030
14031         * reflection.c (method_encode_code): Add a spicy exception to help
14032         future compiler authors.
14033
14034 2003-04-21  Martin Baulig  <martin@ximian.com>
14035
14036         * icall.c
14037         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14038         Make this work with relative pathnames; g_filename_to_uri() needs
14039         an absolute filename.
14040
14041 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
14042
14043         * icall.c: Track name changes in Object and ValueType.
14044
14045 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
14046
14047         * metadata.c (mono_type_stack_size): size should be a multiple of
14048         sizeof (gpointer)
14049
14050 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14051
14052         * gc.c:
14053         (internal_domain_finalize): moved into mono_domain_finalize. No need
14054         to create another thread because the finalizers will be run in the
14055         finalizer thread.
14056         
14057         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
14058         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
14059         to be run (MS does this too).
14060
14061 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
14062
14063         * object.c (mono_class_compute_gc_descriptor): Update comment.
14064
14065         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
14066
14067         * image.h: Add synchronized wrapper cache.
14068
14069         * image.c (do_mono_image_open): Initialize cache.
14070
14071         * reflection.c (create_dynamic_mono_image): Initialize cache.
14072
14073 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14074
14075         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
14076         ves_icall_System_Buffer_ByteLengthInternal.
14077
14078 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14079
14080         * reflection.c: setup klass->nested_in earlier. Allow
14081         a dash in the assembly name.
14082
14083 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
14084
14085         * metadata.c (mono_type_to_unmanaged): dont access
14086         type->data.klass for MONO_TYPE_OBJECT
14087         (mono_type_to_unmanaged): consider System.Delegate class
14088
14089 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
14090
14091         * class.c: just setup supertypes in the proper place instead of
14092         initializing the full element class for arrays.
14093
14094 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14095
14096         * class.c: ensure the element class of arrays is initialized.
14097         Setup the supertype info for array classes, too.
14098
14099 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
14100
14101         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
14102
14103 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14104
14105         * Makefile.am: re-added -m option when running cygpath. This way,
14106         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
14107         separator.
14108         * mono-config.c: same codepath for locating mono config file for WIN32
14109         and the rest.
14110         * assembly.c: if mono_assembly_setrootdir is called, don't override
14111         the value set.
14112
14113 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14114
14115         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
14116         MONO_ASSEMBLIES variable.
14117
14118 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
14119
14120         * icall.c: added Assembly::GetNamespaces() icall.
14121
14122 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14123
14124         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
14125
14126 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
14127
14128         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
14129         * object.c: fixed bug in the construction of vtable for proxies
14130
14131 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
14132
14133         * object.c (mono_array_new): Mark mono_array_new as an icall.
14134
14135 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14136
14137         * class.c: fixed test for public method when overriding interfaces.
14138         Closes bug #40970.
14139
14140 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14141
14142         * appdomain.h, domain.c: added mono_domain_foreach() to
14143         be able to access the currently loaded appdomains.
14144         * object.c: make string interning work across sppdomains.
14145         Mark some functions for use as icalls.
14146
14147 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
14148
14149         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
14150
14151         * reflection.h reflection.c: Allocate long living data using 
14152         GC_MALLOC_ATOMIC so the collector does not need to scan it.
14153
14154         * reflection.c: Double the allocation size in streams instead of
14155         increasing it, to prevent unneccesary copying on large assemblies.
14156         
14157         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
14158         creation if the assembly does not have the Run flag set.
14159
14160 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
14161
14162         * class.h: avoid the C++ keywords in header files (Jerome Laban
14163         spotted and fixed this).
14164
14165 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14166
14167         * object.c:
14168         (mono_unhandled_exception): fill in the arguments for the
14169         UnhandledException event. Only trigger that event for the default
14170         domain (as MS does).
14171
14172 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
14173
14174         * object.c: Improve typed allocation stuff based on suggestions from
14175         Paolo. Also turn it on if the GC library supports it.
14176
14177 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14178
14179         * object.c object.h class.h: Added experimental typed allocation
14180         facility using the interfaces in gc_gcj.h.
14181
14182         * os/gc_wrapper.h: Added new include files.
14183         
14184 2003-04-03  Martin Baulig  <martin@ximian.com>
14185
14186         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
14187         which is not yet enabled by default.
14188
14189         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
14190         functions.
14191         (mono_gc_lock, mono_gc_unlock): New static functions.
14192
14193         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
14194         functions; stop/start the world for the garbage collector.  This
14195         is using the windows API; we need to complete the SuspendThread()/
14196         ResumeThread() implementation in the io-layer to make this work on Unix.
14197         (mono_gc_push_all_stacks): New public function; tells the garbage
14198         collector about the stack pointers from all managed threads.
14199
14200 2003-04-03  Martin Baulig  <martin@ximian.com>
14201
14202         * object.h (MonoThread): Added `gpointer stack_ptr'.
14203
14204         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
14205
14206 2003-04-03  Martin Baulig  <martin@ximian.com>
14207
14208         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
14209
14210 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14211
14212         * reflection.c (typebuilder_setup_fields): Initialize field.first and
14213         field.last.
14214
14215 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
14216
14217         * loader.c (mono_lookup_internal_call): Report the corlib that is
14218         out of sync.
14219
14220 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
14221
14222         * icall.c (ves_icall_type_GetTypeCode): fixed check for
14223         System.DBNull (it's class not valuetype).
14224
14225 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14226
14227         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
14228         if the array method was already assigned a token (fixes bug#40646).
14229
14230 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
14231
14232         * reflection.c (mono_reflection_get_type): Attempt type resolve even
14233         if no assembly is given.
14234
14235 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
14236
14237         * metadata.h: Added the new tables.
14238
14239         * row-indexes.h: Added definitions for new tables.
14240
14241         * metadata.c: Add schemas for new tables, and add support for
14242         computing the sizes of them.
14243
14244         * class.c: Update for handling the new type cases.
14245
14246 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
14247
14248         * metadata.h (MONO_TYPE_IS_VOID): new macro
14249
14250 2003-03-31  Martin Baulig  <martin@ximian.com>
14251
14252         * threads.h (MonoThreadCallbacks): Added `thread_created'.
14253
14254         * threads.c (mono_thread_new_init): Call `thread_created' in the
14255         mono_thread_callbacks.
14256
14257 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
14258
14259         * loader.h: added marshalbyrefobject_class to mono_defaults
14260         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
14261         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
14262           generation of output parameters.
14263           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
14264         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
14265           contextbound and the target object belongs to the context of the caller.
14266         * object.h: added context and unwrapped_server variables in MonoRealProxy.
14267         * object.c: Implemented support for interfaces and abstract classes
14268           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
14269           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
14270
14271 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
14272
14273         * class.h class.c (mono_class_is_subclass_of): New function.
14274         
14275         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
14276         routines for most common case (calls from ArrayList::ToArray).
14277
14278         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
14279         routine so programs which call Environment::Exit() can be profiled.
14280
14281         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
14282         Added MONO_ARCH_SAVE_REGS.
14283
14284         * icall.c (ves_icall_type_is_subtype_of): Use new function.
14285
14286 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
14287
14288         * blob.h: Add a couple of new MonoType types definitions.
14289
14290         * tabledefs.h: Add a couple of new call convs.
14291
14292 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
14293
14294         * reflection.h (MonoReflectionDynamicAssembly): track changes in
14295         the layout of the class.
14296
14297         * reflection.c (alloc_table): double the size on overflow to avoid
14298         unnecessary copying.
14299
14300         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
14301         avoid filling out metadata tables and blobs. Also set mb->ilgen to
14302         null so it can be garbage collected.
14303         
14304 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
14305
14306         * reflection.c (mono_reflection_get_type): Return the resolved type
14307         only if it is in the assembly we searched.
14308
14309         * reflection.c (ensure_runtime_vtable): Initialize method slots.
14310
14311         * class.c (mono_class_setup_vtable): Set the slot of the overriding
14312         method.
14313
14314 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14315
14316         * appdomain.c:
14317         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
14318         the right one is 'file:///blah', but MS allows it.
14319         * assembly.c:
14320         (mono_assembly_open): allow 'file://blah'
14321
14322         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
14323
14324 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
14325
14326         * socket-io.c: fixes bug #40310.
14327
14328 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
14329
14330         * reflection.c (mono_reflection_parse_type): handle deeply nested
14331         types correctly.
14332
14333         * reflection.c (mono_image_create_token): Use unique token values
14334         since they will be put into a hash table.
14335
14336         * class.c (mono_class_setup_vtable): If a method occurs in more than
14337         one place in the vtable, and it gets overriden, then change the
14338         other occurances too.
14339
14340         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14341         object as return type.
14342
14343 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14344
14345         * icall.c: Deleted "ToString" implementation for double and float
14346         because they are full implemented in managed code.
14347
14348 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14349
14350         * reflection.c, reflection.h: implemented and exported functions
14351         to retrieve info about custom attributes.
14352
14353 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14354
14355         * appdomain.c: moved Uri handling to assembly.c
14356         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
14357         work when using a file Uri in *nix and windows.
14358
14359         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
14360         GetReferencedAssemblies.
14361
14362 2003-03-18  Dick Porter  <dick@ximian.com>
14363
14364         * icall.c: Rename a couple of internal calls
14365
14366         * threads.c: Set the thread state to Stopped when a thread exits.
14367         Fixes bug 39377.
14368
14369 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
14370
14371         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
14372         New icall.
14373
14374         * object.c (mono_class_vtable): fix warning.
14375
14376 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
14377
14378         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
14379
14380         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
14381         memory.
14382         (method_encode_clauses): Create exception info structures in the right
14383         order.
14384         (mono_reflection_setup_internal_class): Initialize supertypes field.
14385
14386         * class.c object.c: Handle interfaces which implement other interfaces 
14387         correctly.
14388
14389         * class.h class.c: Move the supertypes array initialization code into 
14390         a separate function so it can be used for dynamic types too. Also call
14391         it earlier, in mono_class_init(), since it can be used before the
14392         type is initialized.
14393
14394 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14395
14396         * Makefile.am:
14397         * assembly.c:
14398         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
14399
14400         * appdomain.c:
14401         * appdomain.h:
14402         * marshal.c:
14403         * object.c: remove warnings.
14404
14405 2003-03-13  Martin Baulig  <martin@ximian.com>
14406
14407         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
14408         (MonoDebugLexicalBlockEntry): New types.
14409
14410         * debug-mono-symfile.c
14411         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
14412
14413 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14414
14415         * process.c: ret can be any non-zero value accroding to MS doc.
14416
14417 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
14418
14419         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
14420         fixing a warning for a miss-used prototype, would have cause
14421         random memory corruption.
14422
14423 2003-03-07  Martin Baulig  <martin@ximian.com>
14424
14425         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
14426         getting really annoying ....
14427
14428 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
14429
14430         * reflection.c (fixup_method): added support for array methods.
14431
14432 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
14433
14434         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
14435         (pointed out by Michael Adams).
14436
14437 2003-03-04  Dick Porter  <dick@ximian.com>
14438
14439         * icall.c: Temporarily reverted the Double and Single ToString()
14440         change, because it broke nunit.
14441
14442 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
14443
14444         * object.h, threads.h: make include files compatible with C++
14445         (patch by Jerome Laban <jlaban@wanadoo.fr>).
14446
14447 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14448
14449         * icall.c: Erased ToString helper functions for Double and Single.
14450         Now, that implementations ar all in managed code (Double and Single
14451         Formatters).
14452
14453 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
14454
14455         * appdomain.c: Added method for initializing the default context of
14456         a domain. Added internal call for getting the default context.
14457         * appdomain.h: Added context variable in MonoDomain struct.
14458         * domain.c: mono_domain_set also sets the default context of the domain
14459         * icall.c: Mapped internal method InternalGetDefaultContext.
14460         * object.c: mono_object_get_virtual_method returns always a remoting
14461         wrapper if the object is a transparent proxy.
14462         mono_runtime_invoke_array: when creating an object by calling the
14463         constructor, if the created object is a proxy, then the constructor should
14464         be called using the a remoting wrapper.
14465
14466 2003-03-03  Dick Porter  <dick@ximian.com>
14467
14468         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
14469         variable so it compiles on solaris.  Problem spotted by
14470         Christopher Taylor <ct@cs.clemson.edu>
14471
14472 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14473
14474         * appdomain.c:
14475         (get_info_from_assembly_name): don't leak value.
14476
14477         * icall.c:
14478         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
14479         result.
14480
14481 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
14482
14483         * assembly.c: export mono_image_load_references ().
14484         * class.c: handle function pointers. mono_class_from_name() now
14485         supports nested type names directly.
14486
14487 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
14488
14489         * reflection.h reflection.c: Encode already created dynamic methods 
14490         and fields correctly as a DEF instead of a REF.
14491
14492         * reflection.c: Get rid of the force_ref argument to 
14493         mono_image_typedef_or_ref since it was wrong in the first place.
14494
14495         * string-icalls.c: add error checking to string constructors according
14496         to the MSDN docs.
14497
14498         * reflection.c: Emit types in the order their TypeBuilders were 
14499         created. Previously, a new table index was assigned to each type before
14500         the tables were emitted. This was wrong because the signature blob
14501         might already refer to a type by its original table index.
14502
14503 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
14504
14505         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
14506         change.
14507         
14508 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14509
14510         * Makefile.am: make assemblies dir have \ instead of / on windows.
14511
14512 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
14513
14514         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
14515         iterate over the NESTEDCLASS table using a linear search since the
14516         table is not guaranteed to be sorted by the secondary key.
14517
14518         * class.c (mono_class_create_from_typedef): fixed up call to
14519         mono_metadata_nesting_typedef.
14520         
14521 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
14522
14523         * marshal.c (mono_string_to_byvalstr): clear the memory as
14524         suggested by Jerome Laban <jlaban@wanadoo.fr>
14525
14526 2003-02-26  Dick Porter  <dick@ximian.com>
14527
14528         * process.c: Cope with padding in .rsrc blocks
14529
14530 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14531
14532         * metadata.h: reverted the filter_len change, it breaks reflection
14533         
14534 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14535
14536         * metadata.h: added a new field to store the filter_len
14537         
14538
14539 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14540
14541         * reflection.c: handle custom attributes for types and members
14542         created with Reflection.Emit (bug#38422).
14543
14544 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14545
14546         * reflection.c: define RTSpecialName automatically for constructors for
14547         compatibility with MS.NET.
14548
14549         * reflection.c (mono_reflection_create_runtime_class): initialize
14550         nested_in field of dynamically created classes.
14551
14552 2003-02-22  Martin Baulig  <martin@ximian.com>
14553
14554         * debug-mono-symfile.h: Incremented version number.
14555
14556 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14557
14558         * object.h icall.c process.c: fix warnings.
14559
14560 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14561
14562         * appdomain.h appdomain.c:
14563         (mono_domain_try_type_resolve): split the 
14564         name_or_tb argument into a name and a tb argument.
14565         (mono_domain_has_type_resolve): new function to check whenever the
14566         application has registered a TypeResolve event handler.
14567         
14568         * icall.c reflection.h reflection.c: move the type resolve logic into
14569         mono_reflection_get_type () so it will be invoked when 
14570         Assembly::GetType () is called.
14571
14572         * reflection.c:
14573         (mono_reflection_get_type): renamed to get_type_internal.
14574         (mono_reflection_get_type): fixed type name generation so it works 
14575         for nested types too.
14576         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14577         costly type name generation if there is no resolve event handler.
14578
14579 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14580
14581         * class.c, image.c: load exported types from file references.
14582
14583 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14584
14585         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14586           used to cache the managed methods used to create proxies and make 
14587           remote invocation of methods.
14588         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14589           to be remotely created.
14590         * object.c: Modified the method mono_class_vtable(). It now initializes 
14591           the remote flag of the vtable. Modified mono_object_new_specific(), 
14592           so now it checks the remote flag.
14593         * icall.c: Added a couple of internal methods, one for enabling instance 
14594           creation interception for a type, and one for creating objects bypassing
14595           the remote check.
14596
14597 2003-02-18  Martin Baulig  <martin@ximian.com>
14598
14599         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14600         New interncall to get a method's metadata token.
14601
14602         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14603         New interncall for the debugger.
14604
14605 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14606
14607         * class.c (mono_class_setup_vtable): allocate supertype array
14608
14609 2003-02-18  Martin Baulig  <martin@ximian.com>
14610
14611         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14612
14613 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14614
14615         * reflection.c:
14616         (assembly_name_to_aname): jump over unknown properties (i've found
14617         something like: 'type, assembly, version=xxx, custom=null, public...',
14618         so now will ignore custom=null and still get the rest of the values).
14619
14620 2003-02-17  Dick Porter  <dick@ximian.com>
14621
14622         * threads.c: Have Thread.Start() wait for a semaphore to signal
14623         that the thread has set up all its local data.  This fixes bug
14624         34323, where Abort() raced the new thread's TLS data.
14625
14626         Also removes the handle_store() call from start_wrapper, because
14627         threads are now always created suspended and there is no longer a
14628         race between the parent and child threads to store the info.
14629
14630 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14631
14632         * image.c: explain the #- heap issue in a message, hopefully
14633         avoiding FAQs on mono-list.
14634
14635 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14636
14637         * icall.c:
14638         (GetEntryAssembly): if the domain has not invoked
14639         AppDomain.ExecuteAssembly yet, return the assembly of the default
14640         AppDomain.
14641
14642 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14643
14644         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14645
14646 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14647
14648         * metadata.c, reflection.c: simple speedup to type hash
14649         and equals code.
14650
14651 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14652
14653         * image.c, image.h, class.c, assembly.c: move module loading
14654         to MonoImage. When loading metadata, consider alignemnet from
14655         the start of metadata, not from the metadata address in memory.
14656
14657 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14658
14659         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14660         AssemblyBuilder objects. Factored out custom attribute creation into
14661         a separate function.
14662         (create_custom_attr): new function to create custom attributes.
14663
14664 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14665
14666         * Makefile.am: Got tired of typing the full pathname to pedump.
14667         Until there is another option, am installing this.
14668
14669 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14670
14671         * class.c (class_compute_field_layout): always set field->parent 
14672         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14673
14674 2003-02-11  Dick Porter  <dick@ximian.com>
14675
14676         * threads-types.h:
14677         * monitor.c: Rewrote Monitor, making lock much faster and
14678         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14679         creates them as needed.
14680
14681         * exception.c: Added SynchronizationLockException
14682
14683         * threads.c: Deleted old Monitor implementation.  The new one is
14684         in a new file.
14685
14686 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14687
14688         * class.c: handled TypedReference type code. Set the correct size for
14689         class data. Setup interface_offsets for interface classes, too.
14690
14691 2003-02-09  Martin Baulig  <martin@ximian.com>
14692
14693         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14694
14695 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14696
14697         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14698         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14699         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14700         * verify.c: check for code that runs after the end of the method.
14701
14702 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14703
14704         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14705         "System.Math::Round2".
14706         * sysmath.h: Added Floor, Round and Round2 definitions.
14707         * sysmath.c: Modified certain functions that were not 100% compliant
14708         with MS.NET (math precision) and added the implementation of Floor,
14709         Round and Round2.
14710
14711 2003-02-07  Martin Baulig  <martin@ximian.com>
14712
14713         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
14714
14715 2003-02-07  Martin Baulig  <martin@ximian.com>
14716
14717         * debug-mono-symfile.c: Reflected latest symwriter changes.
14718         (mono_debug_create_mono_symbol_file): Removed.
14719         (mono_debug_open_mono_symbol_file): Take an argument which
14720         specifies whether to create a dynamic symbol file.
14721
14722 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
14723
14724         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
14725
14726 2003-02-05  Martin Baulig  <martin@ximian.com>
14727
14728         * reflection.c (mono_image_build_metadata): Make this public,
14729         protect it against being called multiple times, don't create
14730         resources and don't build the compressed metadata here.
14731         (mono_image_create_pefile): Do this here.
14732
14733         * icall.c
14734         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
14735
14736 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14737
14738         * socket-io.c: fixed bug #36322.
14739
14740 2003-02-06  Piers Haken <piersh@friskit.com>
14741
14742         * appdomain.[ch]:
14743         * class.h:
14744         * debug-mono-symfile.c:
14745         * icall.c:
14746         * loader.c:
14747         * mono-config.c:
14748         * monosn.c:
14749         * reflection.c:
14750         * socket-io.c: warning cleanups
14751
14752 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
14753
14754         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
14755         function. works like remoting invoke, but does a check for the Proxy first.
14756
14757 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
14758
14759         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
14760
14761 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
14762
14763         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
14764         array of pointers.
14765         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
14766         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
14767
14768         * object.c (mono_store_remote_field_new): used by the new jit
14769         instead of mono_store_remote_field
14770         (mono_load_remote_field_new): used by the new jit
14771         instead of mono_load_remote_field
14772
14773 2003-02-05  Patrik Torstensson
14774
14775         * appdomain.c: changed unload to take the domain id instead
14776         of domain
14777         
14778         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
14779
14780
14781 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14782
14783         * appdomain.c: don't look for assemblies in ApplicationBase if
14784         PrivateBinPathProbe is set.
14785
14786 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14787
14788         * object.c: make the first argument in main_args contain the absolute
14789         path to the assembly. Fixes bug #37511.
14790
14791 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14792
14793         * icall.c: get correct UTC offset for countries not using daylight
14794         time saving. Fixes bug #30030.
14795
14796 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14797
14798         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
14799         and 1 are the family).
14800
14801 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
14802
14803         * icall.c (ves_icall_InternalExecute): removed wrong assertion
14804
14805         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
14806
14807 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
14808
14809         * reflection.c: added support for SignatureHelper tokens, which is
14810         needed by the Calli opcode.
14811
14812         * reflection.h: track changes to SignatureHelper class.
14813
14814         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
14815
14816 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14817
14818         * appdomain.c: fixed loading assemblies from PrivateBinPath.
14819
14820 2003-02-03  Patrik Torstensson
14821         * appdomain.[c|h], domain.c : 
14822          - Added support for getting a domain via domain id
14823          - Support for setting and getting domain from System.AppDomain 
14824            (used in cross appdomain channel)
14825          - Added support for get/set for a MonoAppContext on a thread 
14826            (Context class in System.Runtime.Remoting.Contexts),
14827          - Removed hack in Get/SetData and ExecuteAssembly.
14828         
14829         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
14830         the managed world to get control when a proxy is created.
14831
14832         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
14833         
14834 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
14835
14836         * icall.c
14837         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14838         Populate the codebase field as well.
14839
14840 2003-02-02  Martin Baulig  <martin@ximian.com>
14841
14842         * debug-mono-symfile.c
14843         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
14844         (mono_debug_symfile_add_method): Allow interncalls.
14845
14846 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14847
14848         * icall.c: throw parse exception if strtod fails or the string is empty.
14849
14850 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
14851
14852         * marshal.c: handle object type separately from defined
14853         class types.
14854
14855 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
14856
14857         * marshal.c: handle NATIVE_LPSTR for strings when it's
14858         explicitly specified.
14859
14860 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
14861
14862         * reflection.c, reflection.h, icall.c: setup the reflection
14863         handle cache for ModuleBuilders and AssemblyBuilders.
14864
14865 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
14866
14867         * reflection.c (reflection_methodbuilder_to_mono_method): set
14868         pinvoke flag
14869
14870 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14871
14872         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
14873
14874 2003-01-29  Dick Porter  <dick@ximian.com>
14875
14876         * threads.c: No need for the fake_thread kludge now that Thread
14877         doesn't run a class constructor
14878         
14879 2003-01-29  Dick Porter  <dick@ximian.com>
14880
14881         * threads.c: Use g_direct_hash instead of the rather bogus
14882         g_int_hash
14883
14884 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
14885
14886         * marshal.c (mono_marshal_get_native_wrapper): add check for null
14887         (fix pinvoke12.exe)
14888         (mono_marshal_get_struct_to_ptr): generate valid IL code
14889         (mono_marshal_get_ptr_to_struct): generate valid IL code
14890         (*): correctly set sig->pinvoke, we need to memdup the signature
14891         to do that
14892
14893 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14894
14895         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
14896         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
14897
14898 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14899
14900         * profiler.c: provide more callers information.
14901
14902 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
14903
14904         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
14905
14906         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
14907
14908         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
14909
14910 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14911
14912         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
14913         exception instead of going into an infinite loop on dates which it 
14914         can't yet handle.
14915
14916         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
14917         out-of-range exception if needed.
14918
14919         * class.c (mono_class_setup_vtable): allow a virtual method to provide
14920         an implementation for an interface method and to override an inherited
14921         method at the same time. 
14922         Imagine a scenario when a virtual method is used to override a
14923         virtual abstract method in a parent class, and this same method 
14924         provides an implementation for an method inherited from an interface. 
14925         In this case, the interface resolution code will set im->slot, which 
14926         means that the virtual method override pass will skip this method 
14927         which means a pointer to the abstract method inherited from the parent
14928         will remain in the vtable of this non-abstract class.
14929
14930         * class.c: (mono_class_setup_vtable): continue search for a real 
14931         method if only an abstract method is found.     
14932
14933 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14934
14935         * reflection.c: add size to encoding for ByValStr and ByValArray
14936         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
14937
14938 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14939
14940         * class.c (mono_class_setup_vtable): pass the override info as an
14941         argument.
14942
14943         * class.c (mono_class_setup_vtable): set the slot of overriding methods
14944         correctly.
14945         
14946         * reflection.c (ensure_runtime_vtable); add support for method 
14947         overrides.
14948         
14949 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14950
14951         * reflection.c (resolution_scope_from_image): Hack to work to work with
14952         dynamic assemblies.
14953
14954         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
14955         added a 'force_ref' argument to force this function to allways return 
14956         a TypeRef. This is needed by mono_image_get_memberref_token ().
14957         
14958 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14959
14960         * reflection.c (mono_image_get_type_info): interfaces really don't have
14961         a parent.
14962
14963         * reflection.c (mono_image_basic_init): fill out missing fields of
14964         image structure.
14965
14966         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
14967         dynamic assemblies. This is required so dynamic assemblies show up in
14968         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
14969         Type::GetType() etc. This is consistent with MS behaviour.
14970
14971         * image.c image.h reflection.c: add newly created classes to the name 
14972         cache so mono_class_get () will find them.      
14973
14974 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14975
14976         First part of changes to get IKVM.NET running under mono.
14977         
14978         * appdomain.h, appdomain.c: added new function 
14979         mono_domain_try_type_resolve() which will emit TypeResolve events. 
14980         This function will call AppDomain::DoTypeResolve to do the actual work.
14981
14982         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
14983         moved existing code dealing with dynamic tokens to a new function 
14984         called mono_reflection_lookup_dynamic_token (). This function will 
14985         raise TypeResolve events when appropriate. Since reflection.c is not 
14986         part of libmetadata, a new hook function called 
14987         mono_lookup_dynamic_token() is added to class.c which will call this.
14988
14989         * assembly.h assembly.c: make the invoke_load_hook function public,
14990         so it can be called for dynamic assemblies.
14991
14992         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
14993
14994         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
14995         type isn't found.
14996
14997         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
14998         MonoGHashTable, since it contains pointers to objects which the GC 
14999         needs to track.
15000
15001         * assembly.c (search_loaded): remove unused variable.
15002         
15003 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
15004
15005         * object.c: fixed issue exposed by gcc-generated IL programs
15006         that use RVA data for pointers.
15007
15008 2003-01-25  Martin Baulig  <martin@ximian.com>
15009
15010         * threads.c (start_wrapper): Moved the initialization of
15011         `start_func' above the mono_new_thread_init() call to which we
15012         pass it as argument.
15013
15014 2003-01-24  Martin Baulig  <martin@ximian.com>
15015
15016         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
15017         the MonoThread pointer.
15018
15019 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
15020
15021         * icall.c: Rename `PowImpl' to Pow.
15022
15023 2003-01-23  Dick Porter  <dick@ximian.com>
15024
15025         * threads.c (start_wrapper): Create a Thread object if needed, so
15026         the Main() thread can do the class initialisation in a subthread
15027         that has been set up to allow managed code execution.
15028
15029         Pass the thread ID instead of the MonoThread pointer to the thread
15030         start and attach callbacks.  This change is required, because the
15031         jit thread start callback must be called _before_ the Thread
15032         object can be created.
15033         
15034         (mono_thread_init): Removed much object creation code that is no
15035         longer needed.  No managed code is called from here now.
15036
15037         * object.c (mono_runtime_exec_managed_code): Create a subthread
15038         for Main, and call back to the runtime to use it.
15039         Set the exit code when Main exits.
15040
15041         * gc.c: Make sure domain finalisation happens in a subthread.
15042         Re-enable threaded GC, fixing bug 31333 (again).
15043
15044         * environment.c: System.Environment internall calls (so far just
15045         ExitCode is here, the others are still in icall.c)
15046
15047         * appdomain.c (mono_runtime_cleanup): All threads running managed
15048         code should have finished before mono_runtime_cleanup() is
15049         reached, so no need to clean up threads.
15050
15051 2003-01-22  Martin Baulig  <martin@ximian.com>
15052
15053         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
15054         `gpointer func' arguments.      
15055         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
15056         but added `MonoThread *thread' argument.
15057         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
15058
15059         * threads.c (mono_new_thread_init): Added `gpointer func' argument
15060         and pass it to the mono_thread_start_cb callback.
15061         (mono_install_thread_callbacks): New public function to install a
15062         set of callbacks which are set by the debugger.
15063         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
15064
15065 2003-01-22  Martin Baulig  <martin@ximian.com>
15066
15067         * Makefile.am: Install debug-mono-symfile.h.
15068
15069 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
15070
15071         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
15072
15073 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
15074
15075         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
15076         * class.c (mono_ptr_class_get): correctly set access levels of pointers
15077         (mono_array_class_get): correctly set access levels of arrays
15078
15079 2003-01-20      Patrik Torstensson
15080         * image.h (MonoAssemblyName): changed major, minor, build, revision
15081         from signed to unsigned.
15082
15083 2003-01-20  sean kasun <skasun@azstarnet.com>
15084
15085         * reflection.c (load_cattr_value): Now this handles
15086         MONO_TYPE_SZARRAY.  Fixes bug #35629
15087
15088 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
15089
15090         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
15091         integer value
15092
15093 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15094
15095         * decimal.c: fixed bug #26056.
15096
15097 2003-01-17  Martin Baulig  <martin@ximian.com>
15098
15099         * gc.c: Raise an ExecutionEngineException instead of using g_error().
15100
15101 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15102
15103         * exception.[ch]:
15104         (mono_get_exception_type_initialization): new function.
15105
15106         * object.c: throw a TypeInitializationException when an exception is
15107         thrown invoking the class constructor.
15108
15109 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15110
15111         * reflection.c: fixed attribute reading.
15112
15113 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15114
15115         * icall.c:
15116         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
15117         provided, look for the type in the calling assembly and then in
15118         mscorlib; if the assembly name is provided, only try that one.
15119
15120 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
15121
15122         * object.c: register the vtable before there is a chance it's
15123         queried again recursively.
15124
15125 2003-01-13  Duncan Mak  <duncan@ximian.com>
15126
15127         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
15128         gc-internal.h. 
15129         
15130 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
15131
15132         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
15133
15134 2003-01-11  Martin Baulig  <martin@ximian.com>
15135
15136         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
15137         this to 20 for the release.
15138
15139 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
15140
15141         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
15142
15143         * loader.c (mono_method_get_marshal_info): bug fix
15144
15145         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
15146         structures with explicit layout
15147
15148 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15149
15150         * profiler.c: made the output more readable (and sorted). 
15151         Added caller information for the allocation profiler.
15152
15153 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
15154
15155         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
15156
15157 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15158
15159         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
15160         to get value types.
15161         
15162 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
15163
15164         * object.c, profiler.h, profiler.c, profiler-private.h:
15165         Added object allocation profiler.
15166
15167 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
15168
15169         * reflection.h, reflection.c: handle global methods.
15170         Compress blob entries.
15171
15172 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
15173
15174         * marshal.c: fix compilation.
15175
15176 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
15177
15178         * loader.c (mono_method_get_marshal_info): impl.
15179
15180         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
15181
15182 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15183
15184         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
15185         for reference types.
15186
15187 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
15188
15189         * loader.c: fixed off by one error in loaded parameter names.
15190
15191 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
15192
15193         * marshal.c (mono_marshal_get_icall_wrapper): like
15194         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
15195         instead of a MonoMethod.
15196
15197 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15198
15199         * decimal.c: fixed bug #36537.
15200
15201 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
15202
15203         * marshal.c: throw a missing method exception if a
15204         P/Invoke method is not found.
15205
15206 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15207
15208         * icall.c: allow a null this for constructors.
15209
15210 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
15211
15212         * icall.c: raise the proper exceptions if the arguments to the
15213         internal Invoke are incorrect.
15214
15215 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
15216
15217         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
15218
15219 2003-01-03  Martin Baulig  <martin@ximian.com>
15220
15221         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15222
15223 2002-12-31  Martin Baulig  <martin@ximian.com>
15224
15225         * debug-mono-symfile.c: Completely rewrote the type section.
15226         Instead of using individual malloc()ed fields, we use one big
15227         continuous memory area and offsets into this area.
15228         See the comments in the source code for details.
15229
15230 2002-12-30  Martin Baulig  <martin@ximian.com>
15231
15232         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
15233
15234 2002-12-30  Martin Baulig  <martin@ximian.com>
15235
15236         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
15237         line number table in this data blob instead of using an external
15238         pointer.
15239
15240 2002-12-28  Martin Baulig  <martin@ximian.com>
15241
15242         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15243
15244 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
15245
15246         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
15247         as a boxed return type.
15248
15249 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
15250
15251         * appdomain.c
15252         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
15253         g_build_filename to properly get separators on the filename created.
15254
15255         * object.h: Small change, introduce MonoMarshalByRefObject to
15256         track the layout of that structure in the C# universe as we make
15257         changes there.
15258
15259 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
15260
15261         * object.c: removed assert to allow static fields on interfaces.
15262         * loader.c: a TypeSpec may be used for any type, not just arrays.
15263
15264 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15265
15266         * class.c, class.h: added mono_class_array_element_size ().
15267         Ignore static methods in interfaces.
15268
15269 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15270
15271         * threads.c: fixed the build under cygwin.
15272
15273 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15274
15275         * reflection.c: handle nullref constants. Allocate keys for
15276         reflection handles with the GC.
15277
15278 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15279
15280         * threads.c, threads.h: added mono_thread_get_abort_signal()
15281         to get a suitable signal for thread abort.
15282
15283 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15284
15285         * metadata.c: fix handling of ExportedType table.
15286
15287 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15288
15289         * icall.c: added WriteWindowsDebugString internal call.
15290
15291 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15292
15293         * reflection.h: added fields to match C# implementation.
15294
15295 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15296
15297         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
15298
15299 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
15300
15301         * gc.h, gc-internal.h: Rename header for GC internal calls to
15302         gc-internal.h from gc.h as to not clash with Boehm GC having its
15303         header installed as <gc.h> in outside include paths.
15304         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
15305         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
15306
15307 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15308
15309         * icall.c: assign minor, build and revision in FillName.
15310
15311 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
15312
15313         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
15314         Added support for running code generated by Reflection.Emit.
15315
15316 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15317
15318         * appdomain.c: check for NULL argument in LoadFrom.
15319
15320 2002-12-10  Dick Porter  <dick@ximian.com>
15321
15322         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
15323
15324 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15325
15326         * appdomain.c: fix buglet when building exe file name.  Handle full
15327         assembly name (needed after latest changes to AssemblyName).
15328         * image.c:
15329         (mono_image_close): free some hashtables.
15330
15331 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
15332
15333         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
15334         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
15335         on some systems (redhat 7.3) 
15336
15337 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
15338
15339         * threads.c: delete the critical section of a sync block,
15340         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
15341
15342 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
15343
15344         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
15345
15346 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15347
15348         * appdomain.[ch]: handle the assembly preload event to try loading the
15349         assemblies using the paths we have in the current domain.
15350
15351         * assembly.[ch]: created an assembly preload hook that is called to try
15352         loading the assembly by other means that the ones provided here.
15353
15354         * domain.c: initialize the domain search path.
15355
15356         From now on, assemblies (TODO: except corlib and System) are loaded
15357         according to these rules when using mono_assembly_load ():
15358
15359                 1. It tries to load the assembly from the ApplicationBase
15360                 of the current domain appending .dll and .exe (TODO: have to
15361                 try loading from name/name.dll and name/name.exe).
15362
15363                 2. It tries the search path specified in PrivateBinPath for the
15364                 current domain (if any).
15365
15366                 3. Previous behavior.
15367
15368 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
15369
15370         * icall.c: implemented GetInterfaceMap() related icall.
15371         * domain.c, loader.h: load MethodInfo in mono_defaults.
15372
15373 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15374
15375         * gc.c: disable the finalizer thread for now, untill all the issues
15376         with it are resolved.
15377
15378 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15379
15380         * string-icalls.c: handle embedded nulls in string ctor when the
15381         length is specified.
15382
15383 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15384
15385         * class.c: look for explicit interface implementation in parent
15386         classes, too.
15387
15388 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
15389
15390         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
15391
15392 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15393
15394         * gc.c: protect handles with a critical section.
15395
15396 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15397
15398         * icall.c:
15399         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
15400         parameters. If no assembly specified, try getting the type from all
15401         the assemblies in the current domain, else, load the assembly and get
15402         the type from it.
15403
15404 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15405
15406         * marshal.c: applied patch from Aleksey Demakov that fixes
15407         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
15408
15409 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15410
15411         * icall.c: fixed get_location.
15412
15413 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
15414
15415         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
15416         declarations to make it work with older gcc. 
15417
15418         * loader.c (mono_get_method): set signature->pinvoke for native calls
15419
15420 2002-11-20  Dick Porter  <dick@ximian.com>
15421
15422         * threads.c (mono_thread_init): Set the main thread's handle
15423
15424 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15425
15426         * gc.c: allow compilation without GC support. Changed to match the
15427         mono coding style.
15428
15429 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15430
15431         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
15432
15433 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
15434
15435         * reflection.c: set a public key token on the core assemblies.
15436
15437 2002-11-18  Dick Porter  <dick@ximian.com>
15438
15439         * threads.c: Split out some thread initialisation so that other
15440         files can set the start callback function.
15441
15442         * gc.c: Run finalisers in a separate thread, to avoid stack
15443         overflow.  Fixes bug 31333.
15444
15445         * appdomain.c: Set up GC finalisation thread.
15446
15447         * reflection.c: 
15448         * object.c: 
15449         * domain.c: Use gc.h macros for GC_malloc
15450         
15451 2002-11-15  Dick Porter  <dick@ximian.com>
15452
15453         * threadpool.c: 
15454         * threads.c:
15455         * appdomain.c: Removed mono_runtime_init_with_attach(),
15456         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
15457         merging the extra parameter with the existing function.  Removed
15458         unneeded code in mono_thread_attach().
15459
15460 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
15461
15462         * image.c (mono_image_loaded_by_guid): a method to get loaded
15463         images by guid. 
15464         (load_metadata_ptrs): we store the guid as string.
15465
15466 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
15467
15468         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
15469
15470         * metadata.c (mono_guid_to_string): imported method form Zoltan
15471         Varga (slightly modified)
15472
15473         * assembly.c (mono_assembly_open): load precompiled code
15474
15475         * loader.h (MonoMethod): we store the method token for use in the
15476         aot compiler. 
15477
15478 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15479
15480         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
15481         the hook function called when an assembly is loaded.
15482         
15483         * domain.c: Modified file.
15484         (mono_domain_assembly_load): removed hash table insertion of assemblies.
15485
15486         Fixes bug #33196.
15487
15488 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
15489
15490         * reflection.c: Map PEFileKind to the value expected by the WinNT
15491         image loader. 
15492
15493 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15494
15495         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
15496         Read until the buffer is filled completely.
15497
15498 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15499
15500         * icall.c: implemented MonoType.InternalGetEvent ().
15501
15502 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15503
15504         * appdomain.c: implemented InitAppDomainSetup. Delayed
15505         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
15506         the entry_assembly.
15507
15508         * assembly.c: base_dir is now an absolute path ending with
15509         G_DIR_SEPARATOR.
15510
15511         * icall.c: modified get_location according to the above changes.
15512
15513         * object.c: init AppDomain.SetupInformation for the default domain after
15514         we have the entry assembly.
15515
15516         * domain.c: when unloading a domain, setup = NULL.
15517
15518 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
15519
15520         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
15521
15522 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
15523
15524         * object.h, object.c: introduced mono_object_get_virtual_method ()
15525         to lookup the method invoked on an object when a callvirt is done on
15526         a method.
15527         * icall.c: make MethodInfo::Invoke() always do a virtual call.
15528
15529 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15530
15531         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15532         current domain when loaded an assembly and failed to load it.
15533
15534         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15535
15536 2002-10-31  Dick Porter  <dick@ximian.com>
15537
15538         * icall.c: 
15539         * file-io.h: 
15540         * file-io.c: Return the error status in a parameter, as the
15541         GetLastError() value has long since been blown away if we try and
15542         look it up in a subsequent internal call invocation.  Delete the
15543         GetLastError() internal call, because it's useless.
15544
15545 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15546
15547         * class.[ch]: added cast_class to fix bug 29517
15548
15549 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15550
15551         * marshal.c: create valid IL code in the filter clause:
15552         the new JIT is less forgiving:-)
15553
15554 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15555
15556         * icall.c: removed get_property internal call.
15557
15558 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15559
15560         * appdomain.h domain.c: Added an ID to appdomains.
15561         
15562         * threads.c threads.h icall.c: Implement icall
15563         Thread:GetDomainID(), and remove unused icall 
15564         CurrentThreadDomain_internal.
15565
15566 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15567
15568         * icall.c: Don't recurse through the base types in GetConstructor.
15569         Fixes bug #32063. 
15570
15571 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15572
15573         * mempool.h, mempool.c: added mono_mempool_empty() and
15574         mono_mempool_stats().
15575
15576 2002-10-23  Dick Porter  <dick@ximian.com>
15577
15578         * file-io.c: 
15579         * file-io.h: 
15580         * icall.c: Added MonoIO.GetFileType internal call
15581
15582 2002-10-17  Dick Porter  <dick@ximian.com>
15583
15584         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15585         delegate semaphore before waiting for all threads to finish,
15586         because new threads can also call async delegates.  Fixes bug
15587         32004.
15588
15589         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15590         of 3 seconds, in case another async job is queued.  (This part is
15591         needed because the bug fix reintroduced the 3s exit lag.)  This
15592         makes the mono_runtime_shutdown flag superfluous.
15593
15594 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15595
15596         * reflection.c: include ehader size in method section headers.
15597         Really check for suplicated modules entries.
15598
15599 2002-10-17  Martin Baulig  <martin@gnome.org>
15600
15601         * debug-mono-symfile.c: Added back support for locals.
15602
15603 2002-10-14  Martin Baulig  <martin@gnome.org>
15604
15605         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15606         MONO_TYPE_VOID.
15607
15608 2002-10-14  Martin Baulig  <martin@gnome.org>
15609
15610         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15611         mono_class_get() instead of looking in the class cache. 
15612
15613 2002-10-13  Martin Baulig  <martin@gnome.org>
15614
15615         * debug-mono-symfile.c: Set version number to 28, include the
15616         signature in method names.
15617
15618 2002-10-13  Martin Baulig  <martin@gnome.org>
15619
15620         * debug-mono-symfile.h: Set version number to 27.
15621
15622 2002-10-11  Martin Baulig  <martin@gnome.org>
15623
15624         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15625
15626 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15627
15628         * metadata.c, metadata.h: added helper function to allocate signatures.
15629
15630 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15631
15632         * icall.c: added internal call to get the location of machine.config.
15633
15634 2002-10-08  Martin Baulig  <martin@gnome.org>
15635
15636         * debug-mono-symfile.c: Ignore classes with a pending init for the
15637         moment.
15638
15639 2002-10-03  Dick Porter  <dick@ximian.com>
15640
15641         * threads.c: Freebsd pthread_t is a pointer
15642
15643 2002-10-03  Dick Porter  <dick@ximian.com>
15644
15645         * socket-io.c: Implemented GetHostName_internal
15646
15647 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15648
15649         * mono-config.c:
15650         (mono_config_parse_file): don't leak the text.
15651
15652 2002-10-02  Martin Baulig  <martin@gnome.org>
15653
15654         * debug-mono-symfile.c: Added support for methods.
15655
15656 2002-10-01  Martin Baulig  <martin@gnome.org>
15657
15658         * debug-mono-symfile.c: Don't emit methods and line numbers for
15659         the dynamic symbol file, just write the type table.  We can easily
15660         have an external helper program which creates a symbol file for an
15661         IL file.        
15662
15663 2002-10-01  Dick Porter  <dick@ximian.com>
15664
15665         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15666         Only add the handle to the cleanup array when we're about to
15667         launch the thread.  Bug 31425 deadlocked when the test was run on
15668         mono under w32.
15669
15670 2002-10-01  Martin Baulig  <martin@gnome.org>
15671
15672         * debug-mono-symfile.c: Added support for properties.
15673
15674 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15675
15676         * reflection.c: unaligned store fix from Mark Crichton
15677         <crichton@gimp.org>.
15678
15679 2002-09-27  Martin Baulig  <martin@gnome.org>
15680
15681         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15682         New interncall.
15683
15684 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15685
15686         * assembly.h, assembly.c: use a sane API to hook into the assembly
15687         loading process instead of a useless special-purpouse hack
15688         (ngen needs a hook, too, for example).
15689
15690 2002-09-27  Dick Porter  <dick@ximian.com>
15691
15692         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15693         io-layer can set up some process handle info.  Not needed on w32,
15694         but doesn't hurt either.
15695
15696         * process.c: Pass the program name in the second parameter to
15697         CreateProcess, so the path is searched.  Include the working
15698         directory. Implemented process name, process enumeration, and some
15699         process detail internal calls.
15700         
15701         * icall.c: Added internal calls for process lookup, and some
15702         process details
15703
15704 2002-09-26  Martin Baulig  <martin@gnome.org>
15705
15706         * assembly.c (mono_install_open_assembly_hook): New global
15707         function to install a function to be invoked each time a new
15708         assembly is loaded.
15709         (mono_assembly_open): Run this callback function if set.
15710
15711         * debug-mono-symfile.c: Put back line numbers for the dynamic
15712         symbol file and also record the .il file as source file.  This
15713         allows us to install the temporary symbol file as `file.dbg' just
15714         like a compiler-generated one.
15715
15716 2002-09-26  Nick Zigarovich <nick@chemlab.org>
15717
15718         * Corrected typo in gc.c (BOHEM vs BOEHM).
15719
15720 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15721
15722         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
15723         GetProperties. Also avoid calling g_slist_length in GetProperties and
15724         GetMethods.
15725
15726 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15727
15728         * reflection.c: avoid unaligned stores (bug spotted by
15729         Mark Crichton  <crichton@gimp.org>).
15730
15731 2002-09-25  Martin Baulig  <martin@gnome.org>
15732
15733         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
15734         instead of guint64 for addresses and added prologue/epilogue info.
15735
15736 2002-09-25  Martin Baulig  <martin@gnome.org>
15737
15738         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
15739         store line number info.  For the dynamic symbol file, we only need
15740         to provide the JIT generated dynamic line number info for the dynamic
15741         symbol file.
15742
15743 2002-09-25  Martin Baulig  <martin@gnome.org>
15744
15745         * debug-mono-symfile.h: Incremented version number.
15746
15747 2002-09-24  Martin Baulig  <martin@gnome.org>
15748
15749         * class.c (mono_debugger_class_init_func): New global function
15750         pointer variable.
15751         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
15752         call it.
15753
15754         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
15755         function.  This is called via the mono_debugger_class_init_func
15756         hook to add all types to the dynamic type table.
15757         (ves_icall_MonoDebugger_GetType): New interncall to get a class
15758         from its metadata token.
15759
15760         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
15761         New interncall for the debugger.
15762
15763 2002-09-24  Nick Drochak <ndrochak@gol.com>
15764
15765         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
15766         before using it in case it is null.
15767         
15768 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
15769
15770         * metadata.c: allow custom modifiers in local var signatures
15771         (bug spotted by Zoltan Varga).
15772
15773 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
15774
15775         * class.c: deal with the <Module> class that may have a NULL vtable.
15776         Eliminate warnings.
15777
15778 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15779
15780         * image.c, image.h: more strong name helpers.
15781         * monosn.c: more work: convert pem keys to cryptoapi format.
15782
15783 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
15784
15785         * string-icalls.c: speedup IndexOf.
15786
15787 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15788
15789         * icall.c: updates from Zoltan.2.Varga@nokia.com.
15790
15791 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15792
15793         * icall.c: cleanup: use mono_object_domain ().
15794
15795 2002-09-23  Martin Baulig  <martin@gnome.org>
15796
15797         * debug-mono-symfile.c: Improved type support.
15798
15799 2002-09-22  Martin Baulig  <martin@gnome.org>
15800
15801         * debug-mono-symfile.c: Added support for reference types and strings.
15802
15803 2002-09-22  Martin Baulig  <martin@gnome.org>
15804
15805         * debug-mono-symfile.c: Started to work on the type table.
15806
15807 2002-09-21  Martin Baulig  <martin@gnome.org>
15808
15809         * debug-mono-symfile.c: Largely reworked the symbol table format.
15810         The symbol table is now incrementally updated each time a new
15811         method is added.  We're now also using our own magic and version
15812         so that you don't need to recompile all your classes if the
15813         dynamic table changes.
15814         (mono_debug_update_mono_symbol_file): Removed.
15815         (mono_debug_symfile_add_method): New function to add a method.
15816
15817 2002-09-21  Martin Baulig  <martin@gnome.org>
15818
15819         * icall.c
15820         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
15821         New interncall.
15822
15823         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
15824         New interncall to get a method from its metadata token.
15825
15826 2002-09-21  Martin Baulig  <martin@gnome.org>
15827
15828         * debug-mono-symfile.c: Create type table.
15829
15830 2002-09-20  Martin Baulig  <martin@gnome.org>
15831
15832         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
15833
15834 2002-09-20  Martin Baulig  <martin@gnome.org>
15835
15836         * debug-mono-symfile.c: Provide information about params and locals.
15837
15838 2002-09-20  Martin Baulig  <martin@gnome.org>
15839
15840         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
15841         New interncall.
15842
15843         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
15844         interncall to get a method from its metadata token.
15845
15846 2002-09-20  Martin Baulig  <martin@gnome.org>
15847
15848         * debug-mono-symfile.c: Added a few checks for method->header
15849         being non-NULL.  This should never happen, but for the moment
15850         let's use a g_warning() rather than a g_assert().
15851
15852 2002-09-19  Mark Crichton  <crichton@gimp.org>
15853
15854         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
15855         even if support for it isn't present.  Added an #ifdef to fix this.
15856
15857         * socket-io.c: Added checks back for Solaris support.
15858
15859 2002-09-19  Martin Baulig  <martin@gnome.org>
15860
15861         * debug-mono-symfile.c (read_string, write_string): Reflect latest
15862         changes in the symbol file format.
15863
15864 2002-09-18  Martin Baulig  <martin@gnome.org>
15865
15866         * debug-mono-symfile.c: Set version number to 21.
15867
15868 2002-09-18  Dick Porter  <dick@ximian.com>
15869
15870         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
15871         on netbsd.  Fixes bug 30051.
15872
15873 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15874
15875         * reflection.c:
15876         (set_version_from_string): little fix.
15877
15878 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15879
15880         * monosn.c, Makefile.am: added strong name utility.
15881         * reflection.h, reflection.c: implemented delayed signing,
15882         locale, version and hash id assembly attributes.
15883
15884 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
15885
15886         * loader.c, metadata.c: load param attributes in signatures.
15887
15888 2002-09-16  Martin Baulig  <martin@gnome.org>
15889
15890         * debug-mono-symfile.c: Added string table with all method names.
15891
15892 2002-09-14  Martin Baulig  <martin@gnome.org>
15893
15894         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
15895         fast method lookup.
15896
15897 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15898
15899         * reflection.c: record the public key token of referenced assemblies.
15900
15901 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
15902
15903         * image.c, image.h: added functions to get the strong name and the
15904         public key of an assembly.
15905         * pedump.c: use them.
15906
15907 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
15908
15909         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
15910
15911 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
15912
15913         * marshal.c (mono_marshal_get_managed_wrapper): Added
15914         MONO_TYPE_BOOLEAN 
15915
15916 2002-09-11  Martin Baulig  <martin@gnome.org>
15917
15918         * gc.c: Call GC_unregister_disappearing_link() on all links when
15919         finalizing them, this is necessary to aviod a crash in boehm's
15920         finalize handler.
15921
15922 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15923
15924         * gc.c: handle GetTarget for finalized objects spotted and fixed by
15925         nick@chemlab.org.
15926
15927 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
15928
15929         * icall.c: implemented MonoType::Module.
15930         * reflection.c, reflection.h: mono_module_get_object () from
15931         Tomi Pakarinen <tomi.pakarinen@welho.com>.
15932
15933 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
15934
15935         * icall.c: ignore overridden methods in GetMethods ().
15936         Fix for FieldInfo::SetValue().
15937         * object.c: handle float/double in runtime invoke.
15938
15939 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
15940
15941         * object.c: allow a constructor to be called again on an object.
15942
15943 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15944
15945         * class.h, class.c: move field layout code to it's own function and
15946         export it. Get an interface id earlier. Move fields in MonoClass
15947         so they are more cache friendly and align the bitfields.
15948         * loader.c: temporary handle get_param_names() for a runtime method.
15949         * reflection.c, reflection.h: more code to handle runtime creation of
15950         types.
15951
15952 2002-09-09  Martin Baulig  <martin@gnome.org>
15953
15954         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
15955         signature with the pinvoke field being set for the actual call.
15956
15957 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
15958
15959         * icall.c: removed some unused icalls. Start of map of glib charsets
15960         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
15961
15962 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
15963
15964         * debug-helpers.c: break infinite loop (found and fixed by
15965         Holger Arnold <harnold@gmx.de>).
15966
15967 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15968
15969         * icall.c: target may be null in create_delegate.
15970
15971 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15972
15973         * marshal.c: handle a boolean return type.
15974
15975 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15976
15977         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
15978
15979 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15980
15981         * gc.c: fix weakreferences.
15982
15983 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
15984
15985         * icall.c: added icall to get default codepage.
15986
15987 2002-09-03  Dick Porter  <dick@ximian.com>
15988
15989         * threads.h: 
15990         * threads.c: Use MonoThread instead of MonoObject where
15991         apropriate.
15992
15993         Store running thread objects in a hash table, so that we have all
15994         the info to hand when waiting for them to finish
15995         (means we don't need OpenThread() any more, so mingw builds should
15996         be fully functional again.)
15997
15998         * verify.c:
15999         * object.h: Added thread ID to MonoThread
16000
16001 2002-09-03  Martin Baulig  <martin@gnome.org>
16002
16003         * icall.c (System.Reflection.Assembly::get_location): New interncall.
16004
16005 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16006
16007         * icall.c: fixed leak in get_temp_path. Thanks lupus.
16008
16009 2002-09-03  Martin Baulig  <martin@gnome.org>
16010
16011         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
16012         argument to store the end address of the disassembled instruction.
16013
16014         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
16015         here from debug-symfile.h.
16016         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
16017         JIT into this struct.
16018         (MonoSymbolFile): Added `char *image_file' field.
16019         (MonoDebugGetMethodFunc): Removed.
16020         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
16021         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
16022         (mono_debug_find_method): New method.
16023
16024         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
16025         create a full symbol file.
16026         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
16027         and static symbol files.
16028         (mono_debug_find_method): The symbol file keeps an internal method hash,
16029         call this to get a MonoDebugMethodInfo from a MonoMethod.
16030
16031         * debug-symfile.[ch]: Removed.
16032
16033 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
16034
16035         * image.c (do_mono_image_open): Remove linker version check.
16036
16037 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
16038
16039         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
16040         wrappers for instance methods.
16041         
16042 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16043
16044         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
16045
16046 2002-08-28  Dick Porter  <dick@ximian.com>
16047
16048         * Makefile.am: Export HOST_CC for w32 builds
16049
16050 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16051
16052         * file-io.c process.c: MonoString are null terminated, no
16053         need for mono_string_to_utf16() anymore.
16054
16055 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16056
16057         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
16058
16059 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
16060
16061         * icall.c, reflection.h: speedup System.MonoType.
16062
16063 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16064
16065         * reflection.c: allow null as the value of a string argument in
16066         custom attributes constructors.
16067
16068 2002-08-27  Martin Baulig  <martin@gnome.org>
16069
16070         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
16071         `trampoline_address' field.
16072
16073 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
16074
16075         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
16076         check (fixes bug #29486) 
16077
16078 2002-08-27  Martin Baulig  <martin@gnome.org>
16079
16080         * debug-mono-symfile.c: Changed the file format in a way that allows us
16081         open it read-only and to use a specially malloced area for all the
16082         dynamic data.  We can now also generate a symbol file on-the-fly if we're
16083         debugging IL code and there is no MCS generated symbol file for it.
16084
16085 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16086
16087         * object.c: added a define for a good string and array
16088         creation speedup (not enabled by default because we need to deal with
16089         the synch stuff).
16090
16091 2002-08-26  Martin Baulig  <martin@gnome.org>
16092
16093         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
16094         function to create a dynamic symbol file.  This is used by the
16095         debugger to create a symbol file for IL code on-the-fly.
16096
16097 2002-08-26  Martin Baulig  <martin@gnome.org>
16098
16099         * loader.c (mono_lookup_pinvoke_call): Include the error message
16100         from g_module_error() in the error message.
16101
16102 2002-08-24  Martin Baulig  <martin@gnome.org>
16103
16104         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
16105         function to update the symbol file.  The symbol file is mmap()ed
16106         writable, but private.  This allows us to install the symbol file
16107         together with the assembly.
16108
16109 2002-08-24  Martin Baulig  <martin@gnome.org>
16110
16111         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
16112         but they can read the new symbol file format which mcs is now creating.
16113
16114         * debug-symfile.c (mono_debug_find_source_location): Moved to
16115         debug-mono-symfile.c; this is now operating on the new symbol file.
16116
16117 2002-08-23  Martin Baulig  <martin@gnome.org>
16118
16119         * debug-helpers.c (mono_method_desc_from_method): New function to get
16120         a MonoMethodDesc from a MonoMethod.
16121
16122 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16123
16124         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
16125         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
16126
16127 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16128
16129         * string-icalls.[ch]: make helper methods static.
16130
16131 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16132
16133         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
16134         types to it and to SetValueInternal.
16135
16136         * object.c: Moved handle_enum label to its proper place. This was the
16137         f... bug! ;-)
16138
16139         This time i compiled mcs and gtk-sharp and they both work.
16140
16141 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16142
16143         * icall.c: reverted partially my previous patch until 
16144         object.c:set_value handles enums correcly.
16145
16146 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16147
16148         * icall.c:
16149         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
16150         (ves_icall_System_Environment_get_MachineName): removed warning when
16151         compiling under cygwin.
16152
16153 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16154
16155         * object.c: fixed field_get_value() for reference types.
16156
16157 2002-08-22  Dick Porter  <dick@ximian.com>
16158
16159         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
16160         Don't free a buffer while it's still needed.  Patch from Jonathan
16161         Liger <Jonathan.liger@wanadoo.fr>
16162
16163 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
16164
16165         * icall.c (ves_icall_System_Environment_get_Platform): Add new
16166         internal call.
16167
16168 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
16169
16170         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
16171         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
16172
16173         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
16174         we call unmanaged code which throws exceptions.
16175
16176 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16177
16178         * appdomain.h: added per-domain entry_assembly.
16179         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
16180         arguments.
16181         * icall.c: Assembly::GetEntryAssembly icall.
16182         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
16183         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
16184
16185 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16186
16187         * appdomain.h, gc.c: added mono_domain_finalize ().
16188
16189 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16190
16191         * object.c:
16192         (mono_print_unhandled_exception): changed g_warning by g_printerr
16193         because g_log has a 1024 characters limit (yeah, i got a big stack
16194         trace). Don't print exception name, that should be in ToString 
16195         returned string.
16196
16197 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16198
16199         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
16200         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
16201
16202 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16203
16204         * object.c:
16205         (mono_print_unhandled_exception): after previous commit, i realized
16206         that MS calls ToString on the exception. I changed this function to
16207         do that. This way we get stack_trace for free.
16208
16209 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16210
16211         * object.c:
16212         (mono_print_unhandled_exception): invoke Message property instead of
16213         getting 'message' field from Exception. Don't allocate memory for
16214         'trace' and 'message' if not needed.
16215
16216 2002-08-18  Dick Porter  <dick@ximian.com>
16217
16218         * unicode.c: Fix asserts to match Encoder.cs checks
16219
16220 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16221
16222         * marshal.c: fix unaligned store issue and a few wrong
16223         opcode argument types.
16224
16225 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16226
16227         * icall.c: added GetUninitializedObjectInternal internal call.
16228
16229 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
16230
16231         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
16232         to the right domain.
16233
16234 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
16235
16236         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
16237
16238         * class.c (class_compute_field_layout): set blittable to false for Strings
16239
16240         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
16241
16242 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16243
16244         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
16245         first chunk of code to create types at runtime. Code to
16246         handle ReflectedType/DeclaringType. Make reflection handles
16247         domain specific.
16248
16249 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16250
16251         * class.c: set correct name in arrays.
16252
16253 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
16254
16255         * appdomain.c (mono_domain_transfer_object): make it work with
16256         valuetypes. bug fixes.
16257
16258 2002-08-12  Dick Porter  <dick@ximian.com>
16259
16260         * object.h: Rename some parameters to avoid c++ keywords (Patch
16261         from Joseph Wenninger <kde@jowenn.at>)
16262
16263 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
16264
16265         * icall.c: added icall to implement Assembly.GetFile*.
16266
16267 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16268
16269         * reflection.h, reflection.c: code to embed managed resources.
16270
16271 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16272
16273         * class.c: move all the type size stuff into
16274         class_compute_field_layout().
16275
16276 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16277
16278         * class.c: ensure enums have always the correct instance size.
16279         * unicode.c: remove wrong assert.
16280
16281 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16282
16283         * assembly.c: fix mem corruption issue.
16284         * image.h, image.c: added mono_image_get_resource () to access
16285         managed resources.
16286         * icall.c: implemented Assembly.EntryPoint property and some
16287         Managed Resources related internalcalls.
16288
16289
16290 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16291
16292         * image.c, image.h: impemented mono_image_get_entry_point ().
16293         * appdomain.c: use mono_image_get_entry_point.
16294
16295 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16296
16297         * reflection.c: support the object type argument when loading
16298         custom attributes.
16299
16300 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
16301
16302         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
16303         String as return type.
16304
16305 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
16306
16307         * reflection.c: fix encoding of named args for custom attrs to match
16308         the ms implementation. Read them back when instantiating custom
16309         attributes.
16310
16311 2002-08-02  Radek Doulik  <rodo@ximian.com>
16312
16313         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
16314         by Dietmar as quick fix
16315         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
16316         16 as stack size, used on more places as quick fix before Dietmar
16317         will fix it properly
16318
16319 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16320
16321         * object.h, object.c: added accessors for fields and properties.
16322
16323 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16324
16325         * class.c, class.h: made mono_class_get_field_from_name ()
16326         loop on parent types.
16327         Added mono_class_get_property_from_name ().
16328
16329 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16330
16331         * class.c, class.h: move the code to setup the type vtable in its own
16332         function so that it can be reused also for types created at runtime.
16333         Eliminate the "class" identifier from the header file.
16334         * reflection.c: setup the vtable for enums so that we can create
16335         objects for use in SetConstant ().
16336
16337 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
16338
16339         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
16340         instead of the delegate itself as this pointer (bug #28383)
16341
16342 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
16343
16344         * marshal.c (mono_marshal_get_managed_wrapper): added return type
16345         conversions.
16346
16347 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16348
16349         * loader.c: don't set the pinvoke bit on icalls.
16350
16351 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
16352
16353         * debug-helpers.c (mono_method_full_name): only print a number to
16354         indicate wrapper type (so that the output is more readable in traces).
16355
16356 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
16357
16358         * class.c (mono_class_init): include method override patch from Paolo
16359
16360 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
16361
16362         * icall.c: fixed GetTypeCode().
16363
16364 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
16365
16366         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
16367         use real delegate invoke function to make it work with multicast
16368         delegates (fix bug# 28291).
16369
16370 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16371
16372         * object.c: load constant strings.
16373
16374 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16375
16376         * reflection.c: no magic numbers.
16377         * tabledefs.h: security action enum.
16378
16379 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16380
16381         * assembly.c: fix possible memory corruption.
16382
16383 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16384
16385         * reflection.h, reflection.c: added support for linking resources.
16386         * verify.c: check we have an updated corlib.
16387
16388 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
16389
16390         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
16391         string arrays.
16392         (mono_marshal_string_array): null terminate unmanaged string arrays.
16393         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
16394
16395 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16396
16397         * icall.c: Type.GetType () can now return also types from the
16398         calling assembly.
16399
16400 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16401
16402         * loader.h, loader.c: stack walking support.
16403         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
16404         GetCallingAssembly.
16405
16406 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
16407
16408         * marshal.c: added optimisations for blittable types 
16409
16410         * class.c (mono_array_class_get): do not set blittable attribute on arrays
16411         (mono_class_setup_mono_type): set blittable attribute for single
16412         and double.
16413
16414         * marshal.c (mono_string_utf8_to_builder): impl.
16415         (mono_string_builder_to_utf8): impl.
16416         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
16417
16418 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
16419
16420         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
16421         (mono_marshal_get_managed_wrapper): impl. byref types
16422
16423 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16424
16425         * icall.c:
16426         (search_method): don't display debug message. 
16427
16428 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16429
16430         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
16431
16432 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16433
16434         * appdomain.c: set the missing filename when throwing exception.
16435
16436 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16437
16438         * metadata.c (mono_type_size): code cleanup
16439         (mono_type_stack_size): removed some test code
16440
16441 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
16442
16443         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
16444         mono_get_exception_file_not_found now.
16445
16446         * exception.c (mono_exception_from_name_two_strings): New version
16447         that will call a constructor with two string arguments. 
16448         (mono_get_exception_file_not_found): New helper routine, used to
16449         report file-not-found errors.
16450
16451 2002-07-20  Dick Porter  <dick@ximian.com>
16452
16453         * process.h:
16454         * process.c: Pass file handles to CreateProcess
16455         
16456         * icall.c:
16457         * file-io.h:
16458         * file-io.c: Implemented CreatePipe
16459
16460 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16461
16462         * metadata.c (mono_get_param_info): set alignment for value types
16463
16464 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16465
16466         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
16467         Constify mono_domain_assembly_open().
16468         * loader.c: handle null namespace in icalls.
16469
16470 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16471
16472         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
16473         (emit_str_to_ptr_conv): marshal object as structs
16474
16475         * metadata.c (mono_type_to_unmanaged): marshal object as structs
16476
16477         * marshal.c (mono_marshal_get_runtime_invoke): support value types
16478
16479 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
16480
16481         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
16482         (mono_marshal_get_native_wrapper): we an now return value types
16483
16484 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16485
16486         * verify.c: more checks implemented.
16487
16488 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
16489
16490         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
16491         (fix bug #27695)
16492         (mono_marshal_get_native_wrapper): allow byref arguments
16493         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
16494         impl. PtrToStringXXX methods
16495         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
16496         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
16497         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
16498         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
16499         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
16500
16501 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16502
16503         * reflection.c: fix buglet in parsing an assembly name.
16504
16505 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16506
16507         * marshal.c (emit_ptr_to_str_conv): first impl.
16508
16509 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16510
16511         * object.c, class.h: cache the vtable in the class as suggested by
16512         vargaz@freemail.hu (Zoltan Varga).
16513
16514 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16515
16516         * class.h, loader.c: added mono_field_from_token().
16517         * verify.c: first cut of type checking code.
16518
16519 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16520
16521         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
16522
16523 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
16524
16525         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
16526         (fix bug #27782)
16527         (mono_marshal_get_remoting_invoke): impl.
16528         (mono_delegate_begin_invoke): impl.
16529         (mono_mb_emit_save_args): impl.
16530         (mono_delegate_end_invoke): impl.
16531         (mono_marshal_get_delegate_begin_invoke):
16532         (mono_marshal_get_delegate_end_invoke):
16533         (mono_marshal_get_delegate_invoke): generate a special name for
16534         those methods (including the signature) and associate them whith
16535         the delegate class. 
16536
16537 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16538
16539         * reflection.[ch]: 
16540         (mono_reflection_type_from_name): now it has a MonoImage parameter
16541         which is used as the default image to search the type in. If the image
16542         is NULL or getting the type from it fails, it defaults to corlib.
16543
16544         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16545         new parameter.
16546
16547 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16548
16549         * reflection.c: update the parameter table index.
16550
16551 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16552
16553         * domain.c: don't include the mark byte in the string hash.
16554
16555 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16556
16557         * icall.cs: icall for Type.GetTypeCode ().
16558         * verify: a couple of fixes and disabled local initialization checks.
16559
16560 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16561
16562         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16563
16564         * debug-helpers.c (mono_method_full_name): print the type of the
16565         runtime wrapper
16566
16567         * metadata.c (mono_signature_hash): a hash function for signatures
16568         (mono_signature_hash): better hash algorithm
16569
16570         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16571
16572         * debug-helpers.c (mono_method_full_name): this can now generate
16573         method names with signatures
16574
16575         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16576         method dont have this pointers.
16577
16578 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16579
16580         * reflection.c: fixup typebuilder tokens.
16581         * image.c: fix buglet.
16582         * marshal.h: remove whitespace.
16583         * metadata.h, metadata.c: reinstate code that was removed.
16584         * verify.c: handle catch directives and fix another couple of bugs.
16585
16586 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16587
16588         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16589         (mono_marshal_get_native_wrapper): make it comp. with the old code
16590         (mono_marshal_get_native_wrapper): support boolean
16591         (mono_marshal_get_managed_wrapper): support more types
16592
16593 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16594
16595         * class.c (class_compute_field_layout): compute class->blittable attribute.
16596
16597 2002-07-09  Dick Porter  <dick@ximian.com>
16598
16599         * threads.c: Make the thread cleaning up cope with threads that
16600         call ExitThread()
16601
16602 2002-07-08  Radek Doulik  <rodo@ximian.com>
16603
16604         * reflection.c (method_encode_code): use non-translated values to
16605         compute finally_start, this fixes exception handling on ppc, yay!
16606
16607         * decimal.h (struct signscale): fix endianess
16608
16609 2002-07-07  Radek Doulik  <rodo@ximian.com>
16610
16611         * reflection.c: swap box_val and not val
16612
16613 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16614
16615         * reflection.c, reflection.h: handle full assembly info in type name.
16616         Handle Type arguments when loading custom attributes.
16617         * icall.c: updated to use new mono_reflection_type_from_name () method.
16618
16619 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16620
16621         * loader.c:
16622         (method_from_memberref): also print assembly name when method not found.
16623
16624 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16625
16626         * icall.c:
16627         (ves_icall_TypeGetProperties): fixed bug #27473. 
16628
16629 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16630
16631         * reflection.c: display image name and token when cannot find the
16632         .ctor for an attribute.
16633
16634 2002-07-05  Martin Baulig  <martin@gnome.org>
16635
16636         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16637
16638 2002-07-04  Dick Porter  <dick@ximian.com>
16639
16640         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16641         compile on mingw.  This will cause mingw builds to not wait for
16642         subthreads to terminate after the main thread does.  I've lodged a
16643         bug with the mingw developers for them to wrap OpenThread().
16644
16645 2002-07-03  Dick Porter  <dick@ximian.com>
16646
16647         * threads.c: Store thread IDs instead of handles, because
16648         GetCurrentThread() returns a pseudohandle and therefore stores
16649         useless values.  mono_thread_cleanup() continues checking the
16650         array of threads until it is empty, to cope with subthreads
16651         spawning new threads after the main thread has finished.
16652
16653         * profiler.h:
16654         * profiler.c:
16655         * profiler-private.h: Pass the thread ID to thread profiler
16656         functions, instead of a handle
16657
16658 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16659
16660         * verify.c: fixes to make it more usable.
16661         * pedump.c: added --verify code to verify IL code in an assembly.
16662
16663 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16664
16665         * reflection.c: turn errors into warnings to allow compiling corlib.
16666
16667 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16668
16669         * reflection.c: add special cases to compile corlib.
16670
16671 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16672
16673         * reflection.c: handle properties with only a set method.
16674
16675 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16676
16677         * opcodes.h: add enum with opcodes in opval order.
16678
16679 2002-07-01  Dick Porter  <dick@ximian.com>
16680         
16681         * object.h:
16682         * object.c (mono_runtime_run_main): Removed unneeded argument
16683
16684 2002-06-28  Martin Baulig  <martin@gnome.org>
16685
16686         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16687
16688 2002-06-27  Dick Porter  <dick@ximian.com>
16689
16690         * threads.c: Store the handle in both the parent thread and in the
16691         subthread, to minimise the time between starting a new thread and
16692         storing its ID.
16693
16694 2002-06-26  Dick Porter  <dick@ximian.com>
16695
16696         * appdomain.c (mono_runtime_cleanup): Close the socket library
16697         after all the threads have finished, not before
16698
16699 2002-06-26  Martin Baulig  <martin@gnome.org>
16700
16701         * debug-symfile.c (mono_debug_find_source_location): Added
16702         `guint32 *line_number' argument.  If it's not NULL, store the line number
16703         there and return the file name without the line number.
16704
16705 2002-06-25  Dick Porter  <dick@ximian.com>
16706
16707         * icall.c:
16708         * process.h:
16709         * process.c: Process forking and other support functions
16710
16711 2002-06-25  Dick Porter  <dick@ximian.com>
16712
16713         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
16714         things dont happen when the image is closed.
16715         (mono_image_lookup_resource): Walk the resource section looking
16716         for a particular entry
16717
16718         * cil-coff.h: PE resource section decoding
16719
16720 2002-06-25  Dick Porter  <dick@ximian.com>
16721         
16722         * assembly.h:
16723         * assembly.c: 
16724         (mono_assembly_foreach): Accessor functions to walk the list of
16725         loaded assemblies
16726         (mono_assembly_set_main):
16727         (mono_assembly_get_main): Process methods need to know which
16728         assembly is the "main" one
16729
16730         * object.c (mono_runtime_run_main): Record the main assembly
16731
16732         * debug-helpers.c: Fix typo
16733
16734 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
16735
16736         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
16737         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
16738
16739 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16740
16741         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
16742
16743 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
16744
16745         * image.c (do_mono_image_open): Initialize reference count,
16746         otherwise we leak the MonoImage.
16747
16748 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16749
16750         * reflection.c: small tweak to handle self-hosting.
16751
16752 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16753
16754         * reflection.c: fix type name parse code.
16755
16756 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16757
16758         * reflection.c: break out of the loop.
16759         * image.c: special case corlib.
16760
16761 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16762
16763         * reflection.c: add all the custom attrs at the end to ensure the
16764         ctors have been properly initialized when the attributes are defined
16765         in the current assembly.
16766
16767 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16768
16769         * reflection.c: handle correctly multiple-nested types.
16770
16771 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16772
16773         * row-indexes.h: fix typos.
16774         * reflection.c: adjust for typos and fix method_def_or_ref
16775         encoding in MethodImpl table.
16776
16777 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16778
16779         * reflection.c: fix entry point patching (thanks Serge!).
16780
16781 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
16782
16783         * verify.c: add check for System.Exception
16784
16785 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16786
16787         * image.c, class.c: minifix for code just c&p'ed.
16788         * reflection.c: warning fix.
16789         * object.h, loader.h, domain.c: load also StringBuilder.
16790
16791 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16792
16793         * marshal.h, marshal.c: some support code to handle complex marshaling.
16794
16795 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16796
16797         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
16798         Better signatures with vtable error dump.
16799
16800 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
16801
16802         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
16803
16804 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
16805
16806         * icall.c (ves_icall_Type_GetField): impl.
16807
16808 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16809
16810         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
16811         to retrieve a marshal description blob for a field or param.
16812
16813 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16814
16815         * reflection.h, reflection.c: change order of nested type emission
16816         to avoid table corruption. The NestedTypes table is sorted.
16817         * icall.c: change order of GetConstructor results to workaround mcs bug.
16818
16819 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16820
16821         * reflection.h, reflection.c: handle field and param marshal
16822         information.
16823
16824 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16825
16826         * icall.c, marshal.c marshal.h: more Marshal class implementation.
16827
16828 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16829
16830         * reflection.c: fix call convention.
16831
16832 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16833
16834         * reflection.h, reflection.c: mono_image_get_memberref_token()
16835         takes a type instead of a class, now. Added
16836         mono_image_get_array_token() to create tokens for the special
16837         multi-dim array methods.
16838
16839 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16840
16841         * assembly.c: handle modules (no assembly table). Split
16842         loading references in its own function.
16843         * class.c: handle moduleref resolution scope.
16844         * image.c, image.h: cache module name in image.
16845
16846 2002-06-07  Martin Baulig  <martin@gnome.org>
16847
16848         * reflection.c (mono_image_get_type_info): Only add a class layout entry
16849         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
16850
16851 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16852
16853         * icall.c: more signature fixes that used uint instead of int.
16854
16855 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16856
16857         * reflection.c: fixed signature of field refs.
16858
16859 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16860
16861         * class.c, reflection.c: handle typerefs of nested types
16862         (both on read and when writing files).
16863
16864 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16865
16866         * icall.c: fix method signatures that tried to workaround the previous
16867         typo, d'oh!
16868
16869 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16870
16871         * debug-helpers.c: fix typo.
16872
16873 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16874
16875         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
16876         rewrote the PE/COFF writing code (our programs are understood by the
16877         ms runtime, now).
16878
16879 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16880
16881         * gc.c, gc.h, icall.c: weakreference support.
16882
16883 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16884
16885         * Makefile.am, mono-config.c: use $(sysconfdir).
16886
16887 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16888
16889         * icall.c: changed default precision of Double.ToString() to 15.
16890         Fixed memory leak. Unified with Single.ToString.
16891
16892 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16893
16894         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
16895
16896 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16897
16898         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
16899         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
16900         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
16901         and myself.
16902
16903 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16904
16905         * debug-symfile.c, sysmath.c: yet more compilation fixes.
16906
16907 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16908
16909         * reflection.c, socket-io.c: more compilation fixes.
16910
16911 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16912
16913         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
16914         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
16915         unicode.c: warning and compiler compatibility fixes.
16916
16917 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16918
16919         * class.h, metadata.c: fixed warnings/compilation errors.
16920
16921 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16922
16923         * Makefile.am, mono-config.c, mono-config.h: configuration file
16924         support routines.
16925         * loader.c, loader.h: make Dll mapping configurable at runtime in the
16926         config file. Export methods to insert and lookup mappings.
16927
16928 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16929
16930         * reflection.c: handle types and boxed objects in custom attr
16931         constructors.
16932
16933 2002-05-30  Martin Baulig  <martin@gnome.org>
16934
16935         * debug-symfile.c
16936         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
16937
16938 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
16939
16940         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
16941         to lookup the implmap row for a P/Invoke method.
16942         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
16943         P/Invoke method from the runtime on an as needed basis.
16944
16945 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
16946
16947         * metadata.c (mono_metadata_parse_signature): impl.
16948
16949 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16950
16951         * class.c: handle .pack directive.
16952
16953 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16954
16955         * object.c: initialize static fields with RVA data.
16956
16957 2002-05-25  Martin Baulig  <martin@gnome.org>
16958
16959         * debug-symfile.c
16960         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
16961
16962 2002-05-24  Martin Baulig  <martin@gnome.org>
16963
16964         * debug-symfile.c
16965         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
16966         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
16967         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
16968
16969 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16970
16971         * object.c: special case string ctros in invoke.
16972         * gc.c: silly whitespace changes.
16973
16974 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
16975
16976         * threadpool.[ch]: impl. a threadpool that can
16977         be used by mint and mono.
16978
16979 2002-05-22  Martin Baulig  <martin@gnome.org>
16980
16981         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
16982         The first argument is now a `MonoReflectionModuleBuilder *', the return
16983         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
16984         `methods' field to get the method builder.  The `token' argument is the
16985         unfixed token.
16986
16987         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
16988         invalid characters instead of g_assert_not_reached()ing.  This seems
16989         to be the behaviour of mscorlib.
16990
16991 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
16992
16993         * object.c (mono_runtime_invoke_array): applied patch from Rachel
16994         Hestilow to fix bug #25104
16995
16996 2002-05-21  Martin Baulig  <martin@gnome.org>
16997
16998         * debug-symfile.c (mono_debug_find_source_location): New function.
16999         Looks up an IL offset in the line number table and returns the source
17000         location as a string.
17001
17002 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17003
17004         * icall.c:
17005         (mono_double_ToStringImpl): changed %f by %g until we have something
17006         better.
17007
17008 2002-05-21  Nick Drochak  <ndrochak@gol.com>
17009
17010         * icall.c : Use different name for Math.Pow's icall.  Needed to check
17011         parameters first in C#.
17012
17013 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17014
17015         * icall.c, reflection.h: added icall to get info about an event.
17016
17017 2002-05-20  Radek Doulik  <rodo@ximian.com>
17018
17019         * object.c (mono_value_box): don't use memcpy for boxing on BIG
17020         endian
17021         (mono_value_box): don't use memcpy for small sizes on
17022         architectures with unaligned access
17023
17024 2002-05-20  Martin Baulig  <martin@gnome.org>
17025
17026         * reflection.c (mono_reflection_setup_internal_class): Don't crash
17027         if `tb->parent == NULL'.
17028         (mono_reflection_create_internal_class): New function.  This is
17029         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
17030         for enum types.
17031
17032         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
17033         New interncall.
17034
17035 2002-05-19  Martin Baulig  <martin@gnome.org>
17036
17037         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
17038         argument to get the length, don't default to the array length.
17039
17040 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
17041
17042         * assembly.c (mono_assembly_setrootdir): New function used to
17043         override the MONO_ASSEMBLIES directory.
17044
17045 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17046
17047         * icall.c: ValueType_GetHashCode() initialize local var.
17048
17049 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17050
17051         * reflection.c: sort custom attributes table.
17052
17053 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17054
17055         * reflection.c: support named args in custom attributes (write support).
17056
17057 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17058
17059         * reflection.c: fix finally position calculation.
17060
17061 2002-05-15  Radek Doulik  <rodo@ximian.com>
17062
17063         * reflection.c: fixed endianess at many places
17064
17065         * icall.c (ves_icall_InitializeArray): comment out debug msg
17066
17067 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
17068
17069         * object.c (mono_unhandled_exception): new function to handle
17070         unhandled exceptions.
17071         (mono_unhandled_exception): call the UnhandledException event.
17072         (mono_runtime_delegate_invoke): impl.
17073
17074 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
17075
17076         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
17077         returns the RVA, not the direct pointer to the data. Handle the case
17078         when the class size is fixed.
17079
17080 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17081
17082         * reflection.c: fix some endianess issues.
17083
17084 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
17085
17086         * object.c (mono_runtime_invoke): is now able to catch exceptions.
17087
17088         * threads.c (mono_thread_init): added a callback which is invoked
17089         at thread start.
17090
17091 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17092         
17093         * icall.c: make GetHashCode return non-negative values.
17094
17095 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17096
17097         * object.c, icall.c, gc.c: revert to address-based hashcode.
17098
17099 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
17100
17101         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
17102
17103 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17104
17105         * icall.c, class.c: special case <Module>.
17106
17107 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
17108
17109         * icall.c: fix bug in GetNow().
17110
17111 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
17112
17113         * object.c (mono_runtime_class_init): make sure that we call all
17114         static class constructors.
17115
17116 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17117
17118         * reflection.c: sort methodsemantics table.
17119
17120 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17121
17122         * reflection.h, reflection.c: honour init locals setting.
17123
17124 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
17125
17126         * icall.c: copied Double ToStringImpl for Single ToStringImpl
17127
17128 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17129
17130         * reflection.c: support ContructorBuilders in attribute blob creation.
17131
17132 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17133
17134         * reflection.c: some changes to build a binary that can be run
17135         directly in windows.
17136
17137 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17138
17139         * loader.c: print a big message when an icall can't be found.
17140
17141 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17142
17143         * string-icalls.c: fix bug 24248.
17144
17145 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17146
17147         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
17148         icall.c, reflection.h: separate assembly loading by pathname and by
17149         assembly name. Use the MONO_PATH env var to search for assemblies.
17150
17151 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17152
17153         * assembly.c, image.h: add some support for assemblies
17154         with multiple modules.
17155         * class.c, class.h: export mono_class_from_typeref().
17156         * loader.c: remove duplicated code and use mono_class_from_typeref(),
17157         instead.
17158
17159 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17160
17161         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
17162         documentation says (the ECMA one is correct).
17163
17164 2002-05-02  Dick Porter  <dick@ximian.com>
17165
17166         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
17167         Don't name the synchronisation mutex.
17168
17169 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
17170
17171         * rand.c
17172         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
17173         Make the prototypes match.
17174         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
17175         Same.
17176
17177         * icall.c
17178         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
17179         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
17180         all systems have tm.tm_zone, so use strftime() with %Z to print
17181         the timezone abreviation into a temp string.
17182
17183         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
17184         rather than mono_array_addr() on a MonoString on Big Endian
17185         machines.
17186
17187 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
17188
17189         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
17190         fix bug 24041
17191
17192 2002-04-30  Dick Porter  <dick@ximian.com>
17193
17194         * socket-io.c: Cope with SOCKET being an integer rather than a
17195         pointer now.
17196
17197         * threads.c: Added Thread_free_internal, to deal with thread
17198         handle cleanup.  Moved calls to handle_store() and handle_remove()
17199         to start_wrapper(), so each can only be called once.  Allocate
17200         synchronisation blocks with GC_malloc(), and use GC finalisation
17201         to close the handles.
17202
17203         * icall.c: added System.Threading.Thread::Thread_free_internal
17204
17205 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17206
17207         * icall.c: support Environment.Exit, CommandLineArgs().
17208
17209 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17210
17211         * object.c, object.h: added mono_runtime_run_main () and
17212         mono_runtime_get_main_args () for use in System.Environment.
17213
17214 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17215
17216         * gc.c: fix thinko, enable actual finalization since the jit is now
17217         fixed.
17218
17219 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17220
17221         * gc.c, object.c: take into account that an object may be offset wrt the address
17222         returned by GC_malloc().
17223
17224 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17225
17226         * image.c: handle files without entries in the assembly table (modules).
17227
17228 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
17229
17230         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
17231         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
17232         allowed to be null when it's System.Object class setup.
17233
17234 2002-04-27  Martin Baulig  <martin@gnome.org>
17235
17236         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
17237         if `tb->parent == NULL' rather than crashing.
17238
17239 2002-04-28  Nick Drochak  <ndrochak@gol.com>
17240
17241         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
17242         calling acos() where asin() should have been called.
17243
17244 2002-04-26  Martin Baulig  <martin@gnome.org>
17245
17246         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
17247         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
17248         there's a subdirectory called `System', but we don't want to read that
17249         subdirectory as an assembly.
17250
17251 2002-04-25  Martin Baulig  <martin@gnome.org>
17252
17253         * debug-symfile.c: Reflect latest MonoString changes.
17254
17255 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17256
17257         * rand.c, rand.h: instance method icalls need to have an explicit
17258         this pointer as first argument in the C implementation.
17259
17260 2002-04-25  Nick Drochak <ndrochak@gol.com>
17261
17262         * icall.c: Fix typo in map for GetNonZeroBytes
17263
17264 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17265
17266         * string-icalls.c : String does now passes unit tests without any 
17267         errors, the following changes has been made:
17268         
17269         Implemented replace methods.
17270         Renaming of methods to (try) follow the standard.
17271         Fixed compare ordinal
17272         Made all memory allocated directly to function instead of via icall function.
17273         Small performance fix in is_in_array function
17274                         
17275  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
17276
17277         c (mono_string_Internal_ctor_charp_int_int):
17278         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
17279         sindex < 0, throw ArgumentOutOfRangeException instead of
17280         ArgumentNullException.
17281
17282         Added new check for length == 0, however
17283         I need to make it return String.Empty from the C code.
17284         
17285         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
17286         that calculate the length for us here.
17287         
17288         (mono_string_Internal_ctor_sbytep_int_int): Replaced
17289         mono_string_new_utf16 with mono_string_new, since value is utf8.
17290
17291 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17292
17293         * object.c: register the object for finalization if needed.
17294         Allocate one more char in the string for the terminating 0 char.
17295
17296 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17297
17298         * class.c, class.h, image.c: check if a type implemenst a destructor.
17299         Use the proper key for array class lookups.
17300         * icall.c: register the icalls in the System.GC class.
17301         * gc.c, gc.h: GC-related functions and icalls.
17302
17303 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17304
17305         * icall.c:
17306         * socket-io.c:
17307         * unicode.c: free some strings gotten from mono_string_to_utf8 and
17308         changed a couple of free () by g_free ().
17309
17310         * decimal.c: one-liner in the comments for decimal2string ().
17311
17312 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17313
17314         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
17315
17316 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17317
17318         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
17319         * object.c (mono_runtime_invoke_array) : handle null in params
17320
17321 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17322
17323         * string-icalls.c: fixed bug in split (one off bug)
17324
17325 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17326
17327         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
17328         * icalls.c: added String::Equals as internal method
17329
17330 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17331
17332         * threads.c: fixed bug in the double interlocked functions
17333
17334 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
17335
17336         * threads.c: implemented all of the new interlocked icalls.
17337         * string-icalls.c: fix a bug in insert.
17338         * icalls.c: added the icalls for interlocked, removed old string functions.
17339         
17340 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17341
17342         * loader.c: fix off-by-one error when reading argument names.
17343
17344 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17345
17346         * profiler.c: win32 counter implementation (untested).
17347         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
17348         (the latter needs testing and more complete impl. from win32 folks).
17349
17350 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
17351
17352         * object.c: mono_array_new_full workaround mono_array_class_get
17353         problem.
17354
17355 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17356
17357         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
17358         * object.h (mono_string_chars): Changed casting type.
17359
17360 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17361
17362         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
17363                            method signatures to use gunichar2 instead of gint16.
17364
17365 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
17366
17367         * object.h, object.c: domain-specific versions of mono_object_new and
17368         mono_array_new.
17369
17370 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
17371
17372         * object.c: changed String layout
17373
17374         * string-icalls.c (mono_string_Internal_ctor_chara): added
17375         internal string constructors.
17376
17377 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
17378
17379         * threads.c: pass 'this' to the thread start routine.
17380
17381 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17382
17383         * string-icalls.c: fix IndexOf and LastIndexOf. Now
17384         InternalCompareStr don't call twice mono_string_cmp_char for the last
17385         character. Improved performance in mono_string_cmp_char.
17386
17387 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17388
17389         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
17390         code into its own library: libmonoruntime.
17391
17392 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
17393
17394         * object.h, object.c: changed array format so that szarrays do not
17395         require a bounds structure.
17396         * icall.c, appdomain.c: support for new szarray format.
17397
17398 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17399
17400         * metadata.c: compare also the retuns type when comparing signatures:
17401         we didn't do this as an optimization since really overloaded methods
17402         must differ also in the arguments, but this doesn't work with
17403         low-level IL code (or when using explicit conversion operators: see
17404         bug#23498 for an example).
17405
17406 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17407
17408         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
17409
17410 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17411
17412         * icall.c: make MonoType::GetElementType its own icall.
17413
17414 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17415
17416         * icall.c: remove MonoMethod_get_Name().
17417         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
17418         object.
17419
17420 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17421
17422         * string-icalls.c: optimized a few methods.
17423
17424 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17425
17426         * icall.c: added all new string internal calls
17427         * string-icalls.c: added, new string internal call implementation.
17428         * object.c: added mono_string_new_size for allocating a string a size
17429
17430 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
17431
17432         * object.c (mono_object_isinst): use the same code as in the
17433         optimized x86 version.
17434
17435 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17436
17437         * profiler.c: TSC-based timer code (faster and more accurate).
17438         Not hooked up in configure, yet (set USE_X86TSC to 1).
17439
17440 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
17441
17442         * profiler.c, profiler.h: track time spent compiling methods.
17443         * threads.c: track thread creation/destruction.
17444
17445 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
17446
17447         * profiler.c, profiler.h, profiler-private.h: profiling interface
17448         and sample implementation. Moved here so that it can be used also by
17449         the jit.
17450
17451 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
17452
17453         * reflection.c, reflection.h: keep types and other handles separate in
17454         the hash tables for referred tokens. Add guid for modules.
17455
17456 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17457
17458         * assembly.c: fix bugs found with valgrind.
17459         * metadata.h, metadata.c: added mono_metadata_guid_heap().
17460
17461 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
17462
17463         * threads: added icall support for getting current domain for
17464                    the thread.
17465  
17466 2002-04-13  Martin Baulig  <martin@gnome.org>
17467
17468         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
17469         (MonoDebugVarInfo): Added `index' field for register based addresses.
17470         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
17471         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
17472         `MonoDebugVarInfo *params' and `guint32 this_offset' with
17473         `MonoDebugVarInfo *this_var'.
17474
17475         * debug-symfile.c (relocate_variable): New static function to write
17476         a location description for a local variable or method parameter.
17477
17478 2002-04-12  Martin Baulig  <martin@gnome.org>
17479
17480         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
17481         stack offset and begin/end scope address of a local variable.
17482         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
17483         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
17484         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
17485
17486         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
17487         Added new relocation types for start/end scope of a local variable.
17488
17489 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17490
17491         * object.h: add mono_object_domain() macro.
17492         * reflection.c: handle typespecs.
17493         * icall.c: MonoMethod::get_Name() implementation.
17494
17495 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17496
17497         * icall.c: String::GetHashCode() icall implementation.
17498
17499 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17500
17501         * icall.c: String::IndexOfAny icall.
17502         * object.c, object.h: make array->max_length more useful.
17503         Intrduced mono_object_class() and mono_string_length() macros.
17504
17505 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17506
17507         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
17508         instead of g_unichar_isdigit.
17509
17510 2002-04-11  Nick Drochak  <ndrochak@gol.com>
17511
17512         * icall.c: Implement a simple Double.ToString().
17513
17514 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17515
17516         * appdomain.h: only io-layer.h is supposed to be included.
17517         * icall.c: explicitly import environ. Fix warning.
17518
17519 2002-04-10  Nick Drochak  <ndrochak@gol.com>
17520
17521         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
17522                 return true even if it's not Daylight Savings time.
17523                 Only return false for the case where the function isn't
17524                 implemented for a plaform (read Windows).
17525
17526 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17527
17528         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
17529         data with a mutex.
17530
17531 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17532
17533         * mempool.c (mono_mempool_alloc): only use g_malloc when
17534         absolutely necessary.
17535
17536 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17537
17538         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17539
17540         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17541         (mono_class_proxy_vtable): use domain mempool
17542
17543 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17544
17545         * appdomain.h, appdomain.c: split initialization that requires the
17546         execution engine support into mono_runtime_init().
17547
17548 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17549
17550         * class.c (mono_class_init): don't include vtable inside MonoClass
17551         to save some memory, gather some statistics.
17552         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17553
17554 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17555
17556         * icall.c: internalcall implementation for ValueType.Equals().
17557
17558 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17559
17560         * object.c (mono_message_init): moved 
17561         (mono_runtime_exec_main): new arch. independent impl.
17562         (mono_runtime_invoke_array): new method - like
17563         mono_runtime_invoke, but you can pass an array of objects.
17564         (mono_remoting_invoke): new arch. independent impl.
17565         (mono_message_invoke): new arch. independent impl.
17566         (mono_runtime_class_init): new arch. independent impl.
17567         (mono_runtime_object_init): new arch. independent impl.
17568
17569 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17570
17571         * metadata.c, object.c, reflection.c: documented the exported
17572         functions.
17573
17574 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17575
17576         * icall.c: simpler code to pass the assembly builder data to corlib.
17577         Implement GetNestedTypes() internalcall.
17578
17579 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17580
17581         * class.c: warn if a type can't be loaded.
17582
17583 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17584
17585         * image.h: typedef MonoImageOpenStatus
17586         * types.h: removed unused file
17587         
17588 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17589
17590         * icall.c: Enum_ToObject accepts enum value arguments.
17591
17592 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17593
17594         * class.c: move initialization of properties, events and nested
17595         classes, so that they happen for interfaces, too.
17596
17597 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17598
17599         * icall.c: cleanup some ugly casts in Array_SetValue*.
17600
17601 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17602
17603         * icall.c: the values array fro enums is of the correct type, now.
17604         Implement (correctly) getFullName instead of assQualifiedName for
17605         MonoType.
17606         * reflection.h, reflection.c: added mono_type_get_name ().
17607
17608 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17609
17610         * assembly.c, image.h: for each MonoImage, record from wich assembly
17611         it was loaded.
17612         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17613         Make Type.Assembly work.
17614
17615 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17616
17617         * debug-symfile.h: use char* instead of gpointer to avoid
17618         unnecessary casts.
17619
17620         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17621
17622         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17623         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17624
17625 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17626
17627         * icall.c (mono_message_init): impl. (code cleanup)
17628         (ves_icall_InternalExecute): impl. FieldGetter
17629
17630         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17631         defined we call all (non-static)methods through the vtable. 
17632
17633 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17634
17635         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17636         finalizer even though the memory is still referenced (and the chunk of
17637         memory is not freed).
17638
17639 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17640
17641         * assembly.c: fix brokeness.
17642
17643 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17644
17645         * class.c: kill some warnings. Check explicit interface method
17646         implementation also without considering the namespace.
17647         Load also literal strings in static class data.
17648
17649 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17650
17651         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17652         (default_assembly_name_resolver): Make the resolver take the
17653         "base" directory where the assembly was originally defined, so we
17654         can load DLLs that are in the same directory as the assembly that
17655         is being referenced.
17656
17657 2002-03-28  Dick Porter  <dick@ximian.com>
17658
17659         * file-io.h: 
17660         * file-io.c:
17661         * socket-io.c: 
17662         * unicode.h: 
17663         * unicode.c: Warning cleanups
17664
17665 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17666
17667         * object.h, reflection.h: use the correct type instead of MonoObject.
17668
17669 2002-03-28  Martin Baulig  <martin@gnome.org>
17670
17671         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17672         (mono_debug_update_symbol_file): Initialize classes if necessary.
17673
17674 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17675
17676         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17677         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17678
17679 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17680
17681         * assembly.h: fix function prototype.
17682         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17683         * mono-endian.h: use const cast.
17684
17685 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17686
17687         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17688
17689 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17690
17691         * loader.c: don't assert when a typeref can't be loaded, give
17692         a chance to the runtime to trow an exception instead.
17693         * loader.h: fix warning.
17694
17695 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17696
17697         * class.c (mono_class_proxy_vtable): added proxy support
17698
17699 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17700
17701         * icall.c: removed last of PAL calls, added System.Environment
17702         * file-io.h, file-io.c: MonoIO implementation
17703         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17704
17705 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17706
17707         * appdomain.c: do not use the byte marker in ldstr table lookup.
17708         * debug-helpers.c: allow two ':' to separate class and method name.
17709         * object.c: allocate arrays bounds with the GC, too.
17710         * verify: add a few more checks.
17711
17712 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
17713
17714         * reflection.c: output also literal strings. Allocate parameter data
17715         with GC_malloc() (thanks, Martin, for catching this!).
17716
17717 2002-03-26  Martin Baulig  <martin@gnome.org>
17718
17719         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
17720         include the `this' offset in the `param_offsets'.
17721
17722 2002-03-25  Martin Baulig  <martin@gnome.org>
17723
17724         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
17725         mono_debug_get_class() function to get the classes. Added new
17726         relocation types for arrays and strings.
17727         (mono_debug_get_class): New static function to search in all
17728         referenced assemblies for a metadata token.
17729
17730         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
17731
17732 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17733
17734         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
17735         hold gc-allocated objects. Make the string heap a stream like the
17736         others. Removed duplicated code when writing stream info.
17737         Added asserts to catch possible buffer overflows. Set the sorted map
17738         for tables that need sorting. Added some documentation.
17739
17740 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
17741
17742         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
17743         for interned strings and vtables.
17744
17745 2002-03-24  Martin Baulig  <martin@gnome.org>
17746
17747         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
17748         it in the array since it was created with g_slist_prepend().
17749
17750 2002-03-24  Martin Baulig  <martin@gnome.org>
17751
17752         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
17753         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
17754         (mono_debug_method_from_token): Renamed to
17755         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
17756         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
17757
17758         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
17759         relocation types.
17760
17761         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
17762
17763 2002-03-24  Martin Baulig  <martin@gnome.org>
17764
17765         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
17766         (mono_debug_method_from_token): New func.
17767
17768         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
17769         New interncall, calls mono_debug_local_type_from_signature().
17770         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
17771         calls mono_debug_method_from_token().
17772
17773 2002-03-23  Martin Baulig  <martin@gnome.org>
17774
17775         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
17776         specifies the number of bytes to be converted, not the array size.
17777         Return the number of chars, not the number of bytes.
17778         (ves_icall_iconv_get_chars): The `byteCount' argument
17779         specifies the number of bytes to be converted, not the array size.
17780
17781 2002-03-23  Martin Baulig  <martin@gnome.org>
17782
17783         * reflection.h (MonoReflectionSigHelper): New type.
17784
17785         * reflection.c (mono_reflection_sighelper_get_signature_local),
17786         (mono_reflection_sighelper_get_signature_local): New functions.
17787
17788         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
17789         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
17790         interncalls.
17791
17792 2002-03-23  Martin Baulig  <martin@gnome.org>
17793
17794         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
17795         is_writeable is set.
17796         (mono_raw_buffer_update): New function to write the modified map
17797         back to disk.
17798
17799         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
17800
17801         * debug-symfile.c (mono_debug_update_symbol_file): Call
17802         mono_raw_buffer_update() when done writing.
17803
17804 2002-03-23  Martin Baulig  <martin@gnome.org>
17805
17806         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
17807
17808         * debug-symfile.c: Added support for arguments and local variables.
17809
17810 2002-03-23  Dick Porter  <dick@ximian.com>
17811
17812         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
17813         protected by ifdefs, hence breaking the w32 build.
17814
17815 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17816
17817         * object.c: implement is_interned() the right way.
17818
17819 2002-03-21  Martin Baulig  <martin@gnome.org>
17820
17821         * debug-symfile.[ch]: New files to handle debugging information
17822         files. There's also support to dynamically update these symbol
17823         files to include machine dependent information.
17824
17825 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
17826
17827         * threads.c (mono_thread_create): new function to create thread
17828         from C
17829
17830 2002-03-20  Martin Baulig  <martin@gnome.org>
17831
17832         * icall.c (ves_icall_InternalInvoke): Create a new object if the
17833         method is a constructor.
17834         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
17835         points to ves_icall_InternalInvoke().
17836
17837 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
17838
17839         * file-io.c: Flush shouldn't throw exceptions.
17840
17841 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
17842
17843         * file-io.c: FileStream flush support; FileSetLength now
17844         restores file pointer.
17845
17846 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
17847
17848         * class.c: set image for pointer classes.
17849
17850 2002/03/19  Nick Drochak <ndrochak@gol.com>
17851
17852         * sysmath.c: Forgot one.
17853
17854 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
17855
17856         * sysmath.c: Avoid redefining existing names.
17857
17858 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
17859
17860         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
17861         handled by runtime as icall rather than dllimport from libm.so
17862         * file-io.c, file-io.h: fixed handle argument type.
17863
17864 2002-03-18  Dick Porter  <dick@ximian.com>
17865
17866         * reflection.c (mono_image_get_type_info): rename interface to
17867         iface, because of "#define interface struct" on windows.
17868
17869 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
17870
17871         * class.c, class.h: rename and export mono_ptr_class_get().
17872         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
17873         * reflection.c, reflection.h, icall.c: better/saner type name
17874         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
17875         method signatures.
17876
17877 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
17878
17879         * class.c (mono_class_init): removed hardcoded GHC_SLOT
17880
17881         * icall.c (ves_icall_InternalInvoke): impl.
17882
17883 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17884
17885         * reflection.c: output the interface map table, too.
17886
17887 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17888
17889         * class.c (class_compute_field_layout): separate computation of 
17890         static field layout
17891
17892 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
17893
17894         * icall.c: added System.Buffer support.
17895         * file-io.c: moved file icalls from PAL to FileStream.
17896
17897 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17898
17899         * icall.c (ves_icall_System_Object_GetHashCode): impl.
17900
17901 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
17902
17903         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
17904
17905 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17906
17907         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
17908
17909 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
17910
17911         * debug-helpers.{c,h}: moved here from monograph some useful functions
17912         to locate a method by name/signature in a class or image. Included
17913         also a small and flexible IL disassembler.
17914
17915 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17916
17917         * reflection.c: fixup tokens in methods with small header size, too.
17918
17919 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
17920
17921         * object.c (mono_string_to_utf8): remove assert(!error), instead
17922         print a warning. 
17923
17924 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
17925
17926         * icall.c: update to the new mono_Array_class_get interface.
17927
17928 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17929
17930         * appdomain.c, object.c: Boehm-GC enable.
17931         * icall.c: make get_data_chunk() support split data requests.
17932         Ensure a class is initialized in more cases. Return only the first
17933         property found in GetProperties() or the compiler gets confused. 
17934         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
17935         * reflection.h, reflection.c: add fixup mechanism for field and method
17936         tokens. Initialize assembly->typeref in a single place. Output
17937         properties after events. Support custom attributes for events, too.
17938         Typo fix for paramter custom attrs.
17939
17940 2002-03-07  Martin Baulig  <martin@gnome.org>
17941
17942         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
17943
17944 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
17945
17946         * class.c (mono_array_class_get): fix. for multi. dim. arrays
17947
17948 2002-03-06  Martin Baulig  <martin@gnome.org>
17949
17950         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
17951         non-zero lower bounds. See testcases #F10-#F13.
17952
17953 2002-03-05  Martin Baulig  <martin@gnome.org>
17954
17955         * exception.c (mono_get_exception_argument_out_of_range): New exception.
17956
17957         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
17958         ves_icall_System_Array_GetValue(), only calculate the absolute array position
17959         here.
17960         (ves_icall_System_Array_SetValue): Likewise.
17961         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
17962         as argument and does the actual work. This function is used when copying a
17963         multi-dimensional array.
17964         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
17965         now do all the widening conversions of value types.
17966         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
17967
17968 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17969
17970         * class.c: remove some magic numbers and use the smbolic names,
17971         instead. Added init_events() to load event info at class init time.
17972         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
17973         and mono_metadata_methods_from_event().
17974         * reflection.h, reflection.c: added support for writing out the evnets
17975         related information.
17976
17977 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17978
17979         * reflection.h, icall.c: use a different method (GetInterfaces)
17980         to gather interface info and add isbyref, isprimitive and
17981         ispointer to the ves_icall_get_type_info() return value.
17982
17983 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17984
17985         * class.h: stared adding support for events.
17986         * icall.c: split find_members implementation. Added debug icall to get
17987         the address of an object.
17988         * reflection.c: handle TypeBuilders in mono_type_get_object().
17989
17990 2002-03-01  Martin Baulig  <martin@gnome.org>
17991
17992         * icall.c (ves_icall_System_Array_GetLength): This must throw an
17993         ArgumentOutOfRangeException(), not an ArgumentException().
17994         (ves_icall_System_Array_GetLowerBound): Likewise.
17995         (ves_icall_System_Array_GetValue): Improved argument checking.
17996         (ves_icall_System_Array_SetValue): Improved argument checking.
17997
17998 2002-03-01  Martin Baulig  <martin@gnome.org>
17999
18000         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
18001         called with invalid arguments rather than just dying with g_assert().
18002         (ves_icall_System_Array_SetValue): Likewise.
18003         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
18004         raise a NotImplementedException instead.
18005         (ves_icall_System_Array_GetLength): Added argument checking.
18006         (ves_icall_System_Array_GetLowerBound): Added argument checking.
18007
18008 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
18009
18010         * object.h (mono_assert): new macros mono_assert and
18011         mono_assert_not_reached
18012
18013 2002-02-28  Martin Baulig  <martin@gnome.org>
18014
18015         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
18016         and "System::String::IsInterned" to "System::String::_IsInterned".
18017
18018 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
18019
18020         * icall.c: remove hacks for typebuilder. Added icall to create a
18021         modified type from a tybebuilder.
18022         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
18023         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
18024         to create a backing MonoClass for a TypeBuilder.
18025
18026 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18027
18028         * class.c, class.h: more refactoring of class init.
18029         Export mono_class_setup_mono_type() and mono_class_setup_parent().
18030
18031 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
18032
18033         * marshal.c, marshal.h: start of marshaling interface.
18034
18035 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18036
18037         * icall.c: fix order in assembly qualified name icall.
18038
18039 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18040
18041         * class.c: do not free str, since we store it in the hash table.
18042         * reflection.h: add label field to MonoILExceptionInfo.
18043         * reflection.c: handle references to more than one assembly. Handle
18044         case when there isn't a module created in the assembly.
18045
18046 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18047
18048         * class.c: Fix typo. Start refactoring of class init code.
18049
18050 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18051
18052         * appdomain.c: exit with 1 on error.
18053         * class.c: we already have the name in MonoClassField.
18054         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
18055         MonoStreamHeader instead of an offset of image->raw_metadata.
18056
18057 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
18058
18059         * appdomain.c (mono_init): Be even more descriptive about the error.
18060
18061 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
18062
18063         * appdomain.c: give the user an informative message when corlib can't
18064         be loaded.
18065
18066 2002-02-26  Martin Baulig  <martin@gnome.org>
18067
18068         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18069         New icall to get the time zone data.
18070
18071 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18072
18073         * reflection.c: set virtual and raw size of section correctly.
18074         * threads.c: transfer domain information to newly created threads.
18075
18076 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18077
18078         * class.c: when instancing a class in a domain, load the default
18079         vaules for static fields from the constant table. Fix System.Enum to
18080         not be an enum.
18081         * icall.c: implement Object::GetType() internalcall. Implemented
18082         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
18083         Fixed checking of binding flags in find_members().
18084         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
18085         * reflection.c: handle enumerations when writing to the constant
18086         table. Use a different object cache for types.
18087
18088
18089 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
18090
18091         * object.c (mono_object_isinst): fix for arrays
18092
18093         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
18094
18095 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18096
18097         * object.c: don't use mprotect ()  and fix intern pool hash table
18098         lookup for big endian systems.
18099
18100 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18101
18102         * icall.c: change type_is_subtype_of () signature.
18103
18104 2002-02-21  Mark Crichton  <crichton@gimp.org>
18105
18106         * rand.c, rand.h: Added random number generator for
18107         System.Security.Cryptography classes.
18108
18109         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
18110
18111         * icall.c: Added System.Security.Cryptography calls.
18112
18113 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18114
18115         * class.c, icall.c, metadata.c: better support for pointer types.
18116         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
18117         * reflection.c: Add support for getting custom attrs for properties
18118         and simplify some code.
18119
18120 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18121
18122         * icall.c: change getToken () and add custom attribute GetBlob()helper
18123         method.
18124         * reflection.h: add custom attrs array to the reflection builder structures.
18125         * reflection.c: encode and emit custom attributes for all the relevant
18126         reflection objects. Cache fieldref and methodref tokens. Change
18127         mono_image_create_token() interface to take a MonoDynamicAssembly.
18128         More complete custom attributes decoder. Load custom attributes for
18129         Assembly, Field, Method and Constructor objects, too. Make the
18130         returned array an Attribute[] one, not object[]. Added
18131         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
18132         custom attribute constructor.
18133
18134 2002-02-20  Dick Porter  <dick@ximian.com>
18135
18136         * icall.c:
18137         * rawbuffer.c:
18138         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
18139         problem code out for now).
18140
18141 2002-02-19  Radek Doulik  <rodo@ximian.com>
18142
18143         * object.c (mono_ldstr): use hash table to avoid multiple swapping
18144
18145 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
18146
18147         * icall.c: register the GetCustomAttributes method.
18148         * object.c, object.h: add mono_string_new_len ().
18149         * reflection.h, reflection.c: added mono_runtime_invoke(),
18150         mono_install_runtime_invoke(). Added
18151         mono_reflection_get_custom_attrs () to load custom attributes and
18152         create the attribute objects.
18153
18154 2002-02-19  Dick Porter  <dick@ximian.com>
18155         * threads-dummy-types.c:
18156         * threads-dummy-types.h:
18157         * threads-dummy.c:
18158         * threads-dummy.h:
18159         * threads-pthread-types.c:
18160         * threads-pthread-types.h:
18161         * threads-pthread.c:
18162         * threads-pthread.h:  Deleted obsolete files
18163
18164 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
18165
18166         * class.c (mono_class_vtable): runtime init the class when we
18167         allocate static class data.
18168
18169         * icall.c (ves_icall_System_Array_SetValue): check for null values.
18170
18171         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
18172         and String - but we will need generic marshalling support in the
18173         future. 
18174         (mono_init): set the domain name in a ms compatible way
18175
18176         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
18177         String[].
18178
18179 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
18180
18181         * object.c (mono_array_clone): use alloca() instead of g_malloc  
18182         for sizes
18183
18184         * appdomain.c (mono_domain_unload): impl.
18185
18186 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18187
18188         * appdomain.c, object.c: fix intern pool implementation.
18189         * class.c: fix alignment code.
18190
18191 2002-02-16  Radek Doulik  <rodo@ximian.com>
18192
18193         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
18194         and s2 > s1, just copy lower bytes to be compatible with little
18195         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
18196         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
18197
18198         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
18199         force big_endian to be 1 for big endian machines 
18200         (ves_icall_iconv_new_decoder): ditto
18201
18202 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
18203
18204         * socket-io.c (convert_sockopt_level_and_name): If the system
18205         doesn't define SOL_IP or SOL_TCP, get them by hand using
18206         getprotobyname() and caching the values (because this could be a
18207         slow operation).
18208         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
18209         Use the appropriate struct when the system does support it. Ie,
18210         not all systems have struct ip_mreqn so use struct ip_mreq when
18211         appropriate.
18212
18213 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
18214
18215         * reflection.c: handle finally clauses.
18216
18217 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
18218
18219         * socket-io.c: use g_snprintf() instead of snprintf.
18220
18221 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18222
18223         * reflection.c (mono_param_get_objects): Cast second argument to
18224         mono_method_get_param_names to a const char** to silence the
18225         compiler warning.
18226
18227         * appdomain.c (mono_domain_assembly_open): Put parens around the
18228         truth statement in the for-loop.
18229
18230         * unicode.c (iconv_convert): Got rid of a compiler warning about
18231         int i being unused when the system has a new iconv.
18232         (iconv_get_length): Same.
18233
18234         * image.c (load_class_names): Cast the second argument to
18235         g_hash_table_insert() to char* to hush compiler warnings about the
18236         arg being a const.
18237         (mono_image_open): Same here.
18238
18239         * socket-io.c: Don't conditionally include sys/filio.h or
18240         sys/sockio.h here anymore since we now get them from
18241         io-layer/io-layer.h
18242         (inet_pton): If the system doesn't support inet_aton, implement
18243         using inet_addr and also #define INADDR_NONE if it isn't defined
18244         by the system.
18245
18246 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18247
18248         * metadata.c, metadata.h: added function to get packing and size info
18249         of a typedef.
18250         * reflection.h, reflection.c: handle field RVA data. Save info about
18251         the table layout if needed. Assign typedef indexes to all the types
18252         before dumping the info about them to avoid forward reference problems.
18253
18254 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
18255
18256         * socket-io.c (convert_sockopt_level_and_name): ifdef
18257         SO_ACCEPTCONN because it is not defined on my system (old debian)
18258
18259 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18260
18261         * opcode.c: use stddef.h to get NULL.
18262
18263 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18264
18265         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
18266         for FIONBIO, FIONREAD and SIOCATMARK.
18267         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
18268         define INADDR_NONE and besides, inet_addr() is deprecated and
18269         should not be used. Use inet_pton() instead - it also has the
18270         added bonus that it can easily handle IPv6 addresses as well.
18271         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
18272
18273 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18274
18275         * decimal.c: remove _MSC_VER conditional.
18276
18277 2002-02-13  Dick Porter  <dick@ximian.com>
18278
18279         * socket-io.c: 
18280         * icall.c: Internal calls for Blocking, Select, Shutdown,
18281         GetSocketOption and SetSocketOption
18282
18283 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18284
18285         * assembly.cs: better resolver: use it instead of some kludgy
18286         code.
18287
18288 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
18289
18290         * reflection.c: the best way to speed-up the compiler is to avoid
18291         infinite loops.
18292
18293 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
18294
18295         * class.c (mono_class_vtable): changed the object layout
18296         (obj->vtable->class). 
18297         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
18298
18299 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18300
18301         * assembly.c: look for assemblies in the assembly dir, too.
18302
18303 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18304
18305         * class.c: fix thinko in mono_class_from_type().
18306
18307 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18308
18309         * exception.h, exception.c: added TypeLoadException.
18310         * object.h, object.c: added mono_array_clone ().
18311         * icall.c: handle throwOnError in AssemblyGetType().
18312         Added Array.Clone().
18313         * opcode.h, opcode.c: use a single value for the opcode val.
18314         Compile fix for non-gcc compilers.
18315
18316 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
18317
18318         * opcodes.c, opcodes.h: export interesting info about opcodes.
18319
18320 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
18321
18322         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
18323         icalls. 
18324
18325         * class.c (class_compute_field_layout): set element_class for enums
18326         (mono_class_create_from_typedef): set element_class for normal classes
18327
18328         * icall.c (ves_icall_System_Enum_get_value): impl.
18329
18330         * class.c (mono_class_create_from_typedef): do not set valuetype
18331         flag for System.ValueType and System.Enum
18332
18333 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
18334
18335         * unicode.c (iconv_convert): fix big endian problem.
18336
18337 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18338
18339         * class.c: add asserts if we are ever going to scribble over memory.
18340         * socket-io.c: not all systems have AF_IRDA defined.
18341
18342 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
18343
18344         * class.c (class_compute_field_layout): do not consider static
18345         fields to compute alignment
18346
18347 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
18348
18349         * appdomain.c (mono_appdomain_get): impl.
18350         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
18351
18352 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18353
18354         * icall.c: ignore "file://" prefix when loading an assembly.
18355
18356 2002-01-23  Dick Porter  <dick@ximian.com>
18357
18358         * socket-io.c:
18359         * icall.c:
18360         * Makefile.am: Added socket support
18361
18362 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18363
18364         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
18365         code back.  This should return the assemblies that are loaded by
18366         the runtime on behalf of an application domain. 
18367
18368         The current implementation is still broken, it just returns every
18369         assembly loaded, but until we get real applications domain this
18370         will do.
18371
18372 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
18373
18374         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
18375         AppDomain object.
18376
18377 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18378
18379         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
18380         the mono_class_from_name lookup.
18381         (ves_icall_get_parameter_info): ditto.
18382         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
18383         method.
18384         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
18385
18386 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18387
18388         * class.c: load also nested classes on class init.
18389         System.ValueType instance methods gets passed boxed
18390         values, unless methods in derived classed that get a pointer to the
18391         data.
18392         * icall.c: use better name parsing code in GetType().
18393         * image.c, image.h: add mono_image_loaded ().
18394         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
18395         * reflection.c, reflection.h: added mono_reflection_parse_type().
18396
18397 2002-01-22  Veronica De Santis <veron78@interfree.it>
18398
18399         * icall.c : Added mapping of internal calls for Manual and Auto reset events
18400         * threads.c : Added the implementation of internal calls for events
18401         * threads.h : Added prototypes of internal calls for events
18402         
18403 2002-01-21  Radek Doulik  <rodo@ximian.com>
18404
18405         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
18406
18407 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
18408
18409         * class.c (mono_class_init): set min_align to 1 (instead of 0)
18410         (mono_class_value_size): use min_align
18411
18412 2002-01-20  Dick Porter  <dick@ximian.com>
18413
18414         * threads.h:
18415         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
18416         so it compiles on w32.
18417
18418 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
18419
18420         * metadata.c (mono_type_stack_size): impl.
18421
18422         * class.c (mono_class_get_field): impl. memberref token
18423
18424 2002-01-16 Veronica De Santis <veron78@@interfree.it>
18425
18426         * icall.h : Added the internal calls mapping for CreateMutex_internal
18427                     and ReleaseMutex_internal.
18428         * threads.h : Added the prototype of mutexes internal calls.
18429         * threads.c : Added the implementations of mutexes internal calls.
18430
18431 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18432
18433         * metaparse.h: removed unused file.
18434         * reflection.c, reflection.h: added stream_data_align () function 
18435         to align data in streams and keep stream aligned. Add support for
18436         exception support in method headers.
18437
18438 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
18439
18440         * unicode.c: make iconv_convert () return the number of bytess written
18441         in the output buffer.
18442
18443 2002-01-15  Dick Porter  <dick@ximian.com>
18444         * threads.c: Make the runtime's idea of infinite timeouts coincide
18445         with the class library's
18446
18447         Fix a particularly egregious bug in mono_thread_cleanup(). That
18448         code was so utterly bogus it must have been written on a Monday.
18449
18450 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18451
18452         * reflection.h: add subtypes field to TypeBuilder.
18453         * reflection.c: encode constants for literal fields.
18454         Handle subtypes. Fix user string token (and add a zero byte)
18455         at the end.
18456         
18457 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
18458
18459         * class.c (mono_class_init): bug fix: assign slot numbers for
18460         abstract methods.
18461
18462 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18463
18464         * reflection.c: don't try to output a code RVA for abstract methods.
18465         Small fixes for method header format. Output parameter info to the
18466         ParamDef table. Save method overriding info to MethodImpl table.
18467         Fix property support. Allow typedef.extends to be a type in the
18468         building assembly.
18469         * verify.c: fix off-by-one error.
18470
18471 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
18472
18473         * class.c: fix mono_class_from_mono_type () for szarray types.
18474         Remove unused cache check in mono_class_from_type_spec().
18475         * icall.c: *type_from_name () functions handle simple arrays and byref.
18476         * reflection.c: handle byref and szarray types. Handle methods without
18477         body (gets P/Invoke compilation working). Handle types and fields in
18478         get_token ().
18479         * reflection.h: add rank to MonoTypeInfo.
18480
18481 2002-01-10  Dick Porter  <dick@ximian.com>
18482
18483         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
18484         internal calls
18485
18486 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18487
18488         * icall.c: initialize class in type_from_handle ().
18489         Loop also in parent classes for get_method ().
18490         * reflection.c: properly encode class and valuetype types.
18491         Start on encoding TypeBuilder types. Handle fieldrefs.
18492         Use correct length when registering a user string.
18493         Handle ConstructorBuilder and MonoMethod in get_token ().
18494         Make mono_type_get_object () aware of cached types.
18495         * object.c: back out change to mono_string_new ().
18496
18497 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
18498         * object.c: mono_string_new should return a NULL when the string 
18499         passed in is NULL -- not try to deference it.
18500         
18501 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18502
18503         * icall.c: hack to make IsSubType work for TypeBuilders.
18504         * reflection.c: emit constructors before methods.
18505         Retrieve param names in mono_param_get_objects().
18506
18507 2002/01/05  Nick Drochak  <ndrochak@gol.com>
18508
18509         * Makefile.am: fix list of headers and sources so automake 1.5
18510         doesn't complain. Removed \# at end of list.
18511
18512 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18513
18514         * reflection.c: get token for a method ref. Set return type of
18515         constructor to void.
18516         * loader.c: debug message.
18517         * class.c: typo fix.
18518
18519 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
18520
18521         * icall.c: fix array init with rank > 1. FindMembers
18522         loops in parent class as well.
18523         * image.c: do not insert nested types in name cache.
18524         * reflection.c: warning fix.
18525         * reflection.h: add override method (for interface impl).
18526
18527 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
18528
18529         * metadata.c: fix customattr decoding.
18530
18531 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18532
18533         * rawbuffer.cs: Added native Win32 implementation, avoids using
18534         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18535
18536 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18537
18538         * class.c: make the low-level routines handle the cache.
18539
18540 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18541
18542         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18543
18544 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18545
18546         * class.c: fix mono_array_element_size() for objects.
18547         * class.h, class.c: add properties to MonoClass and load them
18548         at init time.
18549         * icall.c: check with isinst() when assigning a value to an array
18550         instead of requiring the classes to match exactly.
18551         Implemented icall for System.Type::GetType().
18552         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18553         enums. Handle bindingflags when looking for methods and fields.
18554         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18555         and mono_metadata_methods_from_property().
18556         * reflection.h, reflection.c: added structures for propreties,
18557         parameters and enums. Implemented mono_property_get_object() and
18558         mono_param_get_objects().
18559
18560 2001-12-18  Dick Porter  <dick@ximian.com>
18561
18562         * file-io.c: Use mono_string_to_utf16() instead of
18563         mono_string_chars()
18564
18565         * object.c: Added mono_string_to_utf16(), which copies the non
18566         NULL-terminated MonoString into a new double-null-terminated
18567         buffer.
18568
18569 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18570
18571         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18572
18573 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18574
18575         * file-io.c: raise exceptions if handle is invalid.
18576
18577 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18578
18579         * assembly.c: yet another check for mscorlib.
18580         * class.c, class.h: load nesting info for classes.
18581         * icall.c: many new functions to support the Reflection classes.
18582         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18583         * reflection.h, reflection.c: mono_image_create_token(),
18584         mono_assembly_get_object(), mono_type_get_object(),
18585         mono_method_get_object(), mono_field_get_object(): methods to return
18586         objects that parallel the C representation of assemblies, types,
18587         methods, fields.
18588
18589 2001-12-11  Dick Porter  <dick@ximian.com>
18590
18591         * icall.c:
18592         * file-io.c: Internal calls for file IO.
18593
18594 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18595
18596         * tabledefs.h: missing FileAttributes.
18597         * verify.h, verify.c: use is_valid_string () to simplify and check for
18598         valid strings more correctly. Fix warnings and speeling.
18599         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18600         Check code: branches, maxstack, method calls.
18601
18602 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18603
18604         * object.c (mono_object_allocate): removed static, so that the jit
18605         can allocate value types.
18606
18607         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18608
18609 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18610
18611         * class.c: init enum types right away and register the
18612         token->MonoClass map in mono_class_create_from_typedef ().
18613         * verify.h, verify.c: first cut of the verifier.
18614         * pedump.c: add --verify switch to verify metadata tables.
18615         * tabledefs.h: add some missing enums.
18616
18617 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18618
18619         * class.c (mono_install_runtime_class_init): impl.
18620         (mono_class_init): renamed mono_class_metadata_init to
18621         mono_class_init, also removed the metadata_inited flag
18622
18623         * object.c (mono_object_isinst): use faster algorithm
18624
18625 2001-11-30  Radek Doulik  <rodo@ximian.com>
18626
18627         * mono-endian.h: reverted last change
18628         added function prototypes
18629
18630         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18631         add mono-endian.c back
18632
18633         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18634         for unaligned access, I've mistaked it with endianess. I am
18635         sorry.
18636         (mono_read16): fix reverted endianess
18637         (mono_read64): ditto
18638         (mono_read32): ditto
18639
18640 2001-11-30  Dick Porter  <dick@ximian.com>
18641
18642         * exception.c: Implement mono_exception_from_name()
18643
18644 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18645
18646         * metadata.h, metadata.c: remove params_size and locals_size and their
18647         calculation from the metadata code: they are only usefult to the
18648         interp.
18649
18650 2001-11-29  Radek Doulik  <rodo@ximian.com>
18651
18652         * object.c (mono_ldstr): swap bytes here, it's probably not the
18653         best place, but works for me now, I'll redo it once I know mono
18654         better, also note that I add PROT_WRITE and don't reset back, also
18655         note that it's only affects big endians, so x86 should be OK
18656
18657         * mono-endian.h (read16): use just glib macros for both endians
18658
18659         * mono-endian.c: removed as glib macros are used in in
18660         mono-endian.h so we don't need to care about endianess for read
18661         macros as glib does that for us already
18662
18663 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18664
18665         * class.h, class.h: take minimum alignment into consideration so
18666         that the fields of a class remain aligned also when in an array.
18667
18668 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18669
18670         * loader.h, loader.c: add mono_method_get_param_names().
18671         * class.c: 0-init class fields.
18672
18673 2001-11-26  Dick Porter  <dick@ximian.com>
18674
18675         * icall.c:
18676         * threads-types.h:
18677         * threads.c: New file that handles System.Threading on all platforms
18678
18679         * object.c: 
18680         * object.h: Remove the synchronisation struct from MonoObject,
18681         replace it with a pointer that gets initialised on demand
18682
18683         * Makefile.am: Replace all the system-specific threading code with
18684         a single file that uses the new wrapper library
18685
18686 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18687
18688         * class.c, class.h: add mono_install_trampoline() so that the runtime
18689         can register a function to create a trampoline: removes the ugly
18690         requirement that a runtime needed to export arch_create_jit_trampoline.
18691         * object.h, object.c: added mono_install_handler() so that the runtime
18692         can install an handler for exceptions generated in C code (with
18693         mono_raise_exception()). Added C struct for System.Delegate.
18694         * pedump.c: removed arch_create_jit_trampoline.
18695         * reflection.c: some cleanups to allow registering user strings and
18696         later getting a token for methodrefs and fieldrefs before the assembly
18697         is built.
18698         * row-indexes.h: updates and fixes from the new ECMA specs.
18699
18700 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18701
18702         * class.h, class.c: add enum_basetype field to MonoClass.
18703         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18704         to get index in the constant table reated to a field, param or
18705         property.
18706         * reflection.h, reflection.c: handle constructors. Set public-key and
18707         version number of the built assembly to 0.
18708         * row-indexes.h: update from new ECMA spec.
18709
18710 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18711
18712         * class.h, class.c: add a max_interface_id to MonoClass.
18713         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
18714         since it's used to do that. Added mono_type_type_from_obj().
18715         Make GetType() return NULL instead of segfaulting if the type was not
18716         found. Handle simple arrays in assQualifiedName.
18717         * object.h: add a struct to represent an Exception.
18718         * reflection.c: output call convention in method signature.
18719         Add code to support P/Invoke methods and fixed offsets for fields.
18720
18721 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
18722
18723         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
18724         the value.
18725         * icall.c: use mono_array_addr instead of array->vector: fixes the
18726         reflection image writing.
18727         * reflection.c: init call convention byte to 0 in method signature.
18728         Encode the property signature. Don't output property-related methods
18729         twice. Really process the properties for a type (don't cast a field to
18730         a property, my mom always told me that).
18731         Fix 64 bit issues in pointer alignment in a different and more
18732         readable way.
18733
18734 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
18735
18736         * loader.h: Removed type class from MonoDefaults, added monotype
18737
18738         * loader.c: Loaded MonoType, removed loading of Type
18739
18740         * icall.c (my_mono_new_object): Now returns a System.MonoType,
18741         and fills in System.Type._impl with a RuntimeTypeHandle rather
18742         than the actual MonoClass *
18743
18744         (ves_icall_type_from_handle): change from type_class to
18745         monotype_class
18746
18747         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
18748         implemented
18749
18750         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
18751         implemented
18752
18753         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
18754
18755         (ves_icall_System_Reflection_Assembly_GetType): implemented
18756
18757         (ves_icall_System_MonoType_assQualifiedName): implemented
18758
18759         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
18760
18761 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
18762
18763         * assembly.c (mono_assembly_open): Implement a cache for the
18764         assemblies. 
18765
18766         (mono_assembly_close): only destroy the assembly when the last
18767         reference is gone.
18768         
18769 2001-11-09  Dick Porter  <dick@ximian.com>
18770
18771         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
18772
18773 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
18774
18775         * class.c (mono_class_metadata_init): bug fix: compute the right slot
18776
18777 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18778
18779         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
18780         from Martin Weindel.
18781         * object.h: add mono_string_chars ().
18782
18783 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
18784
18785         * reflection.c (build_compressed_metadata): Eliminates warnings
18786         and uses 64-bit clean code.
18787
18788         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
18789         (mono_type_equal): Change signature to eliminate warnings.
18790
18791 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18792
18793         * icall.c, loader.c: remove the internalcall array constructors.
18794         Changes to match the new MonoArray structure.
18795         * object.h, object.c: an array object doesn't allocate an extra
18796         vector. Add mono_array_new_full () to create jagged arrays easily.
18797
18798 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18799
18800         * metadata.h, metadata.c: add mono_metadata_field_info () to
18801         retreive all the info about a field from vairous tables.
18802         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
18803         * class.h, class.c: augment MonoClassField with more info.
18804         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
18805         policy and load a field's RVA if needed.
18806
18807 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
18808
18809         * class.c (mono_class_metadata_init): create a trampoline for all
18810         virtual functions instead of actually compiling them.
18811
18812 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
18813
18814         * class.h, class.c: include name in MonoClassField.
18815         * class.c: fix fundamental type of System.Object and System.String.
18816         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
18817         tokens in ldtoken.
18818         * icall.c: remove internalcalls for the Reflection stuff that is now
18819         done in C# code.
18820         * loader.c: mono_field_from_memberref () implementation.
18821         * mono-endian.c: thinko (s/struct/union/g).
18822         * object.c, object.h: make the mono_string_* prototypes actually use
18823         MonoString instead of MonoObject.
18824         * reflection.c, reflection.h: updates for changes in the reflection
18825         code in corlib: we use C structures that map to the actual C# classes.
18826         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
18827         fat method header if needed and use the info from the ILGenerator for
18828         methods. Handle fields in types. Misc fixes.
18829
18830 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
18831
18832         * class.c (mono_class_metadata_init): bug fix: always allocate
18833         space for static class data
18834
18835 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
18836
18837         * class.c (mono_compute_relative_numbering): use relative
18838         numbering to support fast runtime type checks.
18839
18840 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
18841
18842         * class.c (mono_class_create_from_typeref): added debugging output
18843         to print class name when MonoDummy is returned instead of real class
18844
18845 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
18846
18847         * class.c (mono_class_metadata_init): interface offset table now
18848         contains pointers into the vtable - this is more efficient for the jit
18849
18850 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
18851
18852         * class.c (mono_class_metadata_init): use a temporary vtable (the
18853         old algorithm only worked for the interpreter, but not for the jit)
18854
18855 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
18856
18857         * loader.c (method_from_memberref): use mono_class_get to get the
18858         class of an array instead of using System.Array directly.
18859         (mono_get_method): also add MEMBERREF methods to the method cache
18860         which usefull for arrays.
18861
18862 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
18863
18864         * pedump.c (arch_compile_method): added to compute vtable entry
18865
18866         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
18867         number of interfaces.
18868         
18869         * class.h: merged MonoArrayClass into MonoClass
18870
18871         * class.c (mono_class_create_from_typedef): compute the vtable size and
18872         allocate space to include the vtable inside MonoClass
18873         (mono_class_metadata_init): initialize the vtable
18874
18875 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
18876
18877         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
18878         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
18879         * image.c: endian fixes by Laurent Rioux.
18880         * object.h, object.c: rename MonoStringObject to MonoString and
18881         MonoArrayObject to MonoArray. Change some function names to conform to
18882         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
18883         guint16* as first argument, so don't use char*.
18884         Provide macros to do the interesting things on arrays in a portable way.
18885         * threads-pthread.c: updates for the API changes and #include <sched.h>
18886         (required for sched_yield()).
18887         * icall.c: updates for the API changes above.
18888         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
18889         platforms that need them.
18890
18891 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18892
18893         * class.c: set the correct type for all the fundamental
18894         type when loading the class.
18895
18896 2001-10-05  Dick Porter  <dick@ximian.com>
18897
18898         * threads-pthread.c (pthread_mutex_timedlock): Simple
18899         compatibility version for C libraries that lack this call.
18900
18901 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18902
18903         * class.c: MonoTypes stored in MonoClass are stored as
18904         fundamental MonoTypes when the class represents a
18905         fundamental type (System.Int32, ...).
18906         The TypeHandle return by ldtoken is a MonoType*.
18907         * icall.c: ves_icall_get_data_chunk () write out all the
18908         PE/COFF stuff. Implement ves_icall_define_method (),
18909         ves_icall_set_method_body (), ves_icall_type_from_handle ().
18910         * image.c: properly skip unknown streams.
18911         * loader.h, loader.c: add type_class to mono_defaults.
18912         * metadata.c, metadata.h: export compute_size () as
18913         mono_metadata_compute_size () with a better interface.
18914         Typo and C&P fixes.
18915         * pedump.c: don't try to print the entry point RVA if there is no entry point.
18916         * reflection.c, reflection.h: many cleanups, fixes, output method
18917         signatures and headers, typedef and typeref info, compress the metadata
18918         tables, output all the heap streams, cli header etc.
18919         * row-indexes.h: typo fixes.
18920
18921 2001-10-04  Dick Porter  <dick@ximian.com>
18922
18923         * object.h: Add a synchronisation mutex struct to MonoObject
18924
18925         * object.c (mono_new_object): Initialise the object
18926         synchronisation mutexes
18927
18928         * icall.c: System.Threading.Monitor internal calls
18929         
18930         * threads-pthread.h:
18931         * threads-pthread.c: System.Threading.Monitor internal calls
18932
18933         * threads-types.h: New file, includes the system-specific thread
18934         structures
18935         
18936         * threads-pthread-types.h:
18937         * threads-pthread-types.c: New files, handle pthread-specific
18938         synchronisation types
18939
18940         * threads-dummy-types.h: 
18941         * threads-dummy-types.c: New files of dummy support for
18942         thread-specific types
18943
18944         * metadata.c:
18945         * image.c:
18946         * pedump.c: include mono-endian.h not endian.h
18947         
18948         * Makefile.am: More threads files.
18949         Name mono-endian.h not endian.h
18950
18951 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
18952
18953         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
18954         stuff and implement a few more bits.
18955         * icall.c: a field needs to be dereferenced twice. Do not use the same
18956         name for two variables in the same scope.
18957         * image.c, image.h: cleanups.
18958
18959 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
18960
18961         * class.c (mono_class_metadata_init): bug fix: compute the right size
18962
18963 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
18964
18965         * icall.c: implemented some of the Reflection internalcalls.
18966         * image.c, image.h: start writing out the PE/COFF image.
18967         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
18968         that does the reverse than decode_blob_size ().
18969         * object.c: use mono_metadata_encode_value (). Move here
18970         temporary implementation of mono_string_to_utf8 ().
18971         * rawbuffer.c: make malloc_map static.
18972
18973 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18974
18975         * metadata.c: fix type comparison for arrays.
18976         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
18977         Added a couple of new classes to monodefaults.
18978         * icall.c: added a couple of Reflection-related internalcalls.
18979         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
18980         Added a byval_arg MonoType to MonoClass.
18981
18982 2001-09-28  Dick Porter  <dick@ximian.com>
18983
18984         * icall.c:
18985         * threads-pthread.h: 
18986         * threads-pthread.c: Implemented internal calls for
18987         LocalDataStoreSlot operations.  Applied mutexes around all shared
18988         data.  Reworked the thread creation and Start() operations to
18989         avoid a race condition.
18990         
18991         * threads-dummy.h:
18992         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
18993
18994 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
18995
18996         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
18997
18998 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
18999
19000         * class.c, loader.c: warn and return NULL instead of erroring out.
19001         * icall.c: added System.AppDomain::getCurDomain().
19002         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
19003
19004 2001-09-25  Dick Porter  <dick@ximian.com>
19005
19006         * threads-pthread.h:
19007         * threads-pthread.c: Implemented timed thread joining and added
19008         System.Threading.Thread::Join_internal internal call
19009
19010         * icall.c: Added System.Threading.Thread::Join_internal internal call
19011
19012         * threads-dummy.h:
19013         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
19014
19015 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
19016
19017         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
19018         mono_string_intern () to implement the semantics of the ldstr opcode
19019         and the interning of System.Strings.
19020         * icall.c: provide hooks to make String::IsIntern and String::Intern
19021         internalcalls.
19022
19023 2001-09-23  Dick Porter  <dick@ximian.com>
19024
19025         * threads-dummy.c: 
19026         * threads-dummy.h: New files of dummy threading routines
19027
19028         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
19029         support code based on system specifics
19030
19031         Rename PTHREAD_LIBS to THREAD_LIBS
19032         
19033 2001-09-23  Dick Porter  <dick@ximian.com>
19034
19035         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
19036         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
19037         internal calls.
19038         (mono_thread_init): Set up a Thread object instance to return when
19039         the main thread calls Thread.CurrentThread
19040         (mono_thread_cleanup): Wait for all subthreads to exit
19041
19042         * icall.c: New internal calls for System.Threading.Thread::Sleep
19043         (including Schedule) and CurrentThread
19044
19045         * threads.h: New file, to insulate thread-specific stuff from the
19046         rest of the code
19047
19048 2001-09-21  Dick Porter  <dick@ximian.com>
19049
19050         * threads-pthread.h: 
19051         * threads-pthread.c: New file, for handling pthreads-style
19052         threading support.  Start() now starts a new thread and executes
19053         the ThreadStart delegate instance.
19054
19055         * icall.c: Added the internalcall for
19056         System.Threading.Thread::Start_internal
19057
19058         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
19059
19060 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
19061
19062         * loader.c: work around the different signatures for delegates
19063         constructors csc generates in compiled code vs the ones compiled in mscorlib.
19064
19065 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19066
19067         * class.h, class.c: add mono_class_get_field_from_name ().
19068         * *: Fix C comments and other ANSI C issues.
19069
19070 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
19071
19072         * endian.h, assembly.c: fix some endianness issues.
19073
19074 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
19075
19076         * loader.h, load.c: add delegate_class to mono_defaults.
19077         Handle runtime provided methods in mono_get_method ().
19078
19079 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
19080
19081         * loader.c (mono_get_method): use pinvoke for internal call
19082
19083         * icall.c: use pinvoke for internal call
19084
19085         * loader.c (method_from_memberref): set the method name
19086
19087 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
19088
19089         * metadata.c: help the compiler generate better code for
19090         mono_class_from_mono_type ().
19091
19092 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
19093
19094         * class.c (mono_class_metadata_init): delayed computing of the
19095         class size to mono_class_metadata_init ()
19096
19097 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
19098
19099         * class.c, class.h: add an interfaces member to MonoClass.
19100         * image.c, image.h: add assembly_name field to MonoImage
19101         from the assembly table.
19102         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
19103
19104 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19105
19106         * class.c: Handle Array in mono_class_from_mono_type ().
19107         * metadata.c, pedump.c: some endian fixes.
19108
19109 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19110
19111         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
19112         * metadata.c: fix small problem introduced with the latest commit.
19113
19114 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
19115
19116         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
19117         We don't need a MonoMetadata pointer anymore to compare signatures in
19118         mono_metadata_signature_equal (), update callers.
19119         Reduced memory usage an number of allocations for MonoMethodHeader and
19120         MonoMethodSignature.
19121
19122 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
19123
19124         * metadata.c: added compare for szarray.
19125
19126 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
19127
19128         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
19129         and add a couple more types to it and mono_defaults. Give an hint on
19130         classes that need implementing in our corlib and are referenced
19131         in mscorlib.
19132
19133 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
19134
19135         * class.h, class.c: keep track if a class is also an Enum.
19136         * loader.c: Implement a couple more types for use in libffi
19137         marshalling. Gives better diagnostics when failing to dlopen
19138         a library. Set method->klass for P/Invoke methods, too.
19139
19140 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
19141
19142         * class.c, class.h: add a MonoType this_arg to MonoClass that
19143         represents a pointer to an object of the class' type that
19144         can be used by the interpreter and later the type cache.
19145         Add best guess alignment info for valuetype objects.
19146
19147 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
19148
19149         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
19150         into MonoType: one less level of indirection and allocation and
19151         simplifies quite a bit of code. Added cache for MonoTypes that are
19152         used frequently, so that we don't need to allocate them all the time.
19153
19154 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
19155
19156         * class.c (mono_class_create_from_typedef): System.Enum is also a
19157         value type, although it does not derive from System.ValueType
19158         (maybe a bug in the ms compiler?)
19159
19160         * metadata.c (mono_type_size): return the right size for value types
19161
19162         * loader.c (mono_get_method): only initialize method header if not abstract
19163
19164         * class.c (mono_class_from_mono_type): use mono_default values. 
19165
19166 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
19167
19168         * *: use MonoClass pointers instead of <type_tokens>
19169         
19170         * class.h: new flag: metadata_inited.
19171
19172         * class.c (mono_class_metadata_init): impl.
19173         (mono_class_instance_size): impl.
19174         (mono_class_data_size): impl.
19175
19176 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19177
19178         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
19179         MonoClass now has the name and name_space fields. 
19180         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
19181         mono_get_method () takes and optional MonoClass as argument.
19182         Removed mono_typedef_from_name() and added mono_class_token_from_name()
19183         instead that takes advantage of a map from class names to typedef
19184         tokens in MonoImage.
19185
19186 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
19187
19188         * metadata.c: zero is not a valid alignment boundary.
19189         Merge MONO_TYPE_VOID in default decoding code.
19190
19191 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
19192
19193         * image.h: merged MonoMetadata into MonoImage
19194
19195         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
19196         identify the type of elements.
19197
19198 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
19199
19200         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
19201         * cil-coff.h: split MonoMSDOSHeader and add size info.
19202         * image.c: add some consistency checks.
19203         * metadata.c: fix row size computation: one programmer
19204         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
19205         add explanation for the locator routine.
19206         Fix decoding of size in method header.
19207         
19208 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
19209
19210         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
19211         (g_concat_dir_and_file): Bring g_concat_dir_and_file
19212         function from gnome-libs.  This uses the right path separator
19213         based on the OS, and also works around a bug in some systems where
19214         a double slash is not allowed. 
19215         (default_assembly_name_resolver): Use g_concat_dir_and_file
19216         (mono_assembly_open): ditto.
19217
19218 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
19219
19220         * metadata.c (mono_metadata_signature_equal): impl.
19221
19222         * *: void is now a realy MonoType (instead of using NULL)
19223         
19224         * metadata.c (do_mono_metadata_parse_type): use
19225         mono_metadata_parse_type to parse void value.
19226
19227 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
19228
19229         * metadata.c, metadata.h: in the signature and method header store
19230         only the space required for holding the loca vars and incoming arguments.
19231
19232 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
19233
19234         * metadata.c (do_mono_metadata_parse_type): treat void like any
19235         other type (instead of assigning NULL);
19236
19237 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
19238
19239         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
19240
19241 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
19242
19243         * image.c (do_mono_image_open): added a cache for arrays.
19244
19245 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19246
19247         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
19248         decode a single column from a row in a metadata table and changes
19249         to take advantage of it in the typedef locator (gives a nice speed up).
19250         Store offset info for function params.
19251
19252 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
19253
19254         * image.h (MONO_IMAGE_IS_CORLIB): removed 
19255
19256 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
19257
19258         * assembly.c: how could mono_assembly_close () had ever worked?
19259         * metadata.c, metadata.h: provide offset info for local vars.
19260         Implement mono_type_size () to take care of alignment as well
19261         as size (it was mono_field_type_size in cli/class.c before).
19262
19263 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
19264
19265         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
19266
19267         * assembly.h (CORLIB_NAME): set to corlib.dll
19268
19269         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
19270
19271 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19272
19273         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
19274         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
19275         tokentype.h: massive namespace cleanup.
19276
19277 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19278
19279         * metadata.h, metadata.c: decode exception clauses when parsing method header.
19280
19281 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
19282
19283         * metadata.c (mono_metadata_free_type): added check for type !=
19284         NULL (void) before calling mono_metadata_free_type()
19285
19286 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
19287
19288         * metadata.h, row_indexes.h: added header with enumerations to use
19289         to index in the columns from tables in metadata and to decode coded
19290         tokens: we should start using this instead of embedding magic numbers
19291         all over the code.
19292
19293 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
19294
19295         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
19296         Move metadata_t info from cli_image_info_t to MonoImage, where
19297         it's easily accessible. Changed all the uses accordingly.
19298         Added the method and class caches to MonoImage.
19299         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
19300         and mono_metadata_decode_value () signature to be more consistent
19301         with the other parse functions (and simplify code). Taken advantage
19302         of zero-length array allocation with GCC. Removed reduntant (and
19303         wrong) MonoFieldType struct and use MonoParam instead. Changed
19304         mono_metadata_parse_field_type () to use common code for parsing.
19305         Added mono_metadata_typedef_from_field () and
19306         mono_metadata_typedef_from_method () to lookup a typedef index from a
19307         field or method token.
19308         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
19309
19310 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
19311
19312         * metadata.c (mono_metadata_parse_field_type): Implement. 
19313         (do_mono_metadata_parse_type): Split engine from
19314         mono_metadata_parse_type, so that we can create smaller structures
19315         for things that just have one pointer to the MonoType (look at
19316         the MonoFieldType)
19317
19318 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
19319
19320         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
19321         as Jan Gray found out, it is incorrect. 
19322
19323 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
19324
19325         * assembly.c: Implement asssembly loading.  This loads an image
19326         and loads all the referenced assemblies.  Come to think of it, we
19327         could always do lazy loading of the assemblies. 
19328
19329         * image.c (mono_image_open): Keep loaded images in a hashtable.
19330
19331         * image.h (MonoImage): Add reference count.
19332
19333 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
19334
19335         * assembly.c (mono_assembly_open): Keep track of the file name in
19336         case the assembly has no ASSEMBLY table.
19337
19338         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
19339         from get.c here.
19340
19341 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
19342
19343         * metadata.c, metadata.h: decode local vars in method header
19344         parse function. Change callers accordingly.
19345
19346 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
19347
19348         * metadata.h, cil-coff.h: protect against multiple inclusion.
19349         Added some new structures to hold information decoded from metadata:
19350         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
19351         and relevant decoding/free functions.
19352         * metadata.c: implement decoding functions. Add warning for out of bounds
19353         index in mono_metadata_locate(). Implement mono_get_method () to retreive
19354         all the info about a method signature and invocation. Remove check on
19355         uninitialized local var in parse_mh() and fix memory leak.
19356
19357 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
19358
19359         * metadata.h: More macros.
19360
19361         * tokentype.h: New file.
19362
19363 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
19364
19365         * assembly.c: added a consistency check and initialize
19366         some structures with g_new0().
19367         * metadata.c: fixed a couple more bugs in table size computation
19368         and add other checks for out-of bound access to metadata.
19369
19370 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
19371
19372         * metatada.c: fix bugs computing table sizes. Spew a
19373         warning when index in string heap is out of bounds.
19374
19375 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
19376
19377         * metadata.h: Add a couple of macros to manipulate tokens. 
19378
19379 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19380
19381         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
19382         cli_section_tables).
19383
19384 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
19385
19386         * metadata.c (mono_metadata_user_string): New function, provides
19387         access to the UserString heap. 
19388
19389 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
19390
19391         * metadata.c: Add inline documentation.
19392
19393 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
19394
19395         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
19396         files. 
19397
19398 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
19399
19400         * typeattr.h: New file, TypeAttribute flags. 
19401
19402 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
19403
19404         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
19405         mono_assembly_ensure_section): Section loading code.
19406         (load_section_tables): Load the sections.
19407
19408         * mono/metadata/metadata.c (mono_metadata_locate_token,
19409         mono_metadata_locate): Functions to locate the information
19410         definition given a token or a table and an index.
19411         (mono_metadata_compute_table_bases): New.
19412         (compute_size): New function to compute the sizes of the various
19413         tables.
19414
19415         * mono/metadata/metadata.h: Finish listing the different index
19416         types. 
19417
19418         * mono/metadata/pedump.c: Improve to dump new information.
19419
19420 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
19421
19422         * mono/metadata/metadata.c: Entered all the tables matching
19423         Beta2. 
19424
19425         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
19426
19427
19428