Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
3
4         * mono-debug.c, mono-debug.h: export find_method as
5         mono_debug_find_method ().
6
7 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8
9         * debug-helpers.c, class-internals.h: added a few functions useful
10         when debugging under gdb.
11
12 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13
14         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
15         characters that need special handling.
16
17 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
18
19         * mono-config.c: make the os/cpu specification more flexible,
20         allowing lists and negation.
21
22 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
23
24         * marshal.c: COM Interop fixes. Handle case where method->klass.
25         is interface. Handle BSTR/MonoString when null. Use CDECL as 
26         calling convention on non-windows platforms. This is for
27         compatibility with XPCOM and MainWin COM.
28         
29         Code is contributed under MIT/X11 license.
30         
31
32 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
33
34         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
35         correctly. Fixes #79217.
36
37         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
38
39 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
40
41         * mono-config.c: allow both an os and cpu attribute for dllmap
42         and dllentry elemnets to enable a single config file to be used
43         for multiple architectures.
44
45 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
46
47         * loader.c: MonoLoaderError was cleared too soon on load failure.
48         Fixes bug #79424.
49
50 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
51
52         * icall.c: use the defining class vtable when accessing a
53         static field, not a pobblibly derived class.
54
55 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
56
57         * icall.c string-icalls.c: Remove references to unicode.h.
58
59         * unicode.h unicode.c Makefile.am: Remove these unused source files.
60
61         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
62
63         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
64         indicating the image where custom marshaller types should be looked up.
65         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
66         custom marshallers, instead of corlib. Fixes #79425.
67
68 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
69
70         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
71
72 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
73
74         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
75         Implement Environment.ProcessorCount.
76         
77         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
78         Implement Environment.ProcessorCount.
79         
80         * icall.c: 
81         Add Environment.ProcessorCount icall.
82         
83         Patch by Jason McFall.
84
85 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
86
87         * assembly.c: don't append .exe/.dll when the filename already contains
88         one of those extensions.
89
90 2006-09-12  Martin Baulig  <martin@ximian.com>
91
92         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
93         to array interfaces.
94
95 2006-09-11  Martin Baulig  <martin@ximian.com>
96
97         * reflection.c (mono_image_build_metadata): Create the
98         MethodImpl's after emitting all types and methods, so we don't
99         need another fixup pass for them.
100
101 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
102
103         * class.c (mono_class_from_name_case): Fix regression introduced by the last
104         change.
105
106 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
107
108         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
109         unload.
110
111 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
112
113         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
114         args is not set. Fixes #78926.
115
116 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
117
118         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
119
120         * image.c (load_class_names): Move this to class.c, and rename it to 
121         'mono_image_init_name_cache'.
122         (load_modules): Fix a warning.
123
124         * class.c icall.c image.c: Initialize image->name_cache lazily.
125
126         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
127         on its name using information in the AOT file.
128
129         * class.c (mono_class_from_name): Use the new hook function.
130
131 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
132
133         * reflection.c (mono_param_get_objects): Handle enum default parameter values
134         correctly.
135
136         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
137         Fixes #79289.
138         
139 2006-09-06  Martin Baulig  <martin@ximian.com>
140
141         * icall.c (mono_lookup_internal_call): Small fix.
142
143 2006-09-05  Raja R Harinath  <rharinath@novell.com>
144
145         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
146         double g_free.
147
148 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
149
150         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
151         when --debug is specified.
152
153 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
154
155         * class.c (setup_generic_array_ifaces): Fix a warning.
156
157 2006-09-04  Miguel de Icaza  <miguel@novell.com>
158
159         * Temporarily remove the patch to assemly.c that checks the
160         assembly versions as it breaks our gacutil.
161
162 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
163
164         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
165
166         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
167         a net 1.0 runtime.
168
169         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
170         created using the default ctor. Fixes #79152.
171         (mono_string_builder_to_utf16): Ditto.
172
173 2006-09-01  Martin Baulig  <martin@ximian.com>
174
175         Fix handling of the generic array interfaces.
176
177         * class-internals.h
178         (MonoDefaults): Removed `generic_array_class' and added
179         `generic_ilist' class.
180
181         * class.c
182         (mono_bounded_array_class_get): Add the new generic array interfaces.
183         (setup_generic_array_ifaces): New static method; create vtable
184         entries for each method in the generic array interfaces.
185
186         * metadata.c
187         (select_container): Allow "parent-less" generic methods.
188
189         * marshal.c
190         (mono_marshal_get_generic_array_helper): New public method.
191
192         * icall.c
193         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
194         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
195         moved the interncall into System.Array.
196
197 2006-09-01  Raja R Harinath  <rharinath@novell.com>
198
199         A few more cases of avoiding work on types with ->byref set.
200         Has the real fix for #79238
201         * icall.c (is_generic_parameter): New helper.
202         (ves_icall_Type_GetGenericParameterPosition): Use it.
203         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
204         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
205         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
206         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
207         reference types.
208         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
209         reference types.
210         (ves_icall_Type_get_IsGenericInstance): Likewise.
211         (ves_icall_Type_get_IsGenericType): Likewise.
212
213 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
214
215         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
216         class if possible.
217
218         * mempool.h (mono_mempool_get_allocated): New helper function.
219
220         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
221         change.
222
223         * mempool.c: Fix warnings and the calculation of stats.
224
225         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
226
227         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
228
229         * loader.c (mono_get_method_from_token): Update method_count stat.
230
231         * class-internals.h (MonoStats): Add some stats.
232
233 2006-08-31 Robert Jordan  <robertj@gmx.net>
234
235         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
236         with managed variants.
237         All code is contributed under the MIT/X11 license.
238         
239 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
240
241         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
242         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
243
244         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
245
246         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
247         with cycles in classes.
248
249         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
250
251         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
252         missing a [MarshalAs] directive. Fixes #79203.
253
254         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
255         klass->marshal_info. Fixes #79217.
256
257 2006-08-30  Martin Baulig  <martin@ximian.com>
258
259         Committing a patch from Joachim Ante <joe@otee.dk>:
260         Add support for binary data symbol stores.
261
262         * debug-mono-symfile.c
263         (mono_debug_open_mono_symbol_file): Renamed into
264         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
265         arguments.
266
267         * mono-debug.c
268         (mono_debug_open_image): Added `raw_contents' and `size' args.
269         (mono_debug_init_2_memory): New public function.
270
271 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
272
273         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
274
275 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
276
277         * appdomain.c: implement support for ShadowCopyFiles.
278
279 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
280
281         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
282         when value is NULL (and should remove CID #51).
283
284 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
285
286         * image.c: moved 2 functions to ../utils.
287
288 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
289
290         * gc.c: cope with the target object of a GC handle being NULL
291         (bug #78877).
292
293 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
294
295         * class.c: recursively check parent's explicit implementations
296         of interface methods (fixes bug #79125).
297
298 2006-08-19  Miguel de Icaza  <miguel@novell.com>
299
300         * filewatcher.c: Avoid warnings when building, do not redefine
301         constants that are defined.
302
303         Remove warnings.
304
305 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
306
307         * image.c: don't fail when the link points to an absolute path.
308
309 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
310
311         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
312         Fix CID #3.
313
314 2006-08-17  Miguel de Icaza  <miguel@novell.com>
315
316         * image.c (full_path): A new method used to obtain the actual path
317         of an assembly even in the presence of symbolic links.  
318
319         This is necessary for the case where we are running a binary that
320         has been GACed, but we are using the "published" path name
321         ($prefix/mono/1.0/blah.exe) which happens to point to the real
322         file in the GAC.
323
324         This was the source of the failure for the `xsp' command with the
325         recent AppDomain changes, as far as the runtime was concerned,
326         there were two different assemblies: $prefix/mono/1.0/blah.exe and
327         $prefix/mono/gac/blah/version/blah.exe.
328
329         (do_mono_image_open): use full path
330
331 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
332
333         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
334
335 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
336
337         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
338         domain_id is supplied. Fix CID #241 and corlib's unit tests.
339
340 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
341
342         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
343         small structures. Fixes #78990.
344
345 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
346
347         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
348
349         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
350
351 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
352
353         * appdomain.c:
354         * marshal.c: don't load all the assemblies from a domain into newly
355         created ones. The new domains might have different rules and load
356         assemblies from different locations. Fixes bug #76757.
357
358         Patch by Lluis. Conflicts resolved by Brian Crowell.
359
360 2006-08-16  Alp Toker  <alp@atoker.com>
361
362         * socket-io.c: First half of the fix for #79084.
363         Set sa_size to the length of the content, not that of the struct.
364         Don't add NULL suffix to the content, this should be done in
365         managed code if needed.
366
367 2006-08-14  Raja R Harinath  <rharinath@novell.com>
368
369         Fix part of #79012
370         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
371         mono_metadata_parse_type returns NULL.
372
373 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
374
375         * normalization-tables.h : new file for string normalization data.
376         * locales.c, locales.h, icall.c :
377           added load_normalization_resource() for string normalization,
378           and icall as well.
379         * Makefile.am : added normalization-tables.h to the sources.
380
381 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
382
383         * marshal.c: Add more helper functions to reduce code duplication and use them
384         everywhere.
385
386 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
387
388         * marshal.c: Fix non-x86 stdcall warnings.
389         
390         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
391         them everywhere.
392
393 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
394
395         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
396         type check on multi-dimensional arrays. Fixes #79000.
397
398 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
399
400         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
401         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
402         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
403         * class-internals.h: add is_com_object to class structure.
404         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
405         null checks to COM object marshalling. Fix .ctor call on RCW.
406         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
407         
408         All code is contributed under the MIT/X11 license.
409
410 2006-08-09  Dick Porter  <dick@ximian.com>
411
412         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
413         racing mono_monitor_allocator_lock() somewhere, so don't delete
414         the critical section for now.  Found by running and exiting
415         monodevelop.
416
417 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
418
419         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
420         (ves_icall_System_ComObject_FindInterface): Ditto.
421         (ves_icall_System_ComObject_CacheInterface): Ditto.
422
423         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
424         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
425
426 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
427
428         * threadpool.c: treat pipes from process asynchronous reads as sockets
429         when reading from them, so we get select/poll or epoll to wait for
430         data.
431
432 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
433
434         * loader.c: Fix a typo (CID #233) in the null check.
435
436 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
437
438         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
439         Hopefully fixes #78949.
440         
441         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
442         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
443         bytes. Fixes #78972.
444
445 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
446
447         * filewatcher.c: we need to set errno here.
448
449 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
450
451         * filewatcher.c: let Win32Exception get the error value.
452
453 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
454
455         * filewatcher.c: translate errno into win32 errors for Win32Exception
456         to know what happened.
457
458 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
459
460         * threadpool.c: Fix more warnings.
461
462         * assembly.c (search_loaded): Fix warnings.
463
464         * threadpool.c (mono_thread_pool_finish): Fix warnings.
465         (mono_async_invoke): Ditto.
466
467 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
468
469         * object.c (mono_remote_class_vtable): Need to create proxy vtable
470         entries for __ComObject type in addition to ComImport types.
471         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
472         about hash table.
473         
474         All code is contributed under the MIT/X11 license.
475
476 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
477
478         * image.c: avoid tentative loading of modulerefs that contain
479         no metadata (P/Invoke library names).
480
481 2006-07-28  Dick Porter  <dick@ximian.com>
482
483         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
484         mono_loader_lock() somewhere, so don't delete the critical section
485         for now.  Found by running and exiting monodevelop.
486
487 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
488
489         * filewatcher.c: define the inotify syscalls when we're building on
490         linux and have sys/syscall.h. The build system might not have support
491         for inotify but the target system might have it.
492
493 2006-07-26  Miguel de Icaza  <miguel@novell.com>
494
495         * domain.c: Documentation updates.
496
497         * loader.c (mono_free_method): Do not release the method
498         information if we are being profiled, as profilers will use this
499         information at shut down to present some data to the user.
500
501         This is needed so that the profiler does not crash, as the
502         profiler tends to keep MonoMethods around, and they might become
503         invalid if we free these.
504
505         (mono_get_method_constrained): Return the original CIL stream
506         method as well, so verification can be performed against it.
507
508 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
509
510         * filewatcher.[ch]: support for inotify file system watcher.
511         * icall.c: add new internal calls for the inotify file system watcher.
512
513 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
514
515         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
516         #78888.
517
518 2006-07-20  Dick Porter  <dick@ximian.com>
519
520         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
521         warning.
522
523 2006-07-20  Dick Porter  <dick@ximian.com>
524
525         * threads.c (start_wrapper): Do the thread cleanup while we still
526         hold a reference to its object.  Fixes bug 78123.
527
528 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
529
530         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
531         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
532           "managed-to-managed".
533         * icall.c: Redirect string constructors that take sbyte* to
534           ves_icall_System_String_ctor_RedirectToCreateString.
535         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
536           to CreateString () methods with matching signature.
537         * reflection.c: Use original security informations for
538           MONO_WRAPPER_MANAGED_TO_MANAGED.
539         * security-manager.c: Use original security informations for
540           MONO_WRAPPER_MANAGED_TO_MANAGED.
541         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
542           that is a placeholder and only its address should be used.
543         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
544           that is a placeholder and only its address should be used.
545
546 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
547
548         Begin implementing COM Interop.
549         * appdomain.c: Increment corlib version.
550         * class.c: Set ComImport classes' parent to __ComObject.
551         * loader.c: Mark cominterop methods as such.
552         * domain.c: Add __ComObject class to MonoDefaults structure.
553         * image.c: Add 2 hashtables to the image for COM Interop related methods
554         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
555         using the mempool allocator
556         
557         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
558         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
559         declaration for mono_metadata_type_dup_mp.
560         
561         * debug-helpers.c: Added strings for two additional wrapper types
562         * object.c: Create proxy objects for ComImport classes
563         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
564         and added __ComObject class to MonoDefaults structure.
565         
566         * object-internals.h: Finish MonoRealProxy definition, and add definition of
567         MonoComInteropProxy and MonoComObject.
568         
569         * marshal.c: Added support for COM Interop
570         (signature_cominterop): Converts managed signature to corresponding
571         unmanaged COM signature.
572         (cominterop_get_function_pointer): gets unmanaged function pointer via
573         COM object vtable
574         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
575         (cominterop_get_method_interface): returns interface type that method is defined on
576         (mono_mb_emit_cominterop_call): emits native call to function pointer
577         gotten from vtable
578         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
579         that matches signature of unmanaged function.
580         (cominterop_get_native_wrapper): wrapper around adjusted method call.
581         (cominterop_get_invoke): forwards call from proxy to __ComObject
582         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
583         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
584         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
585         
586         * marshal.h: Added Marshal icall declarations.
587         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
588         so we can access them in finalizer
589         
590 2006-07-14  Dick Porter  <dick@ximian.com>
591
592         * object.c (mono_type_initialization_cleanup): Fix a race
593         condition by temporarily commenting out the critical section
594         deletion.
595
596 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
597
598         * reflection.c (create_custom_attr): Fix some warnings.
599         (create_custom_attr_data): Ditto.
600         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
601         types. Fixes #78855.
602
603 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
604
605         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
606
607         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
608
609 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
610
611         * reflection.c (resolve_object): Add support for DynamicMethod.
612
613         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
614         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
615
616 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
617
618         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
619         don't leak GPtrArray's pdata has we have no use (nor free) for it.
620
621 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
622
623         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
624         Fixes #77888.
625
626 2006-06-30  Raja R Harinath  <rharinath@novell.com>
627
628         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
629         slightly: remove a shadow local variable.
630
631 2006-06-29  Raja R Harinath  <rharinath@novell.com>
632
633         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
634         definition that introduces the virtual function slot.
635         Also fix Coverity #105.
636
637 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
638
639         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
640         for dynamic assemblies. Fixes #78724.
641
642 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
643
644         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
645         Fixes #78722.
646
647 2006-06-21  Martin Baulig  <martin@ximian.com>
648
649         * reflection.c
650         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
651         fixes #76484.
652
653 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
654
655         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
656
657 2006-06-20  Raja R Harinath  <rharinath@novell.com>
658
659         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
660         nor TYPEREFs.
661         * class.c (mono_class_create_from_typespec): Add 'context' argument.
662         Inflate result if necessary.
663         (mono_class_get_full): Remove old version.  Rename from
664         'mono_class_get' and add 'context' argument.  Pass it to
665         ..._create_from_typespec.
666         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
667         (mono_ldtoken): Revert change below.
668
669 2006-06-20  Martin Baulig  <martin@ximian.com>
670
671         * class.c (mono_ldtoken): Don't pass the generic context to
672         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
673
674 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
675
676         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
677         and later freeing it. Fixes #78638.
678
679 2006-06-15  Miguel de Icaza  <miguel@novell.com>
680
681         * icall.c (mono_class_get_throw): Revert over-zealous error
682         throwing, the caller for mono_class_get_throw will cope with
683         errors when classes are not properly initialized already.
684
685         The code still copes with loader exceptions though.
686
687         Fixes the regression in reftype1 and reftype3 from the CAS tests.
688         
689 2006-06-14  Miguel de Icaza  <miguel@novell.com>
690
691         Fixes the `make run1' version of RuntimeAbort (to be commited,
692         source is in Bugzilla).
693         
694         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
695         FALSE on class loading failure instead of returning true.
696
697         * class.c (mono_class_create_from_typedef): It is possible for
698         mono_metadata_interfaces_from_typedef_full to fail if a class is
699         not found, cope with this.
700         
701
702 2006-06-14  Dick Porter  <dick@ximian.com>
703
704         * socket-io.c: 
705         * process.c: Fix a bunch of signed/unsigned warnings from gcc
706         4.1.1
707
708 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
709
710         * culture-info-table.h : oops, forgot to make it nsync with r61548.
711
712 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
713
714         * icall.c: Another fix for building mono in Visual Studio.
715
716 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
717
718         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
719         
720 2006-06-09  Martin Baulig  <martin@ximian.com>
721
722         * debug-mono-symfile.c: Put this back and really fix it this
723         time. Sorry for all the trouble.
724
725 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
726
727         * icall.c (mono_class_get_throw): Fix a warning.
728         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
729         ReflectionTypeLoadException if needed. Fixes #78606.
730
731         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
732         (mono_class_init): Ditto.
733
734         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
735         ref_only exceptions.
736         (mono_loader_clear_error): Make this work even if there is no error.
737
738 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
739
740         * object-internals.h marshal.c marshal.h icall.c: Implement method 
741         Marshal.GetComSlotForMethodInfo using internal call.
742
743 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
744
745         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
746         a function for signalling it.
747
748         * class.c (mono_class_from_typeref): Use the new kind of loader error when
749         a referenced assembly is not found.
750
751         * loader.c (mono_loader_error_prepare_exception): Add support for 
752         LOADER_ERROR_ASSEMBLY. Fix formatting.
753
754 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
755
756         * domain.c appdomain.c class-internals.h marshal.c: Add support 
757         for VARIANT marshalling on windows and increment corlib version
758         since Variant struct was added.
759
760 2006-06-03  Miguel de Icaza  <miguel@novell.com>
761
762         * debug-mono-symfile.c: Revert Martin's previous patch which broke
763         stack trace line information:
764
765         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
766         (Martin) when looking up B which is between A and C, return A not C.
767
768         Bug is #78573.
769
770         Thanks to Alexander Olk for tracking this down.
771
772 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
773
774         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
775         
776         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
777         avoid clobbering its value.
778         (mono_string_to_lpstr): Fix a warning on windows.
779
780 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
781
782         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
783
784         * reflection.c loader.c: Removed references to 'dummy' flag.
785
786         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
787
788         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
789         it gets GC tracking.
790
791         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
792         GC tracking.
793         
794         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
795
796         * marshal.c threadpool.c: Update callers of mono_async_result_new.
797
798         * appdomain.c: Bump corlib version.
799
800 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
801
802         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
803         CEE_STIND_REF when working with object references.
804
805 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
806
807         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
808         Fixes #78539.
809
810 2006-05-30  Miguel de Icaza  <miguel@novell.com>
811
812         * loader.c (method_from_memberref): Fix argument value for
813         mono_loader_set_error_method_load (I was passing the MonoClass
814         instead of the class name char *).
815
816 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
817
818         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
819         CEE_STIND_REF when working with object references.
820
821 2006-05-30  Martin Baulig  <martin@ximian.com>
822
823         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
824         mono_method_full_name() change and replace the ':' with a '.'
825         here.
826
827 2006-05-30  Martin Baulig  <martin@ximian.com>
828
829         * debug-mono-symfile.c
830         (mono_debug_symfile_lookup_location): Fix the algorithm:
831         when looking up B which is between A and C, return A not C.
832
833 2006-05-29  Martin Baulig  <martin@ximian.com>
834
835         * mono-debug.h
836         (MonoDebugMethodInfo): Make the typedef public.
837         (MonoDebugSourceLocation): New public struct.
838
839         * mono-debug.c
840         (mono_debug_source_location_from_address): Removed.
841         (mono_debug_source_location_from_il_offset): Removed.
842         (mono_debug_il_offset_from_address): Removed.
843         (mono_debug_address_from_il_offset): Removed.
844         (mono_debug_lookup_method): New public function.
845         (mono_debug_lookup_source_location): New public function; replaces
846         the old mono_debug_source_location_from_*() functions; see the
847         inline documentation.
848         (mono_debug_free_source_location): New public function.
849         (mono_debug_print_stack_frame): New public function; see the
850         inline documentation.
851
852         * debug-mono-symfile.c
853         (mono_debug_find_source_location): Renamed into
854         mono_debug_symfile_lookup_location(); only take a
855         `MonoDebugMethodInfo *' and an `offset' argument; added inline
856         documentation.
857         (mono_debug_find_method): Renamed into
858         mono_debug_symfile_lookup_method().
859
860 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
861
862         * assembly.c (mono_assembly_open_full): Dont overwrite the status
863         returned by mono_image_open_full ().
864
865         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
866         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
867         #78517.
868
869         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
870         #78518.
871
872 2006-05-27  Miguel de Icaza  <miguel@novell.com>
873
874         * class.c (mono_class_from_typeref): handle missing images
875         earlier, deals with bug #78418.   Refactor code; 
876
877         Fix a warning introduced in my previous commit (some stale code
878         from before I revisited my patch).
879
880         * class.c (mono_class_create_from_typedef): On failure, remove the
881         class from the MonoImage->class_cache as the class is not
882         initialized;   Fixes the leak pointed out by Paolo.
883
884 2006-05-25  Dick Porter  <dick@ximian.com>
885
886         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
887         DeleteCriticalSections until I figure out which one may still be
888         sometimes locked when mono_thread_cleanup is called.
889
890 2006-05-24  Dick Porter  <dick@ximian.com>
891
892         * threads.c (mono_thread_cleanup): Move the threading cleanup out
893         of mono_thread_manage and back into its own function, so it can be
894         called after the finalizer thread has finished.
895
896         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
897
898 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
899
900         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
901         Fixes #78495.
902
903         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
904         with non-blittable elements.
905         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
906
907 2006-05-24  Martin Baulig  <martin@ximian.com>
908
909         * mono-debug-debugger.h (MonoDebuggerEvent): Added
910         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
911
912         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
913         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
914         `mono_debugger_event_handler' to NULL.
915
916 2006-05-24  Martin Baulig  <martin@ximian.com>
917
918         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
919
920 2006-05-24  Martin Baulig  <martin@ximian.com>
921
922         * mono-debug-debugger.h
923         (mono_debugger_create_notification_function): Added
924         `MonoCodeManager *' argument.
925
926 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
927
928         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
929
930 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
931
932         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
933         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
934         implementation.
935
936 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
937
938         * icall.c: precise GC support: objects can't be stored in unmanaged
939         memory anymore, even if they are kept alive by other references: since
940         they can move the GC needs to be able to always find them.
941
942 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
943
944         * object.c: precise GC support for static fields. Support
945         for moving GCs: write barriers and pinned allocation for interned
946         strings.
947
948 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
949
950         * domain.c, domain-internals.h: precise GC support for the MonoDomain
951         structure.
952
953 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
954
955         * class.c, gc.c: sgen and precise GC updates.
956
957 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
958
959         * marshal.h, marshal.c: added write barrier wrapper and precise type
960         fixes.
961
962 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
963
964         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
965         support.
966
967 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
968
969         * reflection.c: precise and sgen GC updates.
970
971 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
972
973         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
974
975 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
976
977         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
978
979 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
980
981         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
982         MONO_TYPE_OBJECT. Fixes #78462.
983
984 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
985
986         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
987         and blittable types.
988
989 2006-05-17  Miguel de Icaza  <miguel@novell.com>
990
991         * class.c (mono_class_get_exception_for_failure): Implement parts
992         of a TODO: if the loader error is set (instead of the class
993         error), we return a Loader exception that can be properly thrown
994         elsewhere.
995
996         This was exposed by some Winforms 2.0 code that I tried to run
997         (Atsushi pointed me to it).
998
999 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
1000
1001         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
1002         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
1003         
1004         * marshal.c (emit_marshal_vtype): Add limited support for 
1005         UnmanagedType.LPStruct. Fixes #78427.
1006
1007         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
1008         Applied a patch from kangaroo to fix #77523.
1009
1010 2006-05-17  Martin Baulig  <martin@ximian.com>
1011
1012         * threads.c
1013         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
1014         (debugger_thread_created): Removed.
1015         (debugger_thread_exited): Removed.
1016
1017 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
1018
1019         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1020
1021         * object-internals.h (MonoReflectionResource): Sync with managed version.
1022
1023 2006-05-12  Wade Berrier <wberrier@novell.com>
1024
1025         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
1026
1027 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
1028
1029         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
1030         functions try to allocate from the image mempool.
1031
1032 2006-05-12  Dick Porter  <dick@ximian.com>
1033
1034         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
1035
1036 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
1037
1038         * object.c: The FieldGetter and FieldSetter methods require the full
1039         name of the class, not only the name. Fixes bug #78277.
1040
1041 2006-05-11  Miguel de Icaza  <miguel@novell.com>
1042
1043         * loader.c (method_from_memberref): Do not pass the NULL klass to
1044         mono_loader_set_error_() methods.  Pass the non-NULL value
1045         (class). 
1046
1047 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
1048
1049         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
1050         (mono_assembly_close): Null out assembly->image->references after freeing it.
1051
1052         * image.c (mono_image_close): Free image->references.
1053         
1054         * reflection.c (mono_image_basic_init): Fix a small memory leak.
1055
1056 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1057
1058         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
1059         before checking if it's NULL (g_assert).
1060
1061 2006-05-10  Martin Baulig  <martin@ximian.com>
1062
1063         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
1064         I thought I already killed that two months ago, but now it somehow reappeared.
1065
1066 2006-05-10  Martin Baulig  <martin@ximian.com>
1067
1068         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
1069
1070 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
1071
1072         * reflection.c: Allocate memory for dynamically created methods in the image
1073         mempools.
1074
1075 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1076
1077         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
1078         don't use the ad pointer before checking if it's NULL (g_assert).
1079
1080 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
1081
1082         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
1083         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
1084
1085         * marshal.c: Allocate all signatures from mempools.
1086
1087         * marshal.c: Allocate some more signatures from mempools.
1088
1089 2006-05-09  Miguel de Icaza  <miguel@novell.com>
1090
1091         * object.c (mono_load_remote_field): The code used to provide a
1092         temporary variable for returning results if the user did not
1093         provide a result pointer.  But our temporary variable was allocted
1094         on the satck.
1095
1096         Fix calling code to always pass a result area.   Coverity ID 103.
1097
1098 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
1099
1100         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
1101         value, not the old. Fixes #78312.
1102         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
1103
1104         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
1105         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
1106         per-image cache.
1107
1108         * assembly.c (mono_assembly_close): Free image->references.
1109
1110         * assembly.c (mono_assembly_names_equal): Fix a warning.
1111         (mono_assemblies_cleanup): Cleanup more global data.
1112
1113         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
1114
1115         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
1116         ptr_cache and image->modules.
1117
1118         * image.c (mono_image_init): Allocate array_cache lazily.
1119         
1120 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1121
1122         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
1123         behavior was changed recently and has bad side effects.
1124
1125 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
1126
1127         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
1128         
1129         * assembly.c (mono_assembly_close): Remove a debug printf.
1130
1131         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
1132
1133         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
1134         to also allow for temporary references between mono_image_open ()/close ().
1135
1136         * domain.c (get_runtimes_from_exe): Add a FIXME.        
1137
1138 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
1139
1140         * marshal.c: Fix support for dynamic methods.
1141
1142         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
1143
1144         * marshal.c (mono_marshal_cleanup): New cleanup function.
1145
1146         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
1147         image mempools.
1148
1149         * class.c (mono_class_init): Fix leaking class->nested_classes.
1150
1151         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
1152
1153         * image.c (mono_image_init): Initialize the new cashes.
1154
1155         * image.c (mono_image_close): Destroy the new cashes.
1156
1157         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
1158
1159         * mempool.c (mono_mempool_strdup): New helper function.
1160
1161         * class-internals.h: Add prototype for mono_loader_unlock ().
1162
1163         * domain.c (mono_jit_info_table_find): Fix a warning.
1164         (mono_debugger_check_runtime_version): Ditto.
1165
1166         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
1167         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
1168         functions to these modules.
1169
1170         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
1171         metadata modules.
1172         
1173         * marshal.c (mono_free_bstr): Fix a warning.
1174
1175         * assembly.c (mono_assembly_open_full): Fix another small leak.
1176
1177         * object.c: Fix some unload leaks in the remoting code.
1178
1179         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
1180         function.
1181
1182         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
1183
1184         * reflection.c: Fix some unload leaks in dynamic assemblies.
1185
1186 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
1187
1188         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
1189         * marshal.h: Add BSTR support on Win32
1190         * icall.c: Add BSTR icalls
1191         * metadata.h: Add BSTR enums
1192
1193 2006-04-28  Miguel de Icaza  <miguel@novell.com>
1194
1195         Work to catch the crash from #76795 and turn it into an
1196         exception.   As I stubbed out pieces of the VisualBasic support,
1197         I found a number of places where the code was failing and I added
1198         checks to those places. 
1199         
1200         * metadata.c (do_mono_metadata_parse_generic_class): Make this
1201         function return a status code.  If we fail to parse the signature
1202         from mono_metadata_parse_generic_inst, return FALSE.
1203
1204         * loader.c (mono_get_method_from_token): If we fail to load the
1205         method (mono_class_get) return NULL.   
1206
1207         * (method_from_memberref): Return NULL if we are unable to parse
1208         the method signature
1209
1210         (mono_loader_error_prepare_exception): Since we now use the
1211         loader_error flag internally to stop processing, and obtaining
1212         exceptions that might be thrown will walk this code path the
1213         proper way of going from a MonoLoaderError into a
1214         MonoException was convoluted.   This new routine encapsulates the
1215         process of turning the error into an exception and *clearing* the
1216         error afterwards.
1217         
1218 2006-04-27  Miguel de Icaza  <miguel@novell.com>
1219
1220         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
1221         with missing assemblies), and to cope with:
1222
1223                 * Missing fieldref from a non-existing assembly.
1224                 * Missing methodref from a non-existing assembly.
1225
1226         The first batch of work to address *some* of the issues from 76661.
1227         
1228         * object.c (mono_class_create_runtime_vtable): If we fail to
1229         initialize the class raise the exception here. 
1230
1231         * metadata.c (mono_class_get_overrides_full): If any methods fail
1232         to load return the failure to the caller.
1233
1234         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
1235         flagging assemblies that failed to load.   
1236
1237         Do not crash if we are unable to load the assembly.
1238
1239         (mono_assembly_close): Do nothing with REFERENCE_MISSING
1240         assemblies. 
1241
1242         * loader.c (mono_loader_set_error_type_load): Change the
1243         convention to always pass unallocated strings, so we make our own
1244         copies (I know our own code had duplicated strings before, but
1245         this keeps the normal conventions).
1246         (method_from_memberref): Call mono_loader_set_error_method_load
1247         for all possible failures of loading the class. 
1248         Remove assert, turn into a loader error.
1249
1250         (mono_loader_error_to_exception): Move this routine from mini
1251         (mini_loader_error_to_exception) there was no need to have that in
1252         mini. 
1253
1254         * class.c (mono_class_from_typeref): If we were not able to load
1255         the assembly with mono_assembly_load_reference, call the
1256         mono_loader_set_error_type_load to register the problem.
1257
1258         (mono_class_setup_fields): If we fail to load the type from
1259         mono_metadata_parse_type_full, call mono_class_set_failure and
1260         break from the loop.
1261
1262         If class->exception_type is set, we do not layout the fields as
1263         that might crash the runtime, and instead return (from breaking
1264         from the previous loop).
1265
1266         (mono_class_setup_vtable): This now returns a boolean indicating
1267         whether the table was properly setup.   The decision is driven by
1268         mono_class_get_overrides_full which might run into non-existing
1269         methods. 
1270         
1271         (mono_class_init): Returns TRUE on success or FALSE if there was a
1272         problem in loading the type (incorrect assemblies, missing
1273         assemblies, methods, etc).
1274
1275         When we call mono_class_setup_fields we also check for a potential
1276         error inside this call (either a class exception or a general
1277         loader exception).
1278
1279         (mono_class_create_from_typedef): If the parent fails to load
1280         (calling mono_class_get_full) return NULL.
1281         
1282         ** Important **
1283
1284         calls to mono_metadata_parse_type_full should be checked
1285         everywhere and set the mono_class_set_failure
1286         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
1287
1288         The current patch checks the places where my manually constructed
1289         tests show the errors are showing up, but we should do it
1290         everywhere. 
1291
1292         ** Important2 **
1293
1294         mono_class_init return values should be tested everywhere, like
1295         the previous case this is something that we should audit
1296         everywhere and not only on the cases exposed by the tests I
1297         created. 
1298
1299 2006-04-26  Miguel de Icaza  <miguel@novell.com>
1300
1301         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
1302         boolean parameter and instead pass the information on `options'
1303         parameter (FileOptions).
1304
1305         * icall.c: Register the new signature for MonoIO.Open.
1306
1307         * debug-helpers.c (dis_one): Trying to understand how coverity
1308         works.  Fix Run 5, item 78.
1309
1310 2006-04-26  Dick Porter  <dick@ximian.com>
1311
1312         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
1313         dereference.
1314
1315 2006-04-25  Martin Baulig  <martin@ximian.com>
1316
1317         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
1318
1319         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
1320         debugger_thread_created().
1321         (debugger_gc_push_all_stacks): Don't handle the main thread in any
1322         special way.
1323         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
1324         (mono_debugger_finalize_threads): New function; undo the effects
1325         of mono_debugger_init_threads().
1326         (mono_debugger_create_all_threads): Removed.
1327
1328 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
1329
1330         * image.c (mono_image_close): Tidy up trace messages.
1331
1332         * assembly.c (mono_assembly_close): Ditto.
1333
1334         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
1335         no longer references an already freed assembly. Fixes #78168.
1336
1337 2006-04-21  Dick Porter  <dick@ximian.com>
1338
1339         * threads.c (mono_thread_detach): Fix reference counting when
1340         detaching threads.
1341
1342 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
1343
1344         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
1345         #78155.
1346
1347 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
1348
1349         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
1350         (mono_type_to_stind): Ditto.
1351
1352         * marshal.c: Use the new helper functions to simplify code.
1353
1354         * image.c (mono_image_close): Add some code for help debug assembly unloading
1355         problems.
1356
1357         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
1358         image mempool.
1359
1360         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
1361         assembly was already loaded in another appdomain. Fixes #78083.
1362
1363 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
1364
1365         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
1366         referenced assemblies.
1367         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
1368
1369         * domain.c (mono_domain_free): Add a trace message.
1370
1371         * appdomain.c (add_assemblies_to_domain): Ditto.        
1372
1373         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
1374         field.  
1375
1376 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1377
1378         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
1379
1380 2006-04-12  Martin Baulig  <martin@ximian.com>
1381
1382         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
1383         `USE_INCLUDED_LIBGC'.   
1384
1385 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1386
1387         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
1388         the patch contains ../ and a small directory name later. Hopefully fixes
1389         #78035.
1390
1391 2006-04-10  Martin Baulig  <martin@ximian.com>
1392
1393         Clean up the debugger's thread-handling code.
1394
1395         The debugger's thread-handling code has been moved from
1396         ../mini/debug-debugger.c to threads.c.  We now iterate directly
1397         over the `threads' hash, keep track of exiting threads and also
1398         use proper locking.
1399
1400         We can now debug XSP and XSP based applications with the debugger.
1401
1402         * object-internals.h (MonoThread): Added `gpointer end_stack'.
1403
1404         * threads.h
1405         (MonoThreadCallbacks): Removed; this was only used by the debugger.
1406         (mono_install_thread_callbacks): Likewise.      
1407
1408         * threads.c (mono_thread_callbacks): Removed.
1409         (debugger_thread_created, debugger_thread_exited): New static functions.
1410         (start_wrapper): Call debugger_thread_created().
1411         (thread_cleanup): Call debugger_thread_exited().
1412         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
1413         (mono_debugger_init_threads): New public function.
1414         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
1415         iterate directly over the `threads' hash and also use proper locking.
1416
1417         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
1418
1419         * mono-debug-debugger.h
1420         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
1421
1422 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
1423
1424         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
1425         argument type=array. Fixes #78057.
1426
1427 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
1428
1429         * culture-info-table.h : regenerated. Fixed bug #69652.
1430
1431 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
1432
1433         * loader.c metadata.c: Reapply a variant r59116.
1434         
1435         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
1436
1437         * class.c (mono_class_setup_interface_offsets): New internal function.
1438
1439         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
1440         interfaces too. Fixes #77398.
1441
1442         * reflection.c (encode_cattr_value): Add support for 
1443         parameter type=object, argument type=array.
1444         (load_cattr_value): Ditto. Fixes #77916.
1445
1446         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
1447         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
1448
1449         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
1450         a byval char array and CharSet is Ansi.
1451
1452         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
1453
1454 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
1455
1456         * metadata.c: Add some locking comments.
1457         
1458         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
1459         mempool.
1460         (mono_metadata_free_method_signature): Don't free the signature itself.
1461
1462         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
1463
1464         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
1465         reference the same MonoImage.
1466         (mono_assembly_load_from_full): Add an assert.
1467
1468 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
1469
1470         * image.c (mono_image_close): Don't put the image we are about to free into the
1471         loaded_images_guid_hash.
1472
1473         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
1474         to reduce code duplication.
1475
1476         * marshal.c: Register the native functions called by this module as icalls, to
1477         somewhat centralize the creation of MonoMethodSignature's.
1478
1479         * loader.c (mono_method_signature): Add a cache for method signatures.
1480
1481         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
1482         the parameter attributes of a method.
1483         (mono_metadata_parse_method_signature_full): Refactored the computation of
1484         parameter attributes into a separate function. Also avoid one allocation in
1485         most cases.
1486
1487         * assembly.c (mono_assembly_close): Ditto.
1488
1489         * image.c (mono_image_close): Log trace messages with INFO level.
1490
1491         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
1492
1493         * image.c reflection.c: Correct reference counting of image modules.
1494         
1495         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
1496         of this function from the image mempool.
1497         
1498         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
1499         to allow more cached types to be used.
1500
1501         * mono-debug.c (mono_debug_add_method): Appled patch from
1502         David S. Miller  <davem@sunset.davemloft.net>: Access 
1503         minfo->lexical_blocks[] entry elements using read32().
1504
1505 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
1506
1507         * loader.c (mono_free_method): No longer free the method header for non-dynamic
1508         methods as it is allocated from the mempool.
1509
1510         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
1511         image mempool.
1512
1513         * metadata-internals.h: Add comments describing the reference counting scheme
1514         used for MonoImage and MonoAssembly.
1515
1516         * image.c assembly.c reflection.c: Rework reference counting of images and 
1517         assemblies so they are freed when the runtime is shut down. Free some 
1518         additional memory structures when an image is unloaded.
1519         
1520 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
1521
1522         * class.c loader.c reflection.c: Allocate more data structures in
1523         the image mempool.
1524
1525 2006-03-31  Miguel de Icaza  <miguel@novell.com>
1526
1527         * icall.c
1528         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
1529         build on pre glib 2.4 systems.
1530
1531 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
1532
1533         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
1534
1535         * icall.c: Fix some warnings.
1536
1537 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
1538
1539         * culture-info-table.h : regenerated.
1540
1541 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
1542
1543         * threads.c, object-internals.h, verify.c: changed the culture caching
1544         code to use a normal MonoArray for storage so the GC can keep track of
1545         them easily. Fixed bits of the cache logic, too and simplified the
1546         code.
1547
1548 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
1549
1550         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
1551         thread for non-Boehm GCs.
1552
1553 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1554
1555         * domain.c, object.c, domain-internals.h: reduce the amount of memory
1556         needed to keep track of the data for static fields.
1557
1558 2006-03-29  Raja R Harinath  <rharinath@novell.com>
1559
1560         Fix #75172
1561         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
1562         for interface classes.  Use 'num_methods' instead.
1563         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
1564         before using '->vtable_size' field.
1565
1566 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1567
1568         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
1569         doesn't contain managed pointers, so use a normal hashtable.
1570
1571 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1572
1573         * reflection.c, class-internals.h, domain.c: fixed handling of types
1574         used as values for objects in custom attributes (bug #77915):
1575
1576 2006-03-24  Martin Baulig  <martin@ximian.com>
1577
1578         * class.c (mono_class_setup_fields): Added support for generic
1579         instances; fixes #77580.
1580
1581 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1582
1583         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
1584
1585 2006-03-24  Dick Porter  <dick@ximian.com>
1586
1587         * file-io.c (get_file_attributes): More stat macro breakage.
1588         Fixes bug 77759.
1589
1590 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
1591
1592         * profiler.c: added the file=filename option in the default profiler
1593         to output the profile data to filename.
1594
1595 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1596
1597         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
1598         bug #77877.
1599
1600 2006-03-22  Martin Baulig  <martin@ximian.com>
1601
1602         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
1603         allocated `MonoClassField *' in `fb->handle'.
1604
1605 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1606
1607         * class.c, image.c, metadata-internals.h: implemented new mechanism to
1608         allocate interface ID to save memory and allow better ID reuse on
1609         appdomain unload. setup_generic_vtable () removal from Martin.
1610
1611 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1612
1613         * object.h, appdomain.c, domain.c, exception.c, icall.c,
1614         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
1615         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
1616         write barriers for reference stores with managed objects accessed with
1617         C structures in the runtime and in embedding programs.
1618
1619 2006-03-20  Raja R Harinath  <rharinath@novell.com>
1620
1621         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
1622         'interface_id' and 'max_interface_id' fields of MonoClasses
1623         representing open generic types.
1624
1625 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
1626
1627         * object.h, object.c, icall.c: added functions to deal with
1628         storing valuetypes that contain references in managed objects.
1629         * reflection.c, string-icalls.c, threads.c, marshal.c: small
1630         fixes and comments around uses of mono_array_addr ().
1631
1632 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
1633
1634         * object.h, icall.c, monitor.c: object.GetHashCode ()
1635         implementation that supports the moving garbage collector.
1636
1637 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
1638
1639         * icall.c, threads-types.h, threads.c: implemented finalizer for
1640         LocalDataStoreSlot.
1641
1642 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1643
1644         * metadata.c (mono_type_size): Add a fixme.
1645         (mono_type_stack_size): Ditto.
1646
1647         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
1648         'type_forwarders' field.
1649
1650         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
1651         attribute from net 2.0.
1652
1653         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
1654         from class.c.
1655
1656         * class.c (mono_class_setup_fields): Fix a warning.
1657         
1658         * class.c (mono_class_from_name): Add support for assemblyref entries
1659         in the EXPORTEDTYPE table.
1660
1661         * reflection.c: Add support for handling type forwarders under net 2.0.
1662
1663         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
1664         
1665 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
1666
1667         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
1668         overwriting entries in ModuleBuild->types, also clean up the code
1669         a little. Fixes #77774.
1670
1671 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
1672
1673         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
1674         load friend assembly info when present.
1675
1676 2006-03-14  Raja R Harinath  <rharinath@novell.com>
1677
1678         Fix crasher on gtest-158.cs.
1679         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
1680         the return value if the MonoClass we want is yet in an
1681         inconsistent state.
1682         * class.c (mono_class_create_from_typedef): Add an comment
1683         explaining an order dependency between mono_class_setup_parent and
1684         mono_class_setup_mono_type.
1685
1686 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
1687
1688         * class.c: documentation updates and events bug fix.
1689
1690 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1691
1692         * class.c: some cleanup, locking fixes.
1693
1694 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
1695
1696         * class.c: fix the generics code to setup nested
1697         type info to the instantiated type (bug #77770).
1698
1699 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1700
1701         * marshal.c: fixed a few type correctness issues.
1702
1703 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1704
1705         * loader.c: the Set/Get/Addrtess array methods should be public.
1706
1707 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
1708
1709         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
1710         
1711         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
1712         info->wrapper.
1713
1714 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
1715
1716         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
1717
1718         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
1719
1720         * mempool.c (mono_mempool_alloc): Speed this up a bit.
1721         (mono_mempool_alloc0): Ditto.
1722
1723 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1724
1725         * socket-io.c:
1726         (create_object_from_sockaddr): it was allocating 4 extra bytes
1727         for the AF_UNIX data. Fixes bug #77747.
1728
1729 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
1730
1731         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
1732
1733 2006-03-09  Dick Porter  <dick@ximian.com>
1734
1735         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
1736         Fixes bug 76966 again.
1737
1738 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
1739
1740         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
1741         names from r57532
1742         * appdomain.c: Bumped corlib version to 48 (due to r57532)
1743
1744 2006-03-07  Martin Baulig  <martin@ximian.com>
1745
1746         * object.c
1747         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
1748
1749 2006-03-07  Martin Baulig  <martin@ximian.com>
1750
1751         * class.c
1752         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
1753         regression introduced in r56970; see gtest-252.cs.
1754
1755         * loader.c (mono_get_method_constrained): Correctly handle generic
1756         methods; see gtest-253.cs.
1757
1758 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
1759
1760         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
1761
1762 2006-03-04  Martin Baulig  <martin@ximian.com>
1763
1764         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
1765         compute the parent type at runtime, just like we're already doing
1766         it for interfaces.
1767
1768         * reflection.c
1769         (mono_reflection_bind_generic_parameters): Don't compute the
1770         parent type anymore.
1771
1772         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
1773
1774 2006-03-04  Martin Baulig  <martin@ximian.com>
1775
1776         * mono-debug-debugger.h
1777         (mono_debugger_create_notification_function): Allocate memory at
1778         runtime and return a pointer to it.
1779
1780 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1781
1782         * assembly.c: Fix windows build.
1783         
1784         * assembly.c: Fix build.
1785
1786         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1787
1788         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1789         
1790 2006-03-03  Dick Porter  <dick@ximian.com>
1791
1792         * process.c
1793         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1794         Check parameters before dereferencing them.  Fixes Aaron's part of
1795         bug 77393.
1796
1797 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1798
1799         Fix performance regression.
1800         * loader.c (find_method_in_class): Add 'from_class' argument.
1801         Rename 'klass' argument to 'in_class'.  The signature is compared
1802         against the method in 'in_class', and the corresponding method is
1803         returned from 'from_class'.
1804         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1805         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1806         type definition and generic instantiation in parallel.
1807         (mono_get_method_constrained): Update to changes.
1808
1809 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1810
1811         * threads.c: make sure the domain is correct, too when doing
1812         mono_thread_attach ().
1813
1814 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1815
1816         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1817         windows. Fixes #77683.
1818
1819 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1820
1821         * object.h, *: introduced specific way to set elements of an array
1822         of references to be used as write barrier. Still need to audit the
1823         uses of mono_array_addr.
1824
1825 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1826
1827         * object-internals.h: New field to cache the assmebly name, patch
1828         from Tambet Ingo (tambet@ximian.com)
1829
1830 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1831
1832         * decimal.h, class-internals.h, metadata-internals.h,
1833         file-io.h: mark a few function declarations as internal, to
1834         reduce the number of PLT entries.
1835
1836 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1837
1838         * file-io.c: fix typo in warning message.
1839
1840 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1841
1842         * loader.c: on unix, lookup the "*A" version of a function
1843         if charset is auto as a second option before failing.
1844
1845 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1846
1847         * class.h (mono_class_inflate_generic_method): Revert to two
1848         argument version.
1849         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1850         (mono_class_inflate_generic_method_full): Add.
1851         * class.c (mono_class_inflate_generic_method_full): Rename from
1852         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1853         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1854         * loader.c, reflection.c: Update to changes.
1855
1856 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1857
1858         * icall.c: const fixes and small improvements.
1859
1860 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1861
1862         * threadpool.c: for asynchronous connect(), enable the same workaround
1863         for BSD 6 as for the Mac. Fixes bug #77637.
1864
1865 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1866
1867         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1868         formatted classes. Fixes #77524.
1869
1870 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1871
1872         * class.c (inflate_generic_type): Add a couple more
1873         micro-optimizations.
1874         (inflate_generic_context): Don't use the 'gmethod' from
1875         'inflate_with'.
1876         (mono_class_inflate_generic_method): If the method has generic
1877         parameters, but the passed-in context doesn't have a 'gmethod',
1878         create one.  Use the possibly simplified generic instantiation
1879         from the declaring class instead of the one passed in.
1880
1881 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1882
1883         Make generic method signature and method header handling lazy.
1884         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1885         (inflate_generic_header): Likewise.
1886         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1887         parameter to avoid inflating types.
1888         (mono_get_inflated_method): Empty out.
1889         * class.h (mono_class_inflate_generic_method): Update to changes.
1890         * loader.c (mono_get_method_from_token): Don't parse signature for
1891         generic methods, nor methods of generic classes.
1892         (mono_method_signature): Rename from 'mono_method_signature'.
1893         Inflate signature on demand.
1894         (mono_method_get_header): Inflate method header on demand.
1895         * reflection.c: Update to changes.
1896
1897 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1898
1899         * metadata.c (mono_metadata_inflate_generic_inst): If the
1900         instantiation is closed, don't bother expanding it in the new
1901         context.
1902         * class.c (inflate_generic_class): If the generic instantiation
1903         doesn't change after inflation, return the argument itself.
1904         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1905         Add bounds checks.
1906         (inflate_generic_context): If neither the generic class nor the
1907         generic method instantiations change, return the original context.
1908         * reflection.c (mono_method_get_object): Do
1909         'mono_get_inflated_method' before accessing the ->klass field.
1910         (inflate_mono_method): Don't create a MonoGenericMethod unless
1911         necessary.
1912         (inflate_method): Don't pass a constructed type as the declaring
1913         type of a methodbuilder.
1914
1915 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1916
1917         * object.c: fix memory overwrite.
1918
1919 2006-02-22  Dick Porter  <dick@ximian.com>
1920
1921         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1922         it doesn't work any more.
1923         (mono_threads_request_thread_dump): Fix unused variable warnings.
1924
1925 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1926
1927         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1928         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1929         the public header file.
1930
1931 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1932
1933         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1934
1935 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1936
1937         * class-internals.h, object.c: reduce the size of MonoVTable
1938         and store the interface_offsets array at negative offsets.
1939
1940 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1941
1942         * metadata.c: tweak table descriptors data structures to reduce
1943         size and runtime relocations.
1944
1945 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1946
1947         * marshal.c: fix some types and opcodes to be type-safe
1948         in marshaling wrappers.
1949
1950 2006-02-21  Ankit Jain  <jankit@novell.com>
1951
1952         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1953
1954 2006-02-21  Raja R Harinath  <rharinath@novell.com>
1955
1956         * metadata.c (get_constraints): Relax debugging checks for monodis.
1957
1958 2006-02-21  Ankit Jain  <jankit@novell.com>
1959
1960         * metadata.c (mono_metadata_load_generic_params): Move the code
1961         checking for ambiguous generic params from here to mono/dis/get.c
1962         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
1963
1964 2006-02-21  Raja R Harinath  <harinath@gmail.com>
1965
1966         Fix assertion triggered when compiling nemerle.
1967         * class.c (mono_get_shared_generic_inst): Rename from
1968         get_shared_inst and make non-static.
1969         * loader.c (mono_get_shared_generic_method): New.  Used to create
1970         the MonoGenericContext-equivalent of a MonoGenericContainer.
1971         (mono_get_method_from_token): Initialize the 'context' field of
1972         the created MonoGenericContainer.
1973         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
1974         * metadata.c (get_constraints): Add sanity check.
1975         * class-internals.h: Add new internal methods.
1976
1977         * reflection.c (verify_safe_for_managed_space): New sanity check.
1978         Currently checks that owner-less generic parameters aren't allowed
1979         in managed space.
1980         (mono_type_get_object): Use it.
1981         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
1982         that are now in mono_type_get_object.
1983         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
1984
1985 2006-02-19  Raja R Harinath  <harinath@gmail.com>
1986
1987         * metadata.c (mono_type_create_from_typespec): Rename from
1988         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
1989         argument and caching of types in the generic container.
1990         (unwrap_arrays, find_generic_param): Remove.
1991         * metadata-internals.h: Update.
1992         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
1993
1994 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
1995
1996         * class.c (mono_class_get_exception_for_failure): Fix a warning.
1997
1998         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
1999         return values. Fixes #77581.
2000
2001         * class.c (mono_fnptr_class_get): Switch name and name_space.
2002
2003         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
2004         classes and add support for [In, Out] attributes.
2005         (mono_marshal_free_asany): Ditto. Fixes #77524.
2006
2007 2006-02-18  Raja R Harinath  <harinath@gmail.com>
2008
2009         * class.c (mono_class_from_generic_parameter): Make more robust to
2010         incomplete MonoGenericContainers from monodis.
2011
2012 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2013
2014         * class-internals.h: added some more exception types.
2015         * class.c, metadata.c: added a few checks to handle missing
2016         types.
2017
2018 2006-02-17  Raja R Harinath  <rharinath@novell.com>
2019
2020         Use owner-less generic-params some more.
2021         * class.c (my_mono_class_from_generic_parameter): Remove.
2022         (mono_class_from_generic_parameter): Handle null image,
2023         param->name and param->owner.
2024         (mono_class_from_mono_type): Update.
2025         (mono_class_create_from_typespec): Remove 'container' parameter.
2026         If that parameter is non-null, the result is always inflated by
2027         'mono_class_get_full' anyway.
2028         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
2029         parameter.
2030         (mono_class_get_full): Update.
2031
2032         * class.c (inflate_generic_type) [GENERICINST]: If the generic
2033         instance is not open, don't bother inflating.
2034         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
2035         parse metadata for inflated classes.
2036         (_mono_class_get): Change GenericContext* parameter to
2037         GenericContainer*.
2038         (mono_class_create_from_typespec): Likewise.  Simplify, and
2039         implement trivially.  All the cases are handled in
2040         mono_class_from_mono_type.  Don't inflate returned class.
2041         (mono_class_get_full): Delegate GENERICINST optimization to
2042         inflate_generic_type.
2043         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
2044
2045 2006-02-16  Dick Porter  <dick@ximian.com>
2046
2047         * socket-io.c (create_object_from_sockaddr): Fix typo.
2048         (create_sockaddr_from_object): Check array lengths before
2049         potentially accessing items off the end.
2050         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
2051         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
2052         (ves_icall_System_Net_Sockets_Socket_Send_internal)
2053         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
2054         length checks to avoid wraparound overflows.
2055         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
2056         contents of the array of sockets
2057         (hostent_to_IPHostEntry2)
2058         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
2059         Check return value of inet_ntop ().
2060         (addrinfo_to_IPHostEntry): Fix typo
2061
2062 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2063
2064         Type metadata parsing doesn't use generic-instantiation information.
2065         * metadata.c (mono_metadata_parse_array_full): Change
2066         MonoGenericContext* parameter to MonoGenericContainer*.
2067         (mono_metadata_parse_type_full): Likewise.
2068         (mono_type_create_from_typespec_full): Likewise.
2069         (mono_metadata_parse_mh_full): Likewise.
2070         (mono_metadata_parse_generic_inst): Likewise.
2071         (do_mono_metadata_parse_generic_class): Likewise.
2072         (do_mono_metadata_parse_type): Likewise.
2073         * metadata-internals.h: Update to changes.
2074         * class.c (mono_class_find_enum_basetype): Likewise.
2075         (mono_class_setup_fields): Likewise.
2076         (mono_class_create_from_typespec): Likewise.
2077         * loader.c (method_from_methodspec): Likewise.
2078         (mono_get_method_from_token): Likewise.
2079         (mono_method_get_header): Likewise.
2080
2081 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2082
2083         * marshal.c: handle additional GENERICINST case (patch from
2084         Thong Nguyen <tum@veridicus.com>).
2085         Fix a few cases where LDIND_I/STIND_I was used for references.
2086
2087 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2088
2089         * reflection.c (mono_reflection_get_token): Remove unused variable.
2090
2091 2006-02-16  Martin Baulig  <martin@ximian.com>
2092
2093         * reflection.c (mono_reflection_get_token): Add support for fields
2094         in instantiated generic types.
2095
2096         * icall.c
2097         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
2098
2099 2006-02-15  Martin Baulig  <martin@ximian.com>
2100
2101         * icall.c
2102         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
2103         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
2104         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
2105         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
2106
2107 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2108
2109         * class.c, metadata.c, metadata.h, object.c, icall.c,
2110         marshal.c: changed mono_type_get_underlying_type () to do
2111         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
2112         Fixed handling of instantiated generic valuetypes (bug #75479).
2113
2114 2006-02-15  Raja R Harinath  <rharinath@novell.com>
2115
2116         * metadata.c (mono_metadata_decode_signed_value): Simplify.
2117         Delegate to mono_metadata_decode_value, and work on the returned value.
2118
2119         * icall.c (ves_icall_MonoType_GetGenericArguments):
2120         Add consistency check here too.
2121         
2122 2006-02-15  Ankit Jain  <jankit@novell.com>
2123
2124         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
2125         char/short etc.
2126
2127 2006-02-15  Ankit Jain  <jankit@novell.com>
2128
2129         * metadata.c (mono_metadata_decode_signed_value): New function to decode
2130         signed values, used only for representing lower bounds of arrays.
2131         (mono_metadata_parse_array_full): Use new
2132         mono_metadata_decode_signed_value to decode lower bounds.
2133
2134 2006-02-14  Martin Baulig  <martin@ximian.com>
2135
2136         * reflection.c
2137         (mono_reflection_get_token): Support "MonoGenericMethod" and
2138         "MonoGenericCMethod" and allow generic instances / methods.
2139
2140 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
2141
2142         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
2143         to obtain the terminal size using an ioctl.
2144
2145         * object.c (mono_nullable_init): Revert this as nullable reference
2146         types are not valid.
2147         (mono_nullable_box): Ditto.
2148
2149 2006-02-09  Dick Porter  <dick@ximian.com>
2150
2151         * threads.c (mono_thread_detach): Drop a reference to the thread
2152         we're detaching.
2153
2154 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
2155
2156         * object.c (mono_nullable_init): Handle nullable reference types.
2157         (mono_nullable_box): Ditto. Fixes #77446.
2158
2159 2006-02-07  Martin Baulig  <martin@ximian.com>
2160
2161         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
2162
2163 2006-02-07  Ankit Jain  <jankit@novell.com>
2164
2165         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
2166         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
2167         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
2168         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
2169         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
2170         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
2171
2172 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
2173
2174         * class.c (mono_class_create_generic): Set type_token as well.
2175
2176         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
2177         compatible with MS.
2178
2179 2006-02-02  Martin Baulig  <martin@ximian.com>
2180
2181         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
2182         has never been used so far.
2183
2184 2006-02-02  Martin Baulig  <martin@ximian.com>
2185
2186         * mono-debug-debugger.h: Changed comment at the top of this file;
2187         the header is not installed, but it's safe to #include it from
2188         within the JIT.
2189
2190         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
2191         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
2192
2193 2006-02-02  Martin Baulig  <martin@ximian.com>
2194
2195         * mono-debug.h
2196         (MonoSymbolTable): Removed the `metadata_info' field.
2197
2198         * mono-debug.c
2199         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
2200
2201         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2202         (mono_debugger_add_builtin_types): Removed.
2203         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
2204         (mono_debugger_create_notification_function): We now operate on a
2205         pre-allocated area; take a `gpointer' and return `void'.
2206
2207         * mono-debug-debugger.c
2208         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
2209         (mono_debugger_add_builtin_types): Removed.
2210
2211 2006-02-02  Martin Baulig  <martin@ximian.com>
2212
2213         * threads.c (mono_debugger_create_all_threads): New public method.
2214
2215 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2216
2217         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
2218         breaks on several platforms.
2219
2220 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
2221
2222         * assembly.c: the VS.NET build doesn't supply default values for
2223         MONO_ASSEMBLIES and MONO_CFG_DIR.
2224
2225 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
2226
2227         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
2228         helper function.
2229
2230         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
2231
2232         * loader.c (method_from_memberref): Fix a warning.
2233
2234         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
2235
2236         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
2237         with explicit layout. Fixes #77433.
2238
2239 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
2240
2241         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
2242         max_interface_id is initialized before using it. Fixes #77398.
2243         (ves_icall_Type_GetInterfaces): Ditto.
2244
2245 2006-01-30  Raja R Harinath  <rharinath@novell.com>
2246
2247         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2248         allocate memory for parameter attributes when parsing memberref
2249         signatures.
2250         * loader.c (mono_loader_set_error_method_load): Don't warn.
2251         (method_from_memberref): Ensure MissingMethodException gets thrown
2252         if method is not found.  Make warning more informative.
2253
2254 2006-01-29  Raja R Harinath  <harinath@gmail.com>
2255
2256         Fix #77397
2257         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
2258         return true if is byref.
2259         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2260         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
2261         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2262
2263 2006-01-27  Raja R Harinath  <rharinath@novell.com>
2264
2265         Fix tests/find-method.2.il
2266         * loader.c (find_method, find_method_in_class): Remove is_inflated
2267         argument.  Revert 2006-01-18 change.
2268         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
2269         is generic, search for method in its generic definition.
2270         * class.c (mono_class_setup_vtable_general): Print generic
2271         arguments of generic types in debugging printf.
2272
2273 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
2274
2275         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
2276
2277         * threads.c (mono_threads_request_thread_dump): New helper function.
2278
2279 2006-01-25  Raja R Harinath  <rharinath@novell.com>
2280
2281         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
2282
2283 2006-01-25  Ankit Jain  <jankit@novell.com>
2284
2285         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
2286         move definition to ..
2287         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
2288         
2289 2006-01-25  Ankit Jain  <jankit@novell.com>
2290             Raja R Harinath  <rharinath@novell.com>
2291
2292         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
2293         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
2294         as necessary.
2295
2296 2006-01-25  Martin Baulig  <martin@ximian.com>
2297
2298         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
2299         `MonoDebuggerThread' into debug-debugger.c.
2300
2301 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
2302
2303         * profiler.c: fix printing of data.
2304
2305 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
2306
2307         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
2308           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
2309
2310 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2311
2312         * object.c: fix deadlock related to string interning.
2313
2314 2006-01-23  Martin Baulig  <martin@ximian.com>
2315
2316         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2317
2318         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
2319
2320 2006-01-23  Martin Baulig  <martin@ximian.com>
2321
2322         * mono-debug.h: Moved the prototypes of some functions which are
2323         used by the JIT here from mono-debug-debugger.h.
2324
2325 2006-01-21  Martin Baulig  <martin@ximian.com>
2326
2327         * Makefile.am: Don't install mono-debug-debugger.h.
2328
2329 2006-01-21  Martin Baulig  <martin@ximian.com>
2330
2331         * mono-debug-debugger.h: Enforce the private status of this header
2332         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
2333         Moved some stuff from mono-debugger-jit-wrapper.h here.
2334
2335 2006-01-20  Raja R Harinath  <rharinath@novell.com>
2336
2337         * class.c (mono_class_from_typeref): Add a sanity test to help
2338         catch lack of assembly load/search hooks.
2339
2340 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
2341
2342         * marshal.c (emit_struct_conv): Relax the fields with same offset
2343         check even more. Fixes #77230.
2344
2345 2006-01-18  Martin Baulig  <martin@ximian.com>
2346
2347         * loader.c (find_method_in_class): Added `gboolean is_inflated'
2348         argument; if false, we compare the uninstantiated signatures.
2349         (method_from_memberref): Compare the uninstantiated signatures;
2350         fixes #76417.
2351
2352 2006-01-18  Robert Jordan  <robertj@gmx.net>
2353
2354         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
2355         Clear the weak link. Fixes bug #77170.
2356
2357         * gc.c (mono_gchandle_free):
2358         Reflect *-gc.c changes (tiny optimization).
2359
2360 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
2361
2362         * metadata.c (mono_metadata_signature_dup): Applied patch from
2363         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
2364         Fixes #77288.
2365
2366 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
2367
2368         * marshal.c (emit_struct_conv): Allow fields with the same offset when
2369         marshalling from native to managed code. Fixes #77230.
2370
2371 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2372
2373         * threadpool.c: fix problem (Mac only) when more than one asynchronous
2374         connect. Fixes bug #77020.
2375
2376 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2377
2378         * class.c: fixed id assignement for nested interfaces (bug #77275).
2379         Added also better info for --print-vtable debugging.
2380
2381 2006-01-12  Martin Baulig  <martin@ximian.com>
2382
2383         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
2384         interfaces on-the-fly; fixes #76625.
2385
2386         * class-internals.h
2387         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
2388         don't need that anymore.
2389
2390 2006-01-12  Miguel de Icaza  <miguel@novell.com>
2391
2392         * socket-io.c
2393         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2394         To avoid initing the nested_classes when not needed I turned the
2395         PeerCredData as a toplevel internal class, as it has to be shared
2396         anyways. 
2397
2398         Fixes the CASA issue.
2399
2400 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
2401
2402         * domain.c: Accessors for MonoJitInfo
2403
2404         * profiler-private.h: Add jitinfo to the end jit hook
2405
2406         * profiler.[ch]: Define new hooks, called after jitting which give
2407         the MonoJitInfo that was compiled
2408
2409 2006-01-10  Martin Baulig  <martin@ximian.com>
2410
2411         * class.c (mono_class_setup_events): Add support for generic
2412         classes; fixes #76440.
2413
2414 2006-01-06  Raja R Harinath  <rharinath@novell.com>
2415
2416         Fix #77160.
2417         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
2418         on passed-in method.
2419
2420 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2421
2422         * object.c (mono_runtime_invoke_array): Add Nullable support.
2423
2424         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
2425
2426 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
2427
2428         * file-io.c: Don't consider sockets as directory and avoid an endless
2429         loop. Fix bug #76966.
2430
2431 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2432
2433         * object.c (mono_nullable_init): New helper function.
2434         (mono_nullable_box): Ditto.
2435
2436         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
2437
2438         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
2439
2440         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
2441         
2442 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
2443
2444         * class.c (mono_class_is_assignable_from): Make T assignable to 
2445         Nullable<T>.
2446
2447 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
2448
2449         * appdomain.c: Bump corlib version to 46.
2450         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
2451         serialization purpose) and changed ves_icall_System_Reflection_
2452         Assembly_get_code_base signature to accept a boolean (to escape, or 
2453         not, the assembly code base).
2454
2455 2005-12-23  Dick Porter  <dick@ximian.com>
2456
2457         * icall.c: 
2458         * threads-types.h: 
2459         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
2460         CreateEvent icall now returns "created" boolean parameter.
2461
2462 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
2463
2464         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
2465         #76967.
2466
2467         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
2468         when attr_klass is an interface. Fixes #77045.
2469
2470 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
2471
2472         * marshal.c (emit_struct_conv): Fix previous patch.
2473         
2474         * marshal.c (emit_struct_conv): Add a check for fields with the same
2475         offset.
2476
2477 2005-12-20  Raja R Harinath  <rharinath@novell.com>
2478
2479         Fix regression in Mono.C5.
2480         * class.c (mono_class_create_generic): If 'klass' is an interface
2481         set up the interface offsets.
2482         (mono_class_is_assignable_from): Don't throw away generic arguments.
2483
2484 2005-12-19  Raja R Harinath  <rharinath@novell.com>
2485
2486         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
2487         type parameters.
2488
2489 2005-12-15  Raja R Harinath  <rharinath@novell.com>
2490
2491         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
2492         dead store.
2493         (do_mono_metadata_parse_generic_class): Don't pass the current
2494         generic context when parsing the type being instantiated: it
2495         cannot use it, anyway.
2496
2497         * loader.c (method_from_memberref): Don't inflate a signature if
2498         it doesn't contain any type parameters.
2499
2500 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2501
2502         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
2503
2504 2005-12-14  Martin Baulig  <martin@ximian.com>
2505
2506         * class.c
2507         (mono_type_get_name_recurse): Don't return null for type
2508         parameters and open generic classes.
2509         (mono_class_setup_methods): Don't exclude generic instances.
2510         (mono_get_unique_iid): Use different IDs for different
2511         instantiations of the same generic type.
2512         (mono_class_setup_vtable): Only use setup_generic_vtable() for
2513         open generic instances; create a normal vtable for closed generic
2514         instances.
2515         (mono_class_setup_vtable_general): We're now also called for
2516         closed generic instances.
2517
2518         * reflection.c
2519         (mono_reflection_bind_generic_parameters): Correctly use
2520         mono_metadata_lookup_generic_inst() everywhere.
2521
2522 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
2523
2524         * object.c (mono_class_create_runtime_vtable): Call 
2525         mono_class_setup_vtable ().
2526
2527         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
2528         function.
2529         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
2530         #76959.
2531
2532         * loader.c (mono_loader_set_error_type_load): Print the type load
2533         warnings to the console so they are more visible to the user.
2534         (mono_loader_set_error_method_load): Ditto.
2535
2536         * reflection.c (ensure_runtime_vtable): Revert the last change as it
2537         is still broken.
2538         
2539         * reflection.c (ensure_runtime_vtable): Fix build.
2540
2541         * reflection.c (ensure_runtime_vtable): Disable an optimization which
2542         doesn't work in all cases.
2543
2544 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
2545
2546         * object.c (mono_array_new_full): Treat a single dimensional array
2547         with 0 lower bounds as an szarray. Fixes #76973.
2548
2549         * reflection.c (custom_attr_visible): Really fix this.
2550
2551 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
2552
2553         * reflection.c (custom_attr_visible): Allow nested public attributes
2554         as well.
2555
2556         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
2557         interface check.
2558
2559 2005-12-12  Raja R Harinath  <harinath@gmail.com>
2560
2561         * class.c (set_generic_param_owner): Delete.
2562         (mono_class_create_from_typedef): Don't set ->owner field of
2563         generic parameters to "param containers" of enclosing classes.
2564         * reflection.c (mono_reflection_initialize_generic_parameter):
2565         Likewise.
2566
2567 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
2568
2569         * reflection.c (custom_attr_visible): Fix build.
2570
2571 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
2572
2573         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
2574         private attributes.
2575         
2576         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
2577         handling of null parameter defaults.
2578
2579 2005-12-09  Raja R Harinath  <rharinath@novell.com>
2580
2581         * class.c (mono_class_from_generic_parameter): Don't set
2582         klass->generic_container.
2583         (my_mono_class_from_generic_parameter): Likewise.
2584
2585 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2586
2587         * reflection.c (load_public_key): Fix a warning.
2588         (method_encode_code): Fix unaligned accesses.
2589
2590 2005-12-07  Martin Baulig  <martin@ximian.com>
2591
2592         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
2593
2594         * reflection.c
2595         (write_generic_param_entry): Encode our custom attrs.
2596
2597         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
2598
2599 2005-12-07  Martin Baulig  <martin@ximian.com>
2600
2601         * reflection.c (encode_new_constraint): Removed; we don't use the
2602         `NewConstraintAttribute' anymore.
2603
2604 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2605
2606         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
2607         not fire a TypeResolve event when Assembly.GetType () is called.
2608
2609 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2610
2611         Beginning of support for nullable types in the runtime. Parts of
2612         this patch are from Martin.
2613
2614         * appdomain.c (MONO_CORLIB_VERSION): Bump
2615
2616         * domain.c (mono_init_internal): get the nullable type
2617
2618         * class.c (mono_class_is_nullable): New method
2619         (mono_class_get_nullable_param): New mehod
2620         (mono_class_create_generic): In types T? set cast_class to T
2621
2622         * class-internals.h (MonoDefaults): new nullable default class
2623         (mono_class_get_nullable_param, mono_class_get_nullable_param):
2624         new methods.
2625
2626 2005-12-05  Raja R Harinath  <rharinath@novell.com>
2627
2628         * metadata.c (select_container): New.  Refactor code to select the
2629         appropriate GenericContainer given the type of generic parameter
2630         we are looking for.
2631         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
2632         not a MonoGenericContext.  Use select_container.  Update parameters.
2633         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
2634         and MONO_TYPE_MVAR.
2635         (unwrap_arrays): Remove duplicate tests.
2636         (find_generic_param): Rename from 'has_same_context'.  Now walks a
2637         generic instantiated class to find any arguments that are generic
2638         parameters.
2639         (mono_type_create_from_typespec_full): Use find_generic_param to
2640         avoid evicting some generic instantiations from the typespec
2641         cache.
2642
2643 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
2644
2645         * reflection.c: fixed writing of doubles on ARM FPA.
2646
2647 2005-12-02  Robert Jordan  <robertj@gmx.net>
2648
2649         * icall.c: Fixed EventInfo.ReflectedType (#76829).
2650
2651 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2652
2653         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
2654         least on SUSE 10 they are not the same (on debian, they are just the
2655         same thing).
2656
2657 2005-12-01  Raja R Harinath  <rharinath@novell.com>
2658
2659         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
2660         DeclaringType for VARs and MVARs.
2661         * class.c (set_generic_param_owner): Fix initialization of owner
2662         fields.
2663
2664 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2665
2666         * icall.c: fixed Enum.ToObject() to correctly convert the values.
2667
2668 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2669
2670         * threadpool.c: workaround for a bug that shows up on the Mac:
2671         select()+connect() on a blocking socket is not like it should
2672         be, so we proceed to connect() in that case, wasting the I/O
2673         threadpool thread until connect succeedes. Fixes bug #75436.
2674
2675 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2676
2677         * threadpool.c: fix typo when setting file descriptor states.
2678
2679 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2680
2681         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
2682         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2683         create a temporary signature container.
2684         (mono_metadata_parse_generic_param): Update to changes.
2685         (mono_type_create_from_typespec_full): Update to changes.
2686         * loader.c (method_from_memberref): Don't use a
2687         MonoGenericContainer while parsing a memberref signature.
2688         (method_from_methodspec): Remove dead-store of the 'container'
2689         variable.  It's overwritten before use.
2690
2691         * metadata.c (mono_type_create_from_typespec_full): Make debugging
2692         checks tighter.
2693         (mono_metadata_parse_generic_param): Likewise.
2694         * loader.c (find_method_in_class): Does not need a
2695         MonoGenericContainer.  Use 'mono_method_signature' rather than
2696         'mono_method_signature_full'.
2697         (find_method, mono_get_method_constrained, method_from_memberref):
2698         Update to changes.
2699
2700         * metadata.c (mono_type_create_from_typespec_full): Ensure that
2701         owner-less generic-parameters are never evicted from the typespec
2702         cache.
2703
2704         * loader.c (method_from_memberref): Don't use the current context
2705         when parsing signatures.
2706         (method_from_methodspec, mono_get_method_from_token): Update to changes.
2707
2708         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
2709         side-effects in g_assert.
2710         * loader.c (mono_get_method_from_token): Resolve klass earlier so
2711         that we don't potentially lose information.
2712
2713 2005-11-26  Dick Porter  <dick@ximian.com>
2714
2715         * icall.c:
2716         * threads.c: icalls to implement basic (ie, not named)
2717         System.Threading.Semaphore.
2718
2719 2005-11-24  Dick Porter  <dick@ximian.com>
2720
2721         * process.c
2722         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2723         Use GetProcessId() if it's available.
2724
2725 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
2726
2727         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
2728
2729 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2730             Ankit Jain  <jankit@novell.com>
2731
2732         * loader.c (mono_get_method_from_token): Initialize 'method' field
2733         of all generic parameters before parsing the signature.  Remove
2734         code that "fixed"-up MVAR references.
2735
2736 2005-11-23  Ankit Jain  <jankit@novell.com>
2737
2738         * metadata.c (mono_metadata_has_generic_params):
2739         (mono_metadata_load_generic_param_constraints):
2740         (mono_metadata_load_generic_params): Move duplicate code ...
2741         (mono_metadata_get_generic_param_row): ... here. Returns the
2742         first row-id in GenericParam table for a given owner (token).
2743         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
2744         prototype.
2745
2746 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2747             Ankit Jain  <jankit@novell.com>
2748
2749         * metadata.c (mono_metadata_class_equal): Pass signature_only when
2750         comparing VARs too.
2751         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
2752         type->data.generic_param only if the type is an MVAR.
2753         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
2754         leak owner-less VARs and MVARs into managed space.
2755
2756 2005-11-21  Martin Baulig  <martin@ximian.com>
2757
2758         * class-internals.h
2759         (MonoMethod): Moved the `generic_container' here from
2760         `MonoMethodNormal' since we now also need it for
2761         `MonoMethodPInvoke';
2762         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
2763         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
2764         an union containing both `MonoMethodNormal' and
2765         `MonoMethodPInvoke'.
2766
2767         * loader.c
2768         (mono_get_method_from_token): Allow implementing generic methods
2769         as interncalls.
2770
2771         * threads.c
2772         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
2773         icall.
2774
2775 2005-11-17  Dick Porter  <dick@ximian.com>
2776
2777         * icall.c: 
2778         * process.h: 
2779         * process.c: Split the Process Start_internal icall into
2780         ShellExecuteEx_internal and CreateProcess_internal, which are
2781         called depending on whether UseShellExecute is true.  Fixes bug
2782         76670.
2783
2784         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2785
2786 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2787
2788         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2789         'msize' parameters, use the information in 'mspec' instead.
2790         (emit_object_to_ptr_conv): Ditto.
2791
2792         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2793         fields out of order. Fixes #76733.
2794
2795 2005-11-17  Ankit Jain  <jankit@novell.com>
2796
2797         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2798
2799 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2800
2801         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2802           bug #76575.
2803
2804 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2805
2806         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2807         for types with non-auto layout. Fixes #76717.
2808
2809 2005-11-16  Ankit Jain  <jankit@novell.com>
2810
2811         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2812         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2813         if generic_context is null.
2814           (mono_metadata_generic_param_equal): param->owner can be null.
2815           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2816         null.
2817
2818 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2819
2820         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2821         the correct value.
2822
2823 2005-11-15  Martin Baulig  <martin@ximian.com>
2824
2825         * object.c (set_value): Use mono_class_from_mono_type() instead of
2826         the hack for generic instances; fixes #76136.
2827
2828 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2829
2830         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2831         fields.
2832
2833         * image.c (load_metadata_ptrs): Initialize the new fields.
2834
2835         * reflection.c (create_dynamic_mono_image): Ditto.
2836
2837         * reflection.c (build_compressed_metadata): Use the new fields.
2838
2839         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2840         icall.
2841
2842         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2843         icall.
2844         
2845 2005-11-15  Ankit Jain  <jankit@novell.com>
2846             Raja R Harinath  <harinath@gmail.com>
2847
2848         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2849         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2850         new per-generic_container cache if the cached MonoType's context matches
2851         the current context.
2852           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2853         to the expected context.
2854           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2855
2856 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2857
2858         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2859         we changed the signature of an icall.
2860         * icall.c: Modify to mono_double_ParseImpl return true/false 
2861         depending on the success, instead of throwing the exception. This will
2862         help us in Double.TryParse methods.
2863         
2864 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2865
2866         * marshal.c (emit_marshal_object): Throw an exception when
2867         marshalling 'object' instead of crashing. Fixes #76696.
2868
2869 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2870
2871         * class-internals.h: Add prototype for mono_type_get_full_name ().
2872
2873 2005-11-11  Dick Porter  <dick@ximian.com>
2874
2875         * threads.c (mono_thread_manage): Make sure the main thread has
2876         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2877
2878 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2879
2880         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2881         console about the missing type.
2882         (mono_loader_set_error_method_load): Ditto.
2883
2884 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2885
2886         * mono-config.c (mono_get_config_dir): Set the system defaults if
2887         none is specified.
2888
2889         * assembly.c (mono_set_dirs): New API entry point to set the
2890         assembly and the config directory in one call
2891
2892 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2893
2894         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2895         the ftnptr was created from a delegate in a domain other than the
2896         current domain. Fixes #75377.
2897
2898         * exception.h exception.c: Add mono_get_exception_not_supported ().
2899
2900 2005-11-08  Martin Baulig  <martin@ximian.com>
2901
2902         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2903
2904 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2905
2906         * security-manager.h: Added definitions to deal with strongname key 
2907         pairs bigger (and smaller) than 1024 bits.
2908         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2909         adjust wrt the public key length being used.
2910
2911 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2912
2913         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2914           Windows build (r51396-51397).
2915
2916 2005-11-03  Martin Baulig  <martin@ximian.com>
2917
2918         * class.c (mono_class_setup_vtable_general): Also add generic
2919         methods to the vtable; fixes #76581.
2920
2921 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2922
2923         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2924         sure that we lookup GetString method from the System.Text.Encoding
2925         class, not the derived class or we get an empty method.
2926
2927         Fixed class #76612.
2928
2929 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2930
2931         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2932         if it has been previously set (embedders). 
2933
2934         Make mono_set_rootdir available also on Unix.
2935
2936 005-10-24  Robert Jordan  <robertj@gmx.net>
2937
2938         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2939
2940 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2941
2942         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2943         only calls which are made to native code use this flag.
2944
2945         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2946
2947 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2948
2949         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2950         Add support for FieldBuilders.
2951
2952 2005-10-29  Martin Baulig  <martin@ximian.com>
2953
2954         * mono-debug.c
2955         (mono_debug_using_mono_debugger): New public method; returns
2956         whether we're running inside the debugger.
2957
2958 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
2959
2960         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
2961         for Method/Constructor/FieldBuilders.
2962
2963 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2964
2965         * reflection.c (module_add_cattrs): Save custom attributes for global methods
2966         and fields as well.
2967
2968 2005-10-26  Martin Baulig  <martin@ximian.com>
2969
2970         * mono-debug-debugger.c
2971         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
2972
2973 2005-10-24  Raja R Harinath  <harinath@gmail.com>
2974
2975         * icall.c (base64_to_byte_array): Don't pass an out-of-range
2976         integer to isspace.
2977
2978 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2979
2980         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
2981         when passing valuetypes byref. Fixes #76502.
2982
2983 2005-10-19  Jackson Harper  <jackson@ximian.com>
2984
2985         * profiler.c: Don't put a . in front of types that are not in a
2986         namespace.
2987
2988 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
2989
2990         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
2991
2992 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
2993
2994         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
2995         #76436.
2996         (mono_marshal_get_ldflda_wrapper): Fix a warning.
2997
2998 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2999
3000         * assembly.c metadata-internals.h icall.c: Define an additional
3001         parameter for mono_assembly_name_parse_full, so we can avoid creating
3002         S.R.AssemblyName.Version when no version info wasn't passed.
3003         
3004 2005-10-09  Miguel de Icaza  <miguel@novell.com>
3005
3006         * class.c (mono_type_get_full_name): Reimplement method that was
3007         removed. 
3008
3009         * image.c: Some docs
3010
3011 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
3012
3013         * profiler.c (output_newobj_profile): Fix printing of Total memory
3014         on x86.
3015
3016 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3017
3018         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
3019
3020 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
3021
3022         * threads.c: remove debug output.
3023
3024 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3025
3026         * threads.c (mono_thread_manage): Fix crashes if more than 64
3027         threads need to be aborted. Hopefully fixes #75899.
3028
3029         * assembly.c (mono_stringify_assembly_name): New helper function.
3030
3031         * class.c: Use mono_stringify_assembly_name instead of the similar
3032         static function.
3033
3034         * assembly.h assembly.c: Add support for calling a postload search 
3035         hook if an assembly cannot be loaded.
3036
3037         * appdomain.c: Register new search hooks which call the AssemblyResolve
3038         events in AppDomain. Fixes #75231
3039
3040 2005-10-07  Martin Baulig  <martin@ximian.com>
3041
3042         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
3043         methods without debug info.
3044
3045 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
3046
3047         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
3048         wrappers.
3049
3050 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3051
3052         * file-io.c: now that we return symlinks, use lstat and, when the file
3053         is a symbolic link, stat, to get the file attributes. Also avoid the
3054         conversion to/from utf16/external.
3055
3056 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
3057
3058         * class.c (mono_class_layout_fields): Compute klass->has_references
3059         correctly if an embedded valuetype is not yet initialized. Fixes
3060         #76331.
3061
3062 2005-10-04  Martin Baulig  <martin@ximian.com>
3063
3064         * metadata.c
3065         (mono_metadata_load_generic_param_constraints): New public
3066         function; splitted the constraints loading out from
3067         mono_metadata_load_generic_params().
3068
3069         * class.c (mono_class_create_from_typedef): Call
3070         mono_metadata_load_generic_param_constraints() after setting up
3071         the type and creating our parent; fixes #75329.
3072
3073 2005-10-04  Martin Baulig  <martin@ximian.com>
3074
3075         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
3076         non-dynamic parent classes.
3077
3078 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3079
3080         * file-io.c : win32 build fix (ETXTBSY seems not found).
3081
3082 2005-10-04  Martin Baulig  <martin@ximian.com>
3083
3084         * reflection.c
3085         (mono_image_get_methodspec_token): Make the cache actually work;
3086         fixes #75974.
3087
3088 2005-10-04  Martin Baulig  <martin@ximian.com>
3089
3090         * class.c (mono_class_name_from_token): Removed the unneccessary
3091         `MonoGenericContext *' argument.
3092
3093 2005-10-04  Martin Baulig  <martin@ximian.com>
3094
3095         * loader.c
3096         (method_from_methodspec): Make the caching work again; fixes the
3097         performance regression from #76262.
3098
3099 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3100
3101         * file-io.c:
3102         * file-io.h:
3103         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
3104         GetFileSystemEntries that performs the same work but without going
3105         into io-layer, locking, etc.
3106
3107 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
3108
3109         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
3110         ThreadState_Stopped as well. Fixes #76047.
3111
3112 2005-09-29  Martin Baulig  <martin@ximian.com>
3113
3114         * class.c
3115         (inflate_generic_context): If the new context has a `gmethod', set
3116         its `container' that that gmethod's `container'.
3117
3118         * metadata.c
3119         (mono_metadata_parse_generic_param): Simplify things;
3120         `generic_container = generic_context->container;' is just fine.
3121
3122         * loader.c (method_from_methodspec): Code cleanups.
3123
3124 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
3125
3126         * decimal.c: fix warning (and let gcc generate correct
3127         code on ARM with optimizations).
3128
3129 2005-09-28  Martin Baulig  <martin@ximian.com>
3130
3131         * loader.c
3132         (method_from_memberref): Added `MonoGenericContext *class_context'
3133         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
3134         (method_from_methodspec): If we're a memberref, use the enclosing
3135         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
3136
3137 2005-09-28  Martin Baulig  <martin@ximian.com>
3138
3139         * object.c (mono_runtime_invoke_array): Added support for
3140         MONO_TYPE_GENERICINST; fixes #75917.
3141
3142 2005-09-27  Martin Baulig  <martin@ximian.com>
3143
3144         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
3145         `k->byval_arg.type' to determine the actual type.
3146
3147         * loader.c (method_from_methodspec): Removed some hacks.
3148
3149 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
3150
3151         * class-internals.h (mono_field_is_deleted): Do the test for
3152         rtspecialname before we check the actual name of the field. This
3153         prevents us from dereferencing a pointer into the string table,
3154         saving us from accessing a few pages
3155
3156         * *.c: Replace the use of {Enter,Leave}CriticalSection with
3157         macros. This will allow a deadlock debugger to easily be plugged
3158         in.
3159
3160 2005-09-27  Martin Baulig  <martin@ximian.com>
3161
3162         * loader.c (method_from_methodspec): Create a "signature"
3163         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
3164
3165 2005-09-27  Martin Baulig  <martin@ximian.com>
3166
3167         * class.c
3168         (inflate_generic_class): Correctly set the new context's
3169         container.
3170
3171         * loader.c
3172         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
3173         instead of a `MonoGenericContext *'.
3174         (mono_method_signature_full): Take a `MonoGenericContainer *'
3175         instead of a `MonoGenericContext *'.
3176
3177         * metadata.c
3178         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
3179         instead of a `MonoGenericContext *'.
3180         (mono_metadata_parse_method_signature_full): Likewise.
3181
3182 2005-09-26  Martin Baulig  <martin@ximian.com>
3183
3184         * class.c
3185         (mono_class_from_generic_parameter): Set `klass->generic_container'
3186         (mono_class_from_generic_parameter): Likewise.
3187         (mono_bounded_array_class_get): We inherit the generic container
3188         from the element class.
3189
3190         * loader.c
3191         (find_method, find_method_in_class): Take a `MonoGenericContext *'
3192         argument rather than computing it here.
3193         (method_from_memberref): Correctly set the generic context before
3194         parsing the signature.  Fixes #75681.
3195
3196 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
3197
3198         * object.c (mono_class_has_special_static_fields): Fix warnings.
3199
3200 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3201
3202         * assembly.c: Add parse_public_key function, to
3203         par the public keys. Also added mono_assembly_name_parse_full,
3204         to define it the parsed key should be freed or not.
3205         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
3206         to parse a long format assembly name.
3207         * metadata-internals.h: Keep mono_assembly_name_parse_full as
3208         private, since calling it to preserve the key requires
3209         freeing it manually.
3210         
3211 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
3212
3213         * locales.c : removed HAVE_ICU part.
3214
3215 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
3216
3217         * object.c (mono_class_create_runtime_vtable): Avoid calling 
3218         field_is_special_static if the klass has no special static fields.
3219
3220         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
3221         (MonoCachedClassInfo): Likewise.
3222
3223         * object.c (mono_class_has_special_static_fields): New helper function.
3224
3225 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3226
3227         * class.c (mono_class_create_from_typedef): Don't call 
3228         interfaces_from_typedef_full for enums.
3229         (mono_class_create_from_typedef): Compute the base types of enums directly
3230         without calling mono_class_setup_fields ().
3231         (mono_class_find_enum_basetype): New helper function.
3232
3233         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
3234         one place inside the string heap.
3235         
3236 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
3237
3238         * class.c: locking fixes, code cleanups, some docs added.
3239         Allocate some data structures in the image mempool.
3240
3241 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3242
3243         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3244         the example code.
3245         
3246 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
3247
3248         * class-internals.h, class.c, reflection.c: reduce memory taken by
3249         MonoClass.
3250
3251 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
3252
3253         * metadata.c, metadata.h, loader.h: documentation updates, code and
3254         API cleanups.
3255
3256 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3257
3258         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3259         the example code.
3260
3261         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
3262         page faults caused by the runtime while reading metadata.
3263
3264 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3265
3266         * socket-io.c: the field names were changed 3 months ago and no one
3267         realized until bug #76077 got filed!
3268
3269 2005-09-20  Martin Baulig  <martin@ximian.com>
3270
3271         * icall.c (assembly_icalls): Removed some unused debugger icalls.
3272
3273 2005-09-20  Martin Baulig  <martin@ximian.com>
3274
3275         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
3276         write the rank into the class entry.
3277
3278 2005-09-20  Martin Baulig  <martin@ximian.com>
3279
3280         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
3281
3282 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
3283
3284         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3285
3286         * icall.c (custom_attrs_defined_internal): New icall.
3287
3288         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
3289         function.
3290         (mono_custom_attrs_construct_by_type): New helper function.
3291
3292 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
3293
3294         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
3295         terminate the resulting string. Fixes #76123.
3296
3297 2005-09-16  Martin Baulig  <martin@ximian.com>
3298
3299         * mono-debug.c
3300         (mono_debug_add_method): Ignore inflated methods for the moment.
3301
3302 2005-09-14  Martin Baulig  <martin@ximian.com>
3303
3304         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
3305
3306 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
3307
3308         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
3309         return a success/failure indication.
3310         (mono_metadata_interfaces_from_typedef_full): Ditto.
3311         (get_constraints): Ditto.
3312
3313 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
3314
3315         * marshal.c (emit_marshal_array): Fix handling of null arrays.
3316         
3317         * marshal.c (emit_marshal_array): Add support for returning string
3318         arrays from delegates. Fixes #76063.
3319
3320         * marshal.c: Use the emit_ldloc/stloc macros where possible.
3321
3322 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3323
3324         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
3325         icall.
3326
3327 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
3328
3329         * reflection.c icall.c: Fix after mono_get_exception_type_load
3330         signature change.
3331
3332         * assembly.c (mono_assembly_get_assemblyref): New helper function.
3333         (mono_assembly_load_reference): Use the new helper.
3334
3335         * class-internals.h (MonoLoaderError): New structure containing 
3336         information about type loading errors.
3337
3338         * class-internals.h loader.c: Add APIs to store per-thread loader
3339         error information.
3340
3341         * loader.c class.c: Set the loader error if needed.
3342
3343         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
3344
3345 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
3346
3347         * decimal.c: fixed to handle the broken ARM fp format.
3348
3349 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
3350
3351         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
3352         broken.
3353
3354 2005-09-06  Martin Baulig  <martin@ximian.com>
3355
3356         * domain.c (supported_runtimes): Added v2.0.50727.
3357
3358 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
3359
3360         * culture-info.h: reduce the size of some structures.
3361
3362 2005-09-05  Martin Baulig  <martin@ximian.com>
3363
3364         Reflect latest API changes in the August CTP.
3365
3366         * icall.c
3367         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
3368         ("MonoType.HasGenericArguments"): Removed.
3369         ("MonoMethod.BindGenericParameters"): Renamed to
3370         "MakeGenericMethod".
3371         ("MethodBuilder.BindGenericParameters"): Renamed to
3372         "MakeGenericMethod".    
3373
3374 2005-09-05  Martin Baulig  <martin@ximian.com>
3375
3376         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
3377
3378 2005-09-05  Martin Baulig  <martin@ximian.com>
3379
3380         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3381
3382         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
3383         generic_container is non-NULL.
3384
3385 2005-09-05  Martin Baulig  <martin@ximian.com>
3386
3387         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3388
3389         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
3390
3391 2005-08-29  Michal Moskal  <malekith@nemerle.org>
3392
3393         * reflection.c (encode_locals,
3394         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
3395         for large generic types.
3396
3397 2005-09-05  Martin Baulig  <martin@ximian.com>
3398
3399         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3400
3401         * class.c (mono_dup_array_type): New public method.
3402         (mono_metadata_signature_deep_dup): New public method.
3403         (dup_type): Correctly duplicate array and function types.
3404
3405 2005-09-05  Martin Baulig  <martin@ximian.com>
3406
3407         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3408
3409         * reflection.c (get_default_param_value_blobs): Handle generic types
3410         and generic methods.
3411
3412 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
3413
3414         * class.c: Fixed error reporting (method/class were inversed) for 
3415         inheritance demands.
3416         * security-manager.c|h: Added the AppDomain when calling the managed
3417         System.Security.SecurityManager.InheritanceDemand method.
3418
3419 2005-09-01  Raja R Harinath  <rharinath@novell.com>
3420
3421         * reflection.c (encode_marshal_blob): 'marshaltype' and
3422         'marshaltyperef' are alternate sources for the custom marshaler
3423         name.
3424
3425 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
3426
3427         * class.c: fix creation of array classes with rank == 1
3428         (patch by Ankit Jain <jankit@novell.com>).
3429
3430 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
3431
3432         * object.c: fix check for creating the bound data for arrays vs
3433         szarrays.
3434
3435 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3436
3437         * object.c: configuration file name is now based on the executable name,
3438         not the image name. Fixes bug #75931.
3439
3440 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
3441
3442         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
3443         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
3444
3445 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
3446
3447         * rand.c: Use wincrypt.h instead of WinCrypt.h.
3448
3449 2005-08-24  Ankit Jain  <jankit@novell.com>
3450             Raja R Harinath  <rharinath@novell.com>
3451
3452         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
3453           called by it recursively.
3454           (mono_class_init): Remove special case in pending_init handling, since it's
3455           superseded by the fix to mono_class_from_typeref.
3456
3457 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3458
3459         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
3460         BROKEN_THREAD_START stuff.
3461
3462 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
3463
3464         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
3465         trampoline.
3466
3467         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
3468         
3469         * object.c (mono_delegate_ctor): Replace the original function address with
3470         a delegate trampoline.
3471
3472 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
3473
3474         * icall.c: add boolean argument to base64_to_byte_array and 
3475         InternalFromBase64String to control whether a whitespace-only string
3476         is allowed (or should casue a FormatException to be thrown). We need
3477         this as the behavior has changed between MS.NET 1.x and 2.0, and we
3478         to match the MS behaviour in both profiles.
3479         * appdomain.c: Bump corlib version.
3480
3481 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3482
3483         This patch implements a big portion of publisher policy
3484         support, used to bind assembly versions and redirect
3485         one assembly from version A to version B.
3486
3487         * assembly.c:
3488         New GSList loaded_assembly_bindings, for storing the cached
3489         assembly bindings.
3490         (assembly_binding_maps_name): New static function for checking if a 
3491         assembly binding information maps an assembly name.
3492         (mono_assembly_binding_info_free): New function for freeing
3493         assembly binding information resources.
3494         (get_publisher_policy_info): New static function for retrieving 
3495         assembly binding information from a MonoImage.
3496         (compare_versions): New static function for comparing an assembly
3497         binding information data and the version of an assembly name.
3498         (check_policy_versions): New static function for checking if an
3499         assembly binding info mapping an assembly name is valid for it.
3500         (mono_assembly_load_publisher_policy): New static function for
3501         loading the 'policy.major.minor.MyAssembly' image for an assembly
3502         with an assembly name 'aname'.
3503         (mono_assembly_bind_version): New static function for updating
3504         assembly redirection.
3505         (mono_assembly_apply_binding): New static function for applying
3506         assembly binding.
3507         (search_binding_loaded): New static function for searching 
3508         loaded assembly binding infos in the cache domain.
3509         (mono_assembly_load_full): Don't apply assembly binding for
3510         reflection only assemblies.
3511
3512         * metadata-internals.h: Add MonoAssemblyBindingInfo,
3513         which contains information about assembly binding. Also
3514         declare signature for mono_config_parse_publisher_policy ()
3515         function, used to retrieve pub policy info.
3516         
3517         * mono-config.c:
3518         (publisher_policy_start): New static function used to parse publisher 
3519         policy config files.
3520         (publisher_policy_parser): New static MonoParseHandler containing 
3521         the functions used when parsing config files.
3522         (mono_config_parse_publisher_policy): New function for parsing
3523         publisher policy files.
3524         
3525 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3526
3527         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
3528
3529         * marshal.c (mono_delegate_free_ftnptr): Ditto.
3530
3531         * object.c (mono_get_addr_from_ftnptr): New helper function.
3532
3533         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
3534
3535         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3536
3537 2005-08-19  Dick Porter  <dick@ximian.com>
3538
3539         * threads.c, threads.h, appdomain.c, appdomain.h,
3540         profiler-private.h, monitor.c, object.c, object-internals.h,
3541         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
3542         store the thread ID, so it can hold a 64 bit value if needed.
3543
3544 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3545
3546         * reflection.c (mono_reflection_create_dynamic_method): Store the
3547         handle class into the method references as well so ldtoken works in
3548         dynamic methods.
3549
3550         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
3551         types.
3552
3553 2005-08-19  Ankit Jain <jankit@novell.com>
3554
3555         Fix #75847.
3556         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
3557           here rather than using the method signature of a arbitrary function
3558           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
3559           two arguments.
3560           Hack done with Harinath.
3561
3562 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3563
3564         * threadpool.c: disable printing stack traces when we get a exception
3565         in a threadpool thread. I need to do more testing to figure out which
3566         cases actually print this. Fixes bug #75828.
3567
3568 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3569
3570         * icall.c: there might be ignored whitespace after the last '='. This
3571         fixes length computation and bug #75840.
3572
3573 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
3574
3575         * assembly.c (mono_assembly_load_full): Consider .exe extension as
3576         well. Fixes #75809.
3577
3578         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
3579         #75784.
3580         
3581         * reflection.c (create_custom_attr_data): Ditto.
3582
3583 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
3584
3585         * locales.c, culture-info.h : removed RegionLCIDMap.
3586         * culture-info-tables.h : regenerated.
3587
3588 2005-08-16  Martin Baulig  <martin@ximian.com>
3589
3590         * class.c (mono_type_get_name_recurse): Small fix.
3591
3592 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3593
3594         * locales.c : indentation fixie.
3595
3596 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
3597
3598         * object-internals.h,
3599           locales.h,
3600           locales.c,
3601           culture-info.h,
3602           icall.c : added RegionInfo table support.
3603         * culture-info-table.h : regenerated for region support.
3604
3605 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
3606
3607         * reflection.c (resolve_object): handle all kinds of MonoMethod
3608         including generic ones
3609
3610 2005-08-12  Ankit Jain <jankit@novell.com>
3611
3612         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
3613           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
3614
3615 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
3616
3617         * process.c: Don't close a thread handle when it's NULL. This is a
3618         workaround for bug #75733.
3619
3620 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3621
3622         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
3623
3624 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
3625
3626         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
3627
3628 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3629
3630         * threadpool.c: if a work item in the thread pool has a callback that
3631         catches a exception, don't propagate it after invoking the callback.
3632         Fixes bug #75336.
3633
3634 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3635
3636         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
3637
3638         * class-internals.h (MonoCachedClassInfo): Add some new fields.
3639
3640         * class.c (mono_class_init): Load field info lazily in the AOT case.    
3641
3642         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
3643
3644 2005-08-03  Ankit Jain  <jankit@novell.com>
3645
3646         Fix #75683.
3647         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
3648           PInvoke calling convention is 0.
3649
3650 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
3651
3652         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
3653         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
3654
3655 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
3656
3657         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
3658         to handle threads not started by the GC (patch by Michael Meeks
3659         <michael.meeks@novell.com>).
3660
3661 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
3662
3663         * reflection.c: Make buffer used in emitting types larger for some
3664         big generic types (patch by Michal Moskal).
3665
3666 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3667
3668         * mono-debug.c: Fix some (not all) alignment problems.
3669
3670 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3671
3672         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
3673         Invoke mono_image_load_from_data_full passing the refonly
3674         parameter.
3675
3676         * assembly.c
3677         (mono_assembly_open_from_bundle): Add the refonly argument, 
3678         in order to pass it to other methods it calls to.
3679         (do_mono_assembly_open): Add the refonly argument, in order 
3680         to pass it to other methods it calls to.
3681         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
3682         the refonly parameter to it.
3683
3684         * image.c: Add loaded_images_refonly_hash and
3685         loaded_images_refonly_guid_hash to cache the reflection
3686         only loaded images.
3687         (mono_images_init): Initialize the hash tables used for
3688         caching the reflection only images.
3689         (load_modules): Invoke mono_image_open_full passing the refonly
3690         parameter to load the modules the correct way.
3691         (build_guid_table): Add the refonly argument, to re-build the 
3692         correct hash table.
3693         (do_mono_image_open): Added the refonly argument, in order to
3694         define it for the loaded image.
3695         (mono_image_loaded_full): New function, which receives an
3696         additional parameter to look for the image in the refonly or
3697         non-refonly section.
3698         (mono_image_loaded): Updated, using mono_image_loaded_full.
3699         (mono_image_loaded_by_guid_full): The same case that happens
3700         with mono_image_loaded_full.
3701         (mono_image_loaded_by_guid): Likewise.
3702         (register_image): Use the ref_only variable inside MonoImage
3703         to decide in which hash table store the current image.
3704         (mono_image_open_from_data_full): Rename
3705         mono_image_open_from_data to mono_image_open_from_data_full,
3706         adding the refonly argument, to define the ref_only variable 
3707         inside MonoImage.
3708         (mono_image_open_from_data): Return 
3709         mono_image_open_from_data_full.
3710         (mono_image_open_full): Rename mono_image_open to
3711         mono_image_open_full, receiving the new refonly argument,
3712         to pass it to inner methods.
3713         (mono_pe_file_open): Update this function, to open
3714         a MonoImage as a non-refonly image.
3715         (mono_image_close): Use the refonly variable inside
3716         MonoImage to remove the image from the correct caches.
3717
3718         * image.h: Add the signatures of mono_image_open_full,
3719         mono_image_open_from_data_full, mono_image_loaded_full,
3720         mono_image_loaded_by_guid_full.
3721
3722         * metadata-internals.h: Add the ref_only field to 
3723         MonoImage.
3724         
3725 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3726
3727         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
3728         Fix the last behavior, which used to load the assemblies and
3729         extract MonoReflectionAssemblyName information, instead of
3730         extract it from the metadata tables. Needed for Reflection
3731         Only assemblies.
3732         
3733 2005-07-29  Martin Baulig  <martin@ximian.com>
3734
3735         * mono-debug-debugger.c
3736         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
3737         not initialized.
3738
3739         * mono-debug.c
3740         (mono_debug_address_from_il_offset): Check whether we have
3741         debugging support before attempting to take the lock.
3742         (mono_debug_source_location_from_address): Likewise.
3743         (mono_debug_source_location_from_il_offset): Likewise.
3744         (mono_debug_il_offset_from_address): Likewise.
3745         (mono_debug_address_from_il_offset): Likewise.
3746
3747 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
3748
3749         * class.c (mono_class_from_name_case): Add support for dynamic images.
3750         Fixes #75650.
3751
3752         * object.c (mono_class_compute_gc_descriptor): Add a workaround
3753         for #75479.
3754
3755 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3756         
3757         * reflection.c (mono_method_get_object): Fix warning.
3758
3759 2005-07-28  Martin Baulig  <martin@ximian.com>
3760
3761         * mono-debug.c
3762         (mono_debug_add_wrapper): Also write the wrapper type.
3763
3764 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3765
3766         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
3767         
3768         * class.c (mono_class_init): Avoid reading nested classes if the AOT
3769         data indicates the class has none.
3770
3771 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
3772
3773         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
3774         loader lock with the debugger lock. Prevents deadlocks for beagle.
3775
3776         Beagle can now run on an smp box for a weekend without any
3777         issues. Woohoo!
3778
3779 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3780
3781         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3782         in a module. Fixes #75629.
3783
3784 2005-07-26  Martin Baulig  <martin@ximian.com>
3785
3786         * mono-debug.c (mono_debug_add_wrapper): New static method.
3787         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3788         interncall or a wrapper.
3789
3790         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3791         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3792         (MONO_DEBUGGER_VERSION): Bump to 51.
3793
3794         * mono-debug-debugger.c
3795         (mono_debugger_add_type): Removed this empty function.
3796         (mono_debugger_add_method): Likewise.
3797
3798 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3799
3800         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3801         before accessing method->slot.
3802
3803 2005-07-21  Jb Evain  <jbevain@gmail.com>
3804
3805         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3806         Fixes #75010.
3807
3808 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3809
3810         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3811         #75587.
3812
3813 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3814
3815         * image.h image.c: Add mono_image_get_guid () API function.
3816
3817 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3818
3819         There were issues when multiple threads tried to load
3820         assemblies. A deadlock was created between assemblies_mutex and
3821         mono_domain_assemblies_lock. This fixes the issue by making the
3822         assembly ref counting be lock free. See bug 75586.
3823         
3824         * image.c (mono_image_close): The add ref function here was using
3825         Interlocked operations while the unref was using a mutex and a
3826         --. I don't think this was ever a bug that would be exposed in a
3827         non-pendantic way (ie, by an embedder doing a ref on one thread
3828         and an unref on another), but for the sake of correctness, this is
3829         now Interlocked.
3830
3831         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3832         (mono_assembly_load_reference): Call mono_assembly_addref rather
3833         than touching the refcount ourselves.
3834         (mono_assembly_close): Use InterlockedDecrement to unref the
3835         assembly. Don't acquire the lock unless it is actually needed.
3836
3837 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3838
3839         * class.c (mono_class_layout_fields): Fix calculation of has_references
3840         for generic types.
3841
3842 2005-07-12  Martin Baulig  <martin@ximian.com>
3843
3844         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3845
3846         * metadata.c
3847         (mono_type_hash): Provide better hashing for generic instances.
3848         (mono_generic_inst_hash): Improve hashing.
3849         (mono_generic_class_hash): Likewise.
3850
3851         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3852         generic instances.
3853
3854 2005-07-12  Martin Baulig  <martin@ximian.com>
3855
3856         * reflection.c (mono_reflection_create_runtime_class): Remove the
3857         hack for generic type definitions and non-`Run' assemblies.
3858         (mono_reflection_bind_generic_parameters): Also use
3859         `klass->wastypebuilder' to check for TypeBuilders.
3860
3861 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3862
3863         * class.c (mono_class_layout_fields): Fix calculation of has_references
3864         for generic types.
3865
3866         * class.c (inflate_generic_class): Fix a leak.
3867         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3868         for generic types.
3869
3870 2005-07-11  Martin Baulig  <martin@ximian.com>
3871
3872         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3873         on error.
3874
3875 2005-07-11  Martin Baulig  <martin@ximian.com>
3876
3877         * loader.c (find_method): Also lookup in
3878         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3879
3880 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3881
3882         * appdomain.c (mono_domain_unload): Don't free the error message
3883         before passing it to mono_get_exception_...
3884
3885         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3886         
3887 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3888
3889         * threads.c: try to better guess an available RT signal (bug #75387).
3890
3891 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3892
3893         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3894         and CACHE_OBJECT.
3895
3896 2005-07-07  Martin Baulig  <martin@ximian.com>
3897
3898         * class.c (mono_type_get_name_full): Return NULL for
3899         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3900         fixes #75408.
3901
3902 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3903
3904         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3905         exit the appdomain as well being aborted.
3906
3907         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3908         change back to the root domain after calling managed code. This enables
3909         appdomains using threadpools to be unloaded.
3910
3911 2005-07-07  Martin Baulig  <martin@ximian.com>
3912
3913         * class-internals.h
3914         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3915         into `MonoDynamicGenericClass' since we only need it for dynamic
3916         types.
3917
3918         * reflection.c (mono_class_bind_generic_parameters): We don't need
3919         to compute the `parent' here.
3920
3921 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3922
3923         * culture-info-table.h : regenerated.
3924
3925 2005-07-06  Martin Baulig  <martin@ximian.com>
3926
3927         * icall.c
3928         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3929
3930         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3931
3932 2005-07-06  Martin Baulig  <martin@ximian.com>
3933
3934         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3935         we're doing a signature-only comparision; fixes #74945.
3936
3937 2005-07-06  Martin Baulig  <martin@ximian.com>
3938
3939         * class-internals.h (MonoGenericClass): Moved some things out into
3940         a new `MonoInflatedGenericClass' type.  
3941         (MonoInflatedGenericClass): New type; the `klass' of a
3942         `MonoGenericClass' is now computed lazyly in
3943         mono_get_inflated_generic_class().      
3944
3945         * class.c (mono_get_inflated_generic_class): New public function.
3946         (mono_class_inflate_generic_method): Removed the unused
3947         `MonoClass *' argument.
3948         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3949         all the methods.
3950         (mono_class_create_generic): Make this static and merge it with
3951         mono_class_create_generic_2(); we're now called automatically from
3952         mono_get_inflated_generic_class().
3953
3954         * loader.c (mono_method_signature): Call
3955         mono_get_inflated_method() here.
3956
3957 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
3958
3959         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
3960         type of fields with RVA.
3961
3962         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
3963         for this pseudo class.
3964         (my_mono_class_from_generic_parameter): Likewise.
3965         (mono_class_init): Allow interfaces to have cctors.
3966
3967 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3968
3969         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
3970         lazily for AOT methods.
3971
3972 2005-07-05  Martin Baulig  <martin@ximian.com>
3973
3974         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
3975         returns FALSE for a successful match, not TRUE.
3976
3977 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3978
3979         * loader.c (mono_method_get_index): Optimize this a bit.
3980
3981 2005-07-04  Martin Baulig  <martin@ximian.com>
3982
3983         * class.c
3984         (class_compute_field_layout): Move the check for generic type
3985         definitions into mono_class_layout_fields().  Fixes #74684.
3986         (mono_class_from_generic_parameter): Correctly compute
3987         `klass->parent'; fixes #75457.
3988
3989         * reflection.c (register_assembly, register_module): Make sure
3990         `domain->rejobject_hash' is already created.
3991
3992 2005-07-02  Martin Baulig  <martin@ximian.com>
3993
3994         * class-internals.h
3995         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
3996         `MonoDynamicGenericClass'.      
3997
3998 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
3999
4000         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
4001         returned by a field getter is null, since null is a valid value.
4002
4003 2005-07-01  Martin Baulig  <martin@ximian.com>
4004
4005         * reflection.c (mono_reflection_generic_class_initialize): Update
4006         the `dgclass->fields [i].parent' to the correct class.
4007         (mono_image_get_fieldref_token): Use the declaring type, not the
4008         reflected type.
4009
4010 2005-07-01  Martin Baulig  <martin@ximian.com>
4011
4012         * loader.c (find_method): Also look in the interfaces; fixes #75429.
4013
4014 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
4015
4016         * threads.c (thread_cleanup): assert that thread != NULL
4017         (wait_for_tids_or_state_change): We were using the wrong variable
4018         when accessing wait->threads. `i' was always out of the bounds of
4019         the array.
4020
4021 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4022
4023         * loader.c: map user32 and kernel32 to libMonoSupportW
4024
4025 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
4026
4027         * appdomain.c (unload_thread_main): Mark this as WINAPI.
4028
4029 2005-06-28  Martin Baulig  <martin@ximian.com>
4030
4031         * loader.c (method_from_methodspec): Fix #75334.
4032
4033 2005-06-28  Martin Baulig  <martin@ximian.com>
4034
4035         Fix #74953 - Arrays now implement the generic IList<T> interface
4036         on the 2.0 platform.
4037
4038         * class-internals.h (MonoDefaults): Added `generic_array_class'.
4039
4040         * reflection.c (mono_class_bind_generic_parameters): New public
4041         function; similar to mono_reflection_bind_generic_parameters(),
4042         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
4043
4044         * domain.c (mono_init_internal): Try to initialize.
4045         `mono_defaults.generic_array_class' here; this'll only succeed if
4046         we're using the 2.0 corlib.
4047
4048         * icall.c
4049         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
4050         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
4051         (mono_lookup_internal_call): Added support for nested classes.
4052
4053         * loader.c
4054         (mono_get_method_from_token): Set `result->signature->pinvoke' if
4055         we're an interncall and have generic arguments.
4056
4057         * class.c
4058         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
4059         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
4060         instance of System.Array.InternalArray<T> for arrays, so they
4061         implement the generic IList<T> interface.
4062
4063 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
4064
4065         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
4066         (chastamar@yahoo.com). Fixes #75374.    
4067
4068 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
4069
4070         * culture-info-table.h: regenerated.
4071
4072 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4073
4074         * icall.c: handle spaces correctly for base64 strings.
4075
4076 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
4077
4078         * *.c: Kill some warnings.
4079
4080 2005-06-23  Duncan Mak  <duncan@novell.com>
4081
4082         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
4083         that this builds on Solaris 10 (x86).
4084
4085 2005-06-23  Martin Baulig  <martin@ximian.com>
4086
4087         * class.c
4088         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
4089         generic type definitions.
4090
4091 2005-06-23  Martin Baulig  <martin@ximian.com>
4092
4093         Fix #75331.
4094
4095         * metadata.c (mono_class_get_overrides): Renamed to
4096         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
4097         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
4098         pass it to mono_get_method_full().
4099
4100 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
4101
4102         * reflection.c (mono_reflection_create_runtime_class): take the
4103         mono_domain_lock in this method. Prevents deadlocks
4104
4105 2005-06-22  Martin Baulig  <martin@ximian.com>
4106
4107         * loader.c (method_from_methodspec): Fix #75330.
4108
4109 2005-06-22  Martin Baulig  <martin@ximian.com>
4110
4111         * reflection.c (type_get_qualified_name): Use
4112         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
4113         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
4114         argument; use it if we don't have an assembly name.
4115
4116 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
4117
4118         * object.c: In mono_message_init, set "copy out" flag for in
4119         parameters with the [Out] flag.
4120
4121 2005-06-21  Martin Baulig  <martin@ximian.com>
4122
4123         * class.c
4124         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
4125         and MONO_TYPE_PTR.
4126
4127 2005-06-21  Martin Baulig  <martin@ximian.com>
4128
4129         * class.c (mono_class_init): Don't initialize `class->fields' for
4130         generic instances since they're initialized again in
4131         compute_field_layout(). 
4132         (compute_field_layout): Set the field's `generic_info' here; fix
4133         #75320. 
4134
4135 2005-06-21  Martin Baulig  <martin@ximian.com>
4136
4137         * class-internals.h
4138         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
4139
4140         * metadata.c (mono_metadata_generic_method_equal): Also
4141         distinguish the `generic_class'; fixes #75334.
4142
4143 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4144
4145         * domain.c:
4146         * appdomain.c:
4147         * domain-internals.h:
4148         * reflection.c: 'domain_assemblies' field is now protected by its own
4149         lock. Don't call into managed code to run the AssemblyLoad event if we
4150         now there are no registered delegates for it.
4151
4152 2005-06-20  Martin Baulig  <martin@ximian.com>
4153
4154         * class.c (mono_class_is_assignable_from): Use a custom version of
4155         mono_class_has_parent() to make things work for generic instances;
4156         fix #75300.
4157
4158 2005-06-20  Martin Baulig  <martin@ximian.com>
4159
4160         * loader.c (method_from_methodspec): Apply a patch from
4161         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
4162
4163 2005-06-20  Martin Baulig  <martin@ximian.com>
4164
4165         * class.c (mono_class_init): Reverted Zoltan's last change; it
4166         breaks generics.
4167
4168 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
4169
4170         * threads.c (wait_for_tids_or_state_change): Add missing locking.
4171
4172 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4173
4174         * socket-io.c: fix the index in the socket array for writable/error
4175         sockets. Fixes bug #75306.
4176
4177 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
4178
4179         * class.c (mono_class_init): Allow interfaces to have static ctors.
4180
4181 2005-06-17  Martin Baulig  <martin@ximian.com>
4182
4183         * loader.c (method_from_methodspec): Use `context->container' when
4184         parsing the `gmethod->inst'.
4185
4186 2005-06-17  Martin Baulig  <martin@ximian.com>
4187
4188         * class.c (mono_type_get_name_recurse): Don't add the assembly
4189         name for type arguments.
4190
4191 2005-06-15  Martin Baulig  <martin@ximian.com>
4192
4193         * reflection.c (mono_image_get_inflated_method_token): Encode
4194         correct klass; fixes #75260.
4195
4196 2005-06-13 Michal Moskal <malekith@nemerle.org>
4197
4198         * icall.c: Make GetCorrespondingMethod/Constructor take
4199         MonoReflectionMethod method not MonoMethod. Removed
4200         MonoType.GetCorrespondingField, and make
4201         MonoGenericType.GetCorrespondingField take name not
4202         MonoClassField.
4203
4204 2005-06-13  Michal Moskal <malekith@nemerle.org>
4205
4206         * reflection.c (field_encode_signature, encode_locals):
4207          Make sizes of buffers for types larger (for big generic types).
4208          (create_generic_typespec,
4209          mono_reflection_sighelper_get_signature_local,
4210          mono_reflection_sighelper_get_signature_field):
4211          Add asserts for too small buffers.
4212
4213 2005-06-15  Martin Baulig  <martin@ximian.com>
4214
4215         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
4216         if our parent is not a dynamic type.
4217
4218 2005-06-15  Martin Baulig  <martin@ximian.com>
4219
4220         * class-internals.h (MonoTypeNameFormat): New enum.
4221
4222         * class.c
4223         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
4224         (mono_type_get_full_name): Removed.
4225         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
4226         argument instead of the boolean's.
4227
4228         * icall.c (ves_icall_System_MonoType_getFullName):
4229         Added `gboolean assembly_qualified'.    
4230
4231         * reflection.h
4232         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
4233
4234         * reflection.c (mono_reflection_parse_type): Parse the new type
4235         name format.
4236
4237 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4238
4239         * icall.c: no need to convert from utf16 to utf8 and then back again
4240         after the call to GetLogicalDrives.
4241
4242 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4243
4244         * icall.c: frombase64. Fix problems exposed by new tests.
4245
4246 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4247
4248         * icall.c: added internal calls for converting char [] and strings in
4249         base64 into byte [].
4250
4251 2005-06-10  Martin Baulig  <martin@ximian.com>
4252
4253         * class.c (mono_class_create_generic_2): Read the nested classes
4254         from the metadata rather than from `gklass->nested_classes' since
4255         `gklass' might not be initialized yet.
4256
4257 2005-06-09  Duncan Mak  <duncan@novell.com>
4258
4259         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
4260         all public headers. Fixes #74919.
4261
4262 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
4263
4264         * domain.c: The key for proxy_vtable_hash is now a pointer
4265         array. Added new GHashFunc and GCompareFunc functions for this.
4266
4267         * class.h: The list of interfaces in MonoRemoteClass is known in
4268         advance and can't grow (we create a new MonoRemoteClass if needed),
4269         so now the interface array can be allocated together with
4270         MonoRemoteClass.
4271         
4272         * object.c: Added a new method create_remote_class_key.
4273         Fixed mono_remote_class so it does not depend on
4274         mono_upgrade_remote_class.
4275         Removed extend_interface_array.
4276         Added new method clone_remote_class(), which makes a copy of a remote
4277         class and adds a new interface or class to it.
4278         mono_upgrade_remote_class() now creates a new remote class (or gets
4279         it from the cache) if an vtable upgrade is needed. In this way
4280         we make sure that other objects sharing the same remote class
4281         don't get the new vtable with unwanted interfaces.
4282         
4283         * object-internals.h:
4284         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
4285         
4286         * marshal.c: Track changes in mono_upgrade_remote_class().
4287
4288 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
4289         * icall.c: Add runtime methods for obtaining members of inflated
4290         class, which were created from supplied non-inflated members. It
4291         is used in internal Get{Method,Constructor,Field} methods in
4292         System.Type
4293
4294 2005-06-09  Martin Baulig  <martin@ximian.com>
4295
4296         * reflection.c
4297         (mono_reflection_bind_generic_method_parameters): Fix #75169.
4298
4299 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4300         * reflection.c (mono_image_basic_init): Define
4301         Version in MonoDynamicAssembly. 
4302         
4303 2005-06-08  Martin Baulig  <martin@ximian.com>
4304
4305         Fix #75136.
4306
4307         * loader.c
4308         (mono_method_signature_full): New public method; takes a
4309         `MonoGenericContext *'.
4310         (find_method): Use mono_method_signature_full() and pass the
4311         klass'es context to it.
4312
4313         * class.c (mono_class_is_inflated_method): Use
4314         mono_method_signature_full() and pass the context to it.
4315
4316 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
4317
4318         * object.c: add proper locking in mono_remote_class_vtable(),
4319         fixes possible memory corruption.
4320
4321 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
4322
4323         * marshal.c (mono_remoting_marshal_init): set
4324         initialized after initialization.
4325
4326 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4327
4328         * locales.c : hush.
4329
4330 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
4331
4332         * object.c (extend_interface_array): fix really silly
4333         memory corrupting / comparison bug.
4334
4335 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4336
4337         * reflection.c: Functions added to support the creation
4338         of CustomAttributeData, which includes Attribute data
4339         used by ReflectionOnly methods.
4340
4341         * reflection.h:  mono_reflection_get_custom_attrs_data and
4342          mono_custom_attrs_data_construct added (functions exposed).
4343
4344          * icall.c: Added mono_reflection_get_custom_attrs_data
4345          as icall.
4346         
4347 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
4348
4349         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
4350         lupus's request.
4351
4352 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
4353
4354         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
4355
4356         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
4357         dynamic DllImportAttribute.
4358
4359         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
4360         dynamic DllImportAttribute.
4361
4362         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
4363         Fixes #75162.
4364
4365 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4366
4367         * threads.c: avoid segfault when an unstarted thread is aborted.
4368
4369 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
4370
4371         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
4372         Returns the name and version of the runtime for reporting.
4373
4374 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4375
4376         * appdomain.c: bump corlib version.
4377         * object-internals.h: new field in MonoReflectionAssembly.
4378
4379 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4380
4381         * object-internals.h: Carlos forgot to add this field.
4382
4383 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4384
4385         * icall.c: Added create_version to create instances
4386         of Version of MonoReflectionAssemblyName. This change helps
4387         the AssemblyName tests to keep running fine.
4388         
4389 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
4390   
4391         * object.c (mono_method_return_message_restore): A somehow less
4392         intrusive fix for #75138.
4393
4394 2005-06-03  Raja R Harinath  <rharinath@novell.com>
4395
4396         * object.c (mono_method_return_message_restore): Fix computation
4397         of expected number of out args.
4398
4399 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4400
4401         * reflection.c (mono_image_get_method_info): Fix the case when the
4402         charset is empty.
4403
4404 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
4405
4406         * object.c: Added missing null check in
4407           mono_method_return_message_restore.
4408
4409 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4410
4411         * reflection.c (mono_image_get_method_info): Handle the case when
4412         dllentry is empty.
4413
4414 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
4415
4416         * object.c: When creating the vtable for a proxy, take into account
4417         all inherited interfaces, not only the ones registered in
4418         iclass->interfaces. This fixs bug #74996.
4419         Also, in mono_method_return_message_restore, verify that the array
4420         of out args has the expected lengh.
4421
4422 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4423
4424         * socket-io.c: update the timeout in Poll when the call is interrupte.
4425
4426 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4427
4428         * socket-io.c: support abort/suspend in Select_internal after last
4429         change.
4430
4431 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4432
4433         * threadpool.c: remove warning.
4434
4435 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4436
4437         * icall.c:
4438         * socket-io.[ch]: Select_internal uses poll() now when available, thus
4439         removing the 1024 limit from select(). Runtime part of the fix for
4440         bug #71203.
4441
4442 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4443
4444         * socket-io.c: when resolving the addresses for the same
4445         host returned by gethostname(), get the local IPs from the interface
4446         list. Loopback addresses are discarded if the are interfaces up with
4447         non-loopback ones. Fixes bug #63265.
4448
4449 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
4450
4451         * appdomain.c, verify.c, object-internals.h, reflection.c:
4452         bumped corlib number to 36, and added new extra_flags field
4453         to ReflectionMethodBuilder and friends.  Fixes #75060.
4454
4455 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
4456
4457         * gc.c: register a new weak link only if the object is non-null
4458         (fixes bug#75047).
4459
4460 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4461
4462         * culture-info.h : short time pattern too.
4463
4464 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4465
4466         * culture-info.h : expand long time pattern string length.
4467
4468 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4469
4470         * culture-info-table.h : update (more French date format; #72788).
4471
4472 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
4473
4474         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
4475         the method is static. Fixes #75029.
4476
4477 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
4478
4479         * reflection.c: Update the table_idx field of method builders after
4480         saving the module, since it can change. This is a workaround for
4481         bug #74914. 
4482
4483 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4484
4485         * culture-info-table.h : update (additional French date format).
4486
4487 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4488
4489         * icall.c (ves_icall_type_Equals): Revert last change.
4490         
4491         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
4492
4493         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
4494
4495 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
4496
4497         * class-internals.h: Added executioncontext_class field to 
4498         MonoDefaults structure.
4499         * domain.c: Cache System.Threading.ExecutionContext class in 
4500         mono_defaults.
4501         * object.c: Capture the ExecutionContext for asynchroneous calls in
4502          mono_async_result_new.
4503         * object-internals.h: Added execution_context and original_context 
4504         fields to MonoAsyncResult. Added execution_context to MonoThread.
4505         * security-manager.c|.h: Added mono_get_context_capture_method to 
4506         return the capture method (if required by the security manager or by
4507         the framework version used).
4508         * threadpool.c: Apply capture (if present) ExecutionContext in 
4509         mono_async_invoke and revert to original context after it completes.
4510
4511 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
4512
4513         * culture-info-table.h : updated (real hacky solution for zh-CHT).
4514
4515 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
4516
4517         * culture-info-table.h : zh-CHT related workaround.
4518
4519 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4520
4521         * marshal.c (emit_marshal_custom): Add some error checking and call the
4522         methods in the ICustomMarshaler interface. Fixes #74875.
4523         
4524         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
4525         native->managed wrappers.
4526
4527 2005-05-12  Martin Baulig  <martin@ximian.com>
4528
4529         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
4530         here and use the loader lock.
4531
4532         * mono-debug.c: Properly lock when the debugger is not attached.
4533         (mono_debug_init): Release the initial lock if we're not running
4534         in the debugger.
4535
4536 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4537
4538         * marshal.c (emit_marshal_custom): Pass through NULL values without
4539         calling the custom marshalling routines.
4540
4541         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
4542         conversion in structures. Fixes #74882.
4543
4544 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
4545
4546         * culture-info-table.h : zh-* cultures were missing.
4547
4548 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
4549
4550         * threads.c: Added a new event background_change_event which is signaled
4551         when a thread changes its background mode.
4552         Moved here several checks previously done in managed code. The checks
4553         require the thread lock, and using the thread lock in managed code
4554         can result in deadlocks.
4555         Merged Start_internal and Thread_internal into a single method. Now 
4556         Thread_internal does all work of creating and starting a thread.
4557         Added icalls for setting and getting the state of the object. Moved from
4558         managed code to avoid locking there.
4559         Added wait_for_tids_or_state_change() which is called instad of
4560         wait_for_tids when waiting for non-backround threads to end. This method
4561         will return if one of the threads ends or the background_change_event
4562         is signaled.
4563         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
4564         the background mode. This method signals the background_change_event
4565         event.
4566         * icall.c:
4567         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
4568         removed Start_internal.
4569         
4570 2005-05-11  Martin Baulig  <martin@ximian.com>
4571
4572         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
4573         to order of some fields to get proper alignment on 64-bit machines.
4574
4575 2005-05-11  Martin Baulig  <martin@ximian.com>
4576
4577         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
4578         changes as they're broken and completely fuck up the debugger.
4579
4580         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
4581
4582 2005-05-10  Martin Baulig  <martin@ximian.com>
4583
4584         * reflection.c (mono_reflection_generic_class_initialize): Don't
4585         call mono_class_setup_parent() here.
4586
4587 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4588
4589         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
4590         send/receive timeout use an integer in milliseconds. We were using a
4591         struct timeval.
4592
4593 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4594
4595         * locales.c:
4596         (internal_get_cultures): reserve the first slot of the array for the
4597         InvariantCulture, which will be filled in managed code.
4598
4599 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
4600
4601         * reflection.c (mono_image_fill_module_table): Initialize the
4602         GENERATION field as well.
4603
4604 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4605
4606         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
4607         Monitor.Enter on the object.
4608
4609 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4610
4611         * threads.c: Enable the wait for running threads when exiting.
4612         * icall.c: Suspend all threads before exiting.
4613
4614 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4615
4616         * assembly.c (mono_assembly_load_reference): Fix warning.
4617
4618 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4619
4620         * threadpool.c: changed the default number of threads per cpu. From now
4621         on, the default will be 20 + (5 * number of cpus) instead of 50.
4622
4623 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
4624
4625         * loader.c (mono_method_get_signature_full): Add locking here.
4626
4627 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
4628
4629         * appdomain.c: Moved methods for parsing and freeing assembly
4630         names to assembly.c.
4631         * assembly.c, domain-internals.h: Created public methods for parsing
4632         assembly names. Fixed mono_assembly_load_with_partial_name:
4633         it now finds the best match, taking into account the version,
4634         token and culture specified in the partial name. Also return
4635         the latest version if no version information is specified.
4636
4637 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
4638
4639         * threadpool.c: replace check for SocketAsyncCall class.
4640
4641 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4642
4643         * threadpool-internals.h:
4644         * Makefile.am: added threadpool-internals.h
4645
4646         * threadpool.c: call mono_unhandled_exception on exceptions not handled
4647         that happen in threadpool threads (tested on MS).
4648         (mono_thread_pool_remove_socket): new function that dispatch any pending
4649         AIO call on a socket that is closing. By now only epoll really needs it,
4650         as select/poll wake up when the socket closes.
4651
4652
4653         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
4654
4655 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
4656
4657         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
4658
4659 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
4660
4661         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
4662
4663 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
4664
4665         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
4666         has an abort request, convert it into a suspend request.
4667
4668 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
4669
4670         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
4671         warning for the usage of `UnmanagedFunctionPointerAttribute' which
4672         is not supported yet.
4673
4674 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4675
4676         * image.c: register assemblies loaded from data (bundles) in the loaded
4677         assemblies hash. Fixes bug #74772.
4678
4679 2005-04-29  Martin Baulig  <martin@ximian.com>
4680
4681         * class.c (mono_type_get_name_recurse): Update to the new naming
4682         schema from the latest .NET 2.x beta2.
4683         (mono_class_setup_vtable_general): If we're a generic instance,
4684         copy the vtable from our generic type definition and inflate all
4685         the methods in it.
4686
4687         * loader.c (find_method): Update to the new naming schema from the
4688         latest .NET 2.x beta2.
4689
4690 2005-04-29  Raja R Harinath  <harinath@gmail.com>
4691
4692         * class.c (mono_class_init): Add a mono_loader_unlock to the
4693         #74734 fix.
4694
4695 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4696
4697         * icall.c (ves_icall_System_Environment_Exit): Remove the 
4698         suspend_all_other_threads () call for the time being, since it can hang.
4699
4700         * threads.c (mono_thread_manage): Similarly, disable the waiting for
4701         the background threads to exit, since it can also hang.
4702
4703         * class.c (mono_class_init): Applied patch from Ankit Jain 
4704         (radical@gmail.com). Avoid pending init errors when a field refers
4705         to a nested class using a typeref. Fixes #74734.
4706
4707         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
4708         this for dynamic modules.
4709
4710 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4711
4712         * threads.c: don't wait for threads that are in the process of aborting
4713         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
4714         and waiting for background threads to finish. This makes xsp and
4715         mod-mono-server exit without random length delays and/or hangs.
4716
4717 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4718
4719         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
4720
4721 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
4722
4723         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
4724         dynamic types to prevent infinite loops. Fixes #74727.
4725
4726         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
4727         ..._is_assignable_to.
4728
4729 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
4730
4731         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
4732
4733 2005-04-25  Martin Baulig  <martin@ximian.com>
4734
4735         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
4736
4737         * domain.c
4738         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
4739
4740         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
4741
4742         * reflection.c (build_compressed_metadata): Set metadata header
4743         version to 2.0.
4744
4745 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4746
4747         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
4748         number into an integral and a decimal part. Fixes #70473.
4749
4750         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
4751
4752 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
4753
4754         * culture-info-table.h : reflected the latest locale-builder output.
4755
4756 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4757
4758         * threadpool.c: check for SuspendRequested too when deciding if
4759         mono_thread_interruption_checkpoint should be called.
4760
4761 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4762
4763         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
4764         * threads.c: remove interruption_mutex and use Interlocked instead. When
4765         suspending all the threads, wait for all the suspended events at once.
4766         If we're shutting down and get an APC that is going to be queued,
4767         call mono_thread_execute_interruption immediately, as the thread might
4768         be sleeping on a pthread condition or mutex.
4769
4770         * icall.c: call mono_runtime_set_shutting_down before suspending the
4771         threads.
4772
4773         Fixes bug #74693. And now xsp is happier when exiting.
4774
4775 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4776
4777         * loader.c (mono_stack_walk): Fix #74690.
4778
4779 2005-04-22  Martin Baulig  <martin@ximian.com>
4780
4781         * mono-debug.h (MonoDebugMethodJitInfo): Added
4782         `MonoDebugMethodJitInfo *jit'.
4783
4784         * mono-debug.c (mono_debug_read_method): Cache the
4785         MonoDebugMethodJitInfo in `address->jit'.
4786         (mono_debug_free_method_jit_info): New public method.
4787
4788 2005-04-22  Martin Baulig  <martin@ximian.com>
4789
4790         * class.c (mono_class_is_assignable_from): Disallow
4791         type parameter -> interface.
4792
4793 2005-04-21  Dick Porter  <dick@ximian.com>
4794
4795         * threads.c (mono_thread_create): Turn an assertion into an error.
4796
4797 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4798
4799         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4800         
4801         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4802         Fix some gcc 4.0 warnings.
4803
4804 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4805
4806         * file-io.c: fix alt dir separator char on unix systems
4807         and cleanup (fixes bug #71214).
4808
4809 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4810
4811         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4812         a call to a remote domain, since the method may be an
4813         interface method in the client domain. This fixes bug #74192.
4814
4815 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4816
4817         * threadpool.c: recv/send are now performed before going back to managed
4818         code to save one transition.
4819
4820 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4821
4822         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4823
4824         * metadata/threadpool.c: removed hack to workaround the bug above.
4825
4826         Fixes bug #74618.
4827
4828 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4829
4830         * reflection.c reflection.h: Fix handling of parameter defaults in
4831         dynamic methods. Also fixes handling of parameter attributes.
4832         Fixes #74609.
4833
4834         * mono-debug.c (mono_debug_close_image): Fix warning.
4835
4836 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4837
4838         * socket-io.h: replaced old unused field with new 'blocking'.
4839         * threadpool.c: restore socket blocking state on windows(tm).
4840
4841 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4842
4843         * icall.c: don't return the codebase in the AssemblyName[] returned by
4844         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4845         * object-internals.h: Removed FIXME (fields were presents) and fixed
4846         versioncompat declaration.
4847
4848 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4849
4850         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4851         not closed, so don't cleanup when it happens.
4852
4853 2005-04-13  Chris Toshok  <toshok@ximian.com>
4854
4855         * mono-debug-debugger.h: change prototype for
4856         mono_debugger_lookup_type.
4857
4858         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4859         this function, although it should probably be named
4860         mono_debugger_init_type.
4861
4862 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4863
4864         * threadpool.c: fix non-AIO case.
4865
4866 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4867
4868         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4869         the built-in profiler to measure just JIT compilation times.
4870
4871 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4872
4873         * threadpool.c: the epollfd might be closed by another thread at
4874         any time, so ignore EBADF at treat it as a "we're closing" sign.
4875
4876 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4877
4878         * threadpool.c: release the semaphores with a count equals to the number
4879         of working threads in both IO and regular pools. Fixed typo that messed
4880         up the count of IO pool threads. Don't initialize the pipe handles if
4881         we're using epoll.
4882
4883 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4884
4885         * threadpool.c: some systems don't like a NULL when deleting the socket
4886         from epoll.
4887
4888 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4889
4890         * threadpool.c: fix semaphore allocation.
4891
4892 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4893
4894         * threadpool.c: added epoll() based implementation for asynchronous IO
4895         that is used instead of the default poll() when available.
4896         It can be disabled by setting MONO_DISABLE_AIO.
4897
4898 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4899
4900         * threadpool.c: windows needs 'closesocket' and instead of returning
4901         0 when the stream is closed while in select, it returns -1. Fixes bug
4902         #74573.
4903
4904 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4905
4906         * class.c (class_compute_field_layout): Fix the regression caused by
4907         the previous try.
4908
4909 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4910
4911         * threadpool.c: separate pool for socket async. IO.
4912         * threadpool.h: mono_max_worker_threads is not a global any more.
4913
4914 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4915
4916         * class.c (class_compute_field_layout): Fix #74549.
4917
4918 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4919
4920         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4921         use 2 connected sockets instead.
4922
4923 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4924
4925         * mono-config.c: Add new entry point for mkbundle
4926         mono_config_parse_memory. 
4927
4928 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4929
4930         * threadpool.c: removed another unused function.
4931
4932 2005-04-08  Ankit Jain  <radical@corewars.org>
4933
4934         * reflection.c (get_default_param_value_blobs): Add 'types'
4935         parameter to get the types encoded in the constant table.
4936         (mono_param_get_objects): Use the type from the constant table,
4937         not the type of the parameter, when creating default values.
4938         Handle null default values correctly.
4939
4940 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4941
4942         * file-io.c:
4943         * file-io.h:
4944         * threadpool.c:
4945         * threadpool.h:
4946         * icall.c:
4947         * socket-io.c: removed dead code for async IO.
4948
4949 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4950
4951         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4952
4953         * threadpool.c: intercept socket async. calls and pass them to a thread
4954         that is polling and dispatching the job items to the threadpool as
4955         socket become ready. Fixes bugs #71217, #71933.
4956
4957         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
4958         between char and short/ushort arrays.
4959
4960         * socket-io.c: remove dead code.
4961
4962 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4963
4964         * locales.c,
4965           icall.c : removed InternalToUpper_Comp() and
4966           InternalToLower_Comp().
4967
4968 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4969
4970         * char-conversions.h : The tables were incorrectly generated. Should
4971           be generated against invariant culture.
4972
4973 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4974
4975         * object.c (mono_runtime_invoke_array): Fix return value when 
4976         passing pre-created valuetype objects to ctors.
4977
4978         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
4979         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
4980         Fixes #74338.
4981
4982 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
4983
4984         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
4985         only used with --security and hides the wrong corlib version error.
4986
4987 2005-03-30  Joshua Tauberer  <tauberer@for.net>
4988
4989         * class.c: Changed mono_class_name_from_token so that types
4990         outside of a namespace don't have an initial period.  Improved
4991         the g_warning message used in _mono_class_get when loading
4992         fails.
4993         * assembly.c: In mono_assembly_load_reference, when an assembly
4994         can't be found, "No such file or directory" is misleading and
4995         unhelpful because a few paths were checked for the presence of
4996         the assembly.  When that happens (ENOENT), display a nicer
4997         message indicating the directories that were searched.  In all
4998         cases, the warning is made easier to read for non-hackers.
4999
5000 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
5001
5002         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
5003         project/solution.
5004         * appdomain.h|domain.c: Removed inline from functions.
5005         * appdomain.c: Reduced warnings when compiling on windows.
5006         * icall.c: Fixed output_debug declaration to gunichar2*.
5007         * mono-config.c: Reduced warnings when compiling on windows.
5008         * rand.c: Added missing "windows.h". Added missing return value.
5009         * rawbuffer.c: Added missing winsock2.h for windows.
5010         * sysmath.h: Added mono-compiler.h header to allow/ease 
5011         compilation with non-GCC compilers.
5012         * threads.c: Fixed declarations to compile with VS.NET C compiler.
5013         Removed cast warnings.
5014
5015         Adapted from the work of J Lothian (for VC6).
5016
5017 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
5018
5019         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
5020         from default_path.
5021
5022 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
5023
5024         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
5025         the 2.0 profile.
5026
5027 2005-03-27  Raja R Harinath  <harinath@gmail.com>
5028
5029         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
5030         has to be in $(exec_prefix).  $(prefix) is for arch-independent
5031         stuff, and it would probably use $(prefix)/share rather than
5032         $(prefix)/lib.
5033
5034 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5035
5036         * console-io.c: added 2 includes that might be missing.
5037
5038 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
5039
5040         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
5041         profile.
5042
5043         * reflection.c (create_custom_attr): Allocate the params array using
5044         alloca so it gets GC tracking.
5045
5046 2005-03-23  Chris Toshok  <toshok@ximian.com>
5047
5048         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
5049         out some spew.
5050
5051 2005-03-24  Raja R Harinath  <rharinath@novell.com>
5052
5053         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
5054         changes to pick up any changes in prefix, etc.
5055
5056 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5057
5058         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
5059         
5060         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
5061         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
5062
5063 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5064
5065         * class-internals.h object-internals.h class.c reflection.c: Extend the
5066         mono_lookup_dynamic_token () function to return the class of the
5067         token as well. 
5068
5069         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
5070         well. Fixes #73848.
5071
5072 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
5073
5074         * security-manager.c: Skip inheritance checks for intra-corlib
5075         class inheritance and method overrides. This skips a lot of checks
5076         and (anyway) permissions cannot work until corlib is loaded.
5077
5078 2005-03-23  Martin Baulig  <martin@ximian.com>
5079
5080         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
5081         MONO_TYPE_GENERICINST.  
5082
5083 2005-03-23  Martin Baulig  <martin@ximian.com>
5084
5085         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
5086
5087 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5088
5089         * class.c: added locking comments to some functions.
5090         Cache the interface offsets arrays (saves about 20 KB
5091         of runtime memory in a typical app).
5092         Reduce the time overhead in mono_class_setup_supertypes ().
5093
5094 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
5095
5096         * icall.c: speedup and fix leaks in GetMethodsByName and
5097         GetPropertiesByName.
5098
5099 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5100
5101         * reflection.c: some locking fixes.
5102
5103 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5104
5105         * metadata.c: added missing break in case statement.
5106
5107 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
5108
5109         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5110         typedbyref return values. Fixes #73941.
5111
5112 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
5113
5114         * security-manager.c|h: Added demandunmanaged method and 
5115         suppressunmanagedcodesecurity class to MonoSecurityManager.
5116         Renamed aptc class to allowpartiallytrustedcallers.
5117
5118 2005-03-17  Martin Baulig  <martin@ximian.com>
5119
5120         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
5121
5122 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5123
5124         * file-io.c: disabled file async. IO using aio_*. It uses the
5125         threadpool now. Workaround for bug #73718.
5126
5127 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5128
5129         * assembly.h, mono-config.c: added code to deal with bundled configs
5130         for bundled assemblies.
5131
5132 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
5133
5134         * *.c, private.h: cleanup, removing old private.h header file.
5135
5136 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
5137
5138         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
5139         and throw_on_unmappable_char attributes.
5140
5141 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
5142
5143         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
5144         _ProcessName_internal.
5145
5146 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
5147
5148         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
5149         #73631.
5150
5151         * icall.c threads.c threads-types.h: Remove slothash icalls as they
5152         are no longer used.
5153
5154 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
5155
5156         * object.c (compute_class_bitmap): Add support for generics. Fixes
5157         #73527.
5158
5159 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
5160
5161         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
5162
5163 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5164
5165         * filewatcher.c: commented out the code for windows watcher, as we don't
5166         use it (we use the managed implementation instead).
5167
5168 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
5169
5170         * object-internals.h (MonoThread): Remove 'unused1' field.
5171
5172         * appdomain.c: Bump corlib version.
5173
5174         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
5175
5176         * reflection.c (mono_reflection_create_runtime_class): Remove the
5177         AssemblyBuilder.Save optimization since it causes too many problems.
5178
5179 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
5180
5181         * exception.c|h: Added mono_get_exception_reflection_type_load to
5182         create a ReflectionTypeLoadException object.
5183         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
5184         to return NULL is a InheritanceDemand fails during reflection. Updated
5185         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
5186         ReflectionTypeLoadException if an InheritanceDemand fails during 
5187         reflection. Added icall mapping for GetLinkDemandSecurity.
5188         * security-manager.c|h: Added ves_icall_System_Security_
5189         SecurityManager_GetLinkDemandSecurity internal call to return the
5190         class and methods permissions set for a LinkDemand. Removed unused
5191         fields in MonoSecurityManager.
5192
5193 2005-03-10  Martin Baulig  <martin@ximian.com>
5194
5195         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
5196         it's a generic instance.
5197
5198 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
5199
5200         * reflection.c (mono_get_object_from_blob): Applied patch from
5201         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
5202
5203         * class.c (mono_class_is_assignable_from): Another try at fixing 
5204         #73469 without breaking anything.
5205
5206 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
5207
5208         * class.c: (mono_class_is_assignable_from): Revert the last changes
5209         since they don't work with generics.
5210         
5211         * class.c (mono_class_is_assignable_from): Fix build bustage.
5212
5213         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
5214         the managed IsAssignableFrom method. Fixes #73469.
5215
5216         * reflection.c (mono_reflection_call_is_assignable_from): New helper
5217         function.
5218
5219 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
5220
5221         * object.c (mono_load_remote_field_new): Fix returning uninitialized
5222         memory when the remoting callback does not sets the out arguments.
5223         Fixes #73007.
5224
5225         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
5226         by mistake.
5227
5228         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
5229
5230         * object-internals.h (MonoStackFrame): Sync with managed object layout.
5231
5232         * appdomain.c: Bump corlib version.
5233
5234 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
5235
5236         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
5237         function.
5238
5239         * threads.c (mono_thread_attach): Detect threads which are not started
5240         by the GC pthread wrappers.
5241
5242 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
5243
5244         * icall.c: Added new icall for RNG.
5245         * rand.c|h: Added new icall to open the RNG. This allows to share a 
5246         single handle on Linux to access /dev/urandom and fix #73183.
5247
5248 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
5249
5250         * object.c: setting the new vtable in a transparent proxy object must
5251         not change the GC descriptor.
5252
5253 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5254
5255         * object.c: fixed compilation without GCJ support.
5256         * reflection.c: for runtime-created types ensure klass->has_references
5257         is correct (bug #73215).
5258
5259 2005-03-02  Martin Baulig  <martin@ximian.com>
5260
5261         * class.c (mono_class_is_assignable_from): Make this work if
5262         `oklass' is a generic instance; fixes #72831.
5263
5264 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5265
5266         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
5267         with hasthis set.
5268         
5269         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
5270
5271         * marshal.c: Reorganize native->managed marshalling code to also use
5272         the emit_marshal_... functions.
5273
5274 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5275
5276         * object.c: typed allocs have issues with bitmap sizes > 30,
5277         so check for max_set >= 30.
5278
5279 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5280
5281         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
5282         managed code. Fixes #73012.
5283
5284         * metadata.h (MonoMarshalSpec): Add elem_mult field.
5285
5286         * metadata.c reflection.c: Load/Emit elem_mult as well.
5287         
5288         * metadata.h (MonoMarshalSpec): Add comment.
5289
5290         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
5291
5292         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
5293         num_elem to -1 if not given.
5294
5295         * object-internals.h (MonoReflectionMarshal): Add has_size field.
5296
5297         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
5298         given values.
5299
5300 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
5301
5302         * null-gc.c (mono_gc_free_fixed): Was not compilable.
5303
5304 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
5305
5306         * reflection.c (encode_marshal_blob): Encode param_num field as well.
5307
5308         * object-internals.h (MonoReflectionMarshal): Add param_num field.
5309
5310 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5311
5312         * object.c: generalized the reference bitmap creation
5313         and added hooks for the new GC.
5314         * class-internals.c: removed the gc_bitmap field from MonoClass.
5315
5316 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5317
5318         * domain.c: help the compiler to produce better code
5319         in mono_jit_info_table_find ().
5320
5321 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5322
5323         * object.c: make all allocations look typed.
5324
5325 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5326
5327         * socket-io.c: load Mono.Posix if it's not loaded already
5328         (fixes bug#73033).
5329
5330 2005-02-24  Martin Baulig  <martin@ximian.com>
5331
5332         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
5333         * reflection.c (dup_type): Likewise.
5334
5335 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
5336
5337         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
5338         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
5339
5340 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5341
5342         * domain.c, threads.c, object-internals.h: make the critical thread
5343         local vars use the fast access mode (even when we're compiled in
5344         a lib). Provide accessors to be used by the jit during codegen.
5345
5346 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5347
5348         * appdomain.c: Changed hook functios behavior to include
5349         support for the reflection only assemblies. Some icalls were changed
5350         to support the mentioned assemblies too. Signatures of static methods
5351         try_assembly_resolve and real_load now have an additional parameter:
5352         refonly.
5353
5354         * assembly.c: General changes to mono_assembly_ methods to support
5355         reflection only api. Functions mono_assembly_open, mono_assembly_load,
5356         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
5357         suffix, to support an additional gbool parameter to specify whether
5358         the assembli is reflection only or not. Created some new hook functions 
5359         to add support for reflection only assemblies. Signatures of static 
5360         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
5361         have now an additional parameter: refonly.
5362
5363         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
5364         indicating whether the assembly is reflection only or not.
5365
5366         * exception.c: Add mono_get_exception_invalid_operation.
5367
5368         * icall.c: Throw an InvalidOperationException when trying to invoke
5369         a property/method/event, or trying to set/get the value of a field.
5370         Also add an icall to retrieve the ref_only flag to the
5371         MonoReflectionAssembly.
5372
5373 2005-02-23  Chris Toshok  <toshok@ximian.com>
5374
5375         Part of fix for #72827.
5376         * mono-debug.c (mono_debug_add_method): add lexical block data to
5377         the info we write.  Kind of a hack at the moment - we copy the
5378         lexical block info from the MonoDebugMethodInfo to the
5379         MonoDebugMethodJitInfo here, before writing it.
5380         (mono_debug_read_method): read the lexical block info.
5381
5382         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
5383
5384         * debug-mono-symfile.h: add lexical block support.
5385
5386         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
5387         support.
5388
5389 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5390
5391         * loader.c (mono_lookup_pinvoke_call): Fix warning.
5392
5393         * object.c (mono_runtime_free_method): Call mono_free_method () and
5394         put the TODOs there.
5395
5396         * loader.c (mono_free_method): Free up most memory allocated for 
5397         dynamic methods.
5398
5399 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5400
5401         * reflection.c: properly flag a Type argument to a
5402         named custom attr value (bug #72248).
5403
5404 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5405
5406         * reflection.c: reduce code duplication in named custom
5407         attribute encoding.
5408
5409 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
5410
5411         * reflection.c: properly encode custom attrs of type object
5412         (bug #72649).
5413
5414 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5415
5416         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
5417
5418 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
5419
5420         * socket-io.c: load System.dll if it's not loaded already
5421         (bug #72850 and #70477).
5422
5423 2005-02-21  Martin Baulig  <martin@ximian.com>
5424
5425         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5426         generic instances.
5427
5428 2005-02-21  Martin Baulig  <martin@ximian.com>
5429
5430         * reflection.c (mono_image_build_metadata): We also need to
5431         "fixup" the MethodImpl table after we computed the final method
5432         indices.  Call fixup_methodimpl() to do that.
5433         (fixup_methodimpl): New private method.
5434
5435 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5436
5437         * assembly.c: special case mscorlib.dll (bug#72536),
5438         patch from Carlos Alberto Cortez.
5439
5440 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
5441
5442         * threads-types.h threads.c: Fix build bustage.
5443
5444         * threads.c: Use a union for long<->double conversions.
5445
5446         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
5447         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
5448
5449         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
5450         containing the checkpoint call with NOT_TAKEN.
5451         
5452         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
5453         checkpoint before pushing the arguments, so they won't have to be
5454         spilled to stack.
5455
5456 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5457
5458         * domain.c, assembly.c, domain-internals.h: make some data
5459         const and relocation-free.
5460
5461 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
5462
5463         * object.c, appdomain.c, class-internals.h: introduce the
5464         MonoClassRuntimeInfo structure to hold the info needed to
5465         use a class at runtime. Made mono_class_vtable() lock-free
5466         for all the appdomains.
5467
5468 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
5469
5470         * metadata-internals.h, image.c: introduce a per-image mempool to
5471         be used for memory that has the same lifetime as the image.
5472
5473 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
5474
5475         * domain.c: In mono_init_internal(), instead of selecting the first
5476         runtime version supported by an executable, get a list of all
5477         supported versions and select the one for which an mscorlib exists
5478         (since even if the runtime supports a given version, it doesn't mean
5479         that the framework for that version is installed).
5480         Modified get_runtimes_from_exe to support this behavior.
5481         In supported_runtimes, added information about additional system
5482         assembly versions.
5483         
5484         * assembly.c: Added support for more than one system assembly version
5485         per runtime version. Updated the assembly list.
5486         In mono_assembly_remap_version, removed the initial version check,
5487         since we don't know to which version we need to compare until we
5488         get the version set on which the assembly is based.
5489         Moved the code for loading corlib into the new method
5490         mono_assembly_load_corlib(), so it can be used by the initialization
5491         code.
5492         
5493         * domain-internals.h: Updated data structures and added declaration
5494         for mono_assembly_load_corlib.
5495
5496 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5497
5498         * reflection.c (resolve_object): Fix the creation of the signature in 
5499         the SignatureHelper case.
5500
5501         * assembly.c (mono_assembly_remap_version): Fix binary search.
5502         
5503 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
5504  
5505         * class.c: Added inheritance check when a method is overloaded (from a
5506         virtual method or when implementing an interface) and when a class is
5507         inherited. Added functions to set a failure for a class and to 
5508         retreive the exception from a failure.
5509         * class-internals.h: Added fields to MonoClass to keep the exception
5510         information status for inheritance (or other exceptions) to be thrown
5511         later (i.e. not at load time).
5512         * object.c: Throw the inheritance SecurityException when a type is to 
5513         be created with either class or method inheritance violations.
5514         * reflection.c|h: Fix when getting declsec from a class. Removed 
5515         unrequired code for class. Improved sanity in parameter naming.
5516         * security-manager.c|h: Added functions to check for class and method
5517         inheritance.
5518
5519 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5520
5521         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
5522         and has_finalize in dynamic types as well.
5523
5524 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
5525
5526         * culture-info-table.h : fixed currency format for en-GB (and so on).
5527
5528 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
5529
5530         * gc.c: ensure the GC handles never have 0 as a value.
5531
5532 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5533
5534         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
5535         a pointer to a struct to unmanaged code. Fixes #72625.
5536
5537 2005-02-16  Martin Baulig  <martin@ximian.com>
5538
5539         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
5540
5541 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5542
5543         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
5544
5545 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5546
5547         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
5548
5549         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
5550         UnmanagedFunctionPointerAttribute, use it for determining calling convention
5551         etc. Fixes #71471.
5552
5553         * reflection.c (mono_custom_attrs_get_attr): New helper function.
5554
5555         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
5556
5557 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
5558
5559         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
5560         changes to make the current context a field in MonoThread.
5561
5562 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5563
5564         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
5565         the last change.
5566         
5567         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
5568         extracted from mono_marshal_get_native_wrapper.
5569
5570         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
5571         to create wrappers around native functions.
5572
5573         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
5574         delegates for arbitrary function pointers. Fixes #71472.
5575
5576 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5577
5578         * threads.c: cleaned up the code a little.
5579
5580 2005-02-15  Martin Baulig  <martin@ximian.com>
5581
5582         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
5583         the data table.
5584
5585         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
5586         allocate larger chunks if needed.
5587
5588 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5589
5590         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
5591         in by mistake.
5592
5593 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
5594
5595         * domain.c: keep the domains in an array and ensure the domain ids
5596         are kept small, so they can be used as indexes to domain-specific data
5597         with a small memory overhead.
5598
5599 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5600
5601         * icall.c: Handle byref types in Type icalls. Fixes #72544.
5602
5603 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
5604
5605         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
5606
5607 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
5608
5609         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
5610
5611         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
5612         values.
5613
5614         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
5615         
5616 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
5617
5618         * domain-internals.h: add the hashtable here.
5619
5620         * class-internals.h: Remove `info' from MonoMethod
5621
5622         * domain.c: Add a new hashtable, jit_trampoline_hash
5623
5624 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5625
5626         * object.c: don't set the value of static fields
5627         (fixes bug#72494).
5628
5629 2005-02-11  Martin Baulig  <martin@ximian.com>
5630
5631         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
5632         (mono_debug_add_method): Silently ignore the method if it's too big.
5633         (mono_debug_add_type): Likewise.
5634
5635 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
5636
5637         * threads.c, appdomain.c: remove #ifdefs from the code.
5638
5639 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
5640
5641         * metadata-internals.h: Added flags to MonoAssembly to cache the most
5642         common security informations. This allows us to stay in unmanaged code
5643         when doing LinkDemand and it's special cases (except for the first 
5644         time for initialization). The flags a very much used with --security.
5645         * reflection.c|h: Added code to get declarative security attributes 
5646         for LinkDemand and InheritanceDemand. This required to refactor the
5647         existing code for Demand.
5648         * security-manager.c|h: Added new method fields for the special cases
5649         of LinkDemand.
5650
5651 2005-02-10  Martin Baulig  <martin@ximian.com>
5652
5653         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
5654         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
5655
5656 2005-02-10  Martin Baulig  <martin@ximian.com>
5657
5658         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
5659         debugging code; this is almost a complete rewrite.
5660
5661         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
5662
5663 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5664
5665         * domain.c, object.h: expose mono_string_equal () and 
5666         mono_string_hash ().
5667         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
5668         it's implemented in managed code.
5669
5670 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5671
5672         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
5673         lo leak objects between appdomains.
5674
5675 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5676
5677         * assembly.c: old compilers compilation fix from 
5678         robertj@gmx.net (Robert Jordan).
5679
5680 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
5681
5682         * class-internals.h: Little reminder for the future.
5683
5684         * debug-helpers.c: Fix up wrapper_type_names
5685
5686 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5687
5688         * image.c, metadata-internals.h: when loading an image from a file,
5689         mmap all of it and use the same codepaths as when using a
5690         in-memory image: the code is simpler and we use less memory
5691         (both writable and readonly).
5692
5693 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5694
5695         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
5696         API to alloc runtime data structures that need to be tracked by the
5697         GC and contain pointers.
5698         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
5699         make the code more readable and eventually use a different GC.
5700
5701 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
5702
5703         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
5704         for out arguments.
5705         
5706 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
5707
5708         * object.c: In release_type_locks(), don't release the cctor lock
5709         if it has already been released. This fixes a crash in the
5710         thread5 test.
5711
5712 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5713
5714         * gc.c, marshal.c, icall.c: register a delegate for finalization
5715         only when the native function pointer has been allocated for it.
5716
5717 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5718
5719         * object.c: cleaned up some code, allocate objects that are
5720         pointer free with the atomic malloc variant. Allocate memory
5721         for static data from the mempool if it's pointer-free.
5722         Allocate the bounds array at the end of the array data, when needed.
5723         * object-internals.h, object.h: move a private function in a private
5724         header.
5725         * class.c: handle missing case in tracking references in fields.
5726
5727 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5728
5729         * class.c, class-internals.h: keep track if a type has
5730         reference fields in either the instance or static fields.
5731
5732 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
5733
5734         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
5735         and renamed to MonoRuntimeInfo. Added fields to store the expected
5736         framework assembly version. Changed mono_get_framework_version and
5737         mono_get_runtime_version for a single mono_get_runtime_info method.
5738         
5739         * assembly.c: Added method to remap system assembly versions to the
5740         current executing runtime version. Removed old mapping code.
5741         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
5742         
5743         * icall.c, reflection.c: Track api changes.
5744
5745 2005-02-06  Miguel de Icaza  <miguel@novell.com>
5746
5747         * loader.c (method_from_memberref): Improve error reporting,
5748         produce the class name instead of the typeref/typedef index. 
5749
5750 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
5751
5752         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
5753
5754 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5755
5756         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
5757         stdcall and charset name mangling.  Reorganize the code and add
5758         some tracing stuff.
5759
5760 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5761
5762         * monodiet.c: More iters!
5763
5764         * marshal.c: Iter usage.
5765
5766         * icall.c: Iter usage.
5767
5768         * object.c: Use iters.
5769
5770         * debug-helpers.c: More iters
5771
5772 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5773
5774         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
5775         under win32.
5776
5777 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5778
5779         * mono-debug-debugger.c: use iters
5780
5781         * class.c, class-internals.h: mono_class_setup_events is static
5782         now
5783
5784         * All callers: use iters
5785
5786 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5787
5788         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5789         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5790
5791 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5792
5793         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5794
5795         * marshal.h: Add prototypes for ldfld/stfld_remote.
5796
5797         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5798         this is called during startup.
5799         
5800 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5801
5802         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5803         MonoThreadsSync struct private in monitor.c. Changed the way
5804         MonoThreadsSync is allocated so it's faster and there is no
5805         need to keep track of it with a finalizer and it uses less memory.
5806         This also finally allows us to allocate mono objects as ptrfree when
5807         there are no reference fields.
5808
5809 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5810
5811         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5812         disappearing link to the GC interface and use them to simplify
5813         the gchandles code.
5814
5815 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5816
5817         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5818         stfld_remote which call mono_load/store_field_new. This allows methods
5819         calling ldfld/stfld wrappers to be AOTed.
5820
5821         * console-io.c: Include sys/filio.h under solaris.
5822         
5823         * console-io.c: Include curses.h if needed correctly.
5824
5825 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5826         
5827         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5828         method->klass as well.
5829
5830         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5831
5832         * class.c (mono_class_init): Switch on lazy initialization of 
5833         methods.
5834
5835         * class.c (mono_class_get_finalizer): Handle the case when the 
5836         finalizer is inherited.
5837
5838 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5839
5840         * console-io.c: <curses.h> is needed by term.h on solaris.
5841
5842 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5843
5844         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5845         mono_class_setup_properties where possible. Remove this ftn from
5846         the header file, and make it static.
5847
5848 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5849
5850         * loader.c: Add missing setup_... call.
5851
5852         * class.c: Add missing setup_... calls.
5853
5854         * class.c (mono_class_init): Switch on lazy initialization of 
5855         the generic vtable.
5856         
5857         * class.c (mono_class_init): Fix generics broken by the recent changes.
5858
5859         * monodiet.c (handle_type): Add missing setup_... calls.
5860
5861         * class.c: Back out garbage in previous patch.
5862         
5863         * class.c: Add missing setup_... calls.
5864
5865         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5866         mono_class_setup_methods () if possible.
5867
5868         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5869
5870         * class-internals.h (MonoCachedClassInfo): New structure.
5871
5872         * class.c: Initialize properties and events fields of MonoClass lazily.
5873
5874         * class.c: Add infrastructure for lazily initializing the methods and
5875         vtable fields of MonoClass. Not yet used.
5876
5877         * class.c (mono_class_get_finalizer): New helper function.
5878
5879         * class.c: Add infrastructure for loading some class related data from
5880         an AOT file.
5881
5882         * object.c: Add infrastructure for initializing the vtable from data
5883         in the AOT file.
5884
5885         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5886
5887         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5888         appropriate initialization function before accessing parts of the
5889         MonoClass structure.
5890
5891         * marshal.c: Fix warnings.
5892         
5893         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5894
5895         * mono-debug-debugger.c (get_exception_message): Use 
5896         mono_class_get_method_from_name_flags ().
5897
5898 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5899
5900         * reflection.c, appdomain.c: Replace a few manual searches that
5901         Zoltan missed. (Paolo approved this part of my initial patch).
5902
5903 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5904
5905         * profiler.c: disable recording statistical events at report time.
5906
5907 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5908
5909         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5910         to byteswap arrays of enum values, too (bug #72080).
5911
5912 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5913
5914         * appdomain.c (set_domain_search_path): Allow this to be called if
5915         domain->setup is not yet set.
5916
5917         * loader.c (mono_method_get_index): New helper function.
5918
5919         * loader.c reflection.c: Use mono_method_get_index ().
5920
5921         * class.c (mono_class_get_method_from_name_flags): New helper method.
5922
5923         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5924         this.
5925
5926         * class.c (mono_class_get_cctor): New helper method.
5927
5928         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5929         mono_class_get_method () to look up methods.
5930
5931 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5932
5933         * console-io.c: Fix the build, this should work on Windows.
5934
5935 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5936
5937         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5938         be set to null to keep things valid
5939
5940 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5941
5942         * icall.c: added Console 2.0 icalls.
5943         * Makefile.am: added console-io.[ch]
5944         * console-io.[ch]: internal calls for Console 2.0 API.
5945
5946 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5947
5948         * class.c: make sure we consider all the interfaces
5949         when calculating max_interface_id (bug found by
5950         Jeroen Frijters running ikvm).
5951
5952 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5953
5954         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
5955         valuetype fields to null.
5956
5957         * object.c (set_value): Ditto. Fixes #71669.    
5958
5959 2005-01-31  Martin Baulig  <martin@ximian.com>
5960
5961         * metadata.c (mono_metadata_has_generic_params): New public
5962         function; checks whether something is a generic method.
5963
5964 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
5965
5966         * appdomain.c: fix infinite recursion when adding assemblies.
5967
5968 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
5969
5970         * object.c: Fix small typo to return all items for Environment.
5971         GetCommandLineArgs.
5972
5973 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5974
5975         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5976         reflection.c: more domain and assembly-unload related fixes
5977         and memory leaks plugs.
5978
5979 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
5980
5981         * 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.
5982
5983 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
5984
5985         * loader.c (mono_method_signature): Make this method lazy
5986         (mono_get_method_from_token): Don't computate the signature here.
5987
5988         Doing this saves quite a bit of memory. I got 90 kb on starting up
5989         monodoc. It should also save some disk reads on startup.
5990
5991         * *: MonoMethod->signature might be NULL now. You *MUST* use
5992         mono_method_signature.
5993
5994 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
5995
5996         * object.c (mono_runtime_get_main_args): Return an array from the
5997         current domain here. Fixes #71938.
5998
5999 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
6000
6001         * monitor.c: formatting changes to comply with the
6002         mono coding style and remove #ifdefs from the code.
6003
6004 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6005
6006         * metadata.c, private.h: remove some unneeded data
6007         and use a more compact representation for table schemas.
6008
6009 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
6010
6011         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
6012         to get a better distribution in hash tables.
6013         * *.c: use mono_aligned_addr_hash() where appropriate.
6014         * assembly.c: make var static.
6015
6016 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
6017
6018         * domain-internals.h: Put MonoJitInfo on a diet.
6019
6020         * domain.c: Fix a warning.
6021
6022 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6023
6024         * gc.c: rework the gc handles code to reuse handles
6025         when freed.
6026
6027 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6028
6029         * domain.c: fixed long standing bug in mono_string_equal() which
6030         was brought to light with the ldstr changes.
6031
6032 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
6033
6034         * reflection.c: Remove warning by adding missing include for marshal.h
6035
6036 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6037
6038         * domain.c, object.c: change the ldstr_table to hold
6039         MonoString* as keys: makes the runtime isinterned lookup
6040         faster and simplifies memory management.
6041
6042 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
6043  
6044         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
6045         possible to add imperative security checks before calling the icall.
6046         * reflection.c: Return security attributes on the original MonoMethod
6047         (and not the wrapped one). This fix permissions on icalls.
6048
6049 2005-01-25  Dick Porter  <dick@ximian.com>
6050
6051         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
6052         the check for mktime() support actually test the mktime() return
6053         value.  "Fixes" bug 71682, though the output is still different to
6054         MS.
6055
6056 2005-01-25  Martin Baulig  <martin@ximian.com>
6057
6058         * class.c (mono_class_is_assignable_from): Make this work for
6059         generic instances.
6060
6061 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
6062
6063         * marshal.c (mono_string_utf8_to_builder)
6064         (mono_string_builder_to_utf16): We might not have ownership of the
6065         string. In thise case, we need to create a new buffer.
6066
6067         * object-internals.h (mono_stringbuilder_capacity): sb->str might
6068         be null, in which case, use the default capacity.
6069
6070 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6071
6072         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
6073         GC events to the profiler.
6074
6075 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6076
6077         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
6078         if you don't want the GC to run.
6079
6080 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
6081
6082         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
6083         start providing a GC API and keeping different implementations in
6084         their own file.
6085         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
6086
6087 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
6088
6089         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
6090         mmap rather than allocating a huge buffer.
6091         (mono_debug_close_mono_symbol_file): Free the buffer allocated
6092         above.
6093
6094 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
6095
6096         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
6097         and CheckExecutionRights.
6098         * reflection.c|h: Keep the index of the declarative security to be 
6099         used, instead of the pointer, when AOT compiler is used. Also add 
6100         class initialization when requesting demands.
6101         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
6102         CheckExecutionRights. Both properties are now FALSE by default, and
6103         unmodifiable, unless the --security option is used.
6104
6105 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6106
6107         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
6108         reflection.c: properly refcount images and assemblies, many leaks fixed.
6109
6110 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6111
6112         * threadpool.c: increase the timeout for threads in the thread pool to
6113         10s.  Fixes bug #67159.
6114
6115 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
6116
6117         * class-internals.h: Sun's compiler insists on explicit
6118         signed on bit fields to handle then correctly.
6119
6120 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
6121
6122         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
6123         Make the size of the array fit only the number of invalid path
6124         chars that we have.
6125
6126         * class.c (_mono_class_get): Improve the error reporting when a
6127         class referenced is not found, to assist debugging. 
6128
6129 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
6130
6131         * threads.c: fix off-by-one error.
6132         * domain.c: free data allocated in the domain.
6133
6134 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
6135
6136         * reflection.c (mono_method_body_get_object): Fill out exception info
6137         as well.
6138
6139         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
6140         structure.
6141         
6142 2005-01-19  Martin Baulig  <martin@ximian.com>
6143
6144         * loader.c (mono_get_method_constrained): Make this work again.
6145
6146 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
6147
6148         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
6149         guint16 to match the managed side.
6150
6151         * reflection.c (mono_reflection_body_get_object): Fill out local
6152         variables array.
6153
6154         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
6155         as well.
6156
6157         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
6158         'local_var_sig_token'.
6159
6160 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
6161
6162         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
6163         System.Drawing.
6164
6165         * reflection.c (mono_method_body_get_object): Handle abstract and
6166         runtime methods.
6167
6168 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
6169
6170         * marshal.c, loader.c, class-internals.h, reflection.c:
6171         store the emthod data for a wrapper in an array instead of a list.
6172
6173 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
6174
6175         * marshal.c: change the code to allocate memory more
6176         conservatively for method wrappers.
6177
6178 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
6179
6180         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
6181         fields from MonoClass to the marshal info structure where they belong.
6182
6183 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6184
6185         * class.c, object.c, class-internals.h, marshal.c: rearrange
6186         some fields and tweak some types to lower memory usage.
6187
6188 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
6189
6190         * threads.c (signal_thread_state_change): Handle the case when the
6191         target thread is the current thread.
6192
6193         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
6194
6195         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
6196         emit_ptr_to_object_conv. 
6197
6198         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
6199         marshalling. Fixes #71352.
6200
6201 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6202
6203         * metadata.h, blob.h: move table enum to blob.h so it can be included
6204         in any header.
6205         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
6206         cut the size of MonoImage/MonoDynamicImage.
6207
6208 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
6209
6210         * profiler.c (mono_profiler_install_simple): Fix default arguments.
6211
6212 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6213
6214         * reflection.c, reflection.h, icall.c: add a function to check
6215         if an attribute type is defined for a metadata object.
6216
6217 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
6218
6219         * object-internals.h: Added some needed fields from StringBuilder class.
6220         * marshal.c: Set the maxCapacity when creating a StringBuilder.
6221
6222 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
6223
6224         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
6225         threads before shutting down the runtime.
6226
6227         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
6228
6229 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6230
6231         * object-internal.h, threads.c: implement stacksize and 
6232         parameterized thread start functionality (requires
6233         matching corlib). Marked broken code for later removal.
6234
6235 2005-01-12  Martin Baulig  <martin@ximian.com>
6236
6237         * class-internals.h (MonoGenericClass): Moved the `initialized'
6238         flag to MonoDynamicGenericClass, removed `init_pending'.
6239         (MonoGenericInst): Added `is_reference' flag.
6240
6241 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
6242
6243         * reflection.c (mono_image_create_pefile): Only set the pe_offset
6244         inside the MSDOS header. Fixes #71201.
6245
6246         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
6247         gc thread.
6248         (mono_domain_finalize): Ditto.
6249
6250 2005-01-12  Martin Baulig  <martin@ximian.com>
6251
6252         * class.c (mono_get_shared_generic_class): Use the cache for
6253         non-dynamic generic classes.
6254
6255         * class-internals.h (mono_class_create_generic_2): Removed
6256         function prototype, this function is now static inside class.c.
6257
6258         * class.c (mono_class_create_generic_2): Made this static, only
6259         call it from mono_class_init() and mono_class_setup_parent().
6260         (collect_implemented_interfaces_aux): Call mono_class_init() on
6261         the interfaces we collect.
6262         (mono_class_setup_vtable): Call mono_class_init (class->parent).
6263
6264 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6265
6266         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
6267         it a real thread handle.
6268
6269         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
6270         MonoJitExceptionInfo, since each catch clause needs its own variable.
6271         
6272 2005-01-11  Dick Porter  <dick@ximian.com>
6273
6274         * image.c (mono_pe_file_open): New variant on mono_image_open()
6275         that does not set up the CLI metadata; used for FileVersionInfo so
6276         it can get the data for windows binaries too.
6277         
6278         * process.c (process_read_string_block): Don't read off the end of
6279         the StringTable block.
6280
6281         These both fix bug 70766.
6282
6283 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
6284
6285         * gc.c: set some fields to NULL at GC cleanup time.
6286         * threads.c: if we quit the main thread, call exit ().
6287
6288 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6289
6290         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
6291
6292 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
6293
6294         * threads.h, threads.c, object.c: added accessor and settor for
6295         main_thread. Handle it specially when exiting from it: wait
6296         for other foreground threads to exit.
6297
6298 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
6299
6300         * process.c, verify.c: remove some bloat.
6301
6302 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
6303
6304         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
6305         the calling convention to cdecl under win32.
6306
6307 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
6308
6309         * object.c (mono_object_get_size): New function to get the size of
6310         an object instance.
6311
6312         * profiler.c (simple_allocation): Use above.
6313
6314 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
6315
6316         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
6317         ves_icall_System_AppDomain_getRootDomain (as it's not required to
6318         get an appdomain by it's id and we can't assume the root's id is 0).
6319         * domain-internals.h: Change the function prototype to match.
6320         * icall.c: Change the icall table for AppDomain.
6321
6322 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
6323
6324         * locales.c (string_invariant_compare_char): Only compute
6325         GUnicodeTypes in the case where we need them.  Test for ordinality
6326         first and return if so.
6327
6328         From the commit:
6329
6330                 /*
6331                  * FIXME: here we must use the information from c1type and c2type
6332                  * to find out the proper collation, even on the InvariantCulture, the
6333                  * sorting is not done by computing the unicode values, but their
6334                  * actual sort order.
6335                  */
6336
6337 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6338
6339         * loader.c: for P/Invoke methods, allow the "Internal" shared
6340         library name to refer to the calling process symbol namespace.
6341
6342 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
6343
6344         * Makefile.am: Add the security manager to the build.
6345         * security-manager.c|h: New. Initialization of the security manager.
6346
6347 2005-01-07  Dick Porter  <dick@ximian.com>
6348
6349         * threads.c: 
6350         * monitor.c: Update thread state during Monitor and WaitHandle
6351         waits.  Fixes bug 71031.
6352
6353 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
6354
6355         * reflection.c (property_encode_signature): Correctly handle when the
6356         property has no methods.
6357
6358 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
6359
6360         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
6361         
6362         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
6363         fields from mb, not rmb. Fixes #71017.
6364
6365         * marshal.c (emit_ptr_to_str_conv): Add support for 
6366         ByValTStr -> string conversion. Fixes #71015.
6367
6368         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
6369
6370         * mempool.c (mono_mempool_contains_addr): New helper function.
6371
6372 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6373
6374         * metadata.c (mono_metadata_compute_size): Fix size calculation of
6375         HasSematics encoded fields.
6376         
6377         * metadata.c (mono_type_to_unmanaged): Improve error message for 
6378         invalid string marshalling.
6379
6380         * metadata.c: Fix warnings.
6381         
6382 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6383
6384         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
6385         profiler support.
6386
6387 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6388
6389         * domain.c object.c domain-internals.h: Revert part of r38077 since the
6390         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
6391         tests.
6392
6393 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
6394
6395         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
6396         so methods containing these can be AOTed.
6397
6398 2005-01-03  Martin Baulig  <martin@ximian.com>
6399
6400         * loader.c (find_method): Removed the hack for generic instances.
6401         (method_from_memberref): If our parent is a generic instance, pass
6402         its generic type definition to find_method() and then inflate the
6403         method.
6404         (mono_get_method_constrained): Pass the generic type definition to
6405         find_method() and inflate the method later.
6406
6407         * class-internals.h (MonoStats): Added `generic_class_count'.
6408
6409         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
6410         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
6411
6412         * reflection.c (mono_custom_attrs_from_params): Don't ignore
6413         generic type definitions.
6414
6415 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
6416
6417         * loader.c icall.c: Fix warnings.
6418
6419 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
6420
6421         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
6422         blittable types. Fixes #70864.
6423
6424 2004-12-29  Martin Baulig  <martin@ximian.com>
6425
6426         * icall.c
6427         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
6428
6429         * reflection.c (mono_method_get_object): Create a
6430         "System.Reflection.MonoGenericMethod" for inflated methods; don't
6431         call mono_get_inflated_method().
6432
6433         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
6434
6435 2004-12-27  Martin Baulig  <martin@ximian.com>
6436
6437         * class-internals.h (MonoMethod): Added `is_inflated' flag.
6438         (MonoMethodInflated): Added `inflated' field.
6439
6440         * class.c (mono_class_inflate_generic_method): Don't really
6441         inflate the method here; just set the `is_inflated' flag in the
6442         MonoMethod.
6443         (mono_class_get_inflated_method): Actually inflate the method here
6444         if it's not already inflated; we use the MonoMethodInflated's new
6445         `inflated' field as a cache.
6446
6447 2004-12-26  Martin Baulig  <martin@ximian.com>
6448
6449         * class.c
6450         (inflate_generic_class): Moved some code out of inflate_generic_type().
6451         (mono_class_inflate_generic_method): If we're already inflated,
6452         inflate the context and use the declaring method; ie. make sure
6453         the declaring method of an inflated method is always the generic
6454         method definition.
6455         (mono_class_create_from_typedef): Create
6456         `class->generic_container->context->gclass'.
6457
6458 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
6459
6460         * metadata-internals.h, marshal.c, reflection.c: More
6461         MonoGHashTable->GHashTable.
6462
6463         * domain-internals.h, class.c: Change MonoGHashTable's into
6464         GHashTables for some cases where no gc stuff is used
6465
6466         All users: update apis
6467
6468 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
6469
6470         * metadata.c (builtin_types): Make this `const'. Makes this get
6471         put into the shareable section.
6472         (mono_metadata_init): Casts to make gcc happy.
6473
6474 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
6475
6476         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
6477
6478 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
6479
6480         * icall.c: Added an internal call to retrieve the position and length
6481         of assembly-level declarative security attributes (RequestMinimum, 
6482         RequestOptional and RequestRefuse). This is used by the Assembly class
6483         to re-create the corresponding permission sets.
6484
6485 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
6486
6487         * marshal.c: fix the stelemref wrapper to be type correct
6488         (and faster).
6489
6490 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
6491
6492         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
6493         to do key & 0x7fffffff. Hashtable already does this. It just
6494         results in longer code.
6495
6496 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
6497
6498         * appdomain.c: Bump corlib version.
6499         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
6500         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6501         * reflection.c|h: Add functions to get declarative security infos
6502         (blob position and length) for assemblies, classes and methods.
6503
6504 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
6505
6506         * reflection.c: sort the constant table (bug #70693).
6507
6508 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
6509
6510         * object-internals.h, threads.c, domain.c: add accessors for
6511         the MonoThread and MonoDomain tls keys.
6512
6513 2004-12-18  Martin Baulig  <martin@ximian.com>
6514
6515         * class.c (inflate_generic_type): If we're inflating a generic
6516         instance, set `ngclass->context->container = context->container';
6517         ie. the container we inflated into.
6518
6519         * metadata.c (mono_metadata_parse_generic_param): Reflect above
6520         inflate_generic_type() changes.
6521
6522 2004-12-17  Martin Baulig  <martin@ximian.com>
6523
6524         * class-internals.h
6525         (MonoGenericClass): Replaced `MonoType *generic_type' with
6526         `MonoClass *generic_class'.  Removed `dynamic_info'; if
6527         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
6528         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
6529
6530 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
6531
6532         * exception.c (mono_exception_from_token): New helper function.
6533
6534 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
6535
6536         * assembly.c (mono_assembly_load_with_partial_name): Call 
6537         mono_assembly_loaded before invoking the preload hooks. Fixes
6538         #70564.
6539
6540         * object-internals.h (MonoThread): Change culture_info and 
6541         ui_culture_info into an array.
6542
6543         * threads.c: Cache culture info objects from more than one appdomain.
6544
6545         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
6546         current UI culture.
6547
6548 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
6549
6550         * threads.h threads.c appdomain.c: Clear the culture_info field of
6551         all threads during unloading if they point to an object in the dying
6552         appdomain.
6553
6554 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
6555
6556         * culture-info.h (TextInfoEntry): New struct
6557         * object-internals.h: sync with managed
6558         * locales.c: fill the `text_info_data' field
6559         * culture-info-tables.h: update
6560
6561 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
6562
6563         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
6564         collector.
6565
6566 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
6567
6568         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
6569         (ves_icall_ModuleBuilder_getMethodToken): Ditto
6570
6571 2004-12-12  Martin Baulig  <martin@ximian.com>
6572
6573         * mono-debug-debugger.c (write_type): If we're an enum and the
6574         builtin types have already been initialized, call mono_class_init().
6575
6576 2004-12-11  Martin Baulig  <martin@ximian.com>
6577
6578         * metadata.c (mono_metadata_load_generic_params): Added
6579         `MonoGenericContainer *parent_container' argument; automatically
6580         compute `container->is_method'; pass the correct owner to
6581         get_constraints().      
6582
6583         * reflection.c (compare_genericparam): Sort the GenericParam table
6584         according to increasing owners. 
6585
6586 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
6587
6588         * profiler.c: allow disabling the default profiler.
6589
6590 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
6591
6592         * decimal.c, icall.c: allow disabling System.Decimal support.
6593
6594 2004-12-09  Marek Safar <marek.safar@seznam.cz>
6595
6596         * reflection.c: Add support for null attribute arguments.
6597
6598 2004-12-09  Martin Baulig  <martin@ximian.com>
6599
6600         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
6601         names to get rid of compiler warnings.
6602
6603 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6604
6605         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
6606         mono_marshal_load_type_info (). Fixes #69625.
6607         (mono_marshal_get_ptr_to_struct): Likewise.
6608
6609 2004-12-08  Martin Baulig  <martin@ximian.com>
6610
6611         * mono-debug.h: Bumped version number to 47.
6612
6613         * mono-debug-debugger.c
6614         (mono_debugger_event_handler, mono_debugger_event): Take two
6615         guint64 arguments insteed of a gpointer and a guint32.  
6616
6617 2004-12-08  Martin Baulig  <martin@ximian.com>
6618
6619         * debug-mono-symfile.h
6620         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
6621         `address' to `native_offset'.
6622
6623 2004-12-08  Martin Baulig  <martin@ximian.com>
6624
6625         * class.c (mono_class_create_from_typespec): Only inflate if we
6626         either have `context->gclass' or `context->gmethod'.
6627
6628 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6629
6630         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
6631
6632         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
6633
6634         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
6635
6636         * reflection.c (mono_assembly_get_object): Remove the workaround put
6637         in for the release.
6638         
6639         * appdomain.c: Use the corlib_internal field from MonoAssembly.
6640
6641         * appdomain.c: Bump corlib version.
6642
6643         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
6644         be visible in other appdomains.
6645
6646 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
6647
6648         * threads.c: Interlocked inc and dec for longs were messed up,
6649         use a KISS based impl for this. Fixes 70234
6650
6651 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
6652
6653         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
6654
6655 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6656
6657         * icall.c: fix to follow policy not to allow struct
6658         arguments in icalls.
6659
6660 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6661
6662         * process.c: make the patch that handles spaces in file paths work
6663         on mono/windows too.
6664
6665 2004-12-06  Martin Baulig  <martin@ximian.com>
6666
6667         * class.c (mono_class_create_generic): Call
6668         mono_class_setup_supertypes() if we're dynamic.
6669         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
6670
6671 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
6672
6673         * object-internals.h: Add new fields to MonoThread.
6674
6675         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6676
6677         * icall.c threads-types.h threads.c: Add new icalls.
6678
6679         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
6680
6681         * object-internals.h (MonoReflectionAssembly): Sync object layout with
6682         managed side.
6683
6684         * appdomain.c: Bump corlib version.
6685
6686         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
6687         internal assemblies. Fixes #69181.
6688
6689 2004-12-05  Martin Baulig  <martin@ximian.com>
6690
6691         * class.c (mono_class_inflate_generic_signature): Make this a
6692         no-op if `context' is NULL or we don't have any type parameters;
6693         also copy `sentinelpos'.        
6694
6695 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
6696
6697         * image.c: Add unbox_wrapper_cache.
6698
6699         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
6700
6701         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
6702         function generator.
6703         
6704         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
6705         Fixes #70173.
6706
6707         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
6708         
6709 2004-12-04  Martin Baulig  <martin@ximian.com>
6710
6711         * loader.c (mono_method_get_signature_full): New public function;
6712         like mono_method_get_signature(), but with an additional
6713         `MonoGenericContext *' argument.
6714
6715         * class.c (mono_class_inflate_generic_signature): Formerly known
6716         as inflate_generic_signature(); make this public.
6717
6718 2004-12-04  Martin Baulig  <martin@ximian.com>
6719
6720         * metadata.c
6721         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
6722         instead of a `MonoGenericContainer *'.  
6723         (mono_metadata_parse_array_full): Likewise.
6724         (mono_metadata_parse_signature_full): Likewise.
6725         (mono_metadata_parse_method_signature_full): Likewise.
6726         (mono_metadata_parse_generic_inst): Likewise.
6727         (mono_metadata_parse_generic_param): Likewise.
6728         (mono_metadata_parse_mh_full): Likewise.
6729         (mono_type_create_from_typespec_full): Likewise.
6730
6731 2004-12-03  Martin Baulig  <martin@ximian.com>
6732
6733         * class-internals.h (MonoGenericContainer): Replaced the
6734         `MonoGenericContext * pointer with a `MonoGenericContext'
6735         structure and made it the first element.
6736
6737 2004-12-03  Martin Baulig  <martin@ximian.com>
6738
6739         * class.c
6740         (inflate_generic_type): Set the `context->container' when creating
6741         a new MonoGenericContext.
6742         (mono_class_inflate_generic_method): Likewise.
6743         (mono_class_create_from_typespec): Just use `context->container'
6744         to get the container.
6745
6746         * loader.c (method_from_methodspec): Set `context->parent' from
6747         `context->container' - and if that's a method container, use its
6748         parent.  Also set the `context->container' when creating a new
6749         MonoGenericContext.
6750         (mono_get_method_from_token): Use just `context->container' to get
6751         the container.
6752
6753         * metadata.c (do_mono_metadata_parse_generic_class): Also set
6754         `gclass->context->container'.
6755
6756         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
6757         the `context->container' when creating a new MonoGenericContext.
6758
6759 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
6760
6761         * reflection.c (compare_genericparam): Sort params with identical
6762         owner by their number. Fixes gen-111 on sparc.
6763
6764 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6765
6766         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
6767         around the domain changes.
6768
6769         * appdomain.c (mono_domain_unload): Handle the case when the thread
6770         calling Unload is itself being aborted during unloading. Fixes #70022.
6771
6772         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
6773
6774         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
6775         checkpoint_func as an icall so it gets a wrapper.
6776         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
6777         in the cross-appdomain wrappers too.
6778
6779         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6780
6781         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6782
6783         * reflection.c: Fix some memory leaks.
6784         
6785 2004-12-02  Martin Baulig  <martin@ximian.com>
6786
6787         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6788
6789         * metadata.c (generic_class_cache): New static hashtable.
6790         (mono_metadata_lookup_generic_class): New public method.
6791
6792 2004-12-02  Martin Baulig  <martin@ximian.com>
6793
6794         * class.c (mono_class_create_from_typedef): Call
6795         mono_class_setup_parent() and mono_class_create_mono_type() before
6796         parsing the interfaces.
6797
6798 2004-12-02  Martin Baulig  <martin@ximian.com>
6799
6800         * metadata.c (generic_inst_cache): New static hashtable.
6801         (mono_metadata_lookup_generic_inst): New public function.
6802         (mono_metadata_inflate_generic_inst): New public function.
6803         (mono_metadata_parse_generic_inst): New public function.
6804         (do_mono_metadata_parse_generic_class): Use the new
6805         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6806         since this'll also use the cache.
6807
6808         * reflection.c (mono_reflection_bind_generic_method_parameters):
6809         Use mono_metadata_lookup_generic_inst() to use the new cache.
6810
6811         * class.c (inflate_mono_type): Use
6812         mono_metadata_inflate_generic_inst() to inflate a generic
6813         instance; this'll also use the new cache.
6814
6815         * loader.c (method_from_methodspec): Use
6816         mono_metadata_parse_generic_inst() and
6817         mono_metadata_inflate_generic_inst() rather than parsing it
6818         manually, so we can use the new cache.
6819
6820 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6821
6822         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6823         the wait times out.
6824
6825 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6826
6827         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6828         iter->args based on whether parameters are passed in registers (i.e.
6829         MONO_ARCH_REGPARMS is defined)
6830
6831 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6832
6833         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6834         the exception message. Fixes #70070.
6835         (method_from_methodspec): Fix warnings.
6836
6837 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6838
6839         * process.c: (complete_path) return the path quoted
6840
6841 2004-12-01  Martin Baulig  <martin@ximian.com>
6842
6843         * class-internals.h (MonoGenericInst): New structure.
6844         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6845         `is_open' with `MonoGenericInst *inst'.
6846         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6847         `is_open' with `MonoGenericInst *inst'.
6848
6849 2004-11-30  Martin Baulig  <martin@ximian.com>
6850
6851         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6852
6853         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6854         to `generic_class_cache'.
6855
6856         * metadata.c
6857         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6858         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6859         (mono_generic_inst_is_valuetype): Renamed to
6860         mono_generic_class_is_valuetype().
6861
6862         * class-internals.h
6863         (MonoGenericInst): Renamed to MonoGenericClass.
6864         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6865         (MonoClass): Renamed `generic_inst' to `generic_class'.
6866         (MonoGenericContext): Renamed `ginst' to `gclass'.
6867
6868         * object-internals.h
6869         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6870
6871         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6872         mono_reflection_generic_class_initialize().
6873
6874         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6875         now known as "System.Reflection.MonoGenericClass".
6876         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6877
6878 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6879
6880         * class-internals.h: Added a flag field to MonoClass to cache the
6881         declarative security attributes actions associated with the class.
6882         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6883         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6884         applicable to the JITted method.
6885         * reflection.c|h: Added functions to extract (as flags) which security
6886         actions are available (declaratively) for a method, class or assembly.
6887         * metadata.c|h: Added functions to search the declarative security
6888         table in the metadata.
6889         
6890 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6891
6892         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6893         EXPORTEDTYPES are already in the class name cache, so there is no
6894         need to add extra code here to look at them. Just removes a bit of
6895         cruft.
6896
6897         (ves_icall_System_Environment_get_TickCount): No need for #if
6898         WINDOWS. We already have the code in io-layer.
6899
6900 2004-11-28  Martin Baulig  <martin@ximian.com>
6901
6902         * loader.c
6903         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6904         Fixes gen-112.cs.
6905
6906 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6907
6908         * assembly.c (do_mono_assembly_open): Instead of having a
6909         conditional WITH_BUNDLE, incorporate support for bundles here, by
6910         having a global `bundles' variable holding a pointer to the actual
6911         bundles. 
6912
6913         (mono_register_bundled_assemblies): New API call used by the
6914         bundle code. 
6915
6916         See mkbundle.1 for details.
6917         
6918 2004-11-27  Martin Baulig  <martin@ximian.com>
6919
6920         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6921         the vtable for generic methods.
6922
6923 2004-11-26  Martin Baulig  <martin@ximian.com>
6924
6925         * metadata.c
6926         (mono_metadata_generic_method_hash): New public function.
6927         (mono_metadata_generic_method_equal): Likewise.
6928
6929         * class-internals.h
6930         (MonoGenericContainer): Added `GHashTable *method_hash'.
6931
6932         * reflection.c (ReflectionMethodBuilder): Added
6933         `MonoGenericContainer *generic_container'.
6934         (reflection_methodbuilder_to_mono_method): Don't create a new
6935         MonoGenericContainer each time we're called.
6936         (mono_reflection_bind_generic_method_parameters): Use
6937         `container->method_hash' to cache the results so we don't create a
6938         different method if we're called several times with the same
6939         arguments.
6940
6941         * loader.c (method_from_methodspec): Use the new
6942         `container->method_hash' here, too.
6943
6944 2004-11-26  Martin Baulig  <martin@ximian.com>
6945
6946         * class.c (inflate_generic_signature): Correctly compute
6947         `res->has_type_parameters'.
6948         (mono_class_vtable): Use the `has_type_parameters' flag to
6949         determine whether we're a generic method.
6950
6951         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6952
6953 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6954
6955         * object.c (mono_runtime_run_main): Fix a small memory leak.
6956
6957 2004-11-25  Martin Baulig  <martin@ximian.com>
6958
6959         * class.c (set_generic_param_owner): Fixed the loop.
6960
6961 2004-11-25  Martin Baulig  <martin@ximian.com>
6962
6963         * object.c (mono_class_vtable): Don't create any JIT wrappers for
6964         generic methods.
6965
6966 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
6967
6968         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
6969         names. Fixes #69787.
6970
6971 2004-11-24  Martin Baulig  <martin@ximian.com>
6972
6973         * class.c (mono_class_create_generic_2): If we don't have a
6974         `ginst->parent', inflate `gklass->parent' to get our parent.
6975
6976 2004-11-24  Martin Baulig  <martin@ximian.com>
6977
6978         * reflection.c (compare_genericparam): Correctly sort the
6979         GenericParam table; fixes #69779.
6980
6981 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
6982
6983         * reflection.c: When writing a PE file, don't create a huge
6984         buffer in memory. Just write the arrays we have to the file.
6985         This reduces memory usage.
6986
6987         * metadata-internals.h: MonoDynamicStream pefile is no longer used
6988         globally.
6989
6990 2004-11-17  Martin Baulig  <martin@ximian.com>
6991
6992         * class.c (mono_class_init): Don't setup `class->parent' for
6993         dynamic instances; moved this to mono_class_generic_2().
6994         (mono_class_create_generic): Also set `klass->inited' for dynamic
6995         generic instances.
6996         (mono_class_create_generic_2): Don't do anything for dynamic
6997         generic instances.  Set `klass->parent' here and also call
6998         mono_class_setup_parent() here. 
6999
7000         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
7001         `MonoType *parent' argument; set `ginst->parent' before calling
7002         mono_class_create_generic_2(), so we set the correct parent.
7003
7004 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
7005
7006         * reflection.c: allow getting attributes from ModuleBuilder
7007         (used by ikvm).
7008
7009 2004-11-17  Martin Baulig  <martin@ximian.com>
7010
7011         * class.c (mono_class_create_from_typedef): If a type parameter is
7012         inherited from an outer class, set its owner to that class.
7013
7014 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
7015
7016         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
7017           for (int*) written size. This fixes bug #69592.
7018
7019 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
7020
7021         * icall.c: Added IsAuthenticodePresnet internal call.
7022         * image.c|h: New function that check a MonoImage for an Authenticode
7023         signature in the certificate PE data directory.
7024         * security.c|h: New internal call to ask the runtime if an 
7025         Authenticode signature seems referenced in the PE header.
7026
7027 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
7028
7029         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
7030
7031         * reflection.c (mono_image_create_pefile): Free the assembly streams
7032         after writing out the assembly file.
7033
7034         * object.c (mono_runtime_run_main): Fix small memory leak.
7035
7036         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
7037         property access modifiers. Fixes #69389.
7038
7039 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
7040
7041         * domain.c, object.c, object-internals.h, domain-internals.h,
7042         object.h, marshal.c: keep dynamic code info per domain.
7043
7044 2004-11-15  Martin Baulig  <martin@ximian.com>
7045
7046         * class.c (mono_type_get_name_recurse): Put type arguments in
7047         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
7048         see bug #68387.
7049
7050 2004-11-15  Martin Baulig  <martin@ximian.com>
7051
7052         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
7053         (mono_class_setup_vtable): When computing `the_cname' for a
7054         generic instance, don't include the namespace since we'd otherwise
7055         add it twice.
7056
7057 2004-11-15  Martin Baulig  <martin@ximian.com>
7058
7059         * class.c (mono_class_create_generic): Changed return type to void.
7060         (mono_class_create_generic_2): New public function; setup
7061         `class->method', `class->field' and `class->interfaces' here
7062         instead of in mono_class_init().
7063
7064         * class.h (mono_class_create_generic): Moved to class-internals.h.
7065
7066 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
7067
7068         * reflection.c (mono_image_create_pefile): take a file HANDLE.
7069         rather than writing to memory, write to this file. Right now,
7070         we are just writting into a buffer, and copying that. However
7071         we can avoid the buffer later.
7072
7073         (mono_dynamic_stream_reset): new function
7074
7075         * icall.c, object-internals.h: update for the above.
7076
7077 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
7078
7079         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
7080         have been using gc'd memory. First it is slower, unlikely
7081         the comment in the source code said, secondly, it increases
7082         our footprint to do it in the gc.
7083
7084         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
7085         the method so that it does not have to copy to managed code.
7086
7087 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
7088
7089         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
7090
7091 2004-11-12  Martin Baulig  <martin@localhost>
7092
7093         * reflection.c (mono_image_create_token): Allow generic method
7094         definitions here, since they may appear in an `.override'; see
7095         gen-98/gen-99 for an example.
7096
7097 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
7098
7099         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
7100         #69365.
7101
7102         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
7103         descriptive.
7104
7105 2004-11-11  Martin Baulig  <martin@ximian.com>
7106
7107         * class.c (mono_class_setup_vtable): In an explicit interface
7108         implementation, the method name now includes the arity.
7109
7110 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
7111
7112         * object.c (mono_array_full_copy): Fix warning.
7113
7114 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
7115
7116         * appdomain.c: Removed look_for_method_by_name(). Use the new method
7117         mono_class_get_method_from_name() instead.
7118         
7119         * class-internals.h: Added two new types of wrappers. 
7120         Added MonoRemotingTarget enum. Added new trampoline function type, which
7121         takes an additional MonoRemotingTarget value as parameter, so it is
7122         possible to request a trampoline for a specific target.
7123         
7124         * class.c: Added new mono_class_get_method_from_name() method.
7125         
7126         * class.h: In MonoRemoteClass, we can have now to vtables, one for
7127         general remoting sinks and one specific for cross domain calls.
7128         
7129         * debug-helpers.c: Added new wrapper names.
7130         
7131         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
7132         of a remote class.
7133         
7134         * image.c: Porperly delete value objects form the remoting invoke hashtable.
7135         
7136         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
7137         with several other methods (mono_marshal_get_xappdomain_dispatch,
7138         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
7139         and others) can generate a fast remoting wrapper for cross domain calls.
7140         More information can be found in docs/remoting.
7141         Other changes: Removed mono_find_method_by_name, and used
7142         mono_class_get_method_from_name instead.
7143         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
7144         is stored in the remoting invoke hashtable.
7145         
7146         * marshal.h: published the new method for getting the xdomain wrapper,
7147         and also added a method for getting the adequate wrapper for a given
7148         method and target.
7149         
7150         * object-internals.h, object.c: Added a couple of methods for capying and
7151         cloning arrays.
7152         Modified mono_install_remoting_trampoline, which takes the new remoting
7153         trampoline that has a remoting target as parameter.
7154         mono_class_proxy_vtable now also takes a remoting target as parameter, and
7155         will return the most suitable vtable for the target.
7156         Added mono_remote_class_vtable, which returns the vtable of a remote class
7157         (which can be the normal remoting vtable or the xdomain vtable).
7158         
7159         * threads.c: the xdomain invoke and dispatch wrappers must also be
7160         protected against interruptions.
7161
7162 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7163
7164         * icall.c: use memmove in BlockCopyInternal when the source and
7165         destination arrays are the same.
7166
7167 2004-11-09  Martin Baulig  <martin@ximian.com>
7168
7169         * class-internals.h (MonoGenericContainer): Removed `method' and
7170         `signature', replaced them with `is_method' and `is_signature'
7171         flags.  Added `context'.
7172
7173         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
7174         instead of a `MonoGenericContainer *'.
7175
7176         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
7177         for dynamic type parameters.
7178         (mono_metadata_load_generic_params): Setup `container->context'.
7179
7180         * reflection.c (mono_reflection_setup_generic_class): Setup
7181         `tb->generic_container->context'.
7182         (do_mono_reflection_bind_generic_parameters): Use
7183         mono_class_inflate_generic_type() to correctly inflate types,
7184         rather than using our own hack just for MONO_TYPE_VAR.
7185
7186 2004-11-09  Martin Baulig  <martin@ximian.com>
7187
7188         * class.c (mono_class_inflate_generic_method): Small fix; don't
7189         crash here.
7190
7191         * icall.c
7192         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
7193         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
7194         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
7195         (ves_icall_Type_BindGenericParameters): Likewise.
7196         (ves_icall_Type_get_IsGenericInstance): Likewise.
7197         (ves_icall_Type_GetGenericParameterPosition): Likewise.
7198         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
7199         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
7200         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7201
7202 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
7203
7204         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
7205         assembly versions and public key tokens. Fixes #69113.
7206
7207 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
7208
7209         * metadata.c: fix bug introduced with the type cache changes
7210         on 2004-11-06.
7211
7212 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
7213
7214         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
7215         the MonoClass pointer instead of the token in exception clauses.
7216         * reflection.c: updates for the above and make the code not depend
7217         on the structure of MonoExceptionClause.
7218
7219 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
7220
7221         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7222         Add support for dynamic assemblies. Fixes #69114.
7223
7224         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
7225
7226 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
7227
7228         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
7229         since most only those methods use it. the code member of
7230         MonoMethodPInvoke was dead, so that can be removed too. Also,
7231         remove inline_count (again, not used), and move slot so that it
7232         can share bits with some other flags. This saves 8 bytes in the
7233         structure and gives us about 50 kb back for mcs helloworld.cs
7234
7235         * *.[ch]: Do naming changes for the above.
7236
7237         * loader.c (mono_method_get_header): Lazily init the header
7238         on first access.
7239         (mono_get_method_from_token): don't init the header here
7240         (mono_free_method): the header may never be allocated
7241
7242         Overall, this saves 150 kb of unmanaged allocations
7243         for mcs helloworld.cs. That accounts for 10% of the unmanaged
7244         memory at runtime.
7245         
7246         * loader.c, loader.h (mono_method_get_header): new accessor.
7247
7248         * *.[ch]: use the above method. Prepares us to lazily load
7249         the header.
7250
7251         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
7252         three warnings, which are actual bugs (see 69206).
7253
7254         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
7255         unused. Saves a cool 4 bytes / method.
7256
7257 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
7258
7259         * metadata.c (builtin_types): Add types for System.Object here.
7260         (mono_metadata_parse_type_full): Cache MonoType*'s that are
7261         for a class or valuetype from klass->this_arg or klass->byval_arg.
7262
7263         On mcs for a hello world, this gets us down from 21836 MonoType's
7264         to 14560.
7265
7266         (mono_metadata_free_type): Account for the above change.
7267
7268 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
7269
7270         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
7271         exception instead of asserting if name is null.
7272         (ves_icall_System_AppDomain_GetData): Ditto.
7273
7274 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
7275
7276         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
7277         EnumBuilder.
7278
7279         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
7280         Return NULL when the domain does not have entry_assembly set.
7281
7282         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
7283         Add a 'resource_modules' argument.
7284         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
7285
7286         * reflection.c (mono_reflection_create_runtime_class): Move setting
7287         of wastypebuilder here, so mono_get_type_object () returns a MonoType
7288         for enums too.
7289
7290         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
7291         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
7292         Throw an ArgumentNullException if 'ptr' is null.
7293
7294         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
7295         assemblies here. Fixes #69020.
7296
7297 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
7298
7299         * reflection.c (build_compressed_metadata): Fix the previous patch for
7300         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
7301         the stack.
7302
7303 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
7304
7305         * assembly.c (mono_assembly_names_equal): Allow a match if one of
7306         the cultures is false. Fixes #69090.
7307
7308         * reflection.c (build_compressed_metadata): Fix invalid memory read 
7309         detected by valgrind.
7310         
7311         * reflection.c (mono_reflection_get_type): Avoid triggering a 
7312         TypeResolve multiple times for the same type. Fixes #65577.
7313
7314 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
7315
7316         * marshal.c: Avoid using ldftn to call managed functions. It is
7317         much slower than just a call.
7318
7319         * reflection.c (mono_module_get_object): free the basename we
7320         allocate here from glib.
7321         
7322         * reflection.c (ensure_runtime_vtable): make sure to free
7323         overrides.  Also, we were allocating an array of MonoMethod not an
7324         array of MonoMethod*.
7325
7326         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
7327
7328         * image.c (mono_image_close): free image->guid here.
7329
7330 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
7331
7332         * reflection.c: Fix some spec conformance issues with the PE file
7333         structures so mcs compiled apps run on the Net 2.0 beta.
7334
7335 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
7336
7337         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
7338         Implement this. Fixes #67264.
7339
7340         * debug-helpers.h debug-helpers.c marshal.c: Move 
7341         mono_find_method_by_name to debug-helpers.c.
7342
7343 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
7344
7345         * object.c (mono_release_type_locks): type_initialization_hash is
7346         a GHashTable.
7347
7348         * reflection.c object.c object-internals.h: Fix warnings.
7349
7350         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
7351         without accessors. Fixes #61561.
7352
7353         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
7354         application base from the root domain if not set. Fixes #65641.
7355         (mono_runtime_init): Fix warning.
7356
7357 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7358
7359         * appdomain.c: call mono_thread_pool_init.
7360         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
7361         of worker threads based on the number of CPUs and the environment
7362         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
7363         for non-windows (windows) systems.
7364
7365 2004-10-27  Chris Toshok  <toshok@ximian.com>
7366
7367         * mono-debug-debugger.c (write_class): don't call mono_class_init
7368         here, as even with the check for (!klass->init_pending), we get
7369         into a situation where we're hitting cycles in class
7370         initialization.  Fixes #68816.
7371
7372 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
7373
7374         * image.c: Avoid overwriting values in the loaded_images_hash when an
7375         assembly is loaded multiple times. Fixes #61152.
7376
7377         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
7378         so multiple satellite assemblies for the same name can be loaded.
7379         Fixes #68259.
7380
7381         * mono_domain_assembly_preload: Actually return the loaded assembly, 
7382         not NULL.
7383
7384         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
7385         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
7386
7387         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
7388         pending finalizers are not invoked after the appdomain has been 
7389         unloaded. Fixes #67862.
7390
7391 2004-10-22  Martin Baulig  <martin@ximian.com>
7392
7393         * mono-debug-debugger.c
7394         (mono_debugger_runtime_invoke): Don't box valuetypes.
7395
7396 2004-10-22  Chris Toshok  <toshok@ximian.com>
7397
7398         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
7399         don't hide private methods.
7400
7401 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
7402
7403         * icall.c: Allows the runtime to "share" (when known) the public key
7404         token of an assembly. This avoid the need to recalculate the token 
7405         (from the public key) in managed code.
7406
7407 2004-10-21  Chris Toshok  <toshok@ximian.com>
7408
7409         * debug-helpers.c (append_class_name): argh, revert last patch.
7410         
7411 2004-10-21  Chris Toshok  <toshok@ximian.com>
7412
7413         * debug-helpers.c (append_class_name): use '+' as the delimiter,
7414         not '/', so that it matches what the debugger uses to look up
7415         methods.
7416
7417 2004-10-21  Martin Baulig  <martin@ximian.com>
7418
7419         * mono-debug-debugger.c (mono_debugger_throw_exception): New
7420         public method; this is called each time an exception is thrown and
7421         allows the debugger to use exception catch points.
7422
7423 2004-10-21  Martin Baulig  <martin@ximian.com>
7424
7425         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
7426         the stack pointer and the exception object in some struct and pass
7427         that to the debugger.
7428
7429 2004-10-21  Chris Toshok  <toshok@ximian.com>
7430
7431         * mono-debug-debugger.c (do_write_class): add instance/static
7432         event support.  We don't expose "raise" or "other" yet.
7433         (event_is_static): new method.
7434
7435 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
7436
7437         * mono-debug-debugger.c
7438         (mono_debugger_handle_exception): Remove
7439         bogus return value for fussy compilers.
7440
7441 2004-10-20  Martin Baulig  <martin@ximian.com>
7442
7443         * mono-debug-debugger.c
7444         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
7445         (mono_debugger_handled_exception): Likewise.
7446
7447 2004-10-20  Martin Baulig  <martin@ximian.com>
7448
7449         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7450         MONO_DEBUGGER_EVENT_EXCEPTION.
7451
7452         * mono-debug-debugger.c (mono_debugger_handle_exception): New
7453         public function to send the debugger a notification for an
7454         exception and inform it about a catch/finally clause.
7455
7456 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
7457
7458         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
7459         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
7460         fix 2.95 build. 
7461
7462         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
7463
7464 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
7465
7466         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
7467         marshalled as [In,Out]. Fixes #58325.
7468
7469 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
7470
7471         * reflection.c (mono_method_body_get_object): Implement some fields.
7472
7473 2004-10-12  Martin Baulig  <martin@ximian.com>
7474
7475         * reflection.c (mono_reflection_bind_generic_parameters): Small
7476         fix, correctly retrieve our parent from a generic instance.
7477
7478 2004-10-12  Martin Baulig  <martin@ximian.com>
7479
7480         * metadata.c (mono_metadata_generic_param_equal): We always have
7481         an owner.
7482
7483         * class.c
7484         (mono_class_from_generic_parameter): We need to have an owner.
7485         (my_mono_class_from_generic_parameter): Likewise.
7486
7487         * reflection.c (mono_reflection_setup_generic_class): Renamed to
7488         mono_reflection_create_generic_class() and added a new
7489         mono_reflection_setup_generic_class().  
7490         (mono_reflection_initialize_generic_param): If we're a nested
7491         generic type and inherited from the containing class, set our
7492         owner to the outer class.
7493
7494 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
7495
7496         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
7497
7498         * reflection.c (mono_method_body_get_object): New function to create
7499         a MethodBody object.
7500
7501         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
7502
7503 2004-10-11  Martin Baulig  <martin@ximian.com>
7504
7505         * metadata.c (_mono_metadata_type_equal): Renamed to
7506         do_mono_metadata_type_equal() and made static.
7507
7508 2004-10-11  Martin Baulig  <martin@ximian.com>
7509
7510         * appdomain.c: Bump corlib version number to 28.
7511
7512 2004-10-10  Martin Baulig  <martin@ximian.com>
7513
7514         * class-internals.h
7515         (MonoGenericInst): Added `MonoGenericContainer *container'.
7516         (MonoGenericMethod): Likewise.
7517         (MonoGenericContext): Likewise.
7518         (MonoGenericParam): Added `MonoGenericContainer *owner'.
7519
7520         * metadata.c
7521         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
7522         (do_mono_metadata_parse_generic_inst): Likewise.
7523         (mono_metadata_parse_type_full): New public method.  This is the actual
7524         mono_metadata_parse_type() implementation - with an additional
7525         `MonoGenericContainer *' argument.
7526         (mono_metadata_parse_array_full): Likewise.
7527         (mono_metadata_parse_signature_full): Likewise.
7528         (mono_metadata_parse_method_signature_full): Likewise.
7529         (mono_metadata_parse_mh_full): Likewise.
7530         (mono_type_create_from_typespec): Likewise.
7531         (mono_metadata_interfaces_from_typedef_full): New public method;
7532         this is similar to the other _full() methods, but we take a
7533         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
7534         (mono_metadata_parse_generic_param): Take an additional
7535         `MonoGenericContainer *' argument and lookup the MonoGenericParam
7536         from that container.
7537         (mono_metadata_generic_param_equal): New static method to compare
7538         two type parameters.
7539         (_mono_metadata_type_equal): New static method; takes an
7540         additional `gboolean signature_only' argument - if true, we don't
7541         compare the owners of generic parameters.
7542         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
7543         with a TRUE argument - do a signature-only comparision.
7544
7545         * loader.c: Use the new _full() methods and pass the
7546         MonoGenericContainer to them.
7547
7548         * object-internals.h (MonoReflectionTypeBuilder): Added
7549         `MonoGenericContainer *generic_container' field.
7550         (MonoReflectionMethodBuilder): Likewise.
7551
7552 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
7553
7554         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
7555         case initial images of dynamic assemblies.
7556
7557         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
7558
7559         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
7560
7561         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
7562         length of event->other array.
7563         (typebuilder_setup_events): Ditto.
7564
7565         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
7566         'assembly_by_name' and add an 'assemblies' list.
7567
7568         * assembly.h assembly.c: Add a new search hook for determining whenever
7569         an assembly is already loaded. Use this instead of searching in the
7570         loaded_assemblies list.
7571
7572         * domain.c appdomain.c: Implement the new search hook so loaded 
7573         assemblies are now scoped by appdomain. Fixes #67727.
7574
7575 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
7576
7577         * threads.c (mono_thread_attach): Initialize synch_lock field so
7578         mono_thread_detach works again.
7579
7580         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
7581         'lib' too. Fixes #63130.
7582
7583 2004-10-06  Jackson Harper  <jackson@ximian.com>
7584
7585         * culture-info-tables.h: regenerated.
7586
7587 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
7588
7589         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
7590         implemented by other interfaces in the result. Fixes #65764.
7591         
7592         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7593         Handle unloadable modules without crashing.
7594
7595         * image.c (load_modules): Revert the previous patch since modules must
7596         have a fixed index inside the array.
7597         
7598         * image.c (load_modules): Don't include native modules in the modules
7599         array.
7600
7601 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
7602
7603         * reflection.h: Add param_defaults field.
7604
7605         * reflection.c: Add support for parameter defaults in dynamic methods.
7606         Fixes #64595.
7607
7608         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
7609         an empty string when a type has no namespace. Fixes #64230.
7610
7611 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
7612
7613         * tabledefs.h: Added "internal" security actions to support non-CAS
7614         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
7615         Note: they do not seems to be used anymore in 2.0 (new metadata format)
7616
7617 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7618
7619         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
7620         constructor of abstract class. Fixes #61689.
7621
7622 2004-10-04  Martin Baulig  <martin@ximian.com>
7623
7624         * class-internals.h (MonoGenericContainer): New type.
7625         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
7626         `MonoGenericContainer *generic_container'.
7627         (MonoClass): Replaced `gen_params' and `num_gen_params' with
7628         `MonoGenericContainer *generic_container'.
7629
7630         * metadata.c (mono_metadata_load_generic_params): Return a
7631         `MonoGenericContainer *' instead of a `MonoGenericParam *';
7632         removed the `num' argument.
7633
7634 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
7635
7636         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
7637         for dynamic images.
7638
7639         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
7640         machine fields.
7641
7642         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
7643
7644         * reflection.c: Save pe_kind and machine values into the generated
7645         image file.
7646
7647         * appdomain.c: Bump corlib version number.
7648
7649         * object-internals.h: Reorganize layout of LocalBuilder.
7650
7651         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
7652         New helper function.
7653
7654         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
7655         created MonoType for dynamic types. Fixes #66180.
7656
7657 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
7658
7659         * threadpool.c: the ares hashtable needs a critical section around it.
7660         this prevents some nasty segfaults
7661
7662 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
7663
7664         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
7665         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
7666         bug 67324).
7667         
7668 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7669
7670         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
7671         
7672 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
7673
7674         * image.c: Always canonicalize image file names, to avoid loading
7675         the same assembly twice when referenced using a relative path.
7676
7677 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7678
7679         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
7680
7681         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
7682
7683         * marshal.c: Fix warnings.
7684
7685 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
7686
7687         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
7688         attempting to marshal the delegate_trampoline as the method_addr.
7689         This patch has a static hashtable of marshalled delegates so that 
7690         we can map delegate_trampoline addresses back to delegates.  This
7691         allows a delegate passed to managed code to be passed back into native
7692         code.  Fixes #67039
7693
7694 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7695
7696         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
7697
7698         * reflection.c (method_encode_code): Align method headers properly.
7699         Fixes #66025.
7700
7701 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7702
7703         * marshal.c: In the runtime invoke wrapper, reset the abort
7704         exception if it is cached. This avoids the automatic rethrowal of 
7705         the exception after the catch of the wrapper. Also check for pending
7706         interruptions before calling the managed method. This is done using
7707         the new method emit_thread_force_interrupt_checkpoint, since the
7708         normal checkpoint method is ignored when running the invoke wrapper.
7709         * object.c: If the abort exception is rethrown, set the abort_exc
7710         field of the thread, so it will be rethrown aftere every catch.
7711         * threadpool.c: Only run an interruption checkpoint if what has been
7712         requested is a stop of the thread (aborts will be ignored).
7713         * threads.c: By default, a thread will now never be interrumped while
7714         running the runtime invoke wrapper (this ensures that runtime_invoke
7715         will always return to the caller if an exception pointer is provided).
7716         There is a new special method mono_thread_force_interruption_checkpoint()
7717         to force an interruption checkpoint even if running a protected
7718         wrapper, which is used by the same runtime invoke wrapper to do a check
7719         at a safe point.
7720
7721 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7722
7723         * object.c, object-internals.h: Implemented mono_release_type_locks,
7724         which releases the cctor locks held by a thread.
7725         * threads.c, threads.h: In thread_cleanup, release cctor locks held
7726         by a thread. Added mono_thread_exit() method to be used to safely stop
7727         a thread.
7728
7729 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7730
7731         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7732         Move null check before dereference.  Avoid indexing beyond the end
7733         of the 'modules' array.
7734
7735 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7736
7737         * metadata-internals.h (MonoImage): Add module_count field.
7738         * image.c (load_modules): Set image->module_count.
7739         (mono_image_load_file_for_image): Use image->module_count.
7740         * reflection.c (mono_image_load_module): Append to image->modules array 
7741         of dynamic assembly.
7742         (mono_module_get_object): Fix loop to actually increment index.
7743         Use image->module_count.
7744         * assembly.c (mono_assembly_load_references): Use image->module_count.
7745         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7746         Likewise.
7747
7748 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7749
7750         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
7751         Avoid assert on generic types.
7752
7753 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
7754
7755         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
7756
7757         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
7758
7759         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
7760         function to convert a MarshalSpec structure to its managed counterpart.
7761
7762         * reflection.c: Fix warnings.
7763         
7764         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
7765         field.
7766
7767         * icall.c (mono_create_icall_signature): Fix build.
7768
7769 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
7770
7771         * icall.c: Add MakePointType icall.
7772
7773         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
7774         warnings.
7775
7776 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7777
7778         * threadpool.c: reuse allocated slots in the queue.
7779
7780 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7781
7782         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7783
7784         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7785
7786         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7787         previous change.
7788
7789         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7790         ThrowOnUnmappableChar.
7791
7792         * icall.c (ves_icall_Type_GetPacking): New icall.
7793
7794 2004-09-24  Martin Baulig  <martin@ximian.com>
7795
7796         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7797
7798 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7799
7800         * appdomain.c:
7801         (mono_domain_set): allow setting a domain that is being unloaded.
7802         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7803         being unloaded.
7804
7805 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7806
7807         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7808         the GetCustomAttributes icall.
7809
7810 2004-09-23  Martin Baulig  <martin@ximian.com>
7811
7812         * object-internals.h (MonoReflectionGenericParam): Replaced
7813         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7814         with `guint32 attrs'.
7815
7816 2004-09-23  Martin Baulig  <martin@ximian.com>
7817
7818         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7819
7820 2004-09-23  Martin Baulig  <martin@ximian.com>
7821
7822         * object-internals.h (GenericParameterAttributes): New enum.
7823
7824 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7825
7826         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7827         
7828         * class.c (init_events): Fill out event->other field.
7829
7830         * class.c: Fix warnings.
7831
7832         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7833
7834 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7835
7836         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7837         walk which doesn't supply the IL offset.
7838
7839 2004-09-22  Martin Baulig  <martin@ximian.com>
7840
7841         * reflection.c (mono_reflection_setup_internal_class): If we're
7842         System.ValueType, System.Object or System.Enum, set
7843         `klass->instance_size' and create the vtable.
7844         (mono_reflection_create_internal_class): If we're an enum type,
7845         get the base class from our current corlib.
7846
7847 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7848
7849         * reflection.h (MonoResolveTokenError): New type.
7850
7851         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7852         icall.
7853
7854         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7855
7856 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7857
7858         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7859         Support also calling constructors, but only for already allocated objects.
7860
7861 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7862
7863         * reflection.c (type_get_qualified_name): If the klass is null
7864         return the typename to avoid a NullRefEx.
7865         (encode_cattr_value): Get the qualified name of the boxed type,
7866         not the underlying enumtype.  Fixes #62984.
7867
7868 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7869
7870         * marshal.c: Fix problems with previous checkin.
7871
7872 2004-09-21    <vargaz@freemail.hu>
7873
7874         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7875         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7876
7877         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7878
7879 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7880
7881         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7882         should only return a type for pointers, arrays, and passbyref types.
7883         Fixes bug #63841.
7884
7885 2004-09-21  Martin Baulig  <martin@ximian.com>
7886
7887         * domain.c (mono_debugger_check_runtime_version): New public
7888         function.
7889
7890         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7891
7892 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7893
7894         * reflection.c: Added missing sort to the declarative security 
7895         attributes table. MS implementation stops seeing the attributes if the
7896         token number regress in the table (as shown by ildasm and permview).
7897
7898 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7899
7900         * object-internals.h (MonoReflectionModule): Add 'token' field.
7901         
7902         * reflection.c (mono_reflection_get_token): Add support for Module
7903         and Assembly.
7904         (mono_module_get_object): Set 'token' field.
7905         (mono_module_file_get_object): Set 'token' field.
7906
7907         * icall.c: Add new Assembly and Module icalls.
7908
7909         * appdomain.c: Bump corlib version.
7910
7911 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7912
7913         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7914         tokens of metadata objects.
7915
7916         * reflection.h reflection.c (mono_reflection_get_token): New function
7917         to obtain the token of a metadata object.
7918
7919         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7920
7921 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7922
7923         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7924         
7925         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7926
7927 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7928
7929         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7930         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7931         AssemblyBuilder to access the permissions set in the class lib.
7932         * reflection.c: Added security attributes encoding step in 
7933         mono_image_build_metadata.
7934         * tabledefs.h: Added new security actions defined in 2.0:
7935         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7936
7937 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7938
7939         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7940         macro parameter.
7941
7942 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7943  
7944         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7945           finalized. There where random SIGSEVs at program termination, when
7946           an object being finalized was trying to do a string comparison and
7947           the current culture was already finalized.
7948  
7949 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7950
7951         * threads.c: call thread_cleanup before finishing the thread if we get
7952         there.
7953
7954 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
7955
7956         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
7957         assemblies from the parent. Fixes #65665.
7958
7959 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
7960
7961         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
7962         modifiers.
7963
7964 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
7965
7966         * reflection.h: add prototype for mono_get_dbnull_object
7967         * reflection.c: add prototypes for get_default_param_value_blobs 
7968         and mono_get_object_from_blob for fussier compilers
7969
7970 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
7971  
7972         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
7973         false deadlock checks in class initialization.
7974  
7975 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
7976
7977         * image.c (mono_image_addref): Fix comment.
7978
7979         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
7980         possible.
7981
7982 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
7983
7984         * reflection.c (mono_param_get_objects): Modified to return
7985         ParameterInfo.DefaultValue object.
7986
7987         (get_default_param_value_blobs):
7988         (mono_get_object_from_blob):
7989         (mono_get_dbnull_object): New helper routines. 
7990
7991         * object.c (mono_get_constant_value_from_blob): New helper routine
7992         carved out from get_default_field_value ()
7993
7994         * object-internals.h (mono_get_constant_value_from_blob): Added
7995         function declaration.
7996
7997 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
7998
7999         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
8000         referenced assemblies. Fixes #62135.
8001
8002         * exception.h exception.c (mono_get_exception_file_not_found2): New
8003         helper function.
8004
8005 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
8006
8007         * class.h class.c: Add mono_type_get_underlying_type ().
8008
8009 2004-09-09  Geoff Norton <gnorton@customerndna.com>
8010
8011         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
8012         Fix GetTypes() to support dynamically created assemblies.
8013
8014 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
8015
8016         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
8017         
8018         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
8019         previous patch.
8020
8021         * reflection.h reflection.c loader.c: Allow dynamic construction of
8022         pinvoke methods. Fixes #65571.
8023         
8024         * reflection.c (mono_reflection_get_type): Revert previous change since
8025         it causes regressions.
8026
8027 2004-09-08  Martin Baulig  <martin@ximian.com>
8028
8029         * class.c (class_compute_field_layout): Don't call
8030         mono_class_layout_fields() for open generic instances.
8031
8032 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
8033         * threads.c appdomain.c: fix typo in GC macro
8034
8035 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8036
8037         * threads.c: don't call mono_thread_detach() in start_wrapper(),
8038         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
8039
8040 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
8041
8042         * image.c (mono_image_close): Applied patch from 
8043         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
8044         assembly is loaded multiple times from data.
8045         
8046         * image.c (mono_image_open): Fix warning.
8047
8048 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8049
8050         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
8051         once. Fixes #58334.
8052         
8053         * reflection.c (mono_reflection_create_runtime_class): Initialize
8054         klass->nested_classes. Fixes #61224.
8055
8056 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8057
8058         * threads.c: sched_yield() on exit, to allow threads to quit.
8059
8060 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8061
8062         * object.c (mono_unhandled_exception): Remove leftover debug code.
8063
8064 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
8065
8066         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
8067
8068 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8069
8070         * marshal.c (emit_marshal_array): Really null terminate string arrays.
8071         
8072         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
8073
8074 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8075
8076         * marshal.c (emit_marshal_array): Null terminate string arrays.
8077         
8078         * marshal.c (raise_auto_layout_exception): Fix warning.
8079
8080         * reflection.c (mono_param_get_objects): Initialize the default value
8081         with DBNull.Value, not null. Fixes #62123.
8082
8083 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
8084
8085         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
8086         throw an exception with a cute explanation.
8087
8088 2004-09-06  Dick Porter  <dick@ximian.com>
8089
8090         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
8091         Close the new process's thread handle, as we don't use it.  The
8092         handle stays around forever otherwise.
8093
8094 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8095
8096         * object.c (arith_overflow): Fix warning.
8097
8098         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
8099         calling conventions in method refs. Fixes #65352.
8100
8101         * reflection.c: Fix warnings.
8102
8103 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
8104
8105         * icall.c: Add a new icall for Array.Clear
8106
8107 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
8108
8109         * object.c: When allocating an array, we have to throw
8110         an overflow exception if any of the lengths are < 0.
8111
8112 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8113
8114         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
8115         properly. Also move implementation of string array marshalling to 
8116         managed code. Fixes #42316.
8117
8118 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8119
8120         * assembly.c: provide more information when loading an assembly fails.
8121
8122 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8123
8124         * filewatcher.c: don't expect the development fam package to be
8125         installed.
8126
8127 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
8128
8129         * marshal.c: Make a copy of the signature cookie since it will be
8130         freed by the caller.
8131         
8132         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
8133
8134         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
8135
8136         * metadata.c (mono_metadata_free_marshal_spec): New function to free
8137         marshal specs.
8138
8139         * marshal.c: More refactoring.
8140         
8141         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
8142         smaller functions.
8143
8144 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
8145
8146         * object.c: In mono_message_invoke, fill the output parameter array after
8147           calling the managed method (it was done before the call). This fixes
8148           bug #59299.
8149
8150 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
8151
8152         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
8153         as well.
8154
8155 2004-09-02  Martin Baulig  <martin@ximian.com>
8156
8157         * class.c (mono_class_instance_size): Don't allow generic type
8158         definitions or open generic instances.
8159         (mono_class_array_element_size): If we're a value type, call
8160         mono_class_instance_size() on the original class.
8161
8162         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
8163         handle generic instances.
8164
8165         * mono-debug-debugger.c (write_type): Handle generic instances
8166         like classes.
8167
8168 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
8169
8170         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
8171         the allocation request fails. Fixes #65089.
8172
8173         * object.c (mono_runtime_free_method): Do not call mono_free_method.
8174         
8175         * object.c (mono_runtime_free_method): New function to free a dynamic
8176         method.
8177
8178         * marshal.c (mono_delegate_free_ftnptr): New function to free the
8179         delegate trampoline.
8180
8181         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
8182         with hasthis as dynamic,
8183
8184         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
8185
8186         * domain.c (mono_jit_info_table_remove): New function to remove an
8187         entry from the jit info table.
8188
8189         * class-internals.h (MonoMethod): Add 'dynamic' field.
8190
8191         * loader.c: Fix warnings.
8192
8193 2004-09-01  Martin Baulig  <martin@ximian.com>
8194
8195         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
8196         instead of mono_debugger_lock() because the latter one is a no-op
8197         unless running in the debugger.
8198
8199 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
8200
8201         * class.c (class_compute_field_layout): Classes with auto-layout or
8202         reference fields are not blittable.
8203         
8204 2004-09-01  Dick Porter  <dick@ximian.com>
8205
8206         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
8207         mono_image_get_filename() to get the assembly location.
8208
8209         * icall.c:
8210         * metadata.h: Fix compile warnings
8211
8212 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
8213
8214         * class.c (class_compute_field_layout): System.Object is blittable.
8215
8216         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
8217         as in/out. Fixes #59909.
8218
8219 2004-09-01  Martin Baulig  <martin@ximian.com>
8220
8221         * metadata.h (MONO_TYPE_ISREFERENCE): Call
8222         mono_metadata_generic_inst_is_valuetype() if we're a generic
8223         instance to check whether our underlying type is a reference type.
8224
8225 2004-09-01  Martin Baulig  <martin@ximian.com>
8226
8227         * metadata.c (mono_type_size): If we're a generic instance, call
8228         mono_class_value_size() for value types.
8229
8230 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
8231
8232         * marshal.c: Implement more custom marshalling functionality. Fixes
8233         #64915.
8234
8235 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8236
8237         * mono-debug.c, debug-mono-symfile.c: add some locking love.
8238
8239 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
8240
8241         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
8242
8243         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
8244
8245         * icall.c: Fix some warnings.
8246
8247         * threads.c (abort_appdomain_thread): Fix unref errors.
8248         (mono_thread_current): Fix THREAD_DEBUG define.
8249
8250 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
8251
8252         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
8253
8254         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
8255
8256 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
8257
8258         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
8259         string arrays.
8260
8261 2004-08-28  Martin Baulig  <martin@ximian.com>
8262
8263         * metadata.c
8264         (mono_metadata_generic_inst_is_valuetype): New public function.
8265
8266         * metadata.h (MONO_TYPE_ISSTRUCT): Call
8267         mono_metadata_generic_inst_is_valuetype() if we're a generic
8268         instance to check whether our underlying type is a valuetype.
8269
8270 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
8271
8272         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
8273         #63768.
8274
8275 2004-08-25  Martin Baulig  <martin@ximian.com>
8276
8277         * loader.c (mono_get_method_from_token): Abstract methods can also
8278         be generic and thus have type parameters.
8279
8280         * metadata-internals.h
8281         (MonoDynamicImage): Added `GPtrArray *gen_params'.
8282
8283         * reflection.c (mono_image_get_generic_param_info): Don't create a
8284         metadata row, just add an entry to the `gen_params' array.
8285         (build_compressed_metadata): Sort the `gen_params' array and then
8286         actually create the metadata.
8287
8288 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8289
8290         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
8291
8292 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
8293
8294         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
8295
8296 2004-08-24  Martin Baulig  <martin@ximian.com>
8297
8298         * class.cs (mono_class_is_subclass_of): Like an interface, a
8299         generic instance also derives from System.Object.
8300
8301 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
8302
8303         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
8304         custom modifiers to be in any order. Fixes #61990.
8305
8306 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
8307
8308         * object.c: Register mono_object_new_fast icall.
8309         
8310         * object.c (mono_class_get_allocation_ftn): Return to calling
8311         mono_object_new_fast, since it seems faster to compute the object 
8312         size in unmanaged code than passing it as a parameter.
8313
8314         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
8315
8316         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
8317         this function with Boehm as the oom handler, so we don't have to check
8318         the result of GC_malloc.
8319
8320         * object.c: Remove checks for oom.
8321
8322         * object.h object.c (mono_class_get_allocation_ftn): New function to
8323         return the icall which can be used to allocate an instance of a given
8324         class. 
8325
8326         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
8327
8328         * class-internals.h: Add 'enabled' field.
8329
8330 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
8331
8332         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
8333
8334 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
8335         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
8336         value 0x0010.
8337
8338 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
8339
8340         * appdomain.c: use the Tls function for appdomain too,
8341         at Zoltan's request. Actually return in mono_context_get
8342
8343         * appdomain.c, profiler.c, threads.c: use __thread
8344
8345 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
8346
8347         * appdomain.c threads.c: Call GC_CreateThread on windows.
8348
8349         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
8350         multiple libraries since this don't work on windows.
8351
8352 2004-08-18  Martin Baulig  <martin@ximian.com>
8353
8354         * class-internals.h
8355         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
8356         MonoMethodHeader.
8357
8358         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
8359         MonoMethodNormal since we also need it for abstract and interface
8360         methods.
8361
8362         * reflection.c
8363         (build_compressed_metadata): Sort the GenericParam table.
8364         (mono_image_create_token): Added `gboolean create_methodspec'
8365         argument; this is false when generating a MethodImpl token.
8366         (reflection_methodbuilder_to_mono_method): Abstract and interface
8367         methods may also have generic parameters.
8368
8369 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
8370
8371         * appdomain.c: thread local alloc
8372
8373 2004-08-17  Martin Baulig  <martin@ximian.com>
8374
8375         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
8376
8377         * icall.c
8378         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
8379         argument.
8380
8381         * class.c (mono_type_get_full_name): New public function.
8382         (mono_type_get_name): Don't include the type arguments.
8383
8384 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
8385
8386         * Makefile.am: Build static versions of libmetadata and libmonoruntime
8387         for inclusion into the mono executable.
8388
8389 2004-08-16  Martin Baulig  <martin@ximian.com>
8390
8391         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
8392         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
8393
8394 2004-08-14  Martin Baulig  <martin@ximian.com>
8395
8396         * class.c (dup_type): Also copy the `byref' field.
8397
8398 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
8399
8400         * reflection.c (create_dynamic_mono_image): Revert the last change 
8401         since it breaks bootstrap.
8402
8403 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
8404
8405         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
8406
8407         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
8408         not free them with g_free.
8409
8410 2004-08-11  Martin Baulig  <martin@ximian.com>
8411
8412         * reflection.c (mono_reflection_setup_internal_class): Also call
8413         mono_class_setup_mono_type() if we already have a `tb->type.type'.
8414
8415 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
8416
8417         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
8418         called during default (first) AppDomain creation. Keep track of
8419         Evidence when loading assemblies.
8420
8421 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8422
8423         * opcodes.c, opcodes.h: reduce runtime relocations.
8424
8425 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
8426
8427         * culture-info.h, locales.c: fixes and chages to sue the new
8428         optimized format of the locale data.
8429         * culture-info-tables.h: regenerated.
8430
8431 2004-08-06  Geoff Norton <gnorton@customerdna.com>
8432         
8433         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
8434
8435 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
8436
8437         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
8438         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
8439         * domain-internals.h: icall declaration.
8440         * icall.c: icall registration.
8441         * object-internals.h: New fields in MonoAssembly for CAS.
8442
8443 2004-08-05  Duncan Mak  <duncan@ximian.com>
8444
8445         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
8446         CEE_LDELEM_ANY.
8447
8448 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8449
8450         * reflection.c: fix to deal with object[] arrays in custom ctors
8451         (bug #62550).
8452
8453 2004-08-05  Martin Baulig  <martin@ximian.com>
8454
8455         * class.c (mono_class_array_element_size): Added support for
8456         generic instances and correctly handle "recursive" types.
8457
8458 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
8459
8460         * assembly.c: Fix warnings.
8461
8462 2004-08-04  Martin Baulig  <martin@ximian.com>
8463
8464         * class.c
8465         (mono_type_get_name_recurse): Added `gboolean include_arity'
8466         argument specifying whether or not we should include the generic
8467         arity in the type name.
8468         (_mono_type_get_name): New static function.
8469         (mono_class_setup_vtable): If we're a generic instance, don't
8470         include the generic arity in the names of explicit method
8471         implementations.        
8472
8473 2004-08-03  Martin Baulig  <martin@ximian.com>
8474
8475         * class.c (mono_type_get_name_recurse): Enclose the generic type
8476         arguments in `<', '>'.
8477
8478 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8479
8480         * gc.c: make GC warning messages use the trace API, they are just
8481         noise to most of the users.
8482
8483 2004-08-03  Martin Baulig  <martin@ximian.com>
8484
8485         * debug-mono-symfile.c (read_string): Correctly read the string.
8486
8487 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
8488
8489         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
8490         
8491         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
8492         icalls.
8493         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
8494
8495 2004-07-30  Martin Baulig  <martin@ximian.com>
8496
8497         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
8498         Reflect latest symbol writer changes.   
8499
8500 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8501
8502         * object.c: always create an object if null is passed
8503         to Invoke() where a valuetype is expected.
8504
8505 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
8506
8507         * marshal.c (mono_marshal_init): make managed
8508         signatures match native ones better for 64bits.
8509
8510 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8511
8512         * appdomain.c: hack to build correctly the private bin path on windows.
8513         Fixes bug #61991.
8514
8515 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
8516
8517         * assembly.c: Load mscorlib from the correct framework directory
8518           (mono/<version>/mscorlib.dll).
8519         * appdomain.h: Added prototypes for new functions.
8520         * internals.h: Added some prototypes.
8521         * domain.c: When initializing the runtime, get from the executable and
8522           the configuration files the runtime version that the app supports.
8523           Added support methods for reading app.exe.config. Added list of versions
8524           supported by the JIT. Added two new methods: mono_init_from_assembly,
8525           which initializes the runtime and determines the required version from
8526           the provided exe file, and mono_init_version, which initializes
8527           the runtime using the provided version.
8528         * icall.c: Get machine.config from version-specific directory.
8529         * reflection.c: When generating an image, embed the version number
8530           of the current runtime.
8531
8532 2004-07-28  Dick Porter  <dick@ximian.com>
8533
8534         * socket-io.c
8535         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
8536         returned sockaddr size before creating the remote address object.
8537         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
8538         61608.
8539
8540 2004-07-28  Dick Porter  <dick@ximian.com>
8541
8542         * locales.c (string_invariant_compare_char): Fix invariant char
8543         compares between upper and lower cases.  Fixes bug 61458.
8544
8545 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
8546         
8547         * marshal.c: actually cache stelem.ref wrappers.
8548         
8549 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
8550
8551         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
8552         sections and remove the mono_cli_rva_map () function.
8553
8554 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8555
8556         * debug-mono-symfile.c: fix one more endianess issue, from a patch
8557         by Geoff Norton (<gnorton@customerdna.com>).
8558
8559 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8560
8561         * class.c: fix class loads for pointer types (typeof(int) !=
8562         typeof(int*)).
8563
8564 2004-07-27  Martin Baulig  <martin@ximian.com>
8565
8566         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
8567         reading the debugging information from an external ".mdb" file.
8568
8569 2004-07-24  Martin Baulig  <martin@ximian.com>
8570
8571         * reflection.c (mono_image_get_type_info): Only write a class
8572         layout entry if we actually have a size or a packing size.
8573
8574 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8575
8576         * reflection.c (type_get_fully_qualified_name): 
8577         insert cast to get type checking of ?: with non-gcc compilers
8578
8579 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8580
8581         * rand.c: use g_getenv for both lookups of
8582         MONO_EGD_SOCKET
8583
8584 2004-07-17  Martin Baulig  <martin@ximian.com>
8585
8586         * reflection.c (mono_reflection_bind_generic_method_parameters):
8587         Set `gmethod->reflection_info'.
8588
8589 2004-07-17  Martin Baulig  <martin@ximian.com>
8590
8591         * class.c (mono_class_create_from_typedef): Insert the newly
8592         created class into the hash table before computing the interfaces
8593         since we could be called recursively.
8594
8595 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
8596
8597         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
8598         function to implement stelem.ref in managed code
8599         * class-internals.h, debug-helpers.c: a new wrapper type
8600         for the above.
8601
8602 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8603
8604         * gc.c: allow GC handles to work even when no GC is compiled in.
8605         Fix part of bug #61134 (GetAddrOfPinnedObject).
8606
8607 2004-07-13  Peter Williams  <peter@newton.cx>
8608  
8609         * process.c (complete_path): Make sure we don't attempt to execute
8610         directories.
8611  
8612 2004-07-12  Geoff Norton <gnorton@customerdna.com>
8613
8614         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
8615           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
8616           and will add/subtract the hour if needed
8617
8618 2004-07-12  Martin Baulig  <martin@ximian.com>
8619
8620         * reflection.c (mono_field_get_object): If we have
8621         `field->generic_info', take the attributes from
8622         `field->generic_info->generic_type'.    
8623
8624 2004-07-12  Martin Baulig  <martin@ximian.com>
8625
8626         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
8627         This function must be called before initializing the runtime.
8628         (mono_debug_init_1): New function; call this after initializing
8629         the runtime, but before loading the assembly.  It tells the
8630         debugger to load corlib and the builtin types.
8631
8632         * mono-debug-debugger.c: Did some larger changes in the debugging
8633         code; support recursive class declarations, make sure we actually
8634         add all classes.
8635
8636 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8637
8638         * debug-helpers.c: undo my previous patch and fixed the real issue in
8639         ../mini/exceptions-x86.c
8640
8641 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8642
8643         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
8644         when no HOME env. variable was set and a NullRef was thrown in a .cctor
8645         called from other .cctors.
8646
8647 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
8648
8649         * loader.c: Removed the mono_loader_wine_init hack now that we are
8650         doing a managed version of Windows.Forms.
8651
8652 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
8653
8654         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
8655         threadpool.c, threads.c: remove static data from rootset.
8656
8657 2004-07-09  Dick Porter  <dick@ximian.com>
8658
8659         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
8660         Don't do any more processing if the matched length was 0.  It was
8661         increasing the size of the string before.  Fixes bug 61167.
8662
8663 2004-07-09  Dick Porter  <dick@ximian.com>
8664
8665         * socket-io.h:
8666         * socket-io.c
8667         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8668         Add support for SO_PEERCRED if its available.
8669
8670 2004-07-09  Peter Bartok <pbartok@novell.com>
8671         * loader.c: winelib.exe.so error message is now only displayed if
8672         MONO_DEBUG is set. To help us avoid questions when people are trying
8673         out the new Managed.Windows.Forms.
8674
8675 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
8676
8677         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
8678         for isinst and castclass wrappers.
8679
8680         * class-internals.h icall.c: Move registration and lookup of JIT icalls
8681         to libmetadata from the JIT, so they could be used by the marshalling
8682         code and the interpreter.
8683
8684         * marshal.c: Register marshalling related JIT icalls here instead of
8685         in mini.c. Use CEE_MONO_ICALL instead of the family of 
8686         CEE_MONO_PROC<x> opcodes to call marshalling functions.
8687
8688         * metadata.h: Remove unneeded marshalling conversions.
8689
8690         * opcodes.c: Update for new opcodes.
8691         
8692 2004-07-08  Martin Baulig  <martin@ximian.com>
8693
8694         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
8695         (mono_debug_get_domain_data): Make this function static.
8696
8697 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8698
8699         * gc.c, object.h: add nice GC handle API for embedders.
8700
8701 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
8702
8703         * reflection.c: more changes for the new api
8704
8705         * object.c: When we reflect on a field w/ a constant value, it
8706         will not have a memory location, so we must access metadata. Also,
8707         allow easier reading of strings so that we can read them from
8708         the constant data.
8709
8710         * class.c (mono_class_layout_fields): no need for literal fields here.
8711
8712         * class-internals.h: api changes for const fields
8713
8714         * icall.c (ves_icall_get_enum_info): use new apis for const fields
8715
8716 2004-07-06  Martin Baulig  <martin@ximian.com>
8717
8718         * mono-debug.h: Increment version number to 44.
8719
8720         * mono-debug.c (mono_debug_add_wrapper): The second argument is
8721         now a gpointer, rewrote this whole method.
8722
8723         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
8724         function.  Add information about the wrapper in a new "misc table".
8725
8726         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
8727         for the new misc table.
8728
8729 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
8730
8731         * metadata-internals.h image.c: Add a cache for helper signatures.
8732
8733         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
8734
8735 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
8736
8737         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
8738         delegates from a delegate. Fixes #61033.
8739         
8740         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
8741         marshalling of stringbuilder arrays. Fixes #59900.
8742
8743 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
8744
8745         * icall.c: Add EnumBuilder:setup_enum_type icall.
8746
8747 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
8748
8749         * icall.c: Added a new icall for the property version of
8750         OffsetOfStringData.
8751
8752 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
8753
8754         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
8755         it has a constant size across platforms.
8756
8757         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
8758         stack trace.
8759
8760 2004-06-29  Martin Baulig  <martin@ximian.com>
8761
8762         * mono-debug.c (mono_debug_add_method): Protect the whole function
8763         in mono_debugger_lock(), not just parts of it.
8764
8765 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8766
8767         * reflection.c: make sure padding bytes in heaps are zeroed.
8768
8769 2004-06-24  David Waite  <mass@akuma.org>
8770
8771         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
8772         image.c, loader.c, locales.c, marshal.c, metadata.c,
8773         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
8774         string-icalls.c, threads.c: change to C90-style comments from C99 /
8775         C++ -style
8776
8777 2004-06-24  Dick Porter  <dick@ximian.com>
8778
8779         * threads.c
8780         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8781         return createdNew.  Fixes bug 60412.
8782
8783         * threads-types.h: 
8784         * icall.c: Add createdNew parameter to CreateMutex icall
8785
8786 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8787
8788         * reflection.c, object-internals.h: save default value in params.
8789
8790 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8791
8792         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8793         no need to build a new path combining that with the application base.
8794         Fixes bug #60442.
8795
8796 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8797
8798         * reflection.c: fixed minor standard compliance issues.
8799
8800 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8801
8802         * reflection.c: fixed issue with encoding some custom attributes
8803         (arrays in properties and fields, bug #60411).
8804
8805 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8806
8807         * reflection.c: fix start address when copying the public key token.
8808
8809 2004-06-23  Martin Baulig  <martin@ximian.com>
8810
8811         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8812         the `exc' object in a static object to put it into the GC's root set.
8813
8814 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8815
8816         * reflection.c: make mono_reflection_setup_internal_class ()
8817         callable a second time to setup a new parent class.
8818
8819 2004-06-23  Dick Porter  <dick@ximian.com>
8820
8821         * threads.c: Check for WAIT_IO_COMPLETION return values.
8822
8823 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8824
8825         * appdomain.c: Removed the g_free on the public key token. Now copy 
8826         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8827         * assembly.c: Added public key token string value when loading 
8828         assemblies. Fix bug #60439.
8829         * icall.c: Added missing informations (like public key) in 
8830         GetReferencedAssemblies. Fix #60519.
8831         * image.h: Changed definition for public key token from const char*
8832         public_tok_value to guchar public_key_token [17];
8833         * reflection.c: Updated for changes to public key token.
8834
8835 2004-06-22  Lluis Sanchez Gual
8836
8837         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8838         for the field in base classes.
8839
8840 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8841
8842         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8843         mark headers as not supported, they are installed only for use by the
8844         debugger.
8845
8846 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8847
8848         * *.c, *.h: avoid namespace pollution in public headers.
8849
8850 2004-06-21  Martin Baulig  <martin@ximian.com>
8851
8852         * exception.c (mono_get_exception_security): It's in
8853         "System.Security", not in "System".
8854
8855         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8856         the exception classes.
8857
8858 2004-06-21  Martin Baulig  <martin@ximian.com>
8859
8860         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8861         Protect the exception object from being finalized.
8862
8863 2004-06-21  Martin Baulig  <martin@ximian.com>
8864
8865         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8866         public function.
8867
8868 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8869
8870         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8871         if it was not loaded before. Fix parts of #60439.
8872
8873 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8874
8875         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8876         code that was broken since Ben's change: wrappers are now
8877         dependent on the method signature only again.
8878
8879 2004-06-21  Martin Baulig  <martin@ximian.com>
8880
8881         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8882         added interface support.
8883
8884 2004-06-21  Martin Baulig  <martin@ximian.com>
8885
8886         * class.c (mono_vtable_get_static_field_data): New public method.
8887
8888 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8889
8890         * filewatcher.c : Windows build fix to be compliant with API changes.
8891
8892 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8893
8894         * class.h, class.c: more accessors.
8895         * metadata.h, metadata.c: prepare for hiding MonoType and
8896         MonoMethodSignature: people should use the accessors from now on
8897         outside of the tree.
8898
8899 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8900
8901         * *.c, *.h: more API cleanups.
8902
8903 2004-06-18  Jackson Harper  <jackson@ximian.com>
8904
8905         * assembly.c: Trace loading assemblies.
8906         * loader.c: Trace loading native libraries.
8907         * mono-config.c: Trace loading config files.
8908         
8909 2004-06-18  Dick Porter  <dick@ximian.com>
8910
8911         * locales.c: Tell ICU the lengths of strings, it can cope with
8912         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8913
8914 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8915
8916         * image.c: swapped name/filename;
8917
8918 2004-06-18  Martin Baulig  <martin@ximian.com>
8919
8920         * mono-debug-debugger.c (write_class): Write the parent class at
8921         the end of the header.
8922
8923 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8924
8925         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8926
8927 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8928
8929         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8930         (bundle_obj): New conditional define.
8931         (BUILT_SOURCES): Remove.
8932         ($(bundle_srcs)): Make parallel-make safe.
8933         (libmonoruntime_la_LIBADD): Make unconditional.
8934         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8935         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8936
8937 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8938
8939         * culture-info-tables.h: It was inconsistent with the latest
8940           supp info files.
8941
8942 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8943
8944         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8945         be loaded.
8946
8947         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8948         with gcc 2.95.
8949
8950 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8951
8952         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8953         cleaned up public header threads.h.
8954
8955 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8956
8957         * Makefile.am, *.c, *.h: more API cleanups.
8958
8959 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
8960
8961         * Makefile.am: removed monosn from compilation.
8962         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
8963         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
8964         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
8965         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
8966         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
8967         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
8968
8969 2004-06-15  Jackson Harper  <jackson@ximian.com>
8970
8971         * assembly.c: Make locales lower case when searching the GAC for
8972         assemblies. gacutil will always make locales lowercase when
8973         installing so this effectively makes them case insensitive.
8974         
8975 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
8976
8977         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
8978         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
8979           parameter which allows to choose whether the wait can be interrupted or 
8980           not. Also added the method mono_monitor_enter(), which locks the monitor
8981           using an infinite wait and without allowing interruption.
8982           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
8983           interrupted.
8984         * object.h: Added new fields in MonoThread. suspend_event holds the event
8985           used to susped/resume the thread. synch_lock is the lock object to use for
8986           modifying the thread state.
8987         * threads.c: Use the new synch_lock object for locking, instead of "this",
8988           which can generate deadlocks.
8989           Moved thread state change in Thread.Sleep and Thread.Join from managed
8990           to unmanaged code. This avoids a deadlock when the thread was suspended
8991           just after acquiring the thread lock.
8992           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
8993           Implemented Thread.Suspend using an event instead of ThreadSuspend,
8994           which is not fully implemented in the io-layer.
8995         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
8996
8997 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
8998
8999         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
9000         threads-types.h: more API cleanups.
9001
9002 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9003
9004         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
9005         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
9006         threadpool.c, threads.c: first pass at the exported API cleanup.
9007
9008 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
9009
9010         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
9011
9012 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9013
9014         * icall.c: added internalGetHome.
9015
9016 2004-06-14  Dick Porter  <dick@ximian.com>
9017
9018         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
9019         possible to return successfully when '.' or '..' were the only
9020         entries in a directory, but were skipped.  The MonoIOStat was not
9021         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
9022         Fixes bug 59574.
9023
9024 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9025
9026         * reflection.c: make binaries run on .Net 1.1 by default.
9027
9028 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9029
9030         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
9031
9032 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
9033
9034         * marshal.c: keep track of struct size with explicit layout
9035         (bug #59979).
9036
9037 2004-06-12  Martin Baulig  <martin@ximian.com>
9038
9039         * mono-debug-debugger.c: Comment out a debugging g_message().
9040
9041 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9042
9043         * reflection.c, reflection.h: do not free custom attrs that are cached.
9044         * icall.c: use braces to make code clearer.
9045
9046 2004-06-11  Martin Baulig  <martin@ximian.com>
9047
9048         * class.h (MonoInflatedField): New type.
9049         (MonoClassField): Replaced `MonoType *generic_type' with
9050         `MonoInflatedField *generic_info'.
9051
9052         * icall.c
9053         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
9054
9055 2004-06-11  Martin Baulig  <martin@ximian.com>
9056
9057         * reflection.c (mono_image_create_method_token): Correctly encode
9058         varargs methods.
9059
9060 2004-06-11  Martin Baulig  <martin@ximian.com>
9061
9062         * metadata.c (mono_metadata_parse_method_signature): When parsing
9063         a MethodDef which has VarArgs, also set sentinelpos if we don't
9064         have any parameters.
9065
9066 2004-06-11  Martin Baulig  <martin@ximian.com>
9067
9068         * verify.c (mono_method_verify): In CEE_CALL, use
9069         mono_method_get_signature() to get the method's signature, unless
9070         we're a PInvoke method.
9071
9072 2004-06-10  Jackson Harper  <jackson@ximian.com>
9073
9074         * assembly.c: Use <path>/lib/mono/gac for the extra paths
9075         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
9076         logical name as the supplied path is just a prefix to the gac not
9077         the direct path to it.
9078         
9079 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
9080
9081         * reflection.c: make the token for a created method match
9082         the token of the MethodBuilder it was created from
9083         (IKVM requires this behaviour now).
9084
9085 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
9086
9087         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
9088         reflection.c, socket-io.c: leak fixes.
9089
9090 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
9091
9092         * icall.c: handle sentinel pos in vararg methods in position different
9093         from 0.
9094
9095 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9096
9097         * culture-info-tables.h: freshly generated.
9098
9099 2004-06-09  Martin Baulig  <martin@ximian.com>
9100
9101         * loader.c (mono_get_method_constrained): Call `mono_class_init
9102         (constrained_class)'.   
9103
9104 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
9105
9106         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
9107         any methods. Fixes #59629.
9108
9109 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9110
9111         * culture-info-tables.h: reflecting locale-builder updates.
9112
9113 2004-06-08  Dick Porter  <dick@ximian.com>
9114
9115         * object.h:
9116         * locales.c: Fixed compile warnings, including a real bug in
9117         CompareInfo_internal_compare.
9118         
9119 2004-06-08  Dick Porter  <dick@ximian.com>
9120
9121         * locales.c
9122         (ves_icall_System_Globalization_CompareInfo_internal_index):
9123         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
9124         Double-check the resuls of usearches, because ICU currently
9125         ignores most of the collator settings here.  Fixes bug 59720.
9126         
9127 2004-06-08  Dick Porter  <dick@ximian.com>
9128
9129         * locales.c
9130         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
9131         Fix memory leak and segfault-causing typo.  No idea how this one
9132         lasted so long without being noticed.
9133
9134 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
9135
9136         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
9137         any methods. Fixes #59629.
9138
9139 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9140
9141         * assembly.c:
9142         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
9143         own the critical section before). Removed dead code (that's done
9144         in the preload hook).
9145
9146         (mono_assembly_load_with_partial_name): call the preload hook.
9147
9148 2004-06-08  Martin Baulig  <martin@ximian.com>
9149
9150         * metadata.c (mono_metadata_signature_alloc): Default
9151         `sentinelpos' to -1.
9152
9153         * reflection.c (mono_image_get_array_token): Likewise.
9154
9155 2004-06-08  Martin Baulig  <martin@ximian.com>
9156
9157         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
9158
9159         * metadata.c (mono_metadata_parse_method_signature): When parsing
9160         a MethodDef which has VarArgs, set sentinelpos.
9161
9162         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
9163         `gint16' since we're using -1 for non-varargs methods.
9164
9165         * reflection.c
9166         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
9167         (method_encode_signature): Added varargs support.
9168         (method_builder_encode_signature): Likewise.
9169         (mono_image_get_varargs_method_token): New static method.
9170         (mono_image_create_method_token): New public method; this is
9171         called via an icall instead of mono_image_create_token() when
9172         calling a varargs method.       
9173
9174 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
9175
9176         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
9177
9178 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9179
9180         * culture-info-tables.h : Reflecting the latest locale-builder that
9181           fixed empty array representation ({} to {0}).
9182
9183 2004-06-07  Jackson Harper  <jackson@ximian.com>
9184
9185         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
9186         looking up extra gac paths. This allows MONO_GAC_PATH to act
9187         exactly like a prefix.
9188         
9189 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
9190
9191         * reflection.c (mono_reflection_type_from_name): Make a copy of the
9192         type name before modifying it. Fixes #59405.
9193
9194 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9195
9196         * culture-info.h: added fields for "all datetime patterns".
9197         * locales.c: (  ves_icall_System_Globalization_CultureInfo
9198           _construct_datetime_format ()): fill xxx_patterns fields.
9199         * object.h: added fields for "all datetime patterns" to
9200           MonoDateTimeFormatInfo.
9201         * culture-info-tables.h: reflecting locale-builder updates.
9202
9203 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
9204
9205         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
9206         the event has no add and remove methods. Fixes #59629.
9207
9208 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
9209
9210         * object.c: Fixed possible integer overflow when allocating large
9211         strings.
9212
9213 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
9214
9215         * culture-info-tables.h: reflecting locale-builder updates.
9216
9217 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
9218
9219         * culture-info-tables.h: reflecting locale-builder updates.
9220
9221 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
9222
9223         * culture-info-tables.h: reflecting locale-builder updates.
9224
9225 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
9226
9227         * threads.c: Made Thread.Sleep abortable.
9228
9229 2004-06-02  Martin Baulig  <martin@ximian.com>
9230
9231         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
9232
9233         * debug-mono-symfile.h: Bumped symbol file version number to 37.
9234
9235 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
9236
9237         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
9238
9239 2004-05-30  Jackson Harper  <jackson@ximian.com>
9240
9241         * reflection.c: Do not hardcode assembly versions or public key
9242         tokens anymore. All of this except the corlib section was dead
9243         code anyways.
9244         
9245 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
9246
9247         * object.c (mono_runtime_invoke_array): Automatically create boxed
9248         objects for byref valuetypes if needed. Fixes #59300.
9249         
9250         * object.c (mono_method_return_message_restore): Handle 
9251         MONO_TYPE_OBJECT as well.
9252
9253 2004-05-28  Jackson Harper  <jackson@ximian.com>
9254
9255         * reflection.c: The modified type encoding was causing build
9256         problems. Reverted for now.
9257         
9258 2004-05-28  Jackson Harper  <jackson@ximian.com>
9259
9260         * reflection.c/h: Take an assembly ref so that we dont create
9261         fully qualified names when encoding types in the same assembly as
9262         the custom attribute being emitted.
9263         * appdomain.c: Increment version number.
9264         
9265 2004-05-26  Duncan Mak  <duncan@ximian.com>
9266
9267         * icall.c
9268         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9269         Set the full version number (major, minor, build, revision).
9270
9271 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
9272
9273         * marshal.c (emit_struct_conv): increment src/dst after blit
9274         (mono_marshal_get_managed_wrapper,
9275         mono_marshal_get_native_wrapper): make sure we have marshalling
9276         info before marshalling params (info computation affects
9277         blittable)
9278
9279         * class.c (class_compute_field_layout): correctly deal with
9280         blittable
9281         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
9282         value types (as per what windows dows by default)
9283         (mono_class_setup_mono_type): System.ValueType is blittable
9284         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
9285         blittable
9286
9287         * marshal.c (mono_marshal_load_type_info): flag types  as
9288         non-blittable if the native layout doesn't match the managed
9289         layout
9290
9291 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9292
9293         * appdomain.c: don't add stuff in the private search path that is
9294         above the application base. If application base is not set, there's
9295         no private search path.
9296
9297 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
9298
9299         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
9300         byref struct arguments in native->managed marshalling.
9301
9302 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
9303
9304         * marshal.c (mono_marshal_get_runtime_invoke): correctly
9305         cache methods using signature (special case for methods
9306         that are value type or string class)
9307         
9308         * image.c (mono_image_close): clean up allocated GSList's
9309         in runtime_invoke_cache.
9310
9311 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9312
9313         * mono-config.c: set the correct path for mono_cfg_dir on windows when
9314         there's no MONO_CFG_DIR environment variable defined.
9315
9316 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9317
9318         * threads.c: windows version must be >= 0x0500 to include OpenThread.
9319
9320 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
9321
9322         * threadpool.c: Really wait for 500ms after the async call, even if the wait
9323           is interrumped.
9324         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
9325           before waiting for it, and call CloseHandle after the wait to unref it.
9326           This will make sure that handles are not disposed too early.
9327
9328 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9329
9330         * appdomain.c:
9331         * appdomain.h:
9332         * icall.c: removed
9333         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
9334         needed now.
9335
9336         * object.c: se the application_base only for the domain that runs
9337         Main. Fixes bug #59216,
9338
9339 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9340
9341         * appdomain.c:
9342         * object.c: only the domain in which Main is run have
9343         SetupInformation.ConfigurationFile set, so moved a few lines from
9344         appdomain.c to object.c.
9345
9346 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9347
9348         * appdomain.c: we tried to load [name].(dll|exe), but according
9349         to bug #57710, we must also try [culture]/[name].(dll|exe) and
9350         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
9351         There's a test case attached to bug #58922.
9352
9353 2004-05-27  Dick Porter  <dick@ximian.com>
9354
9355         * icall.c:
9356         * file-io.c: Implemented icalls for locking and unlocking regions
9357         in a file.
9358         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
9359         FALSE on error (fixes both compiler warning and real bug.)
9360
9361 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
9362
9363         * culture-info-tables.h: reflecting locale-builder updates.
9364
9365           (Added missing ChangeLog entry for 05/26)
9366
9367 2004-05-27  Jackson Harper  <jackson@ximian.com>
9368
9369         * locales.c: Fix some cut and paste errors.
9370         
9371 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9372
9373         * mono-config.c: set the correct path for config. directory on windows.
9374
9375 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9376
9377         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
9378           on win32.
9379
9380 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9381
9382         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
9383         from pinvoke functions.
9384         
9385         * marshal.c (mono_ftnptr_to_delegate): Implement this.
9386
9387 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9388
9389         * culture-info-tables.h: reflecting locale-builder updates.
9390
9391 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9392
9393         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
9394         #59086.
9395
9396 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
9397
9398         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
9399         * icall.c: Modified icalls for RNG.
9400         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
9401         Windows (CryptoAPI).
9402
9403 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9404
9405         * locales.c: Fix build.
9406
9407 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9408
9409         * culture-info-tables.h: reflecting locale-builder updates.
9410
9411 2004-05-25  Jackson Harper  <jackson@ximian.com>
9412
9413         * locales.c: When creating the current culture use the $LANGs
9414         specific culture. So DateTimeFormat and NumberFormat entries are created.
9415         
9416 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9417
9418         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
9419         a char array as parameter.
9420
9421 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
9422
9423         * image.c: In mono_image_open(), always use an absolute path name to
9424           look for already loaded images.
9425
9426 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
9427
9428         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
9429         missing in the windows build (like older cygwin include files).
9430
9431 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
9432
9433         * icall.c: Fixed check for possible integer overflow in Buffer_
9434         BlockCopy icall. Replaced comments style // by /* */.
9435
9436 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
9437
9438         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
9439         
9440         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
9441         check after MONO_VTADDR. Fixes pinvoke2.exe.
9442
9443         * marshal.h marshal.c metadata.h: Add beginnings of support for
9444         ftnptr -> delegate marshalling.
9445
9446 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
9447
9448         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
9449         * threads.c: Fix warnings.
9450
9451 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
9452
9453         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
9454         * icall.c: Registered icalls for Suspend and Resume.
9455         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
9456           Thread.Abort.
9457         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
9458         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
9459         * process.c: Use WaitForSingleObjectEx.
9460         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
9461           checkpoints.
9462         * threads.c, threads.h: Make use of new Ex wait methods. Improved
9463           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
9464           for Suspend and Resume. Added new mono_thread_stop, used for stoping
9465           background threads. Added basic support for Abort in Windows.
9466           Start new threads using a managed delegate invoke wrapper. This wrapper
9467           has an interruption checkpoint that is needed since an interruption
9468           can be requested before the thread leaves the unmanaged code that starts 
9469           the thread.
9470         * marshal.c: Added interruption checkpoint after every native call, and
9471           also before managed calls for wrappers called from unmanaged code to
9472           go into managed code.
9473         * object.h: Added new field in MonoThread to keep track of interruption
9474           requests.
9475
9476 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
9477
9478         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
9479         calls.
9480
9481 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9482
9483         * appdomain.c:
9484         * assembly.c:
9485         * gc.c:
9486         * locales.c:
9487         * mono-config.c:
9488         * rand.c: getenv -> g_getenv (windows!)
9489
9490         * process.c: complete_path is also used on non-windows platforms.
9491
9492 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9493
9494         * icall.c: new signature for Process_Start.
9495
9496         * process.[ch]: new signature for Process_Start. If we're on windows
9497         and UseShellExecute is false, we have to search for the program by
9498         ourselves if we don't get a full path.
9499
9500 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
9501
9502         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
9503         marshalling and call CleanUpNativeData if needed. Fixes #58646.
9504
9505 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9506
9507         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
9508         Fixes bug #58373.
9509
9510 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9511
9512         * process.c: use double quotes to quote program name and arguments on
9513         windows. Fixes bug #58575.
9514
9515 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9516
9517         * file-io.c: don't return "." and ".." when using windows Find*File.
9518
9519 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
9520
9521         * marshal.c: Don't pass wrappers to message init because method 
9522         addressed used to lookup metadata. part of remoting[2|3] fix.
9523
9524 2004-05-15  Jackson Harper  <jackson@ximian.com>
9525
9526         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
9527         path is essentially the same as MONO_PATH except that it points to
9528         GACs instead of lib directories.
9529         * loader.h: The user gac is gone so we dont need function to
9530         enable/disable it.
9531         * mono-config.c: user gac option is now gone.
9532         
9533 2004-05-15  Jackson Harper  <jackson@ximian.com>
9534
9535         * culture-info.h: Make defines more consistent, add calendar data
9536         to the culture info table.
9537         * culture-info-tables.h: Add basic calendar data. Basically
9538         everyone gets default gregorian until all the data is
9539         updated.
9540         * locales.c: Use the new consistent defines. Set calendar data for
9541         culture info objects.
9542         * object.h: add a field for calendar data to CultureInfo
9543         
9544 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
9545
9546         * image.c: image->runtime_invoke_cache is keyed on signatures now.
9547         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
9548         a signature.
9549         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
9550         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
9551         an extra param that is the pointer of the method to invoke. The IL for
9552         the invoke method is no longer specific to the method, but to the
9553         signature of the method. Thus, we can share the same code for multiple
9554         methods. This reduces the number of methods that have to be compiled.
9555
9556 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
9557
9558         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
9559
9560         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9561
9562         * icall.c: Optimize Buffer.BlockCopy.
9563
9564 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9565
9566         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
9567         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
9568         quote). Changed them to "MMMM yyyy".
9569
9570 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
9571
9572         * rand.c
9573         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
9574
9575 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
9576
9577         * reflection.h: Updated after changes to managed structures.
9578
9579         * appdomain.c: Bump corlib version.
9580
9581 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9582
9583         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
9584         windows.
9585
9586 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9587
9588         * Makefile.am: link to ../os/libmonoos.la on windows.
9589
9590         * assembly.c:
9591                 -If MONO_DEBUG, warn about non-existing directories in
9592                 MONO_PATH.
9593                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
9594                 compile time variable.
9595                 -Removed init_default_path and call mono_set_rootdir from
9596                 libmonoos.a instead (windows only).
9597
9598         * assembly.h: declare mono_assembly_getrootdir().
9599
9600         * domain.c:
9601         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
9602
9603         * loader.c: s/getenv/g_getenv/
9604
9605 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
9606
9607         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
9608
9609         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
9610
9611         * metadata.h: Add new marshalling conversions.
9612
9613         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
9614         function.
9615
9616         * reflection.c (mono_reflection_get_type): Lookup the type in all
9617         modules of a multi-module assembly. Fixes #58291.
9618
9619 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
9620
9621         * threads.c: Before aborting a background, set the StopRequested
9622         state.  This avoids throwing the Abort exception.
9623         In mono_thread_manage, don't continue with the shutdown until all
9624         aborted threads have actually stopped.
9625
9626 2004-05-10  Jackson Harper  <jackson@ximian.com>
9627
9628         * locales.c: Remove the modifier from culture names.
9629         
9630 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9631
9632         * Makefile.am: monosn is not installed any more. It has been deprecated
9633         in favor of sn.
9634
9635 2004-05-07  Jackson Harper  <jackson@ximian.com>
9636
9637         * locales.c
9638         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
9639         Fix array construction, add bailout if the length is 0.
9640
9641 2004-05-07  Dick Porter  <dick@ximian.com>
9642
9643         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
9644         machine doesn't have a DNS entry.  Patch by Urs Muff
9645         (umuff@quark.com), fixes bug 57928.
9646
9647 2004-05-06  Jackson Harper  <jackson@ximian.com>
9648
9649         * reflection.c: Handle null PublicTokens properly. alloc mem for
9650         assembly names culture so we dont crash when freeing it.
9651         
9652 2004-05-06  Jackson Harper  <jackson@ximian.com>
9653
9654         * assembly.c: Check the usergac when loading with partial names.
9655         
9656 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9657
9658         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
9659         does nothing for now (not required for Linux/Windows) but the class
9660         library can call it (and a newer or modified runtime could need it).
9661         * icall.c: Registred icall.
9662
9663 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9664
9665         * loader.c: prints a message on module loading error we set MONO_DEBUG
9666         environment variable.
9667
9668 2004-05-05  Jackson Harper  <jackson@ximian.com>
9669
9670         * appdomain.c: Handle PublicKeyToken=null properly.
9671         
9672 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9673
9674         * environment.c|h: Added icall ves_icall_System_Environment_
9675         GetOSVersionString to get the current OS version as a string.
9676         * icall.c: Registred icall.
9677
9678 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
9679
9680         * object.c: in mono_object_get_virtual_method(), take into account that
9681         non-virtual methods don't have a slot in the vtable. Check needed when
9682         the object is a proxy.
9683
9684 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
9685
9686         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
9687         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
9688
9689         * object.c (mono_class_compute_gc_descriptor): Fix warning.
9690
9691         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
9692         passed when a valuetype is expected.
9693
9694         * object.c (mono_unhandled_exception): Only set the exit code if the
9695         exception happens in the main thread. Fixes thread5.exe.
9696
9697         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
9698         invalid names. Fixes #58047.
9699
9700 2004-05-03  Jackson Harper  <jackson@ximian.com>
9701
9702         * assembly.c: This line was committed accidently and is unneeded.
9703         
9704 2004-05-03  Jackson Harper  <jackson@ximian.com>
9705
9706         * icall.c: Add new icall for Assembly::LoadWithPartialName
9707         * assembly.c/.h: new function that probes the GAC to load partial
9708         assembly names by Paolo Molaro.
9709         
9710 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9711
9712         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
9713         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
9714         (type_get_fully_qualified_name): Added PublicKeyToken when building a
9715         full type name.
9716
9717 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9718
9719         * appdomain.c: fixed check for 'neutral' culture and removed warning.
9720         * reflection.c: fix bug when parsing a full type name and Version is not
9721         the last thing in the string.
9722
9723 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
9724
9725         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
9726         crashes when it is freed.
9727
9728 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9729
9730         * assembly.c: print the compat warning to stderr.
9731
9732 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
9733
9734         * assembly.c (mono_assembly_load_references): Add a compatibility
9735         hack to run old applications that might be still referencing the
9736         3300-based assemblies, only do this for System.xxx.
9737
9738 2004-05-01  Jackson Harper  <jackson@ximian.com>
9739
9740         * appdomain.c: If the culture is neutral we set it to "".
9741         
9742 2004-04-29  Jackson Harper  <jackson@ximian.com>
9743
9744         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
9745
9746 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
9747  
9748         * string-icalls.c: added low overhead function for copying chars
9749         * icall.c: added needed icall for the above function
9750  
9751 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9752
9753         * icall.c: fix return value of get_global_assembly_cache.  Implemented
9754         Environment.GetLogicalDrives.
9755
9756 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
9757
9758         * rand.c: try and talk to egd or prngd
9759         for random bytes if opening devices fail.
9760
9761 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
9762
9763         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
9764         alignment for the type using the native alignment of its members 
9765         instead of using klass->min_align.
9766
9767         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
9768
9769 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9770
9771         * file-io.c:
9772         * socket-io.c: added check for sys/aio.h.
9773
9774 2004-04-28  Dick Porter  <dick@ximian.com>
9775
9776         * threads.c: Don't abort a thread thats already aborting, when
9777         terminating everything.
9778
9779 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9780
9781         * icall.c: added 2 new async calls for Socket.
9782
9783         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9784         IO on *nix systems.
9785
9786         * threadpool.c: removed unused variable.
9787
9788 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9789
9790         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9791
9792 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9793
9794         * locales.c: put back string_invariant_tolower () and
9795         string_invariant_toupper ().
9796
9797 2004-04-26 David Waite <mass@akuma.org>
9798
9799         * file-io.h:
9800         * socket-io.h:
9801         * threads.h:
9802         * unicode.h: remove comma from end of enumeration declarations
9803
9804 2004-04-26 David Waite <mass@akuma.org>
9805
9806         * debug-mono-symfile.h:
9807         * decimal.c:
9808         * mono_debug.h:
9809         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9810
9811
9812 2004-04-26  Jackson Harper  <jackson@ximian.com>
9813
9814         * appdomain.c: Increment version number.
9815         
9816 2004-04-26  Jackson Harper  <jackson@ximian.com>
9817
9818         * appdomain.c: Set assembly references public token value when
9819         PublicKeyToken is specified, not the hash_value. Free public token
9820         values when free assembly name data. Previously the public key
9821         token was hex decoded, however we are using hex encoded public key
9822         tokens, so this is not neccasary.
9823         * assembly.c: Lookup assemblies in the gac if their public token
9824         value is set. Add function to allow enabling user gac
9825         lookups. Specify whether or not the assembly was loaded from the
9826         GAC. Compare full assembly names when checking the cache for
9827         assemblies (Temporarily disabled see comment in code). Remove
9828         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9829         specifies trace-loader they get extra info to stdout on the
9830         loading of assemblies.
9831         * image.h: Add a field for an assembly references public token
9832         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9833         whether an assembly has been loaded from the GAC.
9834         * image.c: Remove a corlib -> mscorlib name mapping.
9835         * loader.h: Add function to enable/disable the user gac.
9836         * mono-config.c: Check if the usergac is enabled in the config
9837         file.
9838         * icall.c: New icall to determine whether or not an assembly has
9839         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9840         * tabldefs.h: Add constant for assemblyref flag that specifies a
9841         full public key is used instead of a public token.
9842         * reflection.c: Remove mscorlib -> corlib mappings. Set
9843         PublicTokenValue instead of hash value. This value is a hex
9844         string so it does not need to be expanded.
9845
9846 2004-04-26  Martin Baulig  <martin@ximian.com>
9847
9848         * mono-debug-debugger.c (mono_debugger_initialize): Set
9849         `mono_debugger_initialized' before calling mono_debug_lock().
9850
9851 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9852
9853         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9854           InternalToUpper/InternalToLower.
9855         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9856           removed invariant culture shortcut.  This is now done in managed code.
9857         * locales.c: (string_invariant_toupper/tolower) removed.
9858
9859 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9860
9861         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9862         Added Poll internal call.
9863
9864         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9865         call for Poll. Select was too heavy for polling a single socket.
9866
9867         * threadpool.[ch]: added mono_threadpool_cleanup.
9868         * threads.c: use it. Don't use Thread_Abort on windows.
9869
9870 2004-04-23  Martin Baulig  <martin@ximian.com>
9871
9872         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9873
9874 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9875
9876         * icall.c: Registred new icalls for key pair protection and added an
9877         icall for Environment.GetFolderPath on Windows.
9878         * security.c|h: Added new icalls for key pair protection.
9879
9880 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9881
9882         * socket-io.c: don't display the non-supported family warning for known
9883         families. Now this is not displayed on windows when checking support
9884         for IPv4/IPv6.
9885
9886 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9887
9888         * class.c: don't display the layout warning for static fields.
9889
9890 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9891
9892         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9893         * locales.c, locales.h: Added new icalls for culture-specific
9894         Char.ToLower and Char.ToUpper.
9895
9896 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9897
9898         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9899         by David Waite.
9900
9901 2004-04-20  Martin Baulig  <martin@ximian.com>
9902
9903         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9904         of the type name before passing it to mono_reflection_type_from_name().
9905
9906 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9907
9908         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9909         encodings here. Fixes #56965.
9910
9911 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9912
9913         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9914         fix test on strstr result not that I can see anything that
9915         relies on the result.
9916
9917 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9918
9919         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9920         Fixes #57081.
9921
9922         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9923
9924         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9925         function to determine which marshalling to use for strings. Fixes
9926         #56965.
9927
9928         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9929
9930         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9931
9932 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9933
9934         * icall.c: #include mono-config.h
9935
9936 2004-04-15  Jackson Harper  <jackson@ximian.com>
9937
9938         * culture-info-tables.h: Fix date formats for en-US culture.
9939         
9940 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9941
9942         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9943         ThreadPool.SetMinThreads.
9944         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9945         ThreadPool.SetMinThreads.
9946
9947 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9948
9949         * mono-config.c: also load the .config file in the directory
9950         where the assembly was found.
9951
9952 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9953
9954         * assembly.c: load per-assembly config files.
9955         * icall.c: decrapified code to get the config dir and moved to
9956         mono-config.c.
9957         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
9958         per-assembly config files. When doing a dll map lookup give precedence
9959         to the per-assembly data.
9960
9961 2004-04-14  Martin Baulig  <martin@ximian.com>
9962
9963         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
9964         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
9965         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
9966
9967         * mono-debugger-debugger.c: While the debugger is locked, remember
9968         whether the symbol tables have changes and send one single
9969         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
9970
9971 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
9972
9973         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
9974
9975         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
9976         function.
9977
9978         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
9979         account when marshalling string arrays. Fixes #56965.
9980
9981 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
9982
9983         * icall.c: Add new icalls mapping for security.
9984         * security.c|h: Add internal calls for WindowsIdentity,
9985         WindowsImpersonationContext and WindowsPrincipal.
9986
9987 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
9988
9989         * class.c: Added comment to ensure the System.MonoDummy class
9990         is removed when no longer necessary
9991
9992 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
9993
9994         * appdomain.c: Pass arguments to the bootstraping exceptions to
9995         minimize JITed methods at boot
9996
9997         * metadata.c (mono_exception_from_name_two_strings): Allow for the
9998         second string to be null.
9999
10000         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10001         Change the protocol to minimize the JIT methods at startup.  Now
10002         it Returns the internal codepage, if the value of "int_code_page"
10003         is 1 at entry, and we can not compute a suitable code page
10004         number, returns the code page as a string.
10005
10006 2004-04-13  Jackson Harper  <jackson@ximian.com>
10007
10008         * culture-info-tables.h: Fix number of decimal digits for all
10009         english locales.
10010
10011 2004-04-13  Jackson Harper  <jackson@ximian.com>
10012
10013         * icall.c: Clairfy out of sync error message. It is not always
10014         your corlib that is out of sync.
10015
10016 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
10017
10018         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
10019         properties when only the set accessor is overriden. Fixes #55874.
10020
10021 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
10022
10023         * assembly.c (mono_assembly_load_references): Make this thread safe.
10024         Fixes #56327.
10025
10026 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
10027
10028         * monosn.c: Add missing initialization calls.
10029
10030 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
10031
10032         * locales.c:
10033         ves_icall_System_Globalization_CultureInfo_construct_number_format
10034         Fix g_assert so it compiles on fussier compilers re int/ptr
10035         mismatch
10036
10037 2004-04-08  Dick Porter  <dick@ximian.com>
10038
10039         * socket-io.h:
10040         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
10041         53992.  Also rearrange the code so that the internal calls return
10042         an error value and exceptions are thrown from managed code.
10043
10044         * icall.c: Add type info to the socket icalls.
10045
10046 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10047
10048         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
10049         owes me a beer.
10050
10051 2004-04-07  Martin Baulig  <martin@ximian.com>
10052
10053         * class.c (mono_class_from_generic_parameter): Don't default
10054         `klass->parent' to `mono_defaults.object_type'.
10055
10056 2004-04-07  Martin Baulig  <martin@ximian.com>
10057
10058         * reflection.c (mono_reflection_initialize_generic_parameter): Set
10059         `param->pklass->reflection_info'.       
10060
10061 2004-04-07  Jackson Harper  <jackson@ximian.com>
10062
10063         * culture-info-tables.h: Fix date separator symbol.
10064         
10065 2004-04-07  Martin Baulig  <martin@ximian.com>
10066
10067         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
10068         from System.Type to System.MonoType.
10069
10070 2004-04-07  Martin Baulig  <martin@ximian.com>
10071
10072         * reflection.h
10073         (MonoReflectionGenericParam): Added `has_reference_type' and
10074         `has_value_type' fields.
10075
10076         * reflection.c (mono_image_get_generic_param_info): Encode the
10077         correct flags if we have the `class' or `struct' constraint.
10078
10079 2004-04-07  Martin Baulig  <martin@ximian.com>
10080
10081         * reflection.h
10082         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
10083
10084 2004-04-07  Jackson Harper  <jackson@ximian.com>
10085
10086         * appdomain.c: Revert extra patches, just wanted to bump the
10087         version number.
10088         
10089 2004-04-07  Jackson Harper  <jackson@ximian.com>
10090
10091         * Makefile.am: Add culture-info private headers.
10092         * icall.c: Add new icalls for contructing locales.
10093         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
10094         * locales.h: Declare new culture info construction methods.
10095         * object.h: Add new fields used to avoid the CultureMap to
10096         MonoCultureInfo.
10097         * culture-info.h: Definition of structs used in the culture info
10098         tables.
10099         * culture-info-tables.h: Autogenerated tables that contain culture
10100         info data. This file was generated with the locale-builder tool.
10101         * appdomain.c: Incement corlib version number.
10102         
10103 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
10104
10105         * appdomain.c: (mono_runtime_init) move mono_thread_init
10106         to before mono_object_new calls so critical sections
10107         are initialized before use.
10108
10109 2004-04-07  Martin Baulig  <martin@ximian.com>
10110
10111         * icall.c
10112         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
10113         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
10114         (ves_icall_MonoGenericParam_initialize): Removed.
10115         (monogenericparam_icalls): Removed.
10116         (generictypeparambuilder_icalls): Added new table for
10117         System.Reflection.Emit.GenericTypeParameterBuilder.
10118
10119         * reflection.c
10120         (mono_reflection_define_generic_parameter): Removed.
10121         (mono_reflection_initialize_generic_parameter): This is now called
10122         from GenericTypeParameterBuilder's .ctor.
10123
10124 2004-04-06  Martin Baulig  <martin@ximian.com>
10125
10126         * class.c (mono_class_init): Don't inflate nested classes in a
10127         generic instance.
10128         (mono_type_get_name_recurse): Include the generic arguments for
10129         generic instances and generic type declarations.
10130         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
10131         (_mono_class_get_instantiation_name): Removed.
10132         (mono_class_create_generic): Always use `gklass->name' as our name.
10133
10134         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
10135
10136         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
10137         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
10138         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
10139         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
10140         closed generic methods here.
10141
10142         * reflection.c
10143         (mono_reflection_generic_inst_get_nested_types): Removed.
10144         (inflate_mono_method): Copy the generic parameters from the
10145         MonoMethodHeader into out MonoGenericMethod.
10146
10147 2004-04-06  Martin Baulig  <martin@ximian.com>
10148
10149         * row-indexes.h
10150         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
10151
10152         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
10153
10154         * reflection.c (build_compressed_metadata): If we have any entries
10155         in the GenericParam, MethodSpec or GenericParamConstraint tables,
10156         set the header version to 1.1.
10157
10158 2004-04-06  Martin Baulig  <martin@ximian.com>
10159
10160         * class.c (mono_class_init): If we're a generic instance,
10161         initialize our nested classes, too.
10162         (_mono_class_get_instantiation_name): Deal with the new `!%d'
10163         suffix. 
10164
10165 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10166
10167         * process.c: quote the argument passed to the shell on windows.
10168
10169 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
10170
10171         * threads.c (mono_alloc_special_static_data): Allow this to be
10172         called during startup.
10173
10174 2004-04-02  Martin Baulig  <martin@ximian.com>
10175
10176         * icall.c
10177         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
10178
10179 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
10180
10181         * icall.c: Fix build.
10182
10183 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
10184
10185         * Makefile.am: Added security.c|h.
10186         * icall.c: Added icall for get_UserName;
10187         * security.c: New file for security related icalls. Added function
10188         get_UserName for System.Environment (fix #56144).
10189         * security.h: New. Header file for security.c
10190
10191 2004-04-02  Dick Porter  <dick@ximian.com>
10192
10193         * icall.c: Deleted the icalls that were obsoleted some time ago
10194         by the ICU string code, and which were mixed into the icall
10195         rearranging.  Fixes bug 55969.
10196
10197         * string-icalls.h: 
10198         * string-icalls.c: Deleted the code that those icalls reference.
10199
10200 2004-04-01  Martin Baulig  <martin@ximian.com>
10201
10202         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
10203
10204         * class.c (mono_class_from_generic_parameter): Don't set 
10205         TYPE_ATTRIBUTE_INTERFACE.
10206         (my_mono_class_from_generic_parameter): Likewise.
10207
10208 2004-04-01  Martin Baulig  <martin@ximian.com>
10209
10210         * loader.c (find_method): Added an optional `MonoClass *ic'
10211         argument to search in a specific interface.
10212         (mono_get_method_constrained): New public function.
10213
10214 2004-04-01  Martin Baulig  <martin@ximian.com>
10215
10216         * reflection.c (mono_image_get_generic_field_token): Use the
10217         `handleref' cache here.
10218
10219 2004-04-01  Martin Baulig  <martin@ximian.com>
10220
10221         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
10222
10223         * reflection.c (create_generic_typespec): Use the `typespec' hash
10224         here, not the `typeref' one.    
10225
10226 2004-04-01  Martin Baulig  <martin@ximian.com>
10227
10228         * class.c (mono_class_inflate_generic_type): Moved the
10229         functionality into a new static inflate_generic_type() which
10230         returns NULL if it didn't do anything.  Only increment the
10231         `mono_stats.inflated_type_count' if we actually inflated
10232         something.
10233         (mono_class_get_full): Check the classes type to see whether we
10234         need to inflate it; also inflate MONO_TYPE_(M)VAR.
10235
10236 2004-04-01  Jackson Harper  <jackson@ximian.com>
10237
10238         * reflection.c: Set culture for assembly references.
10239         
10240 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
10241
10242         * reflection.[ch], icall.[ch], Fix support for pinning variables.
10243
10244 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10245
10246         * assembly.c:
10247         (do_mono_assembly_open): the critical section also covers
10248         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
10249
10250 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10251
10252         * threads.c:
10253         (mono_manage_threads): abort the background threads when finishing.
10254         Fixes bug #47232.
10255
10256 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10257
10258         * gc.c: only close the done_event handle if there was no timeout.
10259         C-ified comments.
10260
10261 2004-03-30  Martin Baulig  <martin@ximian.com>
10262
10263         * icall.c (icall_entries): It's called "System.Activator", not
10264         "System.Activation".    
10265
10266 2004-03-30  Martin Baulig  <martin@ximian.com>
10267
10268         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
10269         (mono_class_create_from_typespec): Likewise.
10270
10271 2004-03-30  Martin Baulig  <martin@ximian.com>
10272
10273         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
10274         `has_ctor_constraint' and `initialized'.
10275
10276 2004-03-30  Martin Baulig  <martin@ximian.com>
10277
10278         * reflection.c (encode_new_constraint): New static function to add
10279         the constructor constraint attribute to a type parameter.
10280         (encode_constraints): Call encode_new_constraint() if necessary.
10281
10282         * reflection.h
10283         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
10284
10285         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
10286         
10287 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
10288
10289         * reflection.c, icall.c: add support for pinning variables. 
10290
10291 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
10292
10293         * marshal.c (mono_marshal_get_managed_wrapper):
10294         init bool local with zero rather than null.
10295
10296 2004-03-29  Martin Baulig  <martin@ximian.com>
10297
10298         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
10299         the "official" behavior here.
10300         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
10301
10302 2004-03-29  Martin Baulig  <martin@ximian.com>
10303
10304         * icall.c: Reflect latest API changes.
10305
10306 2004-03-29  Martin Baulig  <martin@ximian.com>
10307
10308         * loader.c (mono_get_method_from_token): Also call
10309         mono_metadata_load_generic_params () for abstract and interface
10310         methods; replace the type arguments in the method signature with
10311         the ones which are loaded from the metadata.
10312
10313 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
10314
10315         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
10316         of the lock is not the current thread. MS.NET don't do it, in spite of
10317         what the documentation says. See bug #56157.
10318
10319 2004-03-28  Martin Baulig  <martin@ximian.com>
10320
10321         * class.c (mono_class_init): Don't call init_properties() and
10322         init_events() for generic instances; set `prop->parent' when
10323         inflating properties.
10324
10325         * reflection.c (mono_generic_inst_get_object): Call
10326         `mono_class_init (ginst->klass)'.
10327         (mono_type_get_object): Only create a MonoGenericInst if your
10328         generic type is a TypeBuilder.
10329         (do_mono_reflection_bind_generic_parameters): Only set
10330         `ginst->is_dynamic' if our generic type is a TypeBuilder.
10331
10332 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
10333
10334         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
10335         Fixes #56091.
10336
10337 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10338
10339         * icall.c: added Kill_internal icall.
10340         * process.[ch]: added Kill_internal icall.
10341
10342 2004-03-25  Martin Baulig  <martin@ximian.com>
10343
10344         * class.h (MonoStats): Added `generic_instance_count',
10345         `inflated_method_count', `inflated_type_count' and
10346         `generics_metadata_size'.       
10347
10348 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10349
10350         * reflection.c: no warnings now.
10351
10352 2004-03-25  Martin Baulig  <martin@ximian.com>
10353
10354         * class.c (mono_class_get_full): New public function; does a
10355         mono_class_get(), but also takes a `MonoGenericContext *'.
10356
10357         * loader.c (mono_field_from_memberref): Renamed to
10358         `field_from_memberref', made static and added `MonoGenericContext *'
10359         argument.
10360         (mono_field_from_token): Added `MonoGenericInst *' argument.
10361         (method_from_memberef): Likewise.
10362         (mono_get_method_from_token): Likewise.
10363         (mono_get_method_full): New public function; does a
10364         mono_get_method(), but also takes a `MonoGenericContext *'.
10365
10366         * verify.c (mono_method_verify): Get the method's generic context
10367         and pass it to mono_field_from_token(), mono_get_method_full() and
10368         mono_class_get_full().
10369
10370 2004-03-25  Martin Baulig  <martin@ximian.com>
10371
10372         * class.c (mono_class_inflate_generic_type): Take a
10373         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
10374         `MonoGenericMethod *'.
10375
10376 2004-03-25  Martin Baulig  <martin@ximian.com>
10377
10378         * loader.h (MonoMethodInflated): Store the MonoGenericContext
10379         instead of the MonoGenericMethod here.
10380
10381 2004-03-25  Martin Baulig  <martin@ximian.com>
10382
10383         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
10384         each time we create a new MonoGenericInst, we also create a new
10385         context which points back to us.
10386
10387         * class.c (inflate_method): Use `ginst->context' instead of
10388         creating a new context.
10389
10390         * loader.c (method_from_memberref): Use
10391         `klass->generic_inst->context' instead of creating a new context.
10392
10393 2004-03-25  Martin Baulig  <martin@ximian.com>
10394
10395         * class.h (MonoGenericContext): New struct.
10396         (MonoGenericMethod): Removed `generic_inst'.
10397
10398         * class.c (mono_class_inflate_generic_method): Take a
10399         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
10400
10401 2004-03-25  Martin Baulig  <martin@ximian.com>
10402
10403         * loader.h (MonoMethodInflated): New typedef.
10404
10405         * metadata.h (MonoMethodSignature): Removed `gen_method', make
10406         `generic_param_count' consume just 30 bits, added `is_inflated'
10407         and `has_type_parameters' flags (one bit each).
10408
10409         * class.c (mono_class_inflate_generic_method): Create a
10410         MonoMethodInflated instead of a MonoMethodNormal and set
10411         `is_inflated' in the method signature.
10412
10413         * class.h (MonoGenericMethod): Removed `generic_method'.
10414
10415 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
10416
10417         * image.c: Make sure the name of a MonoImage is always an absolute path.
10418           This fixes bug #54415.
10419
10420 2004-03-24  Martin Baulig  <martin@ximian.com>
10421
10422         * class.c (mono_class_setup_vtable): If we're a generic instance,
10423         use our generic type's vtable size.
10424
10425 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
10426
10427         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
10428         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
10429         problems.
10430
10431 2004-03-23  Martin Baulig  <martin@ximian.com>
10432
10433         * class.h (MonoDynamicGenericInst): Added `int count_events' and
10434         `MonoEvent *events'.
10435
10436         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
10437         (typebuilder_icalls): Added "get_event_info"; calls
10438         mono_reflection_event_builder_get_event_info(). 
10439
10440         * reflection.c (mono_reflection_generic_inst_initialize): Added
10441         `MonoArray *events'.
10442         (mono_reflection_event_builder_get_event_info): New function.
10443
10444 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
10445
10446         * object.h: add mono_type_initialization_init
10447
10448         * object.c (mono_runtime_class_init): 
10449         implement class constructor synchronization rules
10450         to cope with threading issues.  
10451         add mono_type_initialization_init
10452
10453         * appdomain.c (mono_runtime_init): call 
10454         mono_type_initialization_init
10455
10456         * class.h: removing initializing field from MonoVTable
10457
10458 2004-03-23  Martin Baulig  <martin@ximian.com>
10459
10460         * class.c (my_mono_class_from_generic_parameter): Use
10461         `param->name' if it's not NULL. 
10462
10463 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
10464
10465         * class.c: do not insert non-virtual methods in the vtable.
10466         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
10467         that means the method is non-virtual. This never would have
10468         happened before.
10469
10470 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
10471
10472         * profiler.c: Added lock for accessing coverage_hash.
10473
10474 2004-03-22  Martin Baulig  <martin@ximian.com>
10475
10476         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
10477         `method->method->signature->generic_param_count != 0' to make it
10478         work for interface methods.
10479
10480 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10481
10482         * process.c: quote the string passed to the shell using g_shell_quote.
10483
10484 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10485
10486         * threads.c:
10487         (mono_threads_manage): don't remove the finalizer thread and self
10488         from the threads hash table so that mono_thread_manage can be called
10489         more than once.
10490
10491 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10492
10493         * process.c: quote the arguments when UseShellExecute is true. Fixes
10494         bug #55790.
10495
10496 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10497
10498         * threads.c: set mono_thread_detach as a cleanup routine for every
10499         thread. This way it's always executed upon thread termination, either
10500         aborted or finished normally. No more xsp hangs!
10501
10502 2004-03-17  Martin Baulig  <martin@ximian.com>
10503
10504         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
10505         `int count_nested' and a `MonoType **nested'.
10506
10507         * reflection.c (mono_reflection_bind_generic_parameters): Moved
10508         most of the functionality into a new static
10509         do_mono_reflection_bind_generic_parameters() and don't take a
10510         `MonoType *nested_in' argument any more.  Don't compute nested
10511         types here.
10512         (mono_reflection_generic_inst_get_nested_types): New public method
10513         to get nested types.
10514
10515         * class.c (mono_class_create_generic): Set `klass->nested_in' if
10516         we're a nested class.
10517
10518         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
10519         mono_reflection_generic_inst_get_nested_types() to compute the
10520         nested types.
10521
10522 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10523
10524         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
10525         descriptive error message under windows.
10526         
10527 2004-03-17  Martin Baulig  <martin@ximian.com>
10528
10529         * class.c (dup_type): Added `const MonoType *original' argument;
10530         copy the attrs from the original type.
10531
10532 2004-03-17  Martin Baulig  <martin@ximian.com>
10533
10534         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
10535         `m->generic_inst_cache' here.
10536
10537 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10538
10539         * exception.h exception.c: Add stack_overflow_exception.
10540
10541 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10542
10543         * threadpool.c:
10544         (overlapped_callback): call SetEvent *after* invoking the callback.
10545         No need to call CloseHandle.
10546
10547 2004-03-16  Martin Baulig  <martin@ximian.com>
10548
10549         * reflection.c (mono_image_get_fieldref_token): Take a
10550         `MonoReflectionField *' instead of a `MonoClassField *' and a
10551         `MonoClass *'; store the `MonoReflectionField *' in the hash.
10552
10553 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10554
10555         * appdomain.c: don't add the culture to the filename we're looking for
10556         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
10557
10558 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10559
10560         * locales.c: don't ignore symbols when doing case insensitive compares.
10561         Thanks Dick! Fixes bug #54046.
10562
10563         * threads.c: surround 'threads' usage with enter/leave in
10564         mono_thread_manage.
10565
10566 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
10567
10568         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
10569         implicitly marshalled as [Out]. Fixes #55450.
10570
10571         (mono_marshal_get_runtime_invoke): Zero out the result if there is
10572         an exception.
10573
10574 2004-03-16  Martin Baulig  <martin@ximian.com>
10575
10576         * class.c (mono_class_from_generic_parameter): Use the actual
10577         parameter name. 
10578
10579 2004-03-16  Martin Baulig  <martin@ximian.com>
10580
10581         * reflection.c (type_get_signature_size): New static function.
10582         Compues the size of the type in a method signature.
10583         (method_get_signature_size): New static function; calls
10584         type_get_signature_size() to compute the actual size of the
10585         method's signature.
10586         (method_encode_signature): Use method_get_signature_size() to get
10587         the signature's size rather than using `nparams * 10'.
10588
10589 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10590
10591         * file-io.h: define here WapiOverlapped on windows. I don't want the
10592         regular OVERLAPPED one.
10593
10594         * file-io.c:
10595         * threadpool.c: somehow, BindIoCompletionCallback is not found.
10596         Disabling AIO on windows.
10597
10598 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10599
10600         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
10601         bug #55385.
10602
10603 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10604
10605         * appdomain.c: upgraded corlib version.
10606
10607         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
10608         and BeginWrite. Allow opening files for asynchrnous operations.
10609
10610         * file-io.h: new struct that maps FileStreamAsyncResult.
10611         * icall.c: added new icalls.
10612         * process.[ch]: support setting child process environment variables
10613         and use the SHELL or COMSPEC when UseShellExecute is true.
10614
10615         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
10616         callback for async. IO is here and also BindHandle.
10617
10618         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
10619         from here.
10620
10621 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
10622
10623         * reflection.c (create_custom_attr): Allow len == 0.
10624
10625         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
10626         computation on big-endian machines.
10627
10628 2004-03-13  Martin Baulig  <martin@ximian.com>
10629
10630         * class.h (MonoGenericInst): Added `int count_ifaces'.
10631
10632         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
10633         `ginst->count_ifaces' instead `klass->interface_count' since we
10634         may get called before the vtable is created.
10635
10636         * loader.c (mono_method_get_param_names): If we're a generic
10637         instance, return and don't initialize the class.
10638
10639         * reflection.c (mono_reflection_setup_generic_class): Don't call
10640         ensure_runtime_vtable().
10641         (mono_reflection_bind_generic_parameters): Set
10642         `ginst->count_ifaces'.
10643
10644 2004-03-11  Jackson Harper <jackson@ximian.com>
10645
10646         * icall.c:
10647         * unicode.c:
10648         * unicode.h: Remove unused System.Char icalls.
10649         
10650 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
10651
10652         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
10653         code when we P/Invoke the first library in Windows.Forms, instead
10654         of when we first open the assembly.
10655
10656         * assembly.c: Drop the lookup from here.
10657
10658 2004-03-10  Martin Baulig  <martin@ximian.com>
10659
10660         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
10661         class for properties, fields and events.  Finally fixes #54945.
10662
10663 2004-03-10  Martin Baulig  <martin@ximian.com>
10664
10665         * metadata.c (mono_metadata_class_equal): New static function;
10666         checks whether two generic instances or two generic parameters are
10667         equal.
10668         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
10669         compare classes.        
10670
10671 2004-03-10  Martin Baulig  <martin@ximian.com>
10672
10673         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
10674
10675         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
10676         argument and write it into the `reflection_info' field.
10677
10678         * icall.c
10679         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
10680         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
10681
10682 2004-03-09  Jackson Harper  <jackson@ximian.com>
10683
10684         * char-conversions.h: use 8 bits for numeric data its all we need
10685         * icall.c: numeric data is only 8 bits now.
10686
10687 2004-03-09  Martin Baulig  <martin@ximian.com>
10688
10689         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
10690
10691         * class.c (init_properties, init_events): Initialize the new
10692         `parent' field.
10693
10694         * reflection.c (typebuilder_setup_properties): Likewise.
10695         (typebuilder_setup_events): Likewise.
10696
10697         * reflection.h (MonoEventInfo): Replaced `parent with
10698         `declaring_type' and `reflected_type'.
10699
10700         * icall.c (ves_icall_get_property_info): Distinguish between
10701         declaring and reflected type.
10702         (ves_icall_get_event_info): Likewise.
10703
10704 2004-03-09  Martin Baulig  <martin@ximian.com>
10705
10706         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
10707         (ves_icall_Type_GetField): Correctly set field->klass.
10708
10709 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
10710
10711         * loader.h: Fix warning.
10712
10713 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
10714
10715         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
10716         library routine if present.  Notice that it will still continue
10717         executing even if its missing, for those working on the Gtk#
10718         edition of Windows.Forms.
10719
10720         * assembly.c (do_mono_assembly_open): If loading the
10721         System.Windows.Forms call mono_loader_wini_init.
10722
10723 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
10724
10725         * class.h: Added MonoRemoteClass struct.
10726         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
10727         function for MonoStrings.
10728         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
10729         Added internal call for getting the proxy type.
10730         * marshal.c: Get the type of transparent proxies from its remote_class.
10731         Added methods that generate the IL for type checks and casts:
10732         mono_marshal_get_isinst, mono_marshal_get_castclass, 
10733         mono_marshal_get_proxy_cancast.
10734         * marshal.h: Declaration of the previous new methods.
10735         * object.c: Added new moethods for creating and updating MonoRemoteClass
10736         instances: mono_remote_class, mono_upgrade_remote_class, 
10737         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
10738         * verify.c: FIx transparent_proxy_fields layout.
10739         * appdomain.c: Bump corlib version.
10740
10741 2004-03-04  Jackson Harper  <jackson@ximian.com>
10742
10743         * icall.c: Add icall to access char conversion tables.
10744         * char-conversions.h: Character conversion tables.
10745         * Makefile.am: Add char-conversions.h private header file.
10746         
10747 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
10748
10749         * appdomain.c (unload_thread_main): Increase unloading timeout to
10750         10 sec as a temporary workaround for Nant problems.
10751
10752 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
10753
10754         * gc.c: Add checks for GC_enable and GC_disable.
10755
10756         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
10757         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
10758         (bug #54988).
10759         
10760 2004-02-27  Martin Baulig  <martin@ximian.com>
10761
10762         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10763         `MonoReflectionType *' instead of a `MonoType *'.
10764
10765 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
10766
10767         * gc.c (run_finalize): Avoid finalizing the object representing the
10768         finalizer thread.
10769         (finalizer_thread): Fix warning.
10770
10771 2004-02-25  Martin Baulig  <martin@ximian.com>
10772
10773         * class.c (_mono_class_get_instantiation_name): Added `int offset'
10774         argument for nested types.
10775         (mono_class_create_generic): Added support for nested generictypes.
10776
10777         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
10778         `GList *nested'.
10779
10780         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10781
10782         * reflection.c (method_encode_signature): Increase the minimum
10783         value of `size' from 10 to 11.
10784         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10785         and `MonoType **types' arguments instead of the `MonoArray
10786         *types'; added `MonoType *nested_in'.  Recursively instantiate
10787         nested classes. 
10788
10789 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10790
10791         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10792         stack_overflow_ex members which are used by exception handling.
10793
10794         * appdomain.c (mono_runtime_init): Initialize the new members.
10795
10796         * gc.c (mono_gc_enable): New helper function.
10797         * gc.c (mono_gc_disable): New helper function.
10798
10799 2004-02-23  Martin Baulig  <martin@ximian.com>
10800
10801         * icall.c: I must have been really stupid - make it actually work
10802         this time ;-)
10803
10804 2004-02-23  Martin Baulig  <martin@ximian.com>
10805
10806         * loader.c (method_from_memberref): Only inflate the method if
10807         it's in another klass.
10808
10809 2004-02-23  Martin Baulig  <martin@ximian.com>
10810
10811         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10812         (mono_class_init): If we're a generic instance and an interface,
10813         compute `class->interface_id'; also create `class->interfaces'
10814         here and inflate them.
10815
10816         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10817         `ginst->is_open'.
10818         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10819
10820         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10821
10822 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10823
10824         * reflection.c (method_encode_code): Improved the error message
10825         generated by the exception.
10826
10827 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10828
10829         * icall.c: Martin did not do what he said in the ChangeLog for
10830         2004-02-18, but put back the changes for properties and events.
10831         Commenting those changes out again and adding comment to bug #54518.
10832         
10833         * process.c: removed warning.
10834
10835 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10836
10837         * marshal.c (emit_struct_conv): Print an error message instead of
10838         asserting when a type does not have the StructLayout attribute.
10839
10840 2004-02-20  Martin Baulig  <martin@ximian.com>
10841
10842         * reflection.c (mono_type_get_object): Also use the cache for
10843         generic instances.
10844         (mono_reflection_bind_generic_parameters): Always compute
10845         `ginst->ifaces'.        
10846
10847 2004-02-20  Martin Baulig  <martin@ximian.com>
10848
10849         * class.h (MonoGenericMethod): Removed `klass'.
10850
10851         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10852         *klass' argument.
10853
10854 2004-02-20  Martin Baulig  <martin@ximian.com>
10855
10856         * reflection.c (method_encode_methodspec): Actually use the
10857         uninflated signature for the memberref.
10858
10859 2004-02-20  Martin Baulig  <martin@ximian.com>
10860
10861         * class.h (MonoGenericMethod): Removed `declaring'.
10862
10863         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10864         is NULL, compute it here.
10865
10866 2004-02-20  Martin Baulig  <martin@ximian.com>
10867
10868         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10869
10870         * metadata.c (mono_metadata_generic_inst_hash): New method.
10871         (mono_metadata_generic_inst_equal): New method.
10872
10873         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10874         `klass->image->generic_inst_cache' cache to avoid creating
10875         duplicate MonoGenericInst's.
10876
10877         * class.c (mono_class_inflate_generic_type): Use the cache.
10878
10879 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10880
10881         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10882
10883 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10884
10885         * icall.c: added Socket.WSAIoctl icall.
10886
10887         * socket-io.[ch]: implemented
10888         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10889
10890 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10891
10892         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10893
10894 2004-02-18  Urs C Muff  <umuff@quark.com>
10895
10896         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10897         this work on PPC and other big-endian architectures.
10898
10899         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10900         fields with an underscore to make sure they're only accessed by
10901         the read32() macro.
10902
10903 2004-02-18  Martin Baulig  <martin@ximian.com>
10904
10905         * icall.c: Put the klass->refclass changes back for methods and
10906         fields, but not for properties and events.  We're currently not
10907         distinguishing between DeclaringType and ReflectedType for
10908         properties and events, that's what caused the regressions.
10909
10910 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10911
10912         * object.c:
10913         (mono_async_result_new): the handle can be NULL.
10914
10915         * threadpool.c: Use an event instead of a semaphore, don't initialize
10916         it until needed. This saves quite a few semaphores from being created
10917         when using the threadpool.
10918
10919 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10920
10921         * object.c (mono_string_is_interned_lookup): Fix interning of long
10922         strings. Fixes #54473.
10923
10924         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10925
10926         * icall.c: Revert the klass->refclass changes since they introduce
10927         regressions (bug #54518).
10928
10929 2004-02-18  Martin Baulig  <martin@ximian.com>
10930
10931         * class.c (mono_class_init): If we're a generic instance and don't
10932         come from a TypeBuilder, inflate our members here.
10933         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10934         (mono_class_create_generic): New public method.
10935         (mono_class_initialize_generic): Removed.
10936         (get_instantiation_name): Renamed to
10937         _mono_class_get_instantiation_name() and made it public.
10938
10939 2004-02-18  Martin Baulig  <martin@ximian.com>
10940
10941         * class.c (mono_class_inflate_generic_type): Clear the new
10942         instance's `nginst->klass' when inflating a generic instance.
10943         (mono_class_is_subclass_of): Added (basic) support for generic
10944         instances.
10945
10946 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10947
10948         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10949         MonoMempool to hold compiled native code.
10950
10951 2004-02-17  Martin Baulig  <martin@ximian.com>
10952
10953         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10954         `properties'.
10955
10956         * reflection.c (mono_reflection_generic_inst_initialize): Added
10957         `MonoArray *properties' argument.
10958
10959         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
10960
10961 2004-02-17  Martin Baulig  <martin@ximian.com>
10962
10963         * icall.c (ves_icall_Type_GetFields): Renamed to
10964         ves_icall_Type_GetFields_internal() and added a
10965         `MonoReflectionType *rtype' argument; pass it to
10966         mono_field_get_object() to set the field's "reflected" type.
10967         (ves_icall_Type_GetConstructors): Likewise.
10968         (ves_icall_Type_GetEvents): Likewise.
10969         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
10970         argument; pass it to mono_method_get_object() to set the method's
10971         "reflected" type.       
10972
10973 2004-02-17  Martin Baulig  <martin@ximian.com>
10974
10975         * class.h (MonoDynamicGenericInst): New type.
10976         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
10977
10978         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
10979         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
10980         (ves_icall_MonoGenericInst_GetFields): New interncall.
10981
10982         * class.c (mono_class_from_generic): Don't call
10983         mono_class_initialize_generic() if this is a dynamic instance;
10984         ie. it's being created from a TypeBuilder.
10985         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
10986         `class->byval_arg.type'.
10987
10988         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
10989         to `inflate_method' and made static.
10990         (mono_reflection_inflate_field): Removed.
10991         (mono_reflection_generic_inst_initialize): New public method.
10992
10993         * reflection.h (MonoReflectionGenericInst): Removed `methods',
10994         `ctors' and `fields'; added `initialized'.
10995
10996 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
10997
10998         * debug-helpers.c (mono_method_full_name): Fix output for empty
10999         namespaces.
11000
11001 2004-02-12  Martin Baulig  <martin@ximian.com>
11002
11003         * class.h (MonoClassField): Added `MonoType *generic_type'.
11004
11005         * reflection.c (mono_image_get_fieldref_token): Added support for
11006         instantiated generic types.
11007         (field_encode_inflated_field): Removed.
11008         (mono_image_get_inflated_field_token): Removed.
11009         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
11010
11011         * reflection.h (MonoReflectionInflatedField): Removed.
11012
11013 2004-02-12  Martin Baulig  <martin@ximian.com>
11014
11015         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
11016         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
11017
11018         * reflection.c (mono_image_get_methodspec_token): Take a
11019         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
11020         (mono_image_create_token): Check whether we have a
11021         `method->signature->gen_method' and call
11022         mono_image_get_methodspec_token() if appropriate.
11023         (inflated_method_get_object): Removed.
11024         (mono_reflection_bind_generic_method_parameters): Return a
11025         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
11026         (mono_reflection_inflate_method_or_ctor): Likewise.
11027
11028         * reflection.h (MonoReflectionInflatedMethod): Removed.
11029
11030 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
11031
11032         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
11033         for custom valuetype marshalling.
11034
11035         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
11036
11037 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11038
11039         * icall.c: fixed WSAGetLastError_internal name.
11040
11041 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
11042
11043         * threads.c (mono_thread_attach): Allow this to be called multiple
11044         times for a thread.
11045         
11046         * threads.c (build_wait_tids): Do not wait for ourselves.
11047
11048         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
11049         appdomain list is empty.
11050
11051         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
11052         memory returned by mono_string_builder_to_utf16, since it points into
11053         managed memory. Thanks to Bernie Solomon for noticing this.
11054
11055         * icall.c: Add AppDomainSetup icalls.
11056
11057         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
11058
11059         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
11060         types.
11061
11062         * reflection.c (reflection_methodbuilder_to_mono_method): Save
11063         custom attributes to the method_aux struct. Also fix array indexes etc.
11064
11065         * loader.c (mono_method_get_param_names): Make dynamic case work again.
11066         
11067 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
11068
11069         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
11070         (both static and runtime) and reduce startup time.
11071
11072 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
11073
11074         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
11075         AsAny marshalling conversion instead of crashing.
11076
11077         * marshal.c: Fix warnings.
11078
11079 2004-02-09  Martin Baulig  <martin@ximian.com>
11080
11081         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
11082
11083         * reflection.h (MonoReflectionInflatedMethod): Removed the
11084         `declaring' field, it's now in the unmanaged MonoGenericMethod.
11085
11086         * reflection.c (method_encode_methodspec): Removed the `method'
11087         argument; we get it from `gmethod->declaring'.
11088         (inflated_method_get_object): Removed the `declaring' argument.
11089
11090 2004-02-09  Martin Baulig  <martin@ximian.com>
11091
11092         * class.h (MonoGenericMethod): New type.
11093         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
11094         `generic_method'.
11095
11096         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
11097         a `MonoGenericMethod *gen_method' one.
11098
11099         * class.c (mono_class_inflate_generic_type): Take an additional
11100         `MonoGenericMethod * argument.  This is only non-NULL if we're
11101         inflating types for a generic method.   
11102         (mono_class_inflate_generic_signature): Renamed to
11103         inflate_generic_signature() and made static; take a
11104         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
11105         (inflate_generic_header): Take a `MonoGenericMethod *' argument
11106         instead of a `MonoGenericInst *' one.
11107         (mono_class_inflate_generic_method): Likewise.
11108
11109         * reflection.c (encode_generic_method_sig): Take a
11110         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
11111         (method_encode_methodspec): Likewise.
11112         (inflated_method_get_object): Likewise. 
11113
11114         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
11115         field with a `MonoGenericMethod *gmethod' one.  
11116
11117 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
11118
11119         * class.h (mono_class_has_parent): add parens to expansion
11120         so you can ! this.
11121
11122 2004-02-08  Martin Baulig  <martin@ximian.com>
11123
11124         * image.h (MonoImage): Removed `generics_cache'.
11125
11126         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
11127         instead of a `MonoType *' argument; removed the `inflate_methods'
11128         argument.  Don't inflate methods here.
11129
11130         * loader.c (find_method): If it's a generic instance, call
11131         mono_class_init() on the `sclass->generic_inst->generic_type'.
11132
11133         * metadata.c (mono_type_size): Make this work on uninitialized
11134         generic instances; call it on the `ginst->generic_type's class.
11135
11136         * reflection.c (mono_reflection_bind_generic_parameters): Call
11137         mono_class_from_generic() to create the `ginst->klass'.
11138
11139 2004-02-08  Martin Baulig  <martin@ximian.com>
11140
11141         * class.h (MonoClass): Changed type of `generic_inst' from
11142         `MonoType *' to `MonoGenericInst *'.
11143
11144 2004-02-08  Martin Baulig  <martin@ximian.com>
11145
11146         * icall.c (ves_icall_Type_BindGenericParameters): Just call
11147         mono_type_get_object(), this is now creating a `MonoGenericInst'
11148         for MONO_TYPE_GENERICINST.
11149         (ves_icall_MonoGenericInst_GetParentType): Likewise.
11150         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
11151
11152         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
11153         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
11154         (inflated_method_get_object): Added `MonoClass *refclass' argument.
11155         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
11156         and reflected type.
11157
11158         * reflection.h (MonoReflectionInflatedMethod): Removed
11159         `declaring_type' and `reflected_type'.
11160
11161 2004-02-08  Martin Baulig  <martin@ximian.com>
11162
11163         * class.h (MonoGenericInst): Added `MonoType *parent' and
11164         `MonoType **ifaces'.
11165
11166         * reflection.h (MonoReflectionGenericInst): Removed `klass',
11167         `parent' and `interfaces'.
11168
11169         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11170         `MonoType *' argument and return a `MonoType *'.
11171
11172         * icall.c
11173         (ves_icall_MonoGenericInst_GetParentType): New interncall.
11174         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
11175
11176 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
11177
11178         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
11179         valuetype marshalling.
11180
11181 2004-02-06  Martin Baulig  <martin@ximian.com>
11182
11183         * class.c
11184         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
11185         (my_mono_class_from_generic_parameter): Likewise.
11186
11187 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
11188
11189         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
11190         contents of the symbol files lazily.
11191
11192         * object.h (MonoThread): Add 'name' and 'name_len' fields.
11193
11194         * threads.h threads.c icall.c: New icalls for getting and setting the
11195         threads name.
11196
11197 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
11198
11199         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
11200         Raise an exception when the domain is not found.
11201
11202 2004-02-03  Martin Baulig  <martin@ximian.com>
11203
11204         * reflection.c (mono_image_get_methodspec_token): Use the
11205         uninflated signature; fixes gen-33.
11206
11207 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
11208
11209         * gc.c threads.c: Make the finalizer thread a normal managed thread so
11210         the finalizer code can use thread functionality.
11211
11212         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
11213         the finalizer thread.
11214
11215         * threads.c: Make some functions more robust.
11216
11217         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
11218
11219         * metadata.h: Add new marshalling conventions.
11220
11221         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
11222         stringbuilder marshalling. Fixes #53700.
11223
11224         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
11225
11226         * reflection.c (mono_image_get_type_info): Save declarative security
11227         info.
11228
11229         * reflection.c (mono_image_get_field_info): Handle uninitialized 
11230         unmanaged fields as well.
11231
11232         * appdomain.c: Bump corlib version.
11233
11234 2004-02-01  Martin Baulig  <martin@ximian.com>
11235
11236         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
11237         method type arguments.  
11238
11239 2004-01-30  Duncan Mak  <duncan@ximian.com>
11240
11241         * marshal.h: Add prototype for
11242         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
11243         and
11244         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
11245         fix the build.
11246
11247 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
11248
11249         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
11250         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
11251
11252 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11253
11254         * marshal.c (mono_marshal_get_native_wrapper): Add support for
11255         custom marshalling of valuetypes.
11256
11257         * marshal.c: Fix some warnings.
11258
11259 2004-01-29  Martin Baulig  <martin@ximian.com>
11260
11261         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
11262         for generic method parameters.
11263
11264         * reflection.c (method_encode_methodspec): Write the uninflated
11265         signature into the methodspec table.
11266         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
11267         is always the uninflated method.
11268         (reflection_methodbuilder_to_mono_method): Copy the generic
11269         parameters from the MethodBuilder into `header->gen_params'.
11270
11271 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11272
11273         * class.c (mono_class_from_generic_parameter): Fix warning.
11274
11275 2004-01-27  Martin Baulig  <martin@ximian.com>
11276
11277         * class.c (mono_class_from_generic_parameter): Don't create
11278         `klass->methods' here.  
11279
11280 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
11281
11282         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
11283         extension since it does not work with libraries named lib<FOO>.dll.so.
11284
11285 2004-01-25  Martin Baulig  <martin@ximian.com>
11286
11287         * class.c (mono_class_inflate_generic_type): Added support for
11288         MONO_TYPE_GENERICINST.
11289
11290         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
11291         inflate methods on open constructed types.      
11292
11293 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11294
11295         * object.c: fire ProcessExit event in the root AppDomain after running
11296         Main. Fixes bug #53299.
11297
11298 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
11299
11300         * socket-io.c: include the new socket-wrappers.h header.
11301         Use the wrappers instead of the unix socket functions to make the code
11302         more clear.
11303
11304 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
11305
11306         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
11307
11308         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11309         Fixes #22532.
11310
11311 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
11312
11313         * reflection.c (mono_image_create_pefile): Handle the case when the
11314         entry point is not a MethodBuilder.
11315
11316         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11317         field to ReflectionMethod since it is not allways a builder.
11318
11319         * reflection.c (type_get_fully_qualified_name): New helper function to
11320         return the fully qualified name of a type.
11321
11322         * reflection.c (encode_marshal_blob): Always emit the fully qualified
11323         type name for custom marshallers.
11324
11325         * reflection.c (mono_marshal_spec_from_builder): Ditto.
11326
11327         * class.c (mono_class_setup_vtable): If a parent class already 
11328         implements an interface, use the implementing methods from that class.
11329         Fixes #53148.
11330
11331 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11332
11333         * threadpool.c: just return instead of ExitThread to allow for thread
11334         clean up earlier.
11335
11336 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
11337
11338         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
11339         when closing resource modules.
11340
11341         * reflection.c (mono_image_create_pefile): Handle the case when the
11342         entry point is not a MethodBuilder.
11343
11344         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11345         field to ReflectionMethod since it is not allways a builder.
11346
11347 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11348
11349         * marshal.c (mono_marshal_get_managed_wrapper): 
11350         mono_marshal_alloc takes native int so CONV_I
11351         the arg for 64bits.
11352
11353 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
11354
11355         * reflection.c (fixup_cattrs): New function to fixup the methoddef
11356         tokens in the cattr table. Fixes #53108.
11357
11358 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11359
11360         * loader.c: don't trim ".dll" before looking up in the config file.
11361         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
11362
11363 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
11364
11365         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
11366         Return the module which contains the resource as well.
11367         (ves_icall_System_Reflection_Module_Close): New icall.
11368
11369         * appdomain.c: Bump corlib version number.
11370
11371         * image.c (mono_image_addref): New public function.
11372
11373         * assembly.c: Call mono_image_addref.
11374
11375         * reflection.c (mono_module_get_object): Increase reference count of 
11376         the image.
11377
11378         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11379         Fixes #22532.
11380
11381         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
11382         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
11383         proper exceptions on DllImport problems.
11384
11385 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
11386
11387         * class.c, metadata.c: eliminate CSIZE macro.
11388
11389 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
11390
11391         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
11392         * object.h: Added async_callback field in MonoAsyncResult.
11393         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
11394         * verify.c: Added async_callback in MonoAsyncResult layout.
11395
11396 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
11397
11398         * reflection.c (mono_reflection_get_custom_attrs): Add support
11399         for Modules.
11400
11401 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11402
11403         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
11404         marshalling.
11405         (mono_marshal_method_from_wrapper): Add null pointer check.
11406
11407 2004-01-16  Martin Baulig  <martin@ximian.com>
11408
11409         * debug-mono-symfile.h: Set version number to 36 and reflect
11410         latest symbol writer changes.
11411
11412 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11413
11414         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
11415         multi-dimensional arrays.
11416         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
11417         (mono_class_from_mono_type): Use bounded_array_class_get.
11418         
11419         * class.c (mono_bounded_array_class_get): New function which takes
11420         a 'bounded' bool argument to distinguish vectors from one dimensional
11421         arrays.
11422
11423         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
11424         bounded_array_class_get if the array has bounds.
11425
11426         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11427         Search modules loaded using AssemblyBuilder:AddModule as well.
11428
11429 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11430
11431         * appdomain.c: increased corlib version.
11432         * filewatcher.c: removed g_print.
11433         * icall.c:
11434         (get_property_info): only allocate what is actually requested.
11435         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
11436
11437 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11438
11439         * Makefile.am: added filewatcher.[ch]
11440         * filewatcher.[ch]: FileSystemWatcher runtime support.
11441         * icall.c: added new FSW icalls.
11442
11443 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
11444
11445         * string-icalls.c: fix stringbuilder regression as suggested by
11446         Iain McCoy <iain@mccoy.id.au>.
11447
11448 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
11449
11450         * process.c (process_read_stringtable_block): Recognize '007f' as
11451         a language neutral stringtable block.
11452
11453 2004-01-12  Patrik Torstensson
11454
11455         * object.h (MonoStringBuilder) : Changed layout to support our
11456         new stringbuilder class.
11457         * marshal.c: Change marshalling to support the new layout of 
11458         string builder.
11459         * appdomain.c: increased version number because new layout of
11460         string builder.
11461
11462 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
11463
11464         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
11465         assembly name as an string instead of an AssemblyName, since it is
11466         easier to extract info from it.
11467
11468         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
11469         the culture subdirectories too. Fixes #52231.
11470
11471 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11472
11473         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
11474         It takes 2 new parameters with an optional name for the method to look
11475         for and case ignoring info.
11476
11477         * threadpool.c: removed unused variable.
11478
11479 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11480
11481         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
11482         It takes 2 new parameters with an optional name for the property to look
11483         for and case ignoring info.
11484         Fixes bug #52753.
11485
11486 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
11487
11488         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
11489         Fix #52451.
11490
11491 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11492
11493         * appdomain.c:
11494         * assembly.c: escape the uri before passing it to g_filename_from_uri.
11495         Fixes bug #52630.
11496
11497 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
11498
11499         * reflection.c: Add support for more than one unmanaged resource.
11500
11501         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
11502         in field->def_value, as done in all other cases.
11503
11504         * reflection.c (mono_reflection_get_custom_attrs): Add support for
11505         TypeBuilders.
11506
11507         * reflection.c (mono_reflection_create_runtime_class): Remove 
11508         errorneous assignment to klass->element_class, since it is already
11509         done in mono_reflection_setup_internal_class.
11510
11511 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11512
11513         * gc.c: added missing LeaveCriticalSection.
11514         * icall.c: indented a couple of lines.
11515         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
11516         if we call EndInvoke inside a callback. Fixes bug #52601.
11517
11518 2004-01-07  Martin Baulig  <martin@ximian.com>
11519
11520         * mono-debug-debugger.h
11521         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
11522
11523 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
11524
11525         * appdomain.c: Use messages in NotImplementedException.
11526
11527         * exception.c (mono_get_exception_not_implemented): Now this takes
11528         a message argument.
11529
11530         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
11531         exception instead of g_asserting an aborting when something is not
11532         implemented.
11533
11534         Add some inline docs.
11535
11536 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
11537
11538         * reflection.h: Update after changes to object layout.
11539
11540         * reflection.c: Implement saving of unmanaged aka win32 resources.
11541
11542         * appdomain.c: Bump version number.
11543
11544         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
11545         Handle missing domains gracefully.
11546
11547 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
11548
11549         * file-io.c : On Windows, there are much more invalid_path_chars.
11550
11551 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
11552
11553         * class.h, object.c: prepare for GetType () speedup.
11554
11555 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
11556
11557         * profiler.c: workaround for --profile null reference exception on
11558           cygwin. Patch by Patrik Torstensson.
11559
11560 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
11561
11562         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
11563         make work for unaligned access.
11564
11565 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
11566
11567         * class.c: small cleanup (class->fields [i] -> field).
11568         * image.c: check address of metadata is valid.
11569
11570 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
11571
11572         * assembly.h assembly.c (mono_assembly_loaded): New public function to
11573         search the list of loaded assemblies.
11574
11575         * reflection.c (mono_reflection_type_from_name): Use 
11576         mono_assembly_loaded instead of mono_image_loaded.
11577
11578         * reflection.c: Fix warnings.
11579
11580 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
11581
11582         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
11583         is dynamic. This is needed since an assembly can contain both dynamic and
11584         non-dynamic images.
11585
11586         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
11587         assembly->dynamic.
11588
11589         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
11590
11591         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
11592         to store modules loaded using AddModule.
11593
11594         * reflection.c (mono_image_fill_file_table): Generalize this so it works
11595         on Modules.
11596
11597         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
11598
11599         * reflection.c (mono_image_fill_export_table_from_module): New function to
11600         fill out the EXPORTEDTYPES table from a module.
11601
11602         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
11603         into a separate function. Also handle loaded non-dynamic modules.
11604
11605         * reflection.c (mono_image_basic_init): Fix memory allocation.
11606
11607         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11608
11609         * assembly.c (mono_assembly_load_references): Make this public.
11610
11611 2003-12-19  Martin Baulig  <martin@ximian.com>
11612
11613         * class.c (mono_class_initialize_generic): Made this static, take
11614         a `MonoGenericInst *' instead of a `MonoClass *'.
11615         (mono_class_from_generic): Call mono_class_initialize_generic()
11616         unless we're already initialized or being called from
11617         do_mono_metadata_parse_generic_inst().
11618
11619         * class.h (MonoGenericInst): Added `initialized' and
11620         `init_pending' flags.
11621
11622         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
11623         `mono_class_init (gklass)' or mono_class_initialize_generic()
11624         here; set `generic_inst->init_pending' while parsing the
11625         `type_argv'.
11626
11627 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
11628
11629         * locales.c: include string.h for memxxx prototypes
11630
11631 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
11632
11633         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
11634         constructor when accessing literal fields.
11635
11636 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
11637
11638         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11639
11640         * reflection.c (assembly_add_resource_manifest): New function to fill
11641         the MANIFESTRESOURCE table.
11642
11643         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
11644
11645         * reflection.h: Update to changes in class layout.
11646
11647         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
11648         Reenable call to mono_runtime_is_shutting_down ().
11649
11650         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
11651         determine if the runtime is shutting down.
11652
11653 2003-12-16  Jackson Harper <jackson@ximian.com>
11654
11655         * icall.c: comment out call to mono_runtime_is_shutting_down to
11656         fix build.
11657         
11658 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
11659
11660         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
11661         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
11662
11663 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
11664
11665         * reflection.c: move definition of swap_with_size
11666         to before its first call
11667
11668 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
11669
11670         * appdomain.c (mono_runtime_is_shutting_down): New public function.
11671
11672         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
11673         icall.
11674
11675         * object.c: Fix warnings.
11676
11677         * icall.c (ves_icall_Type_Get...): Only consider inherited static
11678         members if FlattenHierarchy is set.
11679
11680         * reflection.c (mono_image_add_decl_security): New function to emit
11681         declarative security.
11682
11683         * reflection.h reflection.c: Add support for declarative security.
11684
11685         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11686         
11687 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
11688
11689         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11690         
11691         * appdomain.c verify.c: Moved corlib version checking into its own
11692         function in appdomain.c since it needs to create vtables etc.
11693
11694 2003-12-13  Patrik Torstensson <p@rxc.se>
11695
11696         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
11697         instead of unwrapped server.
11698
11699 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
11700
11701         * verify.c (check_corlib): Fix field index.
11702
11703 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
11704
11705         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
11706         GetGacPath icall.
11707
11708 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
11709
11710         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
11711         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
11712         cope with sizeof(size_t) != sizeof(guint32).
11713
11714 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11715
11716         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
11717         in case of failure.
11718
11719 2003-12-10  Mark Crichton <crichton@gimp.org>
11720
11721         * icall.c: removed the GetNonZeroBytes.  We now handle this case
11722         in managed code.
11723
11724         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
11725
11726 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
11727
11728         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
11729         marked as deleted.
11730
11731 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
11732
11733         * verify.c (check_corlib): Handle the case when the version field is 
11734         initialized by a static constructor.
11735
11736 2003-12-08  Patrik Torstensson  <p@rxc.se>
11737
11738     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
11739
11740 2003-12-08  Martin Baulig  <martin@ximian.com>
11741
11742         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
11743         a MonoReflectionGenericParameter, also take the parameter index
11744         and name as arguments.
11745         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
11746         (ves_icall_MonoGenericParam_initialize): New interncall.
11747         (ves_icall_Type_make_byref_type): New interncall.
11748
11749         * reflection.h (MonoReflectionGenericParam): Derive from
11750         MonoReflectionType, not just from MonoObject.  Added `refobj' and
11751         `index' fields.
11752
11753         * reflection.c (mono_reflection_define_generic_parameter): Create
11754         and return a new MonoReflectionGenericParam; don't initialize the
11755         constraints here.
11756         (mono_reflection_initialize_generic_parameter): New public method;
11757         initializes the constraints and creates the `param->pklass'.
11758
11759 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
11760
11761         * reflection.h reflection.c: Use the new fields 'num_types', 
11762         'num_fields' and 'num_methods' to track the number of types etc.
11763
11764         * verify.c (check_corlib): Check corlib version number.
11765
11766 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
11767
11768         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
11769         function works on all methods.
11770
11771 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
11772
11773         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
11774         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
11775         the custom_type_info flag of the transparent proxy.
11776         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
11777         objects that supports IRemotingTypeInfo.
11778         * object.h: Added custom_type_info field in transparent proxy.
11779
11780 2003-12-06  Martin Baulig  <martin@ximian.com>
11781
11782         * class.c (mono_class_create_from_generic): Removed.
11783         (mono_class_from_generic): Check `ginst->klass' before doing
11784         anything else.  This is important to fully support "recursive"
11785         generic types.
11786
11787         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11788         empty `generic_inst->klass' before doing anything else.
11789
11790 2003-12-06  Dick Porter  <dick@ximian.com>
11791
11792         * verify.c: 
11793         * object.h:
11794         * icall.c:
11795         * locales.c: Use C structs to access class fields.  Don't do a
11796         conversion between MonoString and UChar because both are
11797         platform-endian UTF-16.  Compare now takes startindex and count
11798         parameters.  Add a char overload for IndexOf.  Speed up the
11799         invariant string IndexOf.
11800
11801 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11802
11803         * Makefile.am (monosn_LDADD): Fix parallel build.
11804
11805 2003-12-04  Martin Baulig  <martin@ximian.com>
11806
11807         * icall.c
11808         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11809         (ves_icall_Type_make_array_type): New interncall.       
11810
11811 2003-12-04  Martin Baulig  <martin@ximian.com>
11812
11813         * locales.c: also change it in the !HAVE_ICU case.
11814
11815 2003-12-04  Dick Porter  <dick@ximian.com>
11816
11817         * icall.c:
11818         * locales.c: construct_compareinfo is now in CompareInfo, not
11819         CultureInfo.
11820
11821 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11822
11823         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11824         image->files array.
11825
11826         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11827         table as well.
11828
11829         * assembly.c (mono_assembly_load_references): Only load references
11830         once.
11831
11832         * class.c (mono_class_from_name): Avoid linear search of the 
11833         EXPORTEDTYPE table.
11834
11835         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11836
11837 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11838
11839         * image.h (MonoImage): Add 'field_cache' field.
11840
11841         * loader.c (mono_field_from_token): Cache field lookups.
11842         
11843         * reflection.c (mono_module_get_object): Fix name property.
11844
11845         * icall.c (ves_icall_get_enum_info): Update after changes to 
11846         mono_metadata_get_constant_index ().
11847
11848         * icall.c: Get rid of get_type_info icall, use a separate icall for
11849         each type property to avoid needless memory allocations. Fixes #51514.
11850
11851         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11852         to avoid needless binary searches.
11853
11854         * class.c (class_compute_field_layout): Move the initialization of
11855         field->def_value to mono_class_vtable ().
11856
11857         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11858         non-corlib types.
11859
11860         * object.c (mono_object_allocate): Make it inline.
11861
11862         * object.c (mono_object_allocate_spec): Make it inline.
11863         
11864 2003-12-02  Dick Porter  <dick@ximian.com>
11865
11866         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11867         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11868
11869 2003-12-01  Dick Porter  <dick@ximian.com>
11870
11871         * threads.c: Fix signature and call in CreateMutex and
11872         CreateEvent.
11873
11874 2003-12-01  Dick Porter  <dick@ximian.com>
11875
11876         * icall.c: 
11877         * locales.c: Implement string compares and searching
11878
11879         * object.h: Add extra Thread field
11880
11881 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11882
11883         * reflection.c (fixup_method): Add support for MonoCMethod.
11884
11885 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11886
11887         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11888
11889         * reflection.c (assembly_name_to_aname): Allow extra characters in
11890         assembly names. Fixes #51468.
11891
11892 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11893
11894         * exception.c (mono_exception_from_name_domain): New helper function.
11895
11896         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11897         exception object in the correct domain.
11898
11899         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11900         formatting + make a copy a the input data.
11901
11902         * loader.c (mono_get_method_from_token): Methods which contain
11903         native code do not have entries in the ImplMap.
11904
11905         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11906         Thanks to Gonzalo for spotting this.
11907         
11908         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11909         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11910
11911         * assembly.h (mono_assembly_load_from): Split the second part of 
11912         assembly loading into a new public function.
11913
11914         * exception.h (mono_get_exception_bad_image_format): New function.
11915
11916 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11917
11918         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11919         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11920         
11921         * icall.c: Add new icall for creating dynamic methods.
11922
11923         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11924
11925         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11926
11927         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11928         create a dynamic method.
11929
11930         * reflection.c (resolve_object): New helper function.
11931
11932         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11933         which manipulate it so they can also work on dynamic methods.
11934
11935         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11936         creating the MonoReflectionMethodAux structure if it is not needed.
11937         
11938         * reflection.h verify.c: Update after changes to object layout.
11939
11940         * reflection.c (method_builder_encode_signature): Fix compilation on
11941         gcc 2.95.x.
11942
11943 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11944
11945         * appdomain.h: Added support for context static fields. Added static_data
11946           field to MonoAppContext and renamed thread_static_fields to a more
11947           generic special_static_fields in MonoAppDomain, since it can now contain
11948           context static fields.
11949         * domain.c: Updated hashtable name.
11950         * object.c: Replaced field_is_thread_static() for a more generic
11951           field_is_special_static() which also checks for context static attribute.
11952           In mono_class_vtable(), added support for static context fields.
11953         * threads.c: Changed methods that manage thread static fields to more
11954           generic methods so they can be reused both for thread and context static
11955           data.
11956         * threads.h: Declared some new methods.
11957
11958 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
11959
11960         * reflection.h: Update after changes to the managed types.
11961
11962         * reflection.c (encode_custom_modifiers): New helper function.
11963
11964         * reflection.c (method_encode_signature): Emit custom modifiers.
11965
11966         * reflection.c (field_encode_signature): Emit custom modifiers.
11967
11968 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
11969
11970         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
11971
11972         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
11973         implementation.
11974
11975         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
11976         icall.
11977
11978         * object.c (mono_field_get_value_object): New function.
11979
11980         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
11981         specific.
11982
11983 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
11984
11985         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
11986         return a preallocated out-of-memory exception instance.
11987
11988         * object.c (out_of_memory): Use the new function.
11989
11990         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
11991         flag is before the custom modifiers. Fixes #49802.
11992
11993 2003-11-16  Martin Baulig  <martin@ximian.com>
11994
11995         * class.c (mono_class_is_open_constructed_type): Implemented the
11996         MONO_TYPE_GENERICINST case.
11997
11998 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
11999
12000         * assembly.c (mono_assembly_fill_assembly_name): New function to
12001         fill out the MonoAssemblyName structure.
12002         (mono_assembly_open): Use the new function.
12003
12004         * icall.c (fill_reflection_assembly_name): New helper function.
12005
12006         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
12007         new function.
12008
12009         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
12010
12011 2003-11-15  Martin Baulig  <martin@ximian.com>
12012
12013         * class.c (mono_class_is_open_constructed_type): New public
12014         function; checks whether a type is an open constructed type,
12015         ie. whether it still contains type parameters.
12016         (mono_class_inflate_generic_type): If we're a type parameter and
12017         the inflated type is also a MONO_TYPE_(M)VAR, return the original
12018         type.
12019
12020         * class.h (MonoGenericInst): Added `guint32 is_open'.
12021
12022         * loader.c (method_from_methodspec): Check whether we're an open
12023         or closed constructed type and set `ginst->is_open'.
12024
12025         * reflection.c (mono_reflection_bind_generic_parameters): Check
12026         whether we're an open or closed constructed type and set
12027         `ginst->is_open'.
12028         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
12029         from open constructed types.
12030
12031 2003-11-15  Martin Baulig  <martin@ximian.com>
12032
12033         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12034         a generic instance (instead of a generic type declaration) with
12035         unbound generic parameters, bind them to our actual types.
12036
12037 2003-11-14  Martin Baulig  <martin@ximian.com>
12038
12039         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
12040
12041         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12042         an interface type, populate `res->interfaces' with instantiated
12043         versions of all the interfaces we inherit.
12044
12045 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
12046
12047         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
12048         when MONO_PATH is set but doesn't contain the install dir.
12049
12050 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12051
12052         * icall.c:
12053         (ves_icall_Type_GetInterfaces): don't return an interface twice when
12054         it's also implemented in base classes. Fixes bug #50927.
12055
12056 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
12057
12058         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
12059         if this method is called from a finalizer. Fixes #50913.
12060
12061 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
12062
12063         * threads.c: Implement VolatileRead/VolatileWrite
12064
12065         * icall.c: Add new icalls for VolatileRead/VolatileWrite
12066
12067 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12068
12069         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
12070         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
12071         2.95.3.
12072
12073         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
12074         from Peter Ross (pro@missioncriticalit.com).
12075         
12076 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
12077
12078         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
12079
12080 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12081
12082         * assembly.c (mono_assembly_load_references): Disable check because it
12083         triggers on older corlibs which lots of people have.
12084
12085 2003-11-12  Jackson Harper  <jackson@ximian.com>
12086
12087         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
12088         load corlib.dll if mscorlib.dll is not found.
12089         * assembly.h: Remove corlib name define.
12090         * class.c:
12091         * domain.c:
12092         * image.c: Change corlib name to mscorlib.
12093         
12094 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12095
12096         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
12097
12098 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
12099
12100         * appdomain.h: Added loader_optimization here to sync with the C#
12101         code, and add disallow_binding_redirects field.
12102
12103 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
12104
12105         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
12106
12107         * reflection.c (mono_image_build_metadata): Fix crash on modules
12108         with no types.
12109
12110         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
12111
12112         * icall.c (ves_icall_get_method_info): Return callingConvention as
12113         well.
12114
12115         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
12116         namespaces from the EXPORTEDTYPE table as well.
12117
12118         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
12119         from all modules inside the assembly.
12120         
12121 2003-11-11  Martin Baulig  <martin@ximian.com>
12122
12123         * reflection.c (mono_reflection_bind_generic_parameters): Make
12124         this work for interfaces.
12125
12126 2003-11-11  Martin Baulig  <martin@ximian.com>
12127
12128         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
12129
12130 2003-11-11  Martin Baulig  <martin@ximian.com>
12131
12132         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
12133         "MonoInflatedMethod" and "MonoInflatedCtor".
12134
12135 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
12136
12137         * reflection.c (resolution_scope_from_image): Use the assembly table
12138         from the manifest module, since other modules don't have it.
12139
12140         * debug-helpers.c (mono_type_full_name): New helper function.
12141
12142         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
12143
12144         * image.c (mono_image_load_file_for_image): New public function which
12145         is a replacement for the load_file_for_image in class.c.
12146
12147         * assembly.c (mono_assembly_load_module): A wrapper for the function
12148         above which does assembly association and reference loading too.
12149
12150         * class.c (mono_class_from_name): Call mono_assembly_load_module.
12151
12152 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12153
12154         * appdomain.c: not all of the attributes for the full assembly name
12155         are required and the order doesn't matter. Fixes bug #50787.
12156
12157 2003-11-10  Dick Porter  <dick@ximian.com>
12158
12159         * locales.c: Use platform-endian UTF16
12160
12161 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
12162
12163         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
12164         
12165 2003-11-10  Martin Baulig  <martin@ximian.com>
12166
12167         * metadata.c
12168         (mono_metadata_load_generic_params): Make this actually work.
12169
12170         * reflection.c (mono_reflection_bind_generic_parameters): If our
12171         parent is a generic instance, pass all the `types' to it, no
12172         matter whether it has the same number of type parameters or not.
12173
12174 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
12175
12176         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
12177
12178         * assembly.c (mono_assembly_load_references): Move the image<->assembly
12179         assignment code to this function so it gets called recursively for all
12180         modules.
12181
12182         * image.c (load_modules): Remove the assembly assignment since it is
12183         now done by mono_assembly_load_references.
12184         
12185         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12186         Add 'module' argument.
12187         (mono_module_get_types): New helper function.
12188         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
12189
12190 2003-11-08  Martin Baulig  <martin@ximian.com>
12191
12192         * class.c (mono_class_inflate_generic_method): Interface method
12193         don't have a header.
12194
12195         * reflection.c (mono_image_get_methodspec_token): Take an
12196         additional `MonoGenericInst *' argument instead of reading it from
12197         the header; this is necessary to support interfaces.
12198         (mono_image_create_token): Pass the `MonoGenericInst *' from the
12199         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
12200         (inflated_method_get_object): Take an additional `MonoGenericInst *'
12201         argument.
12202
12203         * reflection.h (MonoReflectionInflatedMethod): Added
12204         `MonoGenericInst *ginst'.
12205
12206 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
12207
12208         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
12209
12210 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
12211
12212         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
12213
12214 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
12215
12216         * reflection.c 
12217         (reflection_methodbuilder_from_method_builder):
12218         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
12219         initialize a ReflectionMethodBuilder structure.
12220         (mono_image_get_methodbuilder_token):
12221         (mono_image_get_ctorbuilder_token): New functions to emit memberref
12222         tokens which point to types in another module inside the same assembly.
12223
12224         * reflection.c: Use the new helper functions.
12225         
12226         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
12227
12228         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
12229         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
12230
12231         * reflection.c (resolution_scope_from_image): Emit a moduleref if
12232         neccesary.
12233
12234         * reflection.c (mono_image_build_metadata): Emit metadata only for the
12235         current module. Emit the manifest only for the main module.
12236
12237         * reflection.c (mono_image_create_token): Add assertion when a 
12238         memberref needs to be created.
12239
12240         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
12241
12242         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
12243         larger buffer for the custom attribute blob. Fixes #50637.
12244         
12245 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12246
12247         * threadpool.c: notify listener on async processing handles after
12248         invoking the async callback. Thanks to Zoltan.
12249
12250 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12251
12252         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
12253         avoid code duplication.
12254
12255         * reflection.h (MonoDynamicImage): New type which is currently unused,
12256         but will be used through the ref.emit code in place of 
12257         MonoDynamicAssembly.
12258
12259         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12260         object layout.
12261
12262         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
12263         a MonoDynamicImage instead of just a MonoImage.
12264         
12265         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
12266         icalls to ModuleBuilder but keep their semantics, so they will work
12267         with moduleb->assemblyb. This will change later.
12268         
12269 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12270
12271         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12272         object layout.
12273
12274         * reflection.c (mono_image_build_metadata): Avoid creation of a default
12275         main module, since it is now done by the managed code.
12276
12277 2003-11-03  Martin Baulig  <martin@ximian.com>
12278
12279         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
12280         `ginst->klass' here.
12281         (method_encode_methodspec): Don't use the `ginst->generic_method's
12282         klass if it's a generic instance, use `ginst->klass' in this case.
12283
12284 2003-11-03  Martin Baulig  <martin@ximian.com>
12285
12286         * reflection.c (mono_image_get_generic_method_param_info):
12287         Removed, use mono_image_get_generic_param_info() instead.
12288         (mono_image_get_type_info): Write the GenericParam table before
12289         the Method table.  This is neccessary because in the GenericParam
12290         table, type parameters of the class (ie. '!0' etc.) must come
12291         before the ones from its generic methods (ie. '!!0' etc).
12292
12293 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12294
12295         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
12296
12297 2003-11-02  Martin Baulig  <martin@ximian.com>
12298
12299         * reflection.c (create_generic_typespec): Take a
12300         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
12301         the generic parameters from it.
12302
12303 2003-11-02  Martin Baulig  <martin@ximian.com>
12304
12305         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
12306         instead of a `MonoClassField *' since we just need the type.
12307         (create_generic_typespec): New static function.  Creates a
12308         TypeSpec token for a generic type declaration.
12309         (mono_image_get_generic_field_token): New static function.
12310         (mono_image_create_token): If we're a FieldBuilder in a generic
12311         type declaration, call mono_image_get_generic_field_token() to get
12312         the token.
12313
12314 2003-11-02  Martin Baulig  <martin@ximian.com>
12315
12316         * reflection.h
12317         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
12318         `MonoReflectionGenericInst *declaring_type' and
12319         `MonoReflectionGenericInst *reflected_type' fields.
12320
12321         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
12322         `MonoReflectionGenericInst *declaring_type' and a
12323         `MonoReflectionGenericInst *reflected_type' argument instead of a
12324         single `MonoReflectionGenericInst *type' one.  Set
12325         `res->declaring_type' and `res->reflected_type' from them.
12326         (mono_reflection_inflate_field): Likewise.      
12327
12328 2003-11-02  Martin Baulig  <martin@ximian.com>
12329
12330         * class.c (mono_class_setup_vtable): Don't store generic methods
12331         in the vtable.  
12332
12333 2003-11-02  Martin Baulig  <martin@ximian.com>
12334
12335         * reflection.h (MonoReflectionGenericInst): Added
12336         `MonoReflectionType *declaring_type'.
12337
12338         * reflection.c (mono_reflection_bind_generic_parameters): Use
12339         `if (tb->parent)' instead of `klass->parent'.
12340
12341 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
12342
12343         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
12344         with an empty ASSEMBLY table.
12345
12346         * reflection.c (mono_image_build_metadata): Avoid using the same loop
12347         variable in the inner and outer loops.
12348
12349 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
12350
12351         * metadata.h (mono_metadata_make_token): Put parentheses around macro
12352         argument.
12353
12354         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
12355         
12356         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
12357         icalls. Instead, do everything in managed code. This is needed since
12358         it is hard to restore the original domain etc. in unmanaged code in the
12359         presence of undeniable exceptions.
12360
12361         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
12362         New icalls to push and pop appdomain refs.
12363
12364 2003-10-31  Martin Baulig  <martin@ximian.com>
12365
12366         * class.c (inflate_generic_type): Renamed to
12367         mono_class_inflate_generic_type() and made it public.
12368
12369         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
12370         New interncall.
12371
12372         * loader.c (mono_field_from_memberref): Also set the retklass for
12373         typespecs.
12374
12375         * fielder.c (mono_image_get_inflated_field_token): New static
12376         method; creates a metadata token for an inflated field.
12377         (mono_image_create_token, fixup_method): Added support for
12378         "MonoInflatedField".
12379         (fieldbuilder_to_mono_class_field): New static function.
12380         (mono_reflection_inflate_field): New public function.
12381
12382         * reflection.h
12383         (MonoReflectionGenericInst): Added `MonoArray *fields'.
12384         (MonoReflectionInflatedField): New typedef.     
12385
12386 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
12387
12388         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
12389         for Solaris and other platforms without s6_addr16
12390
12391 2003-10-30  Martin Baulig  <martin@ximian.com>
12392
12393         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
12394         argument instead of two.
12395         (mono_class_inflate_generic_signature): Likewise.
12396         (inflate_generic_header): Likewise.
12397         (mono_class_inflate_generic_method): Likewise.  In addition, if
12398         `ginst->klass' is set, it becomes the new `method->klass'.
12399
12400         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
12401         field.
12402
12403         * reflection.c (encode_generic_method_sig): Write a 0xa as the
12404         first byte. [FIXME]
12405         (method_encode_methodspec): If we have generic parameters, create
12406         a MethodSpec instead of a MethodRef.
12407         (fixup_method): Added support for "MonoInflatedMethod" and
12408         "MonoInflatedCtor".
12409         (mono_image_create_token): Added support for "MonoInflatedMethod"
12410         and "MonoInflatedCtor".
12411         (inflated_method_get_object): New static function; returns a
12412         managed "System.Reflection.MonoInflatedMethod" object.
12413         (mono_reflection_bind_generic_method_parameters): Return a
12414         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
12415         (mono_reflection_inflate_method_or_ctor): Likewise.
12416         (mono_image_get_generic_method_param_info): Initialize unused
12417         fields to zero.
12418         (mono_image_get_generic_param_info): Likewise.
12419
12420         * reflection.h (MonoReflectionInflatedMethod): New public
12421         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
12422         "S.R.MonoInflatedCtor" classes.
12423
12424         * loader.c (method_from_memberref): If we're a TypeSpec and it
12425         resolves to a generic instance, inflate the method.
12426
12427 2003-10-28  Dick Porter  <dick@ximian.com>
12428
12429         * object.c (mono_runtime_run_main): Convert command-line arguments
12430         into utf8, falling back to the user's locale encoding to do so.
12431
12432 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
12433
12434         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
12435         at this time.
12436
12437         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
12438
12439         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
12440         up icalls at method definition time. Partially fixes #33569.
12441
12442 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
12443
12444         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
12445         marshalling of arrays. Fixes #50116.
12446
12447         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
12448
12449         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
12450         points to a vtable in the dying appdomain.
12451
12452         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
12453         listeners into unmanaged code inside the lock.
12454
12455         * object.c (mono_class_vtable): Turn off typed allocation in non-root
12456         domains and add some comments.
12457
12458 2003-10-25  Martin Baulig  <martin@ximian.com>
12459
12460         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
12461
12462         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
12463
12464         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
12465         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
12466         currently parsing.  Create the generic class and store it in
12467         `generic_inst->klass' before parsing the type arguments.  This is
12468         required to support "recursive" definitions; see mcs/tests/gen-23.cs
12469         for an example.
12470         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
12471         to support recursive typespec entries.
12472
12473         * class.c (mono_class_setup_parent): If our parent is a generic
12474         instance, we may get called before it has its name set.
12475         (mono_class_from_generic): Splitted into
12476         mono_class_create_from_generic() and mono_class_initialize_generic().
12477
12478 2003-10-25  Martin Baulig  <martin@ximian.com>
12479
12480         * icall.c (ves_icall_Type_BindGenericParameters): Return a
12481         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
12482         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
12483         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
12484
12485         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
12486         (create_typespec): Likewise.
12487         (mono_reflection_bind_generic_parameters): Return a
12488         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
12489         (mono_reflection_inflate_method_or_ctor): New public function.
12490
12491         * reflection.h (MonoReflectionGenericInst): New typedef.        
12492
12493 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
12494
12495         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
12496         inside the domain lock. Fixes #49993.
12497         
12498         * object.c (mono_class_vtable): When typed allocation is used, 
12499         allocate vtables in the GC heap instead of in the mempool, since the
12500         vtables contain GC descriptors which are used by the collector even
12501         after the domain owning the mempool is unloaded.
12502
12503         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
12504
12505         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
12506         reflect what it does. Also invalidate mempools instead of freeing
12507         them if a define is set.
12508
12509         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
12510         of the appdomain.
12511         
12512         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
12513         hold the finalizable objects in this domain.
12514
12515         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
12516         appdomain.
12517
12518         * appdomain.c (mono_domain_set): New function to set the current
12519         appdomain, but only if it is not being unloaded.
12520
12521         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
12522         appdomain which is being unloaded.
12523         
12524         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
12525         unloading of the root appdomain.
12526
12527         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
12528         icall to execute a method in another appdomain. Intended as a 
12529         replacement for InternalSetDomain, which can confuse the code 
12530         generation in the JIT.
12531
12532         * appdomain.c (mono_domain_is_unloading): New function to determine
12533         whenever an appdomain is unloading.
12534
12535         * appdomain.c (mono_domain_unload): New function to correctly unload
12536         an appdomain.
12537
12538         * assembly.c (mono_assembly_load_references): Check that an assembly
12539         does not references itself.
12540
12541         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
12542         domain manually, it asks the finalizer thread to do it, then waits for
12543         the result. Also added a timeout.
12544
12545         * icall.c: Register the new icalls.
12546
12547         * threads.h threads.c: Export the mono_gc_stop_world and 
12548         mono_gc_start_world functions.
12549         
12550         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
12551         function to fill out the mempool with 0x2a.
12552
12553 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
12554
12555         * reflection.h (MonoReflectionMethodAux): New structure to store
12556         information which is rarely used, thus is not in the MonoMethod
12557         structure.
12558
12559         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
12560         store the aux info.
12561
12562         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
12563         and marshalling info into the aux structure.
12564
12565         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
12566         from the aux structure.
12567
12568         * loader.c (mono_method_get_param_names): Retrieve the param names from
12569         the aux structure.
12570         
12571 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
12572
12573         * exception.h exception.c: Add AppDomainUnloadedException && fix 
12574         warning.
12575
12576 2003-10-21  Dick Porter  <dick@ximian.com>
12577
12578         * socket-io.c
12579         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
12580         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
12581
12582 2003-10-21  Martin Baulig  <martin@ximian.com>
12583
12584         * reflection.c (mono_reflection_bind_generic_parameters):
12585         `klass->parent' is NULL for interfaces.
12586
12587 2003-10-21  Martin Baulig  <martin@ximian.com>
12588
12589         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12590
12591 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
12592
12593         * exception.c (mono_exception_from_name_msg): New helper function for
12594         creating exceptions and initializing their message field.
12595
12596         * exception.c: Simplify functions using the new helper.
12597
12598         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
12599         New function.
12600
12601         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
12602         mono_raise_exception, since otherwise gcc doesn't generate the function
12603         epilog for raise_exception, confusing the stack unwinding in the JIT.
12604         Fixes #45043.
12605
12606         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
12607         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
12608         Fixes #49499.
12609
12610 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12611
12612         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
12613         utf8.
12614
12615 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
12616
12617         * icall.c: Removed GetUninitializedObject method because
12618           AllocateUninitializedClassInstance does the same.
12619
12620 2003-10-18  Martin Baulig  <martin@ximian.com>
12621
12622         * class.c (inflate_generic_signature): Renamed to
12623         mono_class_inflate_generic_signature() and made it public.
12624         (my_mono_class_from_generic_parameter): New static function; if we
12625         don't already have the generic parameter's MonoClass, create a
12626         very simple one which is just used internally in the runtime and
12627         not passed back to managed code.
12628
12629         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
12630
12631         * metadata.h (MonoMethodSignature): Moved the
12632         `MonoGenericParam *gen_params' to the MonoMethodHeader.
12633         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
12634
12635         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
12636         ves_icall_MonoMethod_GetGenericArguments(); this is now an
12637         interncall on the MonoMethod class, not on MethodInfo.
12638         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
12639         calling mono_reflection_bind_generic_method_parameters() directly.
12640
12641         * loader.c (mono_method_get_signature): If this is a MethodSpec;
12642         return the already computed `method->signature'.
12643         (method_from_methodspec): New static function to load a method
12644         from a MethodSpec entry.
12645         (mono_get_method_from_token): Call the new method_from_methodspec()
12646         for MethodSpec tokens.  
12647         (mono_get_method_from_token): If we're a generic method, load the
12648         type parameters.
12649
12650         * reflection.c (mono_image_get_memberref_token): Allow
12651         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
12652         table.
12653         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
12654         (mono_image_create_token): First check whether it's a generic
12655         method (so we'd need to create a MethodSpec), then do the other
12656         two alternatives.
12657         (mono_reflection_bind_generic_method_parameters): Return a
12658         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
12659         called directly from the interncall.
12660
12661 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
12662
12663         * reflection.c (load_public_key): Move loading of the public key
12664         into managed code.
12665
12666         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
12667
12668         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
12669         fields.
12670
12671         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
12672         culture, hash_alg and public_key. Fixes #49555.
12673
12674 2003-10-17  Martin Baulig  <martin@ximian.com>
12675
12676         * class.h (MonoGenericInst): Moved this declaration here and added
12677         `MonoMethod *generic_method'.
12678
12679         * icall.c
12680         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
12681         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
12682
12683         * metadata.c (mono_metadata_type_equal): Two types of
12684         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
12685         index; ie. don't compare the address of the `MonoGenericParam'
12686         structure.
12687         (mono_metadata_load_generic_params): Removed the `MonoMethod
12688         *method' argument.
12689
12690         * metadata.h (MonoGenericInst): Moved declaration to class.h.
12691         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
12692
12693         * reflection.c (method_encode_signature): Encode the number of
12694         generic parameters.
12695         (encode_generic_method_sig): New static function.
12696         (method_encode_methodspec): New static function; creates an entry
12697         in the MethodSpec table for a generic method.
12698         (mono_image_get_methodspec_token): New static function.
12699         (mono_image_create_token): Call mono_image_get_methodspec_token()
12700         for generic methods.
12701         (mono_reflection_bind_generic_method_parameters): New public
12702         function.  Instantiates a generic method.
12703
12704 2003-10-16  Martin Baulig  <martin@ximian.com>
12705
12706         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
12707         *gen_params' here from MonoMethodHeader.
12708
12709         * metadata.c (mono_metadata_parse_method_signature): If we have
12710         generic parameters, initialize `method->gen_params' and then set
12711         the correct `type->data.generic_param' in all the parameters.
12712
12713 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
12714
12715         * threads.c (mono_threads_get_default_stacksize): New function to 
12716         return the default stacksize.
12717
12718         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
12719         termination of the finalizer thread, since the previous method had
12720         race conditions. Fixes #49628.
12721
12722         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
12723         as for the other managed threads.
12724
12725 2003-10-16  Martin Baulig  <martin@ximian.com>
12726
12727         * class.c (inflate_generic_signature): Copy `generic_param_count'
12728         and `gen_params'.
12729
12730         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
12731         New interncall.
12732
12733         * metadata.c (mono_metadata_parse_method_signature): Actually set
12734         the `method->generic_param_count' here.
12735         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
12736
12737 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
12738
12739         * object.h: Add a new field to TypedRef to simplify the implementation
12740         of the REFANY opcodes in the JIT.
12741
12742         * icall.c: Make use of the new field.
12743
12744         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
12745         dynamically.
12746
12747 2003-10-15  Martin Baulig  <martin@ximian.com>
12748
12749         * class.c (mono_class_from_gen_param): Renamed to
12750         mono_class_from_generic_parameter() and moved most of the
12751         functionality from mono_reflection_define_generic_parameter()
12752         here; ie. we create a "real" class here.
12753         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
12754         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
12755         previously been called.
12756
12757         * class.h (MonoGenericParam): Moved the declaration of this struct
12758         here from metadata.h and added `MonoMethod *method'.
12759
12760         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
12761         interncall.
12762
12763         * loader.c (mono_get_method_from_token): If we have any generic
12764         parameters, call mono_metadata_load_generic_params() to read them
12765         from the MONO_TABLE_GENERICPAR.
12766
12767         * metadata.c (mono_metadata_load_generic_params): Added
12768         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
12769
12770         * metadata.h (MonoMethodSignature): Replaced
12771         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
12772         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
12773
12774         * reflection.c (mono_reflection_define_generic_parameter): Moved
12775         most of the functionality into the new
12776         mono_class_from_generic_parameter(); set the `method' field if
12777         we're a method parameter.       
12778
12779 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12780
12781         * marshal.c (emit_struct_conv): if native size is 0
12782         emit no code.
12783
12784 2003-10-14  Martin Baulig  <martin@ximian.com>
12785
12786         * icall.c: The generics API has changed in the spec since it was
12787         added to System.Type; these modifications make it match the spec
12788         again.
12789         (ves_icall_Type_GetGenericParameters): Renamed to
12790         `ves_icall_Type_GetGenericArguments'.
12791         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12792         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12793         `ves_icall_MonoType_get_HasGenericArguments'.
12794         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12795         `ves_icall_MonoType_get_IsGenericParameter'.
12796         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12797         this is no interncall anymore.
12798         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12799         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12800
12801 2003-10-14  Martin Baulig  <martin@ximian.com>
12802
12803         * reflection.c (mono_reflection_bind_generic_parameters): Also
12804         inflate generic methods if we're reading the class from IL.
12805
12806 2003-10-13  Martin Baulig  <martin@ximian.com>
12807
12808         * reflection.c (mono_reflection_define_generic_parameter): This
12809         method isn't called directly from the icall anymore; take a
12810         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12811         method generic parameters.
12812         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12813         (method_builder_encode_signature): Encode generic parameters.
12814         (mono_image_get_method_info): Write generic params to the
12815         MONO_TABLE_GENERICPARAM table.
12816
12817         * reflection.h (MonoReflectionMethodBuilder): Added
12818         `MonoArray *generic_params'.
12819
12820         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12821
12822         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12823         wrapper for mono_reflection_define_generic_parameter().
12824         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12825
12826 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12827
12828         * marshal.h: Add missing function to fix build.
12829
12830         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12831         the SetLastError pinvoke attribute.
12832
12833         * marshal.c (mono_marshal_set_last_error): New helper function called
12834         by the generated code.
12835         
12836         * marshal.c (mono_mb_emit_branch): New helper function.
12837
12838         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12839
12840         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12841         classes as parameters and return values of delegates. Fixes #29256. 
12842
12843 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12844
12845         * locales.c: use gint32 in non HAVE_ICU case
12846
12847 2003-10-11  Martin Baulig  <martin@ximian.com>
12848
12849         * mono-debug.c (mono_debug_add_method): Added a workaround for
12850         bug #48591.
12851
12852 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12853
12854         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12855         delegates passed to native code must use the STDCALL calling 
12856         convention. Fixes #35987.
12857
12858 2003-10-10  Martin Baulig  <martin@ximian.com>
12859
12860         * class.c (inflate_generic_type): If we're inflating for a generic
12861         type instance (and not for a generic method), return
12862         MONO_TYPE_MVAR unchanged.
12863
12864 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12865
12866         * string-icalls.c: Join ignores null strings in the source array.
12867         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12868         * threads.c: GetAvailableTheads is slightly more accurate.
12869
12870 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12871
12872         * threads.h threads.c : add mono_threads_set_default_stacksize
12873         and pass default to CreateThread calls.
12874
12875 2003-10-09  Dick Porter  <dick@ximian.com>
12876
12877         * icall.c:
12878         * locales.h:
12879         * locales.c: Internal calls for constructing CultureInfo and
12880         related objects from libicu (if its available.)
12881
12882 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12883
12884         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12885
12886 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12887
12888         * threadpool.c: added an argument to async_invoke_thread that is the
12889         item to process, pass the MonoAsyncResult to the thread start function
12890         when creating a new thread. This way we don't need to acquire any lock
12891         when we're creating a new thread. Readded a semaphore for faster
12892         response times (instead of that Sleep i added).
12893
12894 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12895
12896         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12897         get daylight change dates better on Windows, fix handling
12898         of platforms without tm_gmtoff.
12899
12900 2003-10-06  Martin Baulig  <martin@ximian.com>
12901
12902         * class.c (inflate_generic_method): Renamed to
12903         mono_class_inflate_generic_method() and made public.
12904         (mono_class_init): Don't inflate the generic methods here.
12905         (mono_class_from_generic): Added `gboolean inflate_methods'
12906         argument.  Inflate the methods here.
12907
12908         * loader.c (mono_method_get_param_names): Ignore instances of
12909         generic types for the moment.
12910
12911         * reflection.c (fixup_method): Added support for inflated methods.
12912         (mono_image_create_token): Use mono_image_get_methodref_token()
12913         for inflated methods.
12914         (mono_custom_attrs_from_param): Ignore instances of generic types
12915         for the moment.
12916         (mono_reflection_bind_generic_parameters): New public function.
12917         Moved all the functionality from
12918         ves_icall_Type_BindGenericParameters() here and added support for
12919         dynamic types.
12920         (mono_reflection_define_generic_parameter): Initialize
12921         `klass->methods' here.
12922
12923         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12924         functionality into mono_reflection_define_generic_parameter().
12925         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12926         TypeBuilder, return that TypeBuilder.
12927
12928 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12929
12930         * appdomain.c: removed mono_delegate_semaphore.
12931
12932         * threadpool.c:
12933         (mono_thread_pool_add): moved hash table creation inside and the thread 
12934         creation outside of the critical region.
12935         (mono_thread_pool_finish): removed obsolete code.
12936         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12937         continue or exit the thread depending on the queue.
12938
12939 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12940
12941         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12942         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12943         handle more bool marshalling options
12944
12945 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12946
12947         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12948         arrays of structs. Also add a more descriptive error message when
12949         a structure member is marshalled as LPArray.
12950
12951 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12952
12953         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12954         marshalling arrays of complex types. Fixes #29098. Also remove an
12955         usused and incomplete function.
12956
12957 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12958
12959         * gc.c: report heap_size - free_bytes as total memory allocated
12960         (bug#49362).
12961
12962 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
12963
12964         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
12965         fix timezone handling problems on Windows.
12966         
12967         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
12968         asserts when the year is outside the range handled by ms the functions.
12969
12970         * class.c (setup_interface_offsets): If the class is an interface,
12971         fill out its interface_offsets slot.
12972
12973 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12974
12975         * threadpool.c: mark threadpool threads as background.
12976
12977 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
12978
12979         * decimal.c - define DECINLINE to nothing if not using GCC
12980
12981 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
12982
12983         * assembly.c: More refcount fixes.
12984
12985 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12986
12987         * string-icalls.c: if we're not trimming, return the same string.
12988         When not splitting, don't create a new string.
12989
12990 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12991
12992         * image.c:
12993         (mono_image_open): increment the ref_count inside the critical section.
12994
12995 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
12996
12997         * image.c (mono_image_open): Fix reference counting bug.
12998
12999 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
13000
13001         * marshal.c (mono_marshal_type_size) struct alignment changed for 
13002         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
13003         64bits. Avoid leak in mono_marshal_get_native_wrapper when
13004         mono_lookup_pinvoke_call throws.        
13005
13006 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
13007
13008         * reflection.c (mono_reflection_parse_type): Fix #49114.
13009
13010         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
13011         temporary workaround for cygwin header problem.
13012
13013         * object.c (mono_object_isinst): Synchronize this with the code
13014         generated by the JIT for casts.
13015
13016 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
13017
13018         * reflection.c (encode_type): Fix #38332.
13019
13020 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
13021
13022         * marshal.c (mono_marshal_method_from_wrapper): New function to return
13023         the original method from the wrapper method.
13024
13025 2003-09-25  Martin Baulig  <martin@ximian.com>
13026
13027         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
13028         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
13029         (ves_icall_Type_get_IsGenericInstance): New interncall.
13030
13031 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
13032
13033         * object.c: fix cast warning in big endian code.
13034
13035 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
13036
13037         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
13038         
13039 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13040
13041         * assembly.c: don't call check_env from mono_assembly_load. It's
13042         already done once in mono_assemblies_init and may cause headaches when
13043         multiple threads are loading assemblies.
13044
13045 2003-09-19  Martin Baulig  <martin@ximian.com>
13046
13047         * reflection.c (mono_reflection_define_generic_parameter): Don't
13048         allocate `klass->methods', set `klass->flags' to
13049         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
13050
13051 2003-09-18  Martin Baulig  <martin@ximian.com>
13052
13053         * class.c (mono_class_init): Don't create `class->methods' if it's
13054         already initialized.
13055
13056         * metadata.c (mono_metadata_load_generic_params): Make this
13057         actually work.
13058
13059         * reflection.c (mono_reflection_define_generic_parameter): Set
13060         parent class and interfaces from the constraints.
13061
13062         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
13063         to keep this struct in sync with the declaration in TypeBuilder.cs.
13064
13065 2003-09-17  Martin Baulig  <martin@ximian.com>
13066
13067         * metadata.h (MonoType): Replaced the data's `int type_param'
13068         field with `MonoGenericParam *generic_param'.
13069         (MonoGenericParam): Added `MonoClass *klass'.
13070
13071         * class.c (mono_class_from_gen_param): Removed the
13072         `MonoImage *image' and `int type_num' arguments.
13073
13074         * metadata.c (mono_metadata_parse_generic_param): New static
13075         method; creates a MonoGenericParam which just contains the index.
13076         (do_mono_metadata_parse_type): Call
13077         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
13078         MONO_TYPE_MVAR.
13079
13080         * reflection.c (mono_image_typedef_or_ref): Generic type
13081         parameters may be in the same assembly, but never use a typedef
13082         for them.
13083         (mono_reflection_define_generic_parameter): We're now creating a
13084         "real" class for the type parameter; it's now safe to call
13085         mono_class_from_mono_type() on the class'es type, it'll do the
13086         right thing.
13087
13088 2003-09-16  Martin Baulig  <martin@ximian.com>
13089
13090         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
13091         `symfile->range_entry_size' and `symfile->class_entry_size' here;
13092         the `symfile' data structure must be fully initialized before it
13093         gets added to the table.
13094
13095 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
13096
13097         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
13098
13099         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
13100         class init trampolines.
13101
13102 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
13103
13104         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
13105         to the built-in profiler to turn off time and allocation profiling
13106         respectively.
13107
13108 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
13109
13110         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
13111         g_direct_equal.
13112
13113         * debug-helpers.c (mono_method_full_name): Print the wrapper type
13114         in human readable form.
13115
13116 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
13117
13118         * reflection.c icall.c: Fixed warnings.
13119
13120         * image.c (load_class_names): Use a temporary hash table to hold the
13121         namespaces in order to avoid doing many string comparisons.
13122
13123         * image.h: Fix typo.
13124
13125         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
13126         Pass NULL instead of g_direct_equal to the GHashTable constructor 
13127         since the NULL case is short-circuited inside g_hash_table_lookup, 
13128         leading to better performance.  
13129
13130         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
13131         obtain the first custom attribute for a given index. Depends on the
13132         CustomAttribute table being sorted by the parent field.
13133
13134         * reflection.c (mono_custom_attrs_from_index): Use the new function 
13135         for better performance.
13136
13137 2003-09-07  Martin Baulig  <martin@ximian.com>
13138
13139         * class.c (mono_class_init): If we're a generic instance, inflate
13140         all our methods instead of loading them from the image.
13141         (mono_class_from_generic): Set `class->methods = gklass->methods'.
13142
13143 2003-09-07  Martin Baulig  <martin@ximian.com>
13144
13145         * mono-debug-debugger.c: Added support for constructors.
13146
13147 2003-09-06  Martin Baulig  <martin@ximian.com>
13148
13149         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
13150         New interncall.
13151
13152         * reflection.c (mono_reflection_setup_generic_class): Call
13153         ensure_runtime_vtable() to create the vtable.
13154
13155 2003-09-05  Martin Baulig  <martin@ximian.com>
13156
13157         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
13158         MONO_TYPE_MVAR.
13159
13160 2003-09-04  Martin Baulig  <martin@ximian.com>
13161
13162         * reflection.c (mono_reflection_define_generic_parameter): Generic
13163         parameters start with zero.
13164
13165 2003-09-04  Martin Baulig  <martin@ximian.com>
13166
13167         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13168
13169         * reflection.h (MonoReflectionGenericParam): New typedef.
13170         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
13171         the generic parameters from the managed TypeBuilder.
13172
13173         * reflection.c (mono_reflection_define_generic_parameter): New function.
13174         (mono_reflection_create_runtime_class): Encode generic parameters.
13175         (mono_reflection_setup_generic_class): New function; this is
13176         called after adding adding all generic params to the TypeBuilder.
13177         (encode_type): Added MONO_TYPE_VAR.
13178
13179 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
13180
13181         * class.h class.c (mono_class_needs_cctor_run): Moved this method
13182         here from the JIT.
13183
13184         * assembly.h assembly.c: Moved the AOT loading code into an assembly
13185         load hook.
13186
13187 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
13188
13189         * reflection.h reflection.c class.h class.c: Delete duplicate 
13190         definition of mono_type_get_name () from reflection.c and export the
13191         one in class.c.
13192
13193         * class.c: Class loading fixes from Bernie Solomon 
13194         (bernard@ugsolutions.com).
13195
13196         * reflection.c: Endianness fixes from Bernie Solomon 
13197         (bernard@ugsolutions.com).
13198         
13199 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
13200
13201         * assembly.h assembly.c: Define a file format version for AOT
13202         libraries.
13203         
13204         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
13205
13206         * appdomain.h (MonoJitInfo): New field to determine whenever the
13207         code is domain neutral.
13208         
13209 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
13210
13211         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
13212
13213 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
13214
13215         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
13216         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
13217         Avoid caching the result since strings must be domain specific. Fixes
13218         #48050.
13219
13220 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
13221
13222         * marshal.c (mono_marshal_init): Make this callable multiple times
13223         since it is hard to find a correct place to call it.
13224
13225         * object.c (mono_runtime_class_init): Execute static constructors in
13226         the correct appdomain.
13227
13228         * image.c (build_guid_table): Handle the case when multiple images have
13229         the same GUID.
13230
13231 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13232
13233         * icall.c: added a couple of icalls for System.Web.
13234
13235 2003-08-28  Martin Baulig  <martin@ximian.com>
13236
13237         * icall.c (ves_icall_Type_BindGenericParameters): Use
13238         `klass->generic_inst' instead of `&klass->byval_arg' in the
13239         mono_type_get_object() call.  The returned type must be
13240         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
13241
13242 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
13243
13244         * NOTES: New file.
13245
13246         * object.c (mono_class_proxy_vtable): Make it thread safe.
13247
13248         * pedump.c: Fix warning.
13249
13250         * object.c appdomain.h: Get rid of metadata_section. 
13251         It is no longer needed and it was causing deadlocks with domain->lock.
13252
13253         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
13254
13255 2003-08-26  Martin Baulig  <martin@ximian.com>
13256
13257         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
13258
13259 2003-08-26  Martin Baulig  <martin@ximian.com>
13260
13261         * pedump.c (main): Call mono_metadata_init(),
13262         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
13263         and mono_loader_init().
13264
13265 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
13266
13267         * loader.h: Add missing include to fix build.
13268
13269         * image.h: mono_image_load_references is no more.
13270
13271         * assembly.c: Reworked assembly loading to make it really thread safe.
13272         After these changes, the assembly returned by mono_assembly_open is
13273         fully initialized, i.e. all its references assemblies are loaded.
13274
13275         * assembly.c (mono_image_load_references): Renamed to 
13276         mono_assembly_load_references, and made private, since clients no
13277         longer need to call it.
13278
13279         * class.c: Removed calls to mono_assembly_load_references, since it was
13280         a source of deadlocks.
13281
13282         * loader.h loader.c class.h class.c: Protect data structures using a 
13283         new lock, the loader lock.
13284
13285         * class.c (mono_class_setup_vtable): Create temporary hash tables and
13286         GPtrArrays only when needed.
13287
13288         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
13289         into empty structures by mcs. Fixes pinvoke7.cs.
13290         
13291         * domain.c (mono_init): Call a new initialization function.
13292
13293         * appdomain.c (mono_runtime_init): Call the new initializer function
13294         of the marshal module.
13295
13296         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
13297         inserted into empty structures by mcs. Fixes pinvoke7.cs.
13298
13299         * marshal.h marshal.c: Added locks around the wrapper caches to make
13300         this module thread safe.
13301
13302         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
13303         this argument. Fixes pinvoke1.exe.
13304
13305 2003-08-25  Lluis Sanchez <lluis@ximian.com>
13306
13307         * object.h: Added call_type field to MonoMethodMessage and the corresponding
13308         enumeration of values. Removed fields to store remote call output values in
13309         MonoAsyncResult. Not needed any more.
13310         * object.c: Initialize call_type and async_result fields in mono_message_init.
13311         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
13312         dispatching the message.
13313         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
13314         async call to finish. To do it use a message with EndInvoke call type.
13315
13316 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
13317
13318         * loader.h loader.c (mono_method_hash_marhal_info): New function which
13319         determines whenever a method has marshalling info.
13320
13321 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13322
13323         * assembly.c: fix the build on windows.
13324
13325 2003-08-22 Lluis Sanchez <lluis@ximian.com>
13326
13327         * object.cs: Fixed bug #47785.
13328
13329 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
13330
13331         * string-icalls.c (StringReplace): If their are no occurances of
13332         the old string found return a reference to the supplied
13333         string. This saves some memory and matches MS behavoir.
13334         
13335 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13336
13337         * socket-io.c: fixed compilation for systems that define AF_INET6
13338         and don't define SOL_IP/SOL_IPV6.
13339
13340 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
13341
13342         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
13343         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
13344
13345         * rawbuffer.c rawbuffer.h: Make this module thread safe.
13346
13347         * domain.c: Make this module thread safe.
13348
13349         * domain.c (mono_init): Call new initialization function.
13350
13351         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
13352         reference types too. Fixes #38812.
13353
13354         * image.c (mono_image_init): Fixed warnings.
13355
13356         * class.c (mono_class_from_typeref): Handle assembly load failure
13357         correctly.
13358
13359         * appdomain.c (add_assemblies_to_domain): Handle the case when
13360         the references of an assembly are not yet loaded.
13361
13362         * metadata.c image.c assembly.c: Moved initialization of global
13363         variables to a separate function called at startup since lazy 
13364         initialization of these variables is not thread safe.
13365         
13366         * image.c assembly.c: Made this module thread safe by adding locks in 
13367         the appropriate places.
13368
13369         * domain.c (mono_init): Call the new initialization functions of the
13370         three modules.
13371
13372 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
13373
13374         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
13375           make a direct call. It is proxy's work to make the call asynchronous.
13376           mono_delegate_end_invoke(): If the targe is a proxy, just collect
13377           the return values.
13378         * object.cs: mono_method_call_message_new(): read AsyncResult and
13379           state object from parameters list, if this info is requested.
13380         * object.h: Added fields to store remote call output values in
13381           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
13382
13383 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13384
13385         * object.h: add needed fields to MonoThread.
13386         * threads.c, threads.h: allow registering a function to cleanup data
13387         allocated per thread by the JIT.
13388
13389 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13390
13391         * loader.h: portability fix by Bernie Solomon
13392         * <bernard@ugsolutions.com>.
13393
13394 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
13395
13396         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
13397         return a MonoArray. This simplifies the code and also ensures that
13398         the cache allways contains an object reference as a value.
13399
13400         * icall.c (ves_icall_get_parameter_info): Simplified using the new
13401         function.
13402
13403 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13404
13405         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
13406         fixes a problem with byte ordering when getting the address family for
13407         a socket.
13408
13409 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
13410
13411         * .cvsignore: Added monosn.
13412
13413         * reflection.h reflection.c loader.c: Added support for parameter
13414         marshalling to dynamically created types. Fixes #47295.
13415
13416 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
13417
13418         * rand.c: remove useless warnings.
13419
13420 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13421
13422         * class.c: implemented ldtoken for methods and fieldrefs.
13423
13424 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13425
13426         * threadpool.c: when mono_async_invoke was called, no one took care of
13427         monitoring the queue. So if the method invoked took some time and we
13428         got new async invoke requests after 500 ms (the thread created waited
13429         that long in WaitForSingleObject), the new async invoke was not called
13430         until the previous one finished.
13431
13432         This is fixed now. Thanks to Totte for helping with it.
13433
13434 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13435
13436         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
13437
13438 2003-08-11  Martin Baulig  <martin@ximian.com>
13439
13440         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
13441
13442 2003-08-06  Martin Baulig  <martin@ximian.com>
13443
13444         * mono-debug-debugger.c: Added support for static fields,
13445         properties and methods.
13446
13447 2003-08-06  Martin Baulig  <martin@ximian.com>
13448
13449         * mono-debug-debugger.c: Don't store the MonoString's vtable to
13450         make this work for applications with multiple application domains.
13451
13452 2003-08-04  Martin Baulig  <martin@ximian.com>
13453
13454         * mono-debug-debugger.c: Completely reworked the type support; the
13455         most important thing is that we're now just using one single
13456         `MonoType' instance per type.
13457
13458 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
13459
13460         * mono-endian.h, mono-endian.c, icall.c: Added icall
13461         ves_icall_System_Double_AssertEndianity to assert double word endianity
13462         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
13463
13464 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13465
13466         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
13467         support, icalls and fixes.
13468
13469 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
13470
13471         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
13472         classes that are a punctuation character in .NET is not the same a
13473         g_unichar_ispunct.
13474
13475 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13476
13477         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
13478
13479 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
13480
13481         * icall.c: Add new MemCopy internalcall.
13482         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
13483         Simplified code; It is not necessary to handle all the cases here,
13484         as the C# code takes care of it.  Only handle the case of the name
13485         resource embedded into the assembly.
13486
13487         Changed signature to return the data pointer and the size of the
13488         data. 
13489
13490 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
13491
13492         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
13493         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
13494
13495 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13496
13497         * socket-io.c: ignore EINTR error in select.
13498
13499 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13500
13501         * class.h, class.c: removed unused subclasses field in MonoClass.
13502
13503 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13504
13505         * icall.c: improve fix of get_base_definition(). If the parent class
13506           doesn't have the mehod, look at the parent of the parent.
13507         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
13508           to check if a parameter is an in or out parameter
13509           (PARAM_ATTRIBUTE_IN is not set by default).
13510           mono_method_return_message_restore(): Use mono_class_value_size to
13511           get the size of a value type. mono_type_stack_size (parameterType)
13512           does not return the correct value if parameterType is byRef.
13513           mono_load_remote_field(), mono_load_remote_field_new(),
13514           mono_store_remote_field(), mono_store_remote_field_new():
13515           raise exception if the remote call returns an exception.
13516
13517 2003-07-28  Martin Baulig  <martin@ximian.com>
13518
13519         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
13520         method.  This is a wrapper around mono_runtime_invoke() which
13521         boxes the instance object if neccessary.
13522
13523 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13524
13525         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
13526         metadata.h, row-indexes.h, verify.c: first cut of generics support.
13527
13528 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13529
13530         * icall.c: disable mcs bug workaround.
13531
13532 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
13533
13534         * object.c (mono_runtime_class_init): Take the metadata_section
13535         mutex before obtaining the domain mutex.
13536
13537         * appdomain.h: Added definition of metadata_section mutex here. 
13538
13539         * object.c: define metadata_mutex here.
13540
13541 2003-07-24  Ravi Pratap  <ravi@ximian.com>
13542
13543         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
13544         fixed.
13545
13546 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
13547
13548         * reflection.c: Fix bug #46669
13549
13550 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13551
13552         * exception.c:
13553         * exception.h:
13554         * icall.c:
13555         * object.h: fill in the type name for TypeLoadException.
13556
13557 2003-07-23  Ravi Pratap  <ravi@ximian.com>
13558
13559         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
13560         relationship between TypeBuilders while compiling corlib) and bug
13561         45993 (Array types returned from the runtime while compiling
13562         corlib were from the loaded corlib).
13563
13564 2003-07-22  Martin Baulig  <martin@ximian.com>
13565
13566         * mono-debug-debugger.c: Reworked the type support a bit more;
13567         distinguish between types and classes.
13568
13569 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
13570
13571         * icall.c: add IsArrayImpl icall.
13572
13573 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
13574
13575         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
13576         initializing real_size only once. Also fix bug #46602.
13577
13578 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
13579
13580         * object.c: Renamed mono_metadata_section to metadata_section.
13581
13582 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
13583
13584         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
13585           empty array if the type is an array. Fixed.
13586           ves_icall_MonoMethod_get_base_definition: if the base method
13587           is abstract, get the MethodInfo from the list of methods of
13588           the class.
13589         * reflection.c: ParameterInfo.PositionImpl should be zero-based
13590           and it was 1-based. Fixed in mono_param_get_objects.
13591
13592 2003-07-20  Martin Baulig  <martin@ximian.com>
13593
13594         * mono-debug.h: Set version number to 31.
13595         (mono_debug_init): Added `MonoDomain *' argument.
13596
13597         * mono-debug-debugger.c: Reworked the type support; explicitly
13598         tell the debugger about builtin types; pass the `klass' address to
13599         the debugger.
13600
13601 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
13602
13603         * image.c: Allow new metadata tables to be loaded without a
13604         warning. Also update the warning message to give the new constant value.
13605                 
13606 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
13607
13608         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
13609         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
13610         array type representation changes.
13611
13612 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13613
13614         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
13615         on Environment.Exit () call.
13616
13617 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13618
13619         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
13620         requires a matching corlib.
13621
13622 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13623
13624         * Changelog: My editor decided to add a CR to each line. Sorry about that.
13625           Committed again without the CRs.
13626         
13627 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13628
13629         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
13630           getting it from the "this" socket instance. Did not work
13631           if the socket is a subclass of Socket.
13632           Also fixed bug #35371.
13633
13634 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13635
13636         * metadata.c: fixed size for TypedByRef.
13637         * loader.c: when searching for a method, consider the vararg amrker.
13638         * unicode.c, decimal.c: constify some arrays.
13639
13640 2003-07-15  Dick Porter  <dick@ximian.com>
13641
13642         * socket-io.c: Fixed compilation for gcc < 3.2.
13643
13644         Fixed compilation for machines that don't have AF_INET6 (thanks to
13645         Bernie Solomon <bernard@ugsolutions.com> for that part.)
13646
13647         Fixed compile warnings.
13648         
13649         Fixed formatting and line endings.
13650
13651 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
13652
13653         * socket-io.h:
13654         * socket-io.c: Added IPv6 support.
13655
13656 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
13657
13658         * class.c (mono_class_is_assignable_from): New function to implement
13659         the is_assignable_from logic. Used by mono_object_isinst, 
13660         Type::IsAssignableFrom () and the interpreter.
13661
13662         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
13663         Object, even interfaces.
13664         
13665         * object.c (mono_object_isinst): Implement in terms of 
13666         is_assignable_from.
13667
13668         * icall.c (ves_icall_type_is_assignable_from): New icall.
13669
13670 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
13671
13672         * domain.c (foreach_domain): fix compiler warning.
13673
13674 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
13675
13676         * image.c (load_metadata_ptrs): use g_strndup because strndup is
13677         not available on all plattforms
13678
13679 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
13680
13681         * image.h image.c: Store the metadata version string in MonoImage.
13682         * icall.c: New icall to retrieve the image version.
13683         * reflection.c (create_dynamic_image): Fill in the image version field
13684         * reflection.c (build_compressed_metadata): Use the image version
13685         from the image structure.
13686
13687 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13688
13689         * appdomain.c: modified comment.
13690         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
13691         That will be its last iteration when mono_gc_cleanup is called from
13692         mono_runtime_cleanup and before the domain is unloaded.
13693
13694         Fixes bug #45962.
13695
13696 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
13697
13698         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
13699         attributes.
13700
13701 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13702
13703         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
13704         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
13705         Bernie Solomon <bernard@ugsolutions.com>.
13706
13707 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13708
13709         * object.c, object.h: provide mono_object_new_fast() for faster
13710         allocation in some special cases.
13711
13712 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
13713
13714         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
13715         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
13716
13717 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
13718
13719         * threadpool.c: fix leaks.
13720
13721 2003-07-01  Dick Porter  <dick@ximian.com>
13722
13723         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
13724         using MonoGHashTables.  Fixes threadpool bug posted to list.
13725
13726 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13727
13728         * image.h, image.c: added support to load an assembly from a byte array.
13729         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
13730         assembly bundle support.
13731
13732 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
13733
13734         * threadpool.c (mono_thread_pool_add): keep a reference to the
13735         AsyncResult to prevent GC
13736
13737 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13738
13739         * class.c: leak fix.
13740
13741 2003-06-25  Dick Porter  <dick@ximian.com>
13742
13743         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
13744         for the async object, the WaitHandle object will close the handle.
13745         Fixes bug 45321.
13746
13747 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13748
13749         * class.c: in mono_array_class_get (), lookup from the hash with the
13750         same type we insert: this works around a bug in
13751         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
13752         lluis. The real fix will have to wait for after the release.
13753
13754 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13755
13756         * icall.c: fix memory leak when getting type members.
13757
13758 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13759
13760         * reflection.c: added more pubtoken special cases.
13761
13762 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
13763
13764         * class.c: handle field offset correctly when class size
13765         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
13766
13767 2003-06-20  Martin Baulig  <martin@ximian.com>
13768
13769         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
13770         *image' field.
13771
13772 2003-06-20  Martin Baulig  <martin@ximian.com>
13773
13774         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
13775
13776 2003-06-20  Martin Baulig  <martin@ximian.com>
13777
13778         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13779         just distinguish between variables in registers and variables at
13780         an offset relative to a register.
13781
13782 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13783
13784         * icall.c: #ifdef out latest changes until mcs is fixed.
13785
13786 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13787
13788         * icall.c: return members in metadata order.
13789
13790 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13791
13792         * icall.c: avoid infinite loop in GetTimeZoneData.
13793
13794 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13795
13796         * icall.c: added Marshal.Prelink/All icalls.
13797
13798 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13799
13800         * object.c, object.h: fix warnings and do some overflow checking
13801         when creating arrays.
13802
13803 2003-06-17  Dick Porter  <dick@ximian.com>
13804
13805         * file-io.h:
13806         * file-io.c: File attributes need to be tweaked slightly when
13807         passed from the managed to the w32 world.
13808
13809 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13810         * profiler.h profiler-private.h profiler.c: Rework last patch
13811         based on suggestion by Paolo.
13812         
13813 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13814
13815         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13816         instruction level coverage data collection.
13817         * profiler.h profiler.c (: Added new callback function which can be
13818         used by the profiler to limit which functions should have coverage
13819         instrumentation.
13820         * profiler.c (mono_profiler_load): Call g_module_build_path to
13821         generate the file name of the profiler library.
13822
13823 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13824
13825         * profiler.c, profiler.h, profiler-private.h: added basic block 
13826         coverage profiling API.
13827
13828 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13829
13830         * reflection.c (mono_reflection_create_runtime_class): Add support
13831         for events in dynamically generated code.
13832
13833         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13834         not allocated.
13835
13836 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13837
13838         * icall.c: when getting timezone info, return reasonable values if we
13839         can't get the actual data.
13840
13841 2003-06-14  Dick Porter  <dick@ximian.com>
13842
13843         * threads.c (start_wrapper): Remove the reference to the thread
13844         object in the TLS data, so the thread object can be finalized.
13845         This won't be reached if the thread threw an uncaught exception,
13846         so those thread handles will stay referenced :-( (This is due to
13847         missing support for scanning thread-specific data in the Boehm GC
13848         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13849
13850 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13851
13852         * reflection.c: ensure streams and tables are first allocated with
13853         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13854
13855 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13856
13857         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13858
13859 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13860
13861         * reflection.c (mono_reflection_create_runtime_class): Add support for
13862         properties to dynamically created classes.
13863         * reflection.c: Fix a few places where non-MonoObjects were inserted
13864         into the tokens hashtable.
13865
13866 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13867
13868         * object.c: some support to handle out of memory exceptions.
13869
13870 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13871
13872         * marshal.c (mono_marshal_get_native_wrapper): support reference
13873         return types
13874
13875 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13876
13877         * object.h, object.c: more portability stuff from Bernie Solomon.
13878         Unexport mono_object_allocate(). Added mono_object_unbox ().
13879         Set exitcode when an unhandled exception is thrown.
13880
13881 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13882
13883         * marshal.c (mono_marshal_get_native_wrapper): use custom
13884         marshaler for return types.
13885
13886 2003-06-10  Dick Porter  <dick@ximian.com>
13887
13888         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13889         ip_mreq is available
13890
13891 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13892
13893         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13894         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13895         by Bernie Solomon <bernard@ugsolutions.com>.
13896
13897 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13898
13899         * gc.c (mono_gc_init): Avoid error message on shutdown when
13900         GC_DONT_GC=1 is used.
13901
13902         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13903         New icall to return the GUID of a module.
13904
13905 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13906
13907         * class.c: ensure instance size always includes the parent's size
13908         even whem class size is set explicitly (fixes bug#44294).
13909
13910 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13911
13912         * profiler.h, profiler.c: made the simple profiler thread-safe,
13913         get more accurate timing info. Allow the loading of an
13914         externally-developed profiler module.
13915
13916 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13917
13918         * marshal.c (mono_marshal_get_native_wrapper): improved
13919         class/byref arguments.
13920         (mono_marshal_get_native_wrapper): better string marshaling support.
13921
13922 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13923
13924         * class.c: ensure .pack and .size are handled correctly and
13925         simplified layout of static fields.
13926
13927 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13928
13929         * appdomain.c
13930         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13931
13932         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13933         current directory (fix bug 44008)
13934
13935 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13936
13937         * marshal.c (mono_marshal_get_native_wrapper): started support for
13938         custom marshalers.
13939         (mono_delegate_to_ftnptr): consider marshalling specifications
13940
13941 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13942
13943         * reflection.c, reflection.h: emit custom marshal info.
13944
13945 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13946
13947         * object.c: free the GError.
13948         * icall.c: added CloseEvent_internal.
13949         * threads.[ch]:
13950         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13951         call.
13952
13953 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13954
13955         * loader.c (mono_method_get_signature): Add support for dynamic
13956         assemblies.
13957
13958 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
13959
13960         * reflection.c: fixed bug #43905.
13961
13962 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13963
13964         * class.c, domain.c, icall.c, metadata.h, object.h: support for
13965         handling TypedReference and ArgIterator.
13966         * loader.c, loader.h: added function to get signature at call site.
13967
13968 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13969
13970         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
13971         data readonly. Buglets and warning fixes. Some MethodSpec support.
13972
13973 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13974
13975         * class.h, class.c, object.c: remove relative numbering support.
13976
13977 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
13978
13979         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
13980         free the string, until we get a chance to fix Gtk#
13981
13982 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13983
13984         * marshal.c: revert last patch.
13985
13986 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
13987
13988         * icall.c: updates for new mono_class_vtable() not calling
13989         the type constructor anymore.
13990
13991 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13992
13993         * object.h, object.c: separate vtable creation from type
13994         initialization. Make running the .cctor thread safe.
13995
13996 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
13997
13998         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
13999
14000 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
14001
14002         * loader.c (mono_get_method): consider calling convention
14003
14004 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
14005
14006         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
14007         to return the invisible global type for a module.
14008
14009         * reflection.c (mono_image_build_metadata): Emit global fields too.
14010
14011 2003-05-20  Peter Williams  <peterw@ximian.com>
14012
14013         * loader.c (mono_lookup_internal_call): Add a few newlines.
14014
14015 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
14016
14017         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
14018         literal strings.
14019
14020         * appdomain.c (set_domain_search_path): Recalculate search path when
14021         AppDomainSetup.PrivateBinPath changes.
14022
14023         * object.c (mono_class_compute_gc_descriptor): It turns out some
14024         parts of the class libs (like System.Thread) holds pointers to
14025         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
14026         to treat native int a pointer type here.
14027         
14028 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
14029
14030         * appdomain.h, domain.c: add hashtable for jump target resolution.
14031
14032 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
14033
14034         * reflection.h reflection.c icall.c: Added new icalls 
14035         GetManifestResourceInfoInternal, GetModulesInternal and support
14036         infrastructure.
14037
14038 2003-05-16  Dick Porter  <dick@ximian.com>
14039
14040         * icall.c:
14041         * file-io.h:
14042         * file-io.c: Implement System.IO.MonoIO::GetTempPath
14043
14044 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
14045
14046         * object.c: mono_store_remote_field: little fix to previous patch.
14047
14048 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14049
14050         * class.c: add constructors to array classes.
14051         * icall.c: special case array construction for InternalInvoke (),
14052
14053 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
14054
14055         * class.h class.c reflection.c object.c: Added support for field
14056         defaults in dynamically generated classes.
14057
14058 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
14059
14060         * reflection.c: properly encode charset for ddlimport.
14061
14062 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
14063
14064         * threads.c: allow compiling without GC.
14065
14066 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14067
14068         * appdomain.h, object.c, object.h, threads.c, threads.h: added
14069         handling of thread static data.
14070
14071 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14072
14073         * reflection.h, reflection.c: added mono_custom_attrs_free ().
14074
14075 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
14076
14077         * class.c (mono_array_class_get): always set the serializable flags
14078         (mono_array_class_get): always set the SEALED attribute for array types
14079
14080 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
14081
14082         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
14083         attributes (fix for bug 42021).
14084
14085 2003-05-12  Dick Porter  <dick@ximian.com>
14086
14087         * gc.c: Don't run finalizers when the finalizer thread is
14088         finishing up, because the default domain has already been
14089         destroyed.
14090
14091 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
14092
14093         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
14094         value is null, we should throw an exception.   This is slightly
14095         different than the other conventions used for the constructor.
14096
14097 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14098
14099         * socket-io.c: fixed windows build.
14100
14101 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14102
14103         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
14104
14105 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
14106
14107         * object.c (mono_string_new_wrapper): Compatibility fix for MS
14108         compilers.
14109
14110 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
14111
14112         * class.c (mono_class_layout_fields): Add experimental GC aware
14113         auto layout facility. Requires class library changes to work correctly.
14114
14115         (mono_class_setup_vtable): Avoid overriding explicit interface
14116         method implementations. Fixes iface3.exe test.
14117
14118         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
14119         object reference.
14120         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
14121         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
14122
14123         * metadata.h: Add new type classification macro which determines
14124         whenever the type holds an object reference.
14125
14126 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
14127
14128         * marshal.c (mono_marshal_get_native_wrapper): cleanups
14129
14130 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
14131
14132         * gc.c (finalizer_thread): Work around a GC bug.
14133
14134 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
14135
14136         * marshal.c (emit_struct_conv): allow unions
14137
14138         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
14139
14140 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
14141
14142         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
14143
14144 2003-05-06  Martin Baulig  <martin@ximian.com>
14145
14146         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
14147
14148 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14149
14150         * socket-io.c:
14151         (Select_internal): allow NULLs, don't create arrays if not needed.
14152         Coupled with Socket.cs changes.
14153
14154         * threadpool.c:
14155         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
14156         register a finalizer for it that will close the semaphore handle. This
14157         fixes the leak and make Lupus' test run with > 4080 loops.
14158
14159 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
14160
14161         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
14162         Jerome Laban (bug #42287)
14163
14164 2003-05-02  Martin Baulig  <martin@ximian.com>
14165
14166         * debug-mono-symfile.h
14167         (MonoSymbolFile): Moved declaration into mono-debug.h.
14168         (MonoDebugMethodJitInfo): Likewise.
14169         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
14170         argument.
14171         (_mono_debug_address_from_il_offset): Take a
14172         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
14173
14174         * mono-debug.h
14175         (MonoDebugDomainData): New struct.
14176         (mono_debug_get_domain_data): New function.
14177         (mono_debug_add_method): Take an additional `MonoDomain *'
14178         argument.
14179         (mono_debug_source_location_from_address): Likewise.
14180         (mono_debug_il_offset_from_address): Likewise.
14181         (mono_debug_address_from_il_offset): Likewise.
14182
14183 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
14184
14185         * reflection.c: one more check for null type in custom attrs.
14186
14187 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14188
14189         * reflection.c: avoid warning (comparison is always false due to limited
14190         range of data type).
14191
14192 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14193
14194         * icall.c: throw an exception in Type.GetField if the argument 'name'
14195         is NULL.
14196
14197 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
14198
14199         * reflection.c: fixed handling of enums in named arguments to custom
14200         attributes (bug #42123).
14201
14202 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
14203
14204         * reflection.c: use the right array element type and handle
14205         a null for a Type argument, too.
14206
14207 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
14208
14209         * reflection.c: handle arrays as arguments to custom attributes.
14210
14211 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14212
14213         * reflection.c: handle a string value in a custom attr
14214         ctor that takes an object.
14215
14216 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
14217
14218         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
14219         (fix bug #42063)
14220
14221 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
14222
14223         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
14224
14225 2003-04-27  Martin Baulig  <martin@ximian.com>
14226
14227         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
14228         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
14229         MONO_DEBUGGER_EVENT_BREAKPOINT.
14230         (mono_breakpoint_trampoline_code): Removed.
14231         (mono_debugger_event_handler): The last argument is now a
14232         `guint32'.
14233         (mono_debugger_insert_breakpoint_full): Removed the
14234         `use_trampoline' argument.
14235         (mono_debugger_method_has_breakpoint): Likewise.
14236         (mono_debugger_trampoline_breakpoint_callback): Renamed to
14237         mono_debugger_breakpoint_callback(); take the method and
14238         breakpoint number as arguments.
14239
14240 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
14241
14242         * metadata.c: fix off by one when loading parameters attributes.
14243
14244 2003-04-24  Martin Baulig  <martin@ximian.com>
14245
14246         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
14247
14248 2003-04-24  Martin Baulig  <martin@ximian.com>
14249
14250         * mono-debug-debugger.c: Moved all code which interacts with the
14251         Mono Debugger here.
14252
14253         * debug-mono-symfile.c: This code now just deals with the symbol
14254         file itself, the debugger code is now in mono-debug-debugger.c.
14255
14256 2003-04-23  Martin Baulig  <martin@ximian.com>
14257
14258         * mono-debug.c (mono_debug_source_location_from_il_offset):
14259         New method; like mono_debug_source_location_from_address(), but
14260         takes an IL offset instead of a machine address.
14261
14262 2003-04-23  Martin Baulig  <martin@ximian.com>
14263
14264         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
14265         `line' field; this is now computed by the debugger.
14266
14267 2003-04-23  Martin Baulig  <martin@ximian.com>
14268
14269         * mono-debug.[ch]: New files.  This is the new debugging interface.
14270
14271         * mono-debug-debugger.[ch]: New files.  Moved all code which
14272         interacts with the Mono Debugger here.
14273
14274 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
14275
14276         * domain.c (mono_init): initialize mono_defaults.monitor_class
14277
14278 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
14279
14280         * reflection.c (method_encode_code): Add a spicy exception to help
14281         future compiler authors.
14282
14283 2003-04-21  Martin Baulig  <martin@ximian.com>
14284
14285         * icall.c
14286         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14287         Make this work with relative pathnames; g_filename_to_uri() needs
14288         an absolute filename.
14289
14290 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
14291
14292         * icall.c: Track name changes in Object and ValueType.
14293
14294 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
14295
14296         * metadata.c (mono_type_stack_size): size should be a multiple of
14297         sizeof (gpointer)
14298
14299 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14300
14301         * gc.c:
14302         (internal_domain_finalize): moved into mono_domain_finalize. No need
14303         to create another thread because the finalizers will be run in the
14304         finalizer thread.
14305         
14306         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
14307         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
14308         to be run (MS does this too).
14309
14310 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
14311
14312         * object.c (mono_class_compute_gc_descriptor): Update comment.
14313
14314         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
14315
14316         * image.h: Add synchronized wrapper cache.
14317
14318         * image.c (do_mono_image_open): Initialize cache.
14319
14320         * reflection.c (create_dynamic_mono_image): Initialize cache.
14321
14322 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14323
14324         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
14325         ves_icall_System_Buffer_ByteLengthInternal.
14326
14327 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14328
14329         * reflection.c: setup klass->nested_in earlier. Allow
14330         a dash in the assembly name.
14331
14332 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
14333
14334         * metadata.c (mono_type_to_unmanaged): dont access
14335         type->data.klass for MONO_TYPE_OBJECT
14336         (mono_type_to_unmanaged): consider System.Delegate class
14337
14338 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
14339
14340         * class.c: just setup supertypes in the proper place instead of
14341         initializing the full element class for arrays.
14342
14343 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14344
14345         * class.c: ensure the element class of arrays is initialized.
14346         Setup the supertype info for array classes, too.
14347
14348 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
14349
14350         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
14351
14352 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14353
14354         * Makefile.am: re-added -m option when running cygpath. This way,
14355         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
14356         separator.
14357         * mono-config.c: same codepath for locating mono config file for WIN32
14358         and the rest.
14359         * assembly.c: if mono_assembly_setrootdir is called, don't override
14360         the value set.
14361
14362 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14363
14364         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
14365         MONO_ASSEMBLIES variable.
14366
14367 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
14368
14369         * icall.c: added Assembly::GetNamespaces() icall.
14370
14371 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14372
14373         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
14374
14375 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
14376
14377         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
14378         * object.c: fixed bug in the construction of vtable for proxies
14379
14380 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
14381
14382         * object.c (mono_array_new): Mark mono_array_new as an icall.
14383
14384 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14385
14386         * class.c: fixed test for public method when overriding interfaces.
14387         Closes bug #40970.
14388
14389 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14390
14391         * appdomain.h, domain.c: added mono_domain_foreach() to
14392         be able to access the currently loaded appdomains.
14393         * object.c: make string interning work across sppdomains.
14394         Mark some functions for use as icalls.
14395
14396 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
14397
14398         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
14399
14400         * reflection.h reflection.c: Allocate long living data using 
14401         GC_MALLOC_ATOMIC so the collector does not need to scan it.
14402
14403         * reflection.c: Double the allocation size in streams instead of
14404         increasing it, to prevent unneccesary copying on large assemblies.
14405         
14406         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
14407         creation if the assembly does not have the Run flag set.
14408
14409 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
14410
14411         * class.h: avoid the C++ keywords in header files (Jerome Laban
14412         spotted and fixed this).
14413
14414 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14415
14416         * object.c:
14417         (mono_unhandled_exception): fill in the arguments for the
14418         UnhandledException event. Only trigger that event for the default
14419         domain (as MS does).
14420
14421 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
14422
14423         * object.c: Improve typed allocation stuff based on suggestions from
14424         Paolo. Also turn it on if the GC library supports it.
14425
14426 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14427
14428         * object.c object.h class.h: Added experimental typed allocation
14429         facility using the interfaces in gc_gcj.h.
14430
14431         * os/gc_wrapper.h: Added new include files.
14432         
14433 2003-04-03  Martin Baulig  <martin@ximian.com>
14434
14435         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
14436         which is not yet enabled by default.
14437
14438         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
14439         functions.
14440         (mono_gc_lock, mono_gc_unlock): New static functions.
14441
14442         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
14443         functions; stop/start the world for the garbage collector.  This
14444         is using the windows API; we need to complete the SuspendThread()/
14445         ResumeThread() implementation in the io-layer to make this work on Unix.
14446         (mono_gc_push_all_stacks): New public function; tells the garbage
14447         collector about the stack pointers from all managed threads.
14448
14449 2003-04-03  Martin Baulig  <martin@ximian.com>
14450
14451         * object.h (MonoThread): Added `gpointer stack_ptr'.
14452
14453         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
14454
14455 2003-04-03  Martin Baulig  <martin@ximian.com>
14456
14457         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
14458
14459 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14460
14461         * reflection.c (typebuilder_setup_fields): Initialize field.first and
14462         field.last.
14463
14464 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
14465
14466         * loader.c (mono_lookup_internal_call): Report the corlib that is
14467         out of sync.
14468
14469 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
14470
14471         * icall.c (ves_icall_type_GetTypeCode): fixed check for
14472         System.DBNull (it's class not valuetype).
14473
14474 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14475
14476         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
14477         if the array method was already assigned a token (fixes bug#40646).
14478
14479 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
14480
14481         * reflection.c (mono_reflection_get_type): Attempt type resolve even
14482         if no assembly is given.
14483
14484 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
14485
14486         * metadata.h: Added the new tables.
14487
14488         * row-indexes.h: Added definitions for new tables.
14489
14490         * metadata.c: Add schemas for new tables, and add support for
14491         computing the sizes of them.
14492
14493         * class.c: Update for handling the new type cases.
14494
14495 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
14496
14497         * metadata.h (MONO_TYPE_IS_VOID): new macro
14498
14499 2003-03-31  Martin Baulig  <martin@ximian.com>
14500
14501         * threads.h (MonoThreadCallbacks): Added `thread_created'.
14502
14503         * threads.c (mono_thread_new_init): Call `thread_created' in the
14504         mono_thread_callbacks.
14505
14506 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
14507
14508         * loader.h: added marshalbyrefobject_class to mono_defaults
14509         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
14510         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
14511           generation of output parameters.
14512           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
14513         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
14514           contextbound and the target object belongs to the context of the caller.
14515         * object.h: added context and unwrapped_server variables in MonoRealProxy.
14516         * object.c: Implemented support for interfaces and abstract classes
14517           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
14518           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
14519
14520 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
14521
14522         * class.h class.c (mono_class_is_subclass_of): New function.
14523         
14524         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
14525         routines for most common case (calls from ArrayList::ToArray).
14526
14527         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
14528         routine so programs which call Environment::Exit() can be profiled.
14529
14530         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
14531         Added MONO_ARCH_SAVE_REGS.
14532
14533         * icall.c (ves_icall_type_is_subtype_of): Use new function.
14534
14535 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
14536
14537         * blob.h: Add a couple of new MonoType types definitions.
14538
14539         * tabledefs.h: Add a couple of new call convs.
14540
14541 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
14542
14543         * reflection.h (MonoReflectionDynamicAssembly): track changes in
14544         the layout of the class.
14545
14546         * reflection.c (alloc_table): double the size on overflow to avoid
14547         unnecessary copying.
14548
14549         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
14550         avoid filling out metadata tables and blobs. Also set mb->ilgen to
14551         null so it can be garbage collected.
14552         
14553 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
14554
14555         * reflection.c (mono_reflection_get_type): Return the resolved type
14556         only if it is in the assembly we searched.
14557
14558         * reflection.c (ensure_runtime_vtable): Initialize method slots.
14559
14560         * class.c (mono_class_setup_vtable): Set the slot of the overriding
14561         method.
14562
14563 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14564
14565         * appdomain.c:
14566         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
14567         the right one is 'file:///blah', but MS allows it.
14568         * assembly.c:
14569         (mono_assembly_open): allow 'file://blah'
14570
14571         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
14572
14573 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
14574
14575         * socket-io.c: fixes bug #40310.
14576
14577 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
14578
14579         * reflection.c (mono_reflection_parse_type): handle deeply nested
14580         types correctly.
14581
14582         * reflection.c (mono_image_create_token): Use unique token values
14583         since they will be put into a hash table.
14584
14585         * class.c (mono_class_setup_vtable): If a method occurs in more than
14586         one place in the vtable, and it gets overriden, then change the
14587         other occurances too.
14588
14589         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14590         object as return type.
14591
14592 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14593
14594         * icall.c: Deleted "ToString" implementation for double and float
14595         because they are full implemented in managed code.
14596
14597 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14598
14599         * reflection.c, reflection.h: implemented and exported functions
14600         to retrieve info about custom attributes.
14601
14602 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14603
14604         * appdomain.c: moved Uri handling to assembly.c
14605         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
14606         work when using a file Uri in *nix and windows.
14607
14608         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
14609         GetReferencedAssemblies.
14610
14611 2003-03-18  Dick Porter  <dick@ximian.com>
14612
14613         * icall.c: Rename a couple of internal calls
14614
14615         * threads.c: Set the thread state to Stopped when a thread exits.
14616         Fixes bug 39377.
14617
14618 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
14619
14620         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
14621         New icall.
14622
14623         * object.c (mono_class_vtable): fix warning.
14624
14625 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
14626
14627         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
14628
14629         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
14630         memory.
14631         (method_encode_clauses): Create exception info structures in the right
14632         order.
14633         (mono_reflection_setup_internal_class): Initialize supertypes field.
14634
14635         * class.c object.c: Handle interfaces which implement other interfaces 
14636         correctly.
14637
14638         * class.h class.c: Move the supertypes array initialization code into 
14639         a separate function so it can be used for dynamic types too. Also call
14640         it earlier, in mono_class_init(), since it can be used before the
14641         type is initialized.
14642
14643 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14644
14645         * Makefile.am:
14646         * assembly.c:
14647         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
14648
14649         * appdomain.c:
14650         * appdomain.h:
14651         * marshal.c:
14652         * object.c: remove warnings.
14653
14654 2003-03-13  Martin Baulig  <martin@ximian.com>
14655
14656         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
14657         (MonoDebugLexicalBlockEntry): New types.
14658
14659         * debug-mono-symfile.c
14660         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
14661
14662 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14663
14664         * process.c: ret can be any non-zero value accroding to MS doc.
14665
14666 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
14667
14668         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
14669         fixing a warning for a miss-used prototype, would have cause
14670         random memory corruption.
14671
14672 2003-03-07  Martin Baulig  <martin@ximian.com>
14673
14674         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
14675         getting really annoying ....
14676
14677 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
14678
14679         * reflection.c (fixup_method): added support for array methods.
14680
14681 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
14682
14683         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
14684         (pointed out by Michael Adams).
14685
14686 2003-03-04  Dick Porter  <dick@ximian.com>
14687
14688         * icall.c: Temporarily reverted the Double and Single ToString()
14689         change, because it broke nunit.
14690
14691 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
14692
14693         * object.h, threads.h: make include files compatible with C++
14694         (patch by Jerome Laban <jlaban@wanadoo.fr>).
14695
14696 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14697
14698         * icall.c: Erased ToString helper functions for Double and Single.
14699         Now, that implementations ar all in managed code (Double and Single
14700         Formatters).
14701
14702 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
14703
14704         * appdomain.c: Added method for initializing the default context of
14705         a domain. Added internal call for getting the default context.
14706         * appdomain.h: Added context variable in MonoDomain struct.
14707         * domain.c: mono_domain_set also sets the default context of the domain
14708         * icall.c: Mapped internal method InternalGetDefaultContext.
14709         * object.c: mono_object_get_virtual_method returns always a remoting
14710         wrapper if the object is a transparent proxy.
14711         mono_runtime_invoke_array: when creating an object by calling the
14712         constructor, if the created object is a proxy, then the constructor should
14713         be called using the a remoting wrapper.
14714
14715 2003-03-03  Dick Porter  <dick@ximian.com>
14716
14717         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
14718         variable so it compiles on solaris.  Problem spotted by
14719         Christopher Taylor <ct@cs.clemson.edu>
14720
14721 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14722
14723         * appdomain.c:
14724         (get_info_from_assembly_name): don't leak value.
14725
14726         * icall.c:
14727         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
14728         result.
14729
14730 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
14731
14732         * assembly.c: export mono_image_load_references ().
14733         * class.c: handle function pointers. mono_class_from_name() now
14734         supports nested type names directly.
14735
14736 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
14737
14738         * reflection.h reflection.c: Encode already created dynamic methods 
14739         and fields correctly as a DEF instead of a REF.
14740
14741         * reflection.c: Get rid of the force_ref argument to 
14742         mono_image_typedef_or_ref since it was wrong in the first place.
14743
14744         * string-icalls.c: add error checking to string constructors according
14745         to the MSDN docs.
14746
14747         * reflection.c: Emit types in the order their TypeBuilders were 
14748         created. Previously, a new table index was assigned to each type before
14749         the tables were emitted. This was wrong because the signature blob
14750         might already refer to a type by its original table index.
14751
14752 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
14753
14754         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
14755         change.
14756         
14757 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14758
14759         * Makefile.am: make assemblies dir have \ instead of / on windows.
14760
14761 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
14762
14763         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
14764         iterate over the NESTEDCLASS table using a linear search since the
14765         table is not guaranteed to be sorted by the secondary key.
14766
14767         * class.c (mono_class_create_from_typedef): fixed up call to
14768         mono_metadata_nesting_typedef.
14769         
14770 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
14771
14772         * marshal.c (mono_string_to_byvalstr): clear the memory as
14773         suggested by Jerome Laban <jlaban@wanadoo.fr>
14774
14775 2003-02-26  Dick Porter  <dick@ximian.com>
14776
14777         * process.c: Cope with padding in .rsrc blocks
14778
14779 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14780
14781         * metadata.h: reverted the filter_len change, it breaks reflection
14782         
14783 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14784
14785         * metadata.h: added a new field to store the filter_len
14786         
14787
14788 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14789
14790         * reflection.c: handle custom attributes for types and members
14791         created with Reflection.Emit (bug#38422).
14792
14793 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14794
14795         * reflection.c: define RTSpecialName automatically for constructors for
14796         compatibility with MS.NET.
14797
14798         * reflection.c (mono_reflection_create_runtime_class): initialize
14799         nested_in field of dynamically created classes.
14800
14801 2003-02-22  Martin Baulig  <martin@ximian.com>
14802
14803         * debug-mono-symfile.h: Incremented version number.
14804
14805 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14806
14807         * object.h icall.c process.c: fix warnings.
14808
14809 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14810
14811         * appdomain.h appdomain.c:
14812         (mono_domain_try_type_resolve): split the 
14813         name_or_tb argument into a name and a tb argument.
14814         (mono_domain_has_type_resolve): new function to check whenever the
14815         application has registered a TypeResolve event handler.
14816         
14817         * icall.c reflection.h reflection.c: move the type resolve logic into
14818         mono_reflection_get_type () so it will be invoked when 
14819         Assembly::GetType () is called.
14820
14821         * reflection.c:
14822         (mono_reflection_get_type): renamed to get_type_internal.
14823         (mono_reflection_get_type): fixed type name generation so it works 
14824         for nested types too.
14825         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14826         costly type name generation if there is no resolve event handler.
14827
14828 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14829
14830         * class.c, image.c: load exported types from file references.
14831
14832 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14833
14834         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14835           used to cache the managed methods used to create proxies and make 
14836           remote invocation of methods.
14837         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14838           to be remotely created.
14839         * object.c: Modified the method mono_class_vtable(). It now initializes 
14840           the remote flag of the vtable. Modified mono_object_new_specific(), 
14841           so now it checks the remote flag.
14842         * icall.c: Added a couple of internal methods, one for enabling instance 
14843           creation interception for a type, and one for creating objects bypassing
14844           the remote check.
14845
14846 2003-02-18  Martin Baulig  <martin@ximian.com>
14847
14848         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14849         New interncall to get a method's metadata token.
14850
14851         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14852         New interncall for the debugger.
14853
14854 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14855
14856         * class.c (mono_class_setup_vtable): allocate supertype array
14857
14858 2003-02-18  Martin Baulig  <martin@ximian.com>
14859
14860         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14861
14862 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14863
14864         * reflection.c:
14865         (assembly_name_to_aname): jump over unknown properties (i've found
14866         something like: 'type, assembly, version=xxx, custom=null, public...',
14867         so now will ignore custom=null and still get the rest of the values).
14868
14869 2003-02-17  Dick Porter  <dick@ximian.com>
14870
14871         * threads.c: Have Thread.Start() wait for a semaphore to signal
14872         that the thread has set up all its local data.  This fixes bug
14873         34323, where Abort() raced the new thread's TLS data.
14874
14875         Also removes the handle_store() call from start_wrapper, because
14876         threads are now always created suspended and there is no longer a
14877         race between the parent and child threads to store the info.
14878
14879 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14880
14881         * image.c: explain the #- heap issue in a message, hopefully
14882         avoiding FAQs on mono-list.
14883
14884 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14885
14886         * icall.c:
14887         (GetEntryAssembly): if the domain has not invoked
14888         AppDomain.ExecuteAssembly yet, return the assembly of the default
14889         AppDomain.
14890
14891 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14892
14893         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14894
14895 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14896
14897         * metadata.c, reflection.c: simple speedup to type hash
14898         and equals code.
14899
14900 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14901
14902         * image.c, image.h, class.c, assembly.c: move module loading
14903         to MonoImage. When loading metadata, consider alignemnet from
14904         the start of metadata, not from the metadata address in memory.
14905
14906 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14907
14908         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14909         AssemblyBuilder objects. Factored out custom attribute creation into
14910         a separate function.
14911         (create_custom_attr): new function to create custom attributes.
14912
14913 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14914
14915         * Makefile.am: Got tired of typing the full pathname to pedump.
14916         Until there is another option, am installing this.
14917
14918 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14919
14920         * class.c (class_compute_field_layout): always set field->parent 
14921         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14922
14923 2003-02-11  Dick Porter  <dick@ximian.com>
14924
14925         * threads-types.h:
14926         * monitor.c: Rewrote Monitor, making lock much faster and
14927         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14928         creates them as needed.
14929
14930         * exception.c: Added SynchronizationLockException
14931
14932         * threads.c: Deleted old Monitor implementation.  The new one is
14933         in a new file.
14934
14935 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14936
14937         * class.c: handled TypedReference type code. Set the correct size for
14938         class data. Setup interface_offsets for interface classes, too.
14939
14940 2003-02-09  Martin Baulig  <martin@ximian.com>
14941
14942         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14943
14944 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14945
14946         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14947         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14948         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14949         * verify.c: check for code that runs after the end of the method.
14950
14951 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14952
14953         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14954         "System.Math::Round2".
14955         * sysmath.h: Added Floor, Round and Round2 definitions.
14956         * sysmath.c: Modified certain functions that were not 100% compliant
14957         with MS.NET (math precision) and added the implementation of Floor,
14958         Round and Round2.
14959
14960 2003-02-07  Martin Baulig  <martin@ximian.com>
14961
14962         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
14963
14964 2003-02-07  Martin Baulig  <martin@ximian.com>
14965
14966         * debug-mono-symfile.c: Reflected latest symwriter changes.
14967         (mono_debug_create_mono_symbol_file): Removed.
14968         (mono_debug_open_mono_symbol_file): Take an argument which
14969         specifies whether to create a dynamic symbol file.
14970
14971 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
14972
14973         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
14974
14975 2003-02-05  Martin Baulig  <martin@ximian.com>
14976
14977         * reflection.c (mono_image_build_metadata): Make this public,
14978         protect it against being called multiple times, don't create
14979         resources and don't build the compressed metadata here.
14980         (mono_image_create_pefile): Do this here.
14981
14982         * icall.c
14983         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
14984
14985 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14986
14987         * socket-io.c: fixed bug #36322.
14988
14989 2003-02-06  Piers Haken <piersh@friskit.com>
14990
14991         * appdomain.[ch]:
14992         * class.h:
14993         * debug-mono-symfile.c:
14994         * icall.c:
14995         * loader.c:
14996         * mono-config.c:
14997         * monosn.c:
14998         * reflection.c:
14999         * socket-io.c: warning cleanups
15000
15001 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
15002
15003         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
15004         function. works like remoting invoke, but does a check for the Proxy first.
15005
15006 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
15007
15008         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
15009
15010 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
15011
15012         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
15013         array of pointers.
15014         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
15015         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
15016
15017         * object.c (mono_store_remote_field_new): used by the new jit
15018         instead of mono_store_remote_field
15019         (mono_load_remote_field_new): used by the new jit
15020         instead of mono_load_remote_field
15021
15022 2003-02-05  Patrik Torstensson
15023
15024         * appdomain.c: changed unload to take the domain id instead
15025         of domain
15026         
15027         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
15028
15029
15030 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15031
15032         * appdomain.c: don't look for assemblies in ApplicationBase if
15033         PrivateBinPathProbe is set.
15034
15035 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15036
15037         * object.c: make the first argument in main_args contain the absolute
15038         path to the assembly. Fixes bug #37511.
15039
15040 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15041
15042         * icall.c: get correct UTC offset for countries not using daylight
15043         time saving. Fixes bug #30030.
15044
15045 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15046
15047         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
15048         and 1 are the family).
15049
15050 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
15051
15052         * icall.c (ves_icall_InternalExecute): removed wrong assertion
15053
15054         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
15055
15056 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
15057
15058         * reflection.c: added support for SignatureHelper tokens, which is
15059         needed by the Calli opcode.
15060
15061         * reflection.h: track changes to SignatureHelper class.
15062
15063         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
15064
15065 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15066
15067         * appdomain.c: fixed loading assemblies from PrivateBinPath.
15068
15069 2003-02-03  Patrik Torstensson
15070         * appdomain.[c|h], domain.c : 
15071          - Added support for getting a domain via domain id
15072          - Support for setting and getting domain from System.AppDomain 
15073            (used in cross appdomain channel)
15074          - Added support for get/set for a MonoAppContext on a thread 
15075            (Context class in System.Runtime.Remoting.Contexts),
15076          - Removed hack in Get/SetData and ExecuteAssembly.
15077         
15078         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
15079         the managed world to get control when a proxy is created.
15080
15081         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
15082         
15083 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
15084
15085         * icall.c
15086         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15087         Populate the codebase field as well.
15088
15089 2003-02-02  Martin Baulig  <martin@ximian.com>
15090
15091         * debug-mono-symfile.c
15092         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
15093         (mono_debug_symfile_add_method): Allow interncalls.
15094
15095 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15096
15097         * icall.c: throw parse exception if strtod fails or the string is empty.
15098
15099 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
15100
15101         * marshal.c: handle object type separately from defined
15102         class types.
15103
15104 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
15105
15106         * marshal.c: handle NATIVE_LPSTR for strings when it's
15107         explicitly specified.
15108
15109 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
15110
15111         * reflection.c, reflection.h, icall.c: setup the reflection
15112         handle cache for ModuleBuilders and AssemblyBuilders.
15113
15114 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
15115
15116         * reflection.c (reflection_methodbuilder_to_mono_method): set
15117         pinvoke flag
15118
15119 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15120
15121         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
15122
15123 2003-01-29  Dick Porter  <dick@ximian.com>
15124
15125         * threads.c: No need for the fake_thread kludge now that Thread
15126         doesn't run a class constructor
15127         
15128 2003-01-29  Dick Porter  <dick@ximian.com>
15129
15130         * threads.c: Use g_direct_hash instead of the rather bogus
15131         g_int_hash
15132
15133 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
15134
15135         * marshal.c (mono_marshal_get_native_wrapper): add check for null
15136         (fix pinvoke12.exe)
15137         (mono_marshal_get_struct_to_ptr): generate valid IL code
15138         (mono_marshal_get_ptr_to_struct): generate valid IL code
15139         (*): correctly set sig->pinvoke, we need to memdup the signature
15140         to do that
15141
15142 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15143
15144         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
15145         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
15146
15147 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
15148
15149         * profiler.c: provide more callers information.
15150
15151 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
15152
15153         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
15154
15155         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
15156
15157         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
15158
15159 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15160
15161         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
15162         exception instead of going into an infinite loop on dates which it 
15163         can't yet handle.
15164
15165         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
15166         out-of-range exception if needed.
15167
15168         * class.c (mono_class_setup_vtable): allow a virtual method to provide
15169         an implementation for an interface method and to override an inherited
15170         method at the same time. 
15171         Imagine a scenario when a virtual method is used to override a
15172         virtual abstract method in a parent class, and this same method 
15173         provides an implementation for an method inherited from an interface. 
15174         In this case, the interface resolution code will set im->slot, which 
15175         means that the virtual method override pass will skip this method 
15176         which means a pointer to the abstract method inherited from the parent
15177         will remain in the vtable of this non-abstract class.
15178
15179         * class.c: (mono_class_setup_vtable): continue search for a real 
15180         method if only an abstract method is found.     
15181
15182 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
15183
15184         * reflection.c: add size to encoding for ByValStr and ByValArray
15185         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
15186
15187 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15188
15189         * class.c (mono_class_setup_vtable): pass the override info as an
15190         argument.
15191
15192         * class.c (mono_class_setup_vtable): set the slot of overriding methods
15193         correctly.
15194         
15195         * reflection.c (ensure_runtime_vtable); add support for method 
15196         overrides.
15197         
15198 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15199
15200         * reflection.c (resolution_scope_from_image): Hack to work to work with
15201         dynamic assemblies.
15202
15203         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
15204         added a 'force_ref' argument to force this function to allways return 
15205         a TypeRef. This is needed by mono_image_get_memberref_token ().
15206         
15207 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15208
15209         * reflection.c (mono_image_get_type_info): interfaces really don't have
15210         a parent.
15211
15212         * reflection.c (mono_image_basic_init): fill out missing fields of
15213         image structure.
15214
15215         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
15216         dynamic assemblies. This is required so dynamic assemblies show up in
15217         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
15218         Type::GetType() etc. This is consistent with MS behaviour.
15219
15220         * image.c image.h reflection.c: add newly created classes to the name 
15221         cache so mono_class_get () will find them.      
15222
15223 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15224
15225         First part of changes to get IKVM.NET running under mono.
15226         
15227         * appdomain.h, appdomain.c: added new function 
15228         mono_domain_try_type_resolve() which will emit TypeResolve events. 
15229         This function will call AppDomain::DoTypeResolve to do the actual work.
15230
15231         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
15232         moved existing code dealing with dynamic tokens to a new function 
15233         called mono_reflection_lookup_dynamic_token (). This function will 
15234         raise TypeResolve events when appropriate. Since reflection.c is not 
15235         part of libmetadata, a new hook function called 
15236         mono_lookup_dynamic_token() is added to class.c which will call this.
15237
15238         * assembly.h assembly.c: make the invoke_load_hook function public,
15239         so it can be called for dynamic assemblies.
15240
15241         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
15242
15243         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
15244         type isn't found.
15245
15246         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
15247         MonoGHashTable, since it contains pointers to objects which the GC 
15248         needs to track.
15249
15250         * assembly.c (search_loaded): remove unused variable.
15251         
15252 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
15253
15254         * object.c: fixed issue exposed by gcc-generated IL programs
15255         that use RVA data for pointers.
15256
15257 2003-01-25  Martin Baulig  <martin@ximian.com>
15258
15259         * threads.c (start_wrapper): Moved the initialization of
15260         `start_func' above the mono_new_thread_init() call to which we
15261         pass it as argument.
15262
15263 2003-01-24  Martin Baulig  <martin@ximian.com>
15264
15265         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
15266         the MonoThread pointer.
15267
15268 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
15269
15270         * icall.c: Rename `PowImpl' to Pow.
15271
15272 2003-01-23  Dick Porter  <dick@ximian.com>
15273
15274         * threads.c (start_wrapper): Create a Thread object if needed, so
15275         the Main() thread can do the class initialisation in a subthread
15276         that has been set up to allow managed code execution.
15277
15278         Pass the thread ID instead of the MonoThread pointer to the thread
15279         start and attach callbacks.  This change is required, because the
15280         jit thread start callback must be called _before_ the Thread
15281         object can be created.
15282         
15283         (mono_thread_init): Removed much object creation code that is no
15284         longer needed.  No managed code is called from here now.
15285
15286         * object.c (mono_runtime_exec_managed_code): Create a subthread
15287         for Main, and call back to the runtime to use it.
15288         Set the exit code when Main exits.
15289
15290         * gc.c: Make sure domain finalisation happens in a subthread.
15291         Re-enable threaded GC, fixing bug 31333 (again).
15292
15293         * environment.c: System.Environment internall calls (so far just
15294         ExitCode is here, the others are still in icall.c)
15295
15296         * appdomain.c (mono_runtime_cleanup): All threads running managed
15297         code should have finished before mono_runtime_cleanup() is
15298         reached, so no need to clean up threads.
15299
15300 2003-01-22  Martin Baulig  <martin@ximian.com>
15301
15302         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
15303         `gpointer func' arguments.      
15304         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
15305         but added `MonoThread *thread' argument.
15306         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
15307
15308         * threads.c (mono_new_thread_init): Added `gpointer func' argument
15309         and pass it to the mono_thread_start_cb callback.
15310         (mono_install_thread_callbacks): New public function to install a
15311         set of callbacks which are set by the debugger.
15312         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
15313
15314 2003-01-22  Martin Baulig  <martin@ximian.com>
15315
15316         * Makefile.am: Install debug-mono-symfile.h.
15317
15318 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
15319
15320         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
15321
15322 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
15323
15324         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
15325         * class.c (mono_ptr_class_get): correctly set access levels of pointers
15326         (mono_array_class_get): correctly set access levels of arrays
15327
15328 2003-01-20      Patrik Torstensson
15329         * image.h (MonoAssemblyName): changed major, minor, build, revision
15330         from signed to unsigned.
15331
15332 2003-01-20  sean kasun <skasun@azstarnet.com>
15333
15334         * reflection.c (load_cattr_value): Now this handles
15335         MONO_TYPE_SZARRAY.  Fixes bug #35629
15336
15337 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
15338
15339         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
15340         integer value
15341
15342 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15343
15344         * decimal.c: fixed bug #26056.
15345
15346 2003-01-17  Martin Baulig  <martin@ximian.com>
15347
15348         * gc.c: Raise an ExecutionEngineException instead of using g_error().
15349
15350 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15351
15352         * exception.[ch]:
15353         (mono_get_exception_type_initialization): new function.
15354
15355         * object.c: throw a TypeInitializationException when an exception is
15356         thrown invoking the class constructor.
15357
15358 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15359
15360         * reflection.c: fixed attribute reading.
15361
15362 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15363
15364         * icall.c:
15365         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
15366         provided, look for the type in the calling assembly and then in
15367         mscorlib; if the assembly name is provided, only try that one.
15368
15369 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
15370
15371         * object.c: register the vtable before there is a chance it's
15372         queried again recursively.
15373
15374 2003-01-13  Duncan Mak  <duncan@ximian.com>
15375
15376         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
15377         gc-internal.h. 
15378         
15379 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
15380
15381         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
15382
15383 2003-01-11  Martin Baulig  <martin@ximian.com>
15384
15385         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
15386         this to 20 for the release.
15387
15388 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
15389
15390         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
15391
15392         * loader.c (mono_method_get_marshal_info): bug fix
15393
15394         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
15395         structures with explicit layout
15396
15397 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15398
15399         * profiler.c: made the output more readable (and sorted). 
15400         Added caller information for the allocation profiler.
15401
15402 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
15403
15404         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
15405
15406 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15407
15408         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
15409         to get value types.
15410         
15411 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
15412
15413         * object.c, profiler.h, profiler.c, profiler-private.h:
15414         Added object allocation profiler.
15415
15416 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
15417
15418         * reflection.h, reflection.c: handle global methods.
15419         Compress blob entries.
15420
15421 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
15422
15423         * marshal.c: fix compilation.
15424
15425 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
15426
15427         * loader.c (mono_method_get_marshal_info): impl.
15428
15429         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
15430
15431 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15432
15433         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
15434         for reference types.
15435
15436 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
15437
15438         * loader.c: fixed off by one error in loaded parameter names.
15439
15440 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
15441
15442         * marshal.c (mono_marshal_get_icall_wrapper): like
15443         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
15444         instead of a MonoMethod.
15445
15446 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15447
15448         * decimal.c: fixed bug #36537.
15449
15450 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
15451
15452         * marshal.c: throw a missing method exception if a
15453         P/Invoke method is not found.
15454
15455 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15456
15457         * icall.c: allow a null this for constructors.
15458
15459 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
15460
15461         * icall.c: raise the proper exceptions if the arguments to the
15462         internal Invoke are incorrect.
15463
15464 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
15465
15466         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
15467
15468 2003-01-03  Martin Baulig  <martin@ximian.com>
15469
15470         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15471
15472 2002-12-31  Martin Baulig  <martin@ximian.com>
15473
15474         * debug-mono-symfile.c: Completely rewrote the type section.
15475         Instead of using individual malloc()ed fields, we use one big
15476         continuous memory area and offsets into this area.
15477         See the comments in the source code for details.
15478
15479 2002-12-30  Martin Baulig  <martin@ximian.com>
15480
15481         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
15482
15483 2002-12-30  Martin Baulig  <martin@ximian.com>
15484
15485         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
15486         line number table in this data blob instead of using an external
15487         pointer.
15488
15489 2002-12-28  Martin Baulig  <martin@ximian.com>
15490
15491         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15492
15493 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
15494
15495         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
15496         as a boxed return type.
15497
15498 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
15499
15500         * appdomain.c
15501         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
15502         g_build_filename to properly get separators on the filename created.
15503
15504         * object.h: Small change, introduce MonoMarshalByRefObject to
15505         track the layout of that structure in the C# universe as we make
15506         changes there.
15507
15508 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
15509
15510         * object.c: removed assert to allow static fields on interfaces.
15511         * loader.c: a TypeSpec may be used for any type, not just arrays.
15512
15513 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15514
15515         * class.c, class.h: added mono_class_array_element_size ().
15516         Ignore static methods in interfaces.
15517
15518 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15519
15520         * threads.c: fixed the build under cygwin.
15521
15522 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15523
15524         * reflection.c: handle nullref constants. Allocate keys for
15525         reflection handles with the GC.
15526
15527 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15528
15529         * threads.c, threads.h: added mono_thread_get_abort_signal()
15530         to get a suitable signal for thread abort.
15531
15532 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15533
15534         * metadata.c: fix handling of ExportedType table.
15535
15536 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15537
15538         * icall.c: added WriteWindowsDebugString internal call.
15539
15540 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15541
15542         * reflection.h: added fields to match C# implementation.
15543
15544 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15545
15546         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
15547
15548 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
15549
15550         * gc.h, gc-internal.h: Rename header for GC internal calls to
15551         gc-internal.h from gc.h as to not clash with Boehm GC having its
15552         header installed as <gc.h> in outside include paths.
15553         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
15554         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
15555
15556 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15557
15558         * icall.c: assign minor, build and revision in FillName.
15559
15560 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
15561
15562         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
15563         Added support for running code generated by Reflection.Emit.
15564
15565 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15566
15567         * appdomain.c: check for NULL argument in LoadFrom.
15568
15569 2002-12-10  Dick Porter  <dick@ximian.com>
15570
15571         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
15572
15573 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15574
15575         * appdomain.c: fix buglet when building exe file name.  Handle full
15576         assembly name (needed after latest changes to AssemblyName).
15577         * image.c:
15578         (mono_image_close): free some hashtables.
15579
15580 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
15581
15582         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
15583         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
15584         on some systems (redhat 7.3) 
15585
15586 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
15587
15588         * threads.c: delete the critical section of a sync block,
15589         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
15590
15591 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
15592
15593         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
15594
15595 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15596
15597         * appdomain.[ch]: handle the assembly preload event to try loading the
15598         assemblies using the paths we have in the current domain.
15599
15600         * assembly.[ch]: created an assembly preload hook that is called to try
15601         loading the assembly by other means that the ones provided here.
15602
15603         * domain.c: initialize the domain search path.
15604
15605         From now on, assemblies (TODO: except corlib and System) are loaded
15606         according to these rules when using mono_assembly_load ():
15607
15608                 1. It tries to load the assembly from the ApplicationBase
15609                 of the current domain appending .dll and .exe (TODO: have to
15610                 try loading from name/name.dll and name/name.exe).
15611
15612                 2. It tries the search path specified in PrivateBinPath for the
15613                 current domain (if any).
15614
15615                 3. Previous behavior.
15616
15617 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
15618
15619         * icall.c: implemented GetInterfaceMap() related icall.
15620         * domain.c, loader.h: load MethodInfo in mono_defaults.
15621
15622 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15623
15624         * gc.c: disable the finalizer thread for now, untill all the issues
15625         with it are resolved.
15626
15627 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15628
15629         * string-icalls.c: handle embedded nulls in string ctor when the
15630         length is specified.
15631
15632 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15633
15634         * class.c: look for explicit interface implementation in parent
15635         classes, too.
15636
15637 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
15638
15639         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
15640
15641 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15642
15643         * gc.c: protect handles with a critical section.
15644
15645 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15646
15647         * icall.c:
15648         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
15649         parameters. If no assembly specified, try getting the type from all
15650         the assemblies in the current domain, else, load the assembly and get
15651         the type from it.
15652
15653 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15654
15655         * marshal.c: applied patch from Aleksey Demakov that fixes
15656         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
15657
15658 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15659
15660         * icall.c: fixed get_location.
15661
15662 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
15663
15664         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
15665         declarations to make it work with older gcc. 
15666
15667         * loader.c (mono_get_method): set signature->pinvoke for native calls
15668
15669 2002-11-20  Dick Porter  <dick@ximian.com>
15670
15671         * threads.c (mono_thread_init): Set the main thread's handle
15672
15673 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15674
15675         * gc.c: allow compilation without GC support. Changed to match the
15676         mono coding style.
15677
15678 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15679
15680         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
15681
15682 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
15683
15684         * reflection.c: set a public key token on the core assemblies.
15685
15686 2002-11-18  Dick Porter  <dick@ximian.com>
15687
15688         * threads.c: Split out some thread initialisation so that other
15689         files can set the start callback function.
15690
15691         * gc.c: Run finalisers in a separate thread, to avoid stack
15692         overflow.  Fixes bug 31333.
15693
15694         * appdomain.c: Set up GC finalisation thread.
15695
15696         * reflection.c: 
15697         * object.c: 
15698         * domain.c: Use gc.h macros for GC_malloc
15699         
15700 2002-11-15  Dick Porter  <dick@ximian.com>
15701
15702         * threadpool.c: 
15703         * threads.c:
15704         * appdomain.c: Removed mono_runtime_init_with_attach(),
15705         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
15706         merging the extra parameter with the existing function.  Removed
15707         unneeded code in mono_thread_attach().
15708
15709 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
15710
15711         * image.c (mono_image_loaded_by_guid): a method to get loaded
15712         images by guid. 
15713         (load_metadata_ptrs): we store the guid as string.
15714
15715 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
15716
15717         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
15718
15719         * metadata.c (mono_guid_to_string): imported method form Zoltan
15720         Varga (slightly modified)
15721
15722         * assembly.c (mono_assembly_open): load precompiled code
15723
15724         * loader.h (MonoMethod): we store the method token for use in the
15725         aot compiler. 
15726
15727 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15728
15729         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
15730         the hook function called when an assembly is loaded.
15731         
15732         * domain.c: Modified file.
15733         (mono_domain_assembly_load): removed hash table insertion of assemblies.
15734
15735         Fixes bug #33196.
15736
15737 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
15738
15739         * reflection.c: Map PEFileKind to the value expected by the WinNT
15740         image loader. 
15741
15742 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15743
15744         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
15745         Read until the buffer is filled completely.
15746
15747 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15748
15749         * icall.c: implemented MonoType.InternalGetEvent ().
15750
15751 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15752
15753         * appdomain.c: implemented InitAppDomainSetup. Delayed
15754         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
15755         the entry_assembly.
15756
15757         * assembly.c: base_dir is now an absolute path ending with
15758         G_DIR_SEPARATOR.
15759
15760         * icall.c: modified get_location according to the above changes.
15761
15762         * object.c: init AppDomain.SetupInformation for the default domain after
15763         we have the entry assembly.
15764
15765         * domain.c: when unloading a domain, setup = NULL.
15766
15767 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
15768
15769         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
15770
15771 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
15772
15773         * object.h, object.c: introduced mono_object_get_virtual_method ()
15774         to lookup the method invoked on an object when a callvirt is done on
15775         a method.
15776         * icall.c: make MethodInfo::Invoke() always do a virtual call.
15777
15778 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15779
15780         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15781         current domain when loaded an assembly and failed to load it.
15782
15783         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15784
15785 2002-10-31  Dick Porter  <dick@ximian.com>
15786
15787         * icall.c: 
15788         * file-io.h: 
15789         * file-io.c: Return the error status in a parameter, as the
15790         GetLastError() value has long since been blown away if we try and
15791         look it up in a subsequent internal call invocation.  Delete the
15792         GetLastError() internal call, because it's useless.
15793
15794 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15795
15796         * class.[ch]: added cast_class to fix bug 29517
15797
15798 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15799
15800         * marshal.c: create valid IL code in the filter clause:
15801         the new JIT is less forgiving:-)
15802
15803 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15804
15805         * icall.c: removed get_property internal call.
15806
15807 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15808
15809         * appdomain.h domain.c: Added an ID to appdomains.
15810         
15811         * threads.c threads.h icall.c: Implement icall
15812         Thread:GetDomainID(), and remove unused icall 
15813         CurrentThreadDomain_internal.
15814
15815 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15816
15817         * icall.c: Don't recurse through the base types in GetConstructor.
15818         Fixes bug #32063. 
15819
15820 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15821
15822         * mempool.h, mempool.c: added mono_mempool_empty() and
15823         mono_mempool_stats().
15824
15825 2002-10-23  Dick Porter  <dick@ximian.com>
15826
15827         * file-io.c: 
15828         * file-io.h: 
15829         * icall.c: Added MonoIO.GetFileType internal call
15830
15831 2002-10-17  Dick Porter  <dick@ximian.com>
15832
15833         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15834         delegate semaphore before waiting for all threads to finish,
15835         because new threads can also call async delegates.  Fixes bug
15836         32004.
15837
15838         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15839         of 3 seconds, in case another async job is queued.  (This part is
15840         needed because the bug fix reintroduced the 3s exit lag.)  This
15841         makes the mono_runtime_shutdown flag superfluous.
15842
15843 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15844
15845         * reflection.c: include ehader size in method section headers.
15846         Really check for suplicated modules entries.
15847
15848 2002-10-17  Martin Baulig  <martin@gnome.org>
15849
15850         * debug-mono-symfile.c: Added back support for locals.
15851
15852 2002-10-14  Martin Baulig  <martin@gnome.org>
15853
15854         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15855         MONO_TYPE_VOID.
15856
15857 2002-10-14  Martin Baulig  <martin@gnome.org>
15858
15859         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15860         mono_class_get() instead of looking in the class cache. 
15861
15862 2002-10-13  Martin Baulig  <martin@gnome.org>
15863
15864         * debug-mono-symfile.c: Set version number to 28, include the
15865         signature in method names.
15866
15867 2002-10-13  Martin Baulig  <martin@gnome.org>
15868
15869         * debug-mono-symfile.h: Set version number to 27.
15870
15871 2002-10-11  Martin Baulig  <martin@gnome.org>
15872
15873         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15874
15875 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15876
15877         * metadata.c, metadata.h: added helper function to allocate signatures.
15878
15879 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15880
15881         * icall.c: added internal call to get the location of machine.config.
15882
15883 2002-10-08  Martin Baulig  <martin@gnome.org>
15884
15885         * debug-mono-symfile.c: Ignore classes with a pending init for the
15886         moment.
15887
15888 2002-10-03  Dick Porter  <dick@ximian.com>
15889
15890         * threads.c: Freebsd pthread_t is a pointer
15891
15892 2002-10-03  Dick Porter  <dick@ximian.com>
15893
15894         * socket-io.c: Implemented GetHostName_internal
15895
15896 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15897
15898         * mono-config.c:
15899         (mono_config_parse_file): don't leak the text.
15900
15901 2002-10-02  Martin Baulig  <martin@gnome.org>
15902
15903         * debug-mono-symfile.c: Added support for methods.
15904
15905 2002-10-01  Martin Baulig  <martin@gnome.org>
15906
15907         * debug-mono-symfile.c: Don't emit methods and line numbers for
15908         the dynamic symbol file, just write the type table.  We can easily
15909         have an external helper program which creates a symbol file for an
15910         IL file.        
15911
15912 2002-10-01  Dick Porter  <dick@ximian.com>
15913
15914         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15915         Only add the handle to the cleanup array when we're about to
15916         launch the thread.  Bug 31425 deadlocked when the test was run on
15917         mono under w32.
15918
15919 2002-10-01  Martin Baulig  <martin@gnome.org>
15920
15921         * debug-mono-symfile.c: Added support for properties.
15922
15923 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15924
15925         * reflection.c: unaligned store fix from Mark Crichton
15926         <crichton@gimp.org>.
15927
15928 2002-09-27  Martin Baulig  <martin@gnome.org>
15929
15930         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15931         New interncall.
15932
15933 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15934
15935         * assembly.h, assembly.c: use a sane API to hook into the assembly
15936         loading process instead of a useless special-purpouse hack
15937         (ngen needs a hook, too, for example).
15938
15939 2002-09-27  Dick Porter  <dick@ximian.com>
15940
15941         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15942         io-layer can set up some process handle info.  Not needed on w32,
15943         but doesn't hurt either.
15944
15945         * process.c: Pass the program name in the second parameter to
15946         CreateProcess, so the path is searched.  Include the working
15947         directory. Implemented process name, process enumeration, and some
15948         process detail internal calls.
15949         
15950         * icall.c: Added internal calls for process lookup, and some
15951         process details
15952
15953 2002-09-26  Martin Baulig  <martin@gnome.org>
15954
15955         * assembly.c (mono_install_open_assembly_hook): New global
15956         function to install a function to be invoked each time a new
15957         assembly is loaded.
15958         (mono_assembly_open): Run this callback function if set.
15959
15960         * debug-mono-symfile.c: Put back line numbers for the dynamic
15961         symbol file and also record the .il file as source file.  This
15962         allows us to install the temporary symbol file as `file.dbg' just
15963         like a compiler-generated one.
15964
15965 2002-09-26  Nick Zigarovich <nick@chemlab.org>
15966
15967         * Corrected typo in gc.c (BOHEM vs BOEHM).
15968
15969 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15970
15971         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
15972         GetProperties. Also avoid calling g_slist_length in GetProperties and
15973         GetMethods.
15974
15975 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15976
15977         * reflection.c: avoid unaligned stores (bug spotted by
15978         Mark Crichton  <crichton@gimp.org>).
15979
15980 2002-09-25  Martin Baulig  <martin@gnome.org>
15981
15982         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
15983         instead of guint64 for addresses and added prologue/epilogue info.
15984
15985 2002-09-25  Martin Baulig  <martin@gnome.org>
15986
15987         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
15988         store line number info.  For the dynamic symbol file, we only need
15989         to provide the JIT generated dynamic line number info for the dynamic
15990         symbol file.
15991
15992 2002-09-25  Martin Baulig  <martin@gnome.org>
15993
15994         * debug-mono-symfile.h: Incremented version number.
15995
15996 2002-09-24  Martin Baulig  <martin@gnome.org>
15997
15998         * class.c (mono_debugger_class_init_func): New global function
15999         pointer variable.
16000         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
16001         call it.
16002
16003         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
16004         function.  This is called via the mono_debugger_class_init_func
16005         hook to add all types to the dynamic type table.
16006         (ves_icall_MonoDebugger_GetType): New interncall to get a class
16007         from its metadata token.
16008
16009         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
16010         New interncall for the debugger.
16011
16012 2002-09-24  Nick Drochak <ndrochak@gol.com>
16013
16014         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
16015         before using it in case it is null.
16016         
16017 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16018
16019         * metadata.c: allow custom modifiers in local var signatures
16020         (bug spotted by Zoltan Varga).
16021
16022 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
16023
16024         * class.c: deal with the <Module> class that may have a NULL vtable.
16025         Eliminate warnings.
16026
16027 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16028
16029         * image.c, image.h: more strong name helpers.
16030         * monosn.c: more work: convert pem keys to cryptoapi format.
16031
16032 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16033
16034         * string-icalls.c: speedup IndexOf.
16035
16036 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16037
16038         * icall.c: updates from Zoltan.2.Varga@nokia.com.
16039
16040 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16041
16042         * icall.c: cleanup: use mono_object_domain ().
16043
16044 2002-09-23  Martin Baulig  <martin@gnome.org>
16045
16046         * debug-mono-symfile.c: Improved type support.
16047
16048 2002-09-22  Martin Baulig  <martin@gnome.org>
16049
16050         * debug-mono-symfile.c: Added support for reference types and strings.
16051
16052 2002-09-22  Martin Baulig  <martin@gnome.org>
16053
16054         * debug-mono-symfile.c: Started to work on the type table.
16055
16056 2002-09-21  Martin Baulig  <martin@gnome.org>
16057
16058         * debug-mono-symfile.c: Largely reworked the symbol table format.
16059         The symbol table is now incrementally updated each time a new
16060         method is added.  We're now also using our own magic and version
16061         so that you don't need to recompile all your classes if the
16062         dynamic table changes.
16063         (mono_debug_update_mono_symbol_file): Removed.
16064         (mono_debug_symfile_add_method): New function to add a method.
16065
16066 2002-09-21  Martin Baulig  <martin@gnome.org>
16067
16068         * icall.c
16069         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
16070         New interncall.
16071
16072         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
16073         New interncall to get a method from its metadata token.
16074
16075 2002-09-21  Martin Baulig  <martin@gnome.org>
16076
16077         * debug-mono-symfile.c: Create type table.
16078
16079 2002-09-20  Martin Baulig  <martin@gnome.org>
16080
16081         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
16082
16083 2002-09-20  Martin Baulig  <martin@gnome.org>
16084
16085         * debug-mono-symfile.c: Provide information about params and locals.
16086
16087 2002-09-20  Martin Baulig  <martin@gnome.org>
16088
16089         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
16090         New interncall.
16091
16092         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
16093         interncall to get a method from its metadata token.
16094
16095 2002-09-20  Martin Baulig  <martin@gnome.org>
16096
16097         * debug-mono-symfile.c: Added a few checks for method->header
16098         being non-NULL.  This should never happen, but for the moment
16099         let's use a g_warning() rather than a g_assert().
16100
16101 2002-09-19  Mark Crichton  <crichton@gimp.org>
16102
16103         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
16104         even if support for it isn't present.  Added an #ifdef to fix this.
16105
16106         * socket-io.c: Added checks back for Solaris support.
16107
16108 2002-09-19  Martin Baulig  <martin@gnome.org>
16109
16110         * debug-mono-symfile.c (read_string, write_string): Reflect latest
16111         changes in the symbol file format.
16112
16113 2002-09-18  Martin Baulig  <martin@gnome.org>
16114
16115         * debug-mono-symfile.c: Set version number to 21.
16116
16117 2002-09-18  Dick Porter  <dick@ximian.com>
16118
16119         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
16120         on netbsd.  Fixes bug 30051.
16121
16122 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16123
16124         * reflection.c:
16125         (set_version_from_string): little fix.
16126
16127 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16128
16129         * monosn.c, Makefile.am: added strong name utility.
16130         * reflection.h, reflection.c: implemented delayed signing,
16131         locale, version and hash id assembly attributes.
16132
16133 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16134
16135         * loader.c, metadata.c: load param attributes in signatures.
16136
16137 2002-09-16  Martin Baulig  <martin@gnome.org>
16138
16139         * debug-mono-symfile.c: Added string table with all method names.
16140
16141 2002-09-14  Martin Baulig  <martin@gnome.org>
16142
16143         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
16144         fast method lookup.
16145
16146 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16147
16148         * reflection.c: record the public key token of referenced assemblies.
16149
16150 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16151
16152         * image.c, image.h: added functions to get the strong name and the
16153         public key of an assembly.
16154         * pedump.c: use them.
16155
16156 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
16157
16158         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
16159
16160 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
16161
16162         * marshal.c (mono_marshal_get_managed_wrapper): Added
16163         MONO_TYPE_BOOLEAN 
16164
16165 2002-09-11  Martin Baulig  <martin@gnome.org>
16166
16167         * gc.c: Call GC_unregister_disappearing_link() on all links when
16168         finalizing them, this is necessary to aviod a crash in boehm's
16169         finalize handler.
16170
16171 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16172
16173         * gc.c: handle GetTarget for finalized objects spotted and fixed by
16174         nick@chemlab.org.
16175
16176 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16177
16178         * icall.c: implemented MonoType::Module.
16179         * reflection.c, reflection.h: mono_module_get_object () from
16180         Tomi Pakarinen <tomi.pakarinen@welho.com>.
16181
16182 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
16183
16184         * icall.c: ignore overridden methods in GetMethods ().
16185         Fix for FieldInfo::SetValue().
16186         * object.c: handle float/double in runtime invoke.
16187
16188 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16189
16190         * object.c: allow a constructor to be called again on an object.
16191
16192 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16193
16194         * class.h, class.c: move field layout code to it's own function and
16195         export it. Get an interface id earlier. Move fields in MonoClass
16196         so they are more cache friendly and align the bitfields.
16197         * loader.c: temporary handle get_param_names() for a runtime method.
16198         * reflection.c, reflection.h: more code to handle runtime creation of
16199         types.
16200
16201 2002-09-09  Martin Baulig  <martin@gnome.org>
16202
16203         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
16204         signature with the pinvoke field being set for the actual call.
16205
16206 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16207
16208         * icall.c: removed some unused icalls. Start of map of glib charsets
16209         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
16210
16211 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16212
16213         * debug-helpers.c: break infinite loop (found and fixed by
16214         Holger Arnold <harnold@gmx.de>).
16215
16216 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16217
16218         * icall.c: target may be null in create_delegate.
16219
16220 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16221
16222         * marshal.c: handle a boolean return type.
16223
16224 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16225
16226         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
16227
16228 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16229
16230         * gc.c: fix weakreferences.
16231
16232 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16233
16234         * icall.c: added icall to get default codepage.
16235
16236 2002-09-03  Dick Porter  <dick@ximian.com>
16237
16238         * threads.h: 
16239         * threads.c: Use MonoThread instead of MonoObject where
16240         apropriate.
16241
16242         Store running thread objects in a hash table, so that we have all
16243         the info to hand when waiting for them to finish
16244         (means we don't need OpenThread() any more, so mingw builds should
16245         be fully functional again.)
16246
16247         * verify.c:
16248         * object.h: Added thread ID to MonoThread
16249
16250 2002-09-03  Martin Baulig  <martin@gnome.org>
16251
16252         * icall.c (System.Reflection.Assembly::get_location): New interncall.
16253
16254 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16255
16256         * icall.c: fixed leak in get_temp_path. Thanks lupus.
16257
16258 2002-09-03  Martin Baulig  <martin@gnome.org>
16259
16260         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
16261         argument to store the end address of the disassembled instruction.
16262
16263         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
16264         here from debug-symfile.h.
16265         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
16266         JIT into this struct.
16267         (MonoSymbolFile): Added `char *image_file' field.
16268         (MonoDebugGetMethodFunc): Removed.
16269         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
16270         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
16271         (mono_debug_find_method): New method.
16272
16273         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
16274         create a full symbol file.
16275         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
16276         and static symbol files.
16277         (mono_debug_find_method): The symbol file keeps an internal method hash,
16278         call this to get a MonoDebugMethodInfo from a MonoMethod.
16279
16280         * debug-symfile.[ch]: Removed.
16281
16282 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
16283
16284         * image.c (do_mono_image_open): Remove linker version check.
16285
16286 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
16287
16288         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
16289         wrappers for instance methods.
16290         
16291 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16292
16293         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
16294
16295 2002-08-28  Dick Porter  <dick@ximian.com>
16296
16297         * Makefile.am: Export HOST_CC for w32 builds
16298
16299 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16300
16301         * file-io.c process.c: MonoString are null terminated, no
16302         need for mono_string_to_utf16() anymore.
16303
16304 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16305
16306         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
16307
16308 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
16309
16310         * icall.c, reflection.h: speedup System.MonoType.
16311
16312 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16313
16314         * reflection.c: allow null as the value of a string argument in
16315         custom attributes constructors.
16316
16317 2002-08-27  Martin Baulig  <martin@gnome.org>
16318
16319         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
16320         `trampoline_address' field.
16321
16322 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
16323
16324         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
16325         check (fixes bug #29486) 
16326
16327 2002-08-27  Martin Baulig  <martin@gnome.org>
16328
16329         * debug-mono-symfile.c: Changed the file format in a way that allows us
16330         open it read-only and to use a specially malloced area for all the
16331         dynamic data.  We can now also generate a symbol file on-the-fly if we're
16332         debugging IL code and there is no MCS generated symbol file for it.
16333
16334 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16335
16336         * object.c: added a define for a good string and array
16337         creation speedup (not enabled by default because we need to deal with
16338         the synch stuff).
16339
16340 2002-08-26  Martin Baulig  <martin@gnome.org>
16341
16342         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
16343         function to create a dynamic symbol file.  This is used by the
16344         debugger to create a symbol file for IL code on-the-fly.
16345
16346 2002-08-26  Martin Baulig  <martin@gnome.org>
16347
16348         * loader.c (mono_lookup_pinvoke_call): Include the error message
16349         from g_module_error() in the error message.
16350
16351 2002-08-24  Martin Baulig  <martin@gnome.org>
16352
16353         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
16354         function to update the symbol file.  The symbol file is mmap()ed
16355         writable, but private.  This allows us to install the symbol file
16356         together with the assembly.
16357
16358 2002-08-24  Martin Baulig  <martin@gnome.org>
16359
16360         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
16361         but they can read the new symbol file format which mcs is now creating.
16362
16363         * debug-symfile.c (mono_debug_find_source_location): Moved to
16364         debug-mono-symfile.c; this is now operating on the new symbol file.
16365
16366 2002-08-23  Martin Baulig  <martin@gnome.org>
16367
16368         * debug-helpers.c (mono_method_desc_from_method): New function to get
16369         a MonoMethodDesc from a MonoMethod.
16370
16371 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16372
16373         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
16374         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
16375
16376 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16377
16378         * string-icalls.[ch]: make helper methods static.
16379
16380 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16381
16382         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
16383         types to it and to SetValueInternal.
16384
16385         * object.c: Moved handle_enum label to its proper place. This was the
16386         f... bug! ;-)
16387
16388         This time i compiled mcs and gtk-sharp and they both work.
16389
16390 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16391
16392         * icall.c: reverted partially my previous patch until 
16393         object.c:set_value handles enums correcly.
16394
16395 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16396
16397         * icall.c:
16398         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
16399         (ves_icall_System_Environment_get_MachineName): removed warning when
16400         compiling under cygwin.
16401
16402 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16403
16404         * object.c: fixed field_get_value() for reference types.
16405
16406 2002-08-22  Dick Porter  <dick@ximian.com>
16407
16408         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
16409         Don't free a buffer while it's still needed.  Patch from Jonathan
16410         Liger <Jonathan.liger@wanadoo.fr>
16411
16412 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
16413
16414         * icall.c (ves_icall_System_Environment_get_Platform): Add new
16415         internal call.
16416
16417 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
16418
16419         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
16420         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
16421
16422         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
16423         we call unmanaged code which throws exceptions.
16424
16425 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16426
16427         * appdomain.h: added per-domain entry_assembly.
16428         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
16429         arguments.
16430         * icall.c: Assembly::GetEntryAssembly icall.
16431         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
16432         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
16433
16434 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16435
16436         * appdomain.h, gc.c: added mono_domain_finalize ().
16437
16438 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16439
16440         * object.c:
16441         (mono_print_unhandled_exception): changed g_warning by g_printerr
16442         because g_log has a 1024 characters limit (yeah, i got a big stack
16443         trace). Don't print exception name, that should be in ToString 
16444         returned string.
16445
16446 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16447
16448         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
16449         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
16450
16451 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16452
16453         * object.c:
16454         (mono_print_unhandled_exception): after previous commit, i realized
16455         that MS calls ToString on the exception. I changed this function to
16456         do that. This way we get stack_trace for free.
16457
16458 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16459
16460         * object.c:
16461         (mono_print_unhandled_exception): invoke Message property instead of
16462         getting 'message' field from Exception. Don't allocate memory for
16463         'trace' and 'message' if not needed.
16464
16465 2002-08-18  Dick Porter  <dick@ximian.com>
16466
16467         * unicode.c: Fix asserts to match Encoder.cs checks
16468
16469 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16470
16471         * marshal.c: fix unaligned store issue and a few wrong
16472         opcode argument types.
16473
16474 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16475
16476         * icall.c: added GetUninitializedObjectInternal internal call.
16477
16478 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
16479
16480         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
16481         to the right domain.
16482
16483 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
16484
16485         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
16486
16487         * class.c (class_compute_field_layout): set blittable to false for Strings
16488
16489         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
16490
16491 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16492
16493         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
16494         first chunk of code to create types at runtime. Code to
16495         handle ReflectedType/DeclaringType. Make reflection handles
16496         domain specific.
16497
16498 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16499
16500         * class.c: set correct name in arrays.
16501
16502 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
16503
16504         * appdomain.c (mono_domain_transfer_object): make it work with
16505         valuetypes. bug fixes.
16506
16507 2002-08-12  Dick Porter  <dick@ximian.com>
16508
16509         * object.h: Rename some parameters to avoid c++ keywords (Patch
16510         from Joseph Wenninger <kde@jowenn.at>)
16511
16512 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
16513
16514         * icall.c: added icall to implement Assembly.GetFile*.
16515
16516 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16517
16518         * reflection.h, reflection.c: code to embed managed resources.
16519
16520 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16521
16522         * class.c: move all the type size stuff into
16523         class_compute_field_layout().
16524
16525 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16526
16527         * class.c: ensure enums have always the correct instance size.
16528         * unicode.c: remove wrong assert.
16529
16530 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16531
16532         * assembly.c: fix mem corruption issue.
16533         * image.h, image.c: added mono_image_get_resource () to access
16534         managed resources.
16535         * icall.c: implemented Assembly.EntryPoint property and some
16536         Managed Resources related internalcalls.
16537
16538
16539 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16540
16541         * image.c, image.h: impemented mono_image_get_entry_point ().
16542         * appdomain.c: use mono_image_get_entry_point.
16543
16544 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16545
16546         * reflection.c: support the object type argument when loading
16547         custom attributes.
16548
16549 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
16550
16551         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
16552         String as return type.
16553
16554 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
16555
16556         * reflection.c: fix encoding of named args for custom attrs to match
16557         the ms implementation. Read them back when instantiating custom
16558         attributes.
16559
16560 2002-08-02  Radek Doulik  <rodo@ximian.com>
16561
16562         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
16563         by Dietmar as quick fix
16564         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
16565         16 as stack size, used on more places as quick fix before Dietmar
16566         will fix it properly
16567
16568 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16569
16570         * object.h, object.c: added accessors for fields and properties.
16571
16572 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16573
16574         * class.c, class.h: made mono_class_get_field_from_name ()
16575         loop on parent types.
16576         Added mono_class_get_property_from_name ().
16577
16578 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16579
16580         * class.c, class.h: move the code to setup the type vtable in its own
16581         function so that it can be reused also for types created at runtime.
16582         Eliminate the "class" identifier from the header file.
16583         * reflection.c: setup the vtable for enums so that we can create
16584         objects for use in SetConstant ().
16585
16586 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
16587
16588         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
16589         instead of the delegate itself as this pointer (bug #28383)
16590
16591 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
16592
16593         * marshal.c (mono_marshal_get_managed_wrapper): added return type
16594         conversions.
16595
16596 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16597
16598         * loader.c: don't set the pinvoke bit on icalls.
16599
16600 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
16601
16602         * debug-helpers.c (mono_method_full_name): only print a number to
16603         indicate wrapper type (so that the output is more readable in traces).
16604
16605 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
16606
16607         * class.c (mono_class_init): include method override patch from Paolo
16608
16609 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
16610
16611         * icall.c: fixed GetTypeCode().
16612
16613 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
16614
16615         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
16616         use real delegate invoke function to make it work with multicast
16617         delegates (fix bug# 28291).
16618
16619 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16620
16621         * object.c: load constant strings.
16622
16623 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16624
16625         * reflection.c: no magic numbers.
16626         * tabledefs.h: security action enum.
16627
16628 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16629
16630         * assembly.c: fix possible memory corruption.
16631
16632 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16633
16634         * reflection.h, reflection.c: added support for linking resources.
16635         * verify.c: check we have an updated corlib.
16636
16637 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
16638
16639         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
16640         string arrays.
16641         (mono_marshal_string_array): null terminate unmanaged string arrays.
16642         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
16643
16644 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16645
16646         * icall.c: Type.GetType () can now return also types from the
16647         calling assembly.
16648
16649 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16650
16651         * loader.h, loader.c: stack walking support.
16652         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
16653         GetCallingAssembly.
16654
16655 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
16656
16657         * marshal.c: added optimisations for blittable types 
16658
16659         * class.c (mono_array_class_get): do not set blittable attribute on arrays
16660         (mono_class_setup_mono_type): set blittable attribute for single
16661         and double.
16662
16663         * marshal.c (mono_string_utf8_to_builder): impl.
16664         (mono_string_builder_to_utf8): impl.
16665         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
16666
16667 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
16668
16669         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
16670         (mono_marshal_get_managed_wrapper): impl. byref types
16671
16672 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16673
16674         * icall.c:
16675         (search_method): don't display debug message. 
16676
16677 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16678
16679         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
16680
16681 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16682
16683         * appdomain.c: set the missing filename when throwing exception.
16684
16685 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16686
16687         * metadata.c (mono_type_size): code cleanup
16688         (mono_type_stack_size): removed some test code
16689
16690 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
16691
16692         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
16693         mono_get_exception_file_not_found now.
16694
16695         * exception.c (mono_exception_from_name_two_strings): New version
16696         that will call a constructor with two string arguments. 
16697         (mono_get_exception_file_not_found): New helper routine, used to
16698         report file-not-found errors.
16699
16700 2002-07-20  Dick Porter  <dick@ximian.com>
16701
16702         * process.h:
16703         * process.c: Pass file handles to CreateProcess
16704         
16705         * icall.c:
16706         * file-io.h:
16707         * file-io.c: Implemented CreatePipe
16708
16709 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16710
16711         * metadata.c (mono_get_param_info): set alignment for value types
16712
16713 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16714
16715         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
16716         Constify mono_domain_assembly_open().
16717         * loader.c: handle null namespace in icalls.
16718
16719 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16720
16721         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
16722         (emit_str_to_ptr_conv): marshal object as structs
16723
16724         * metadata.c (mono_type_to_unmanaged): marshal object as structs
16725
16726         * marshal.c (mono_marshal_get_runtime_invoke): support value types
16727
16728 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
16729
16730         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
16731         (mono_marshal_get_native_wrapper): we an now return value types
16732
16733 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16734
16735         * verify.c: more checks implemented.
16736
16737 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
16738
16739         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
16740         (fix bug #27695)
16741         (mono_marshal_get_native_wrapper): allow byref arguments
16742         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
16743         impl. PtrToStringXXX methods
16744         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
16745         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
16746         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
16747         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
16748         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
16749
16750 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16751
16752         * reflection.c: fix buglet in parsing an assembly name.
16753
16754 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16755
16756         * marshal.c (emit_ptr_to_str_conv): first impl.
16757
16758 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16759
16760         * object.c, class.h: cache the vtable in the class as suggested by
16761         vargaz@freemail.hu (Zoltan Varga).
16762
16763 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16764
16765         * class.h, loader.c: added mono_field_from_token().
16766         * verify.c: first cut of type checking code.
16767
16768 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16769
16770         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
16771
16772 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
16773
16774         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
16775         (fix bug #27782)
16776         (mono_marshal_get_remoting_invoke): impl.
16777         (mono_delegate_begin_invoke): impl.
16778         (mono_mb_emit_save_args): impl.
16779         (mono_delegate_end_invoke): impl.
16780         (mono_marshal_get_delegate_begin_invoke):
16781         (mono_marshal_get_delegate_end_invoke):
16782         (mono_marshal_get_delegate_invoke): generate a special name for
16783         those methods (including the signature) and associate them whith
16784         the delegate class. 
16785
16786 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16787
16788         * reflection.[ch]: 
16789         (mono_reflection_type_from_name): now it has a MonoImage parameter
16790         which is used as the default image to search the type in. If the image
16791         is NULL or getting the type from it fails, it defaults to corlib.
16792
16793         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16794         new parameter.
16795
16796 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16797
16798         * reflection.c: update the parameter table index.
16799
16800 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16801
16802         * domain.c: don't include the mark byte in the string hash.
16803
16804 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16805
16806         * icall.cs: icall for Type.GetTypeCode ().
16807         * verify: a couple of fixes and disabled local initialization checks.
16808
16809 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16810
16811         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16812
16813         * debug-helpers.c (mono_method_full_name): print the type of the
16814         runtime wrapper
16815
16816         * metadata.c (mono_signature_hash): a hash function for signatures
16817         (mono_signature_hash): better hash algorithm
16818
16819         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16820
16821         * debug-helpers.c (mono_method_full_name): this can now generate
16822         method names with signatures
16823
16824         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16825         method dont have this pointers.
16826
16827 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16828
16829         * reflection.c: fixup typebuilder tokens.
16830         * image.c: fix buglet.
16831         * marshal.h: remove whitespace.
16832         * metadata.h, metadata.c: reinstate code that was removed.
16833         * verify.c: handle catch directives and fix another couple of bugs.
16834
16835 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16836
16837         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16838         (mono_marshal_get_native_wrapper): make it comp. with the old code
16839         (mono_marshal_get_native_wrapper): support boolean
16840         (mono_marshal_get_managed_wrapper): support more types
16841
16842 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16843
16844         * class.c (class_compute_field_layout): compute class->blittable attribute.
16845
16846 2002-07-09  Dick Porter  <dick@ximian.com>
16847
16848         * threads.c: Make the thread cleaning up cope with threads that
16849         call ExitThread()
16850
16851 2002-07-08  Radek Doulik  <rodo@ximian.com>
16852
16853         * reflection.c (method_encode_code): use non-translated values to
16854         compute finally_start, this fixes exception handling on ppc, yay!
16855
16856         * decimal.h (struct signscale): fix endianess
16857
16858 2002-07-07  Radek Doulik  <rodo@ximian.com>
16859
16860         * reflection.c: swap box_val and not val
16861
16862 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16863
16864         * reflection.c, reflection.h: handle full assembly info in type name.
16865         Handle Type arguments when loading custom attributes.
16866         * icall.c: updated to use new mono_reflection_type_from_name () method.
16867
16868 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16869
16870         * loader.c:
16871         (method_from_memberref): also print assembly name when method not found.
16872
16873 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16874
16875         * icall.c:
16876         (ves_icall_TypeGetProperties): fixed bug #27473. 
16877
16878 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16879
16880         * reflection.c: display image name and token when cannot find the
16881         .ctor for an attribute.
16882
16883 2002-07-05  Martin Baulig  <martin@gnome.org>
16884
16885         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16886
16887 2002-07-04  Dick Porter  <dick@ximian.com>
16888
16889         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16890         compile on mingw.  This will cause mingw builds to not wait for
16891         subthreads to terminate after the main thread does.  I've lodged a
16892         bug with the mingw developers for them to wrap OpenThread().
16893
16894 2002-07-03  Dick Porter  <dick@ximian.com>
16895
16896         * threads.c: Store thread IDs instead of handles, because
16897         GetCurrentThread() returns a pseudohandle and therefore stores
16898         useless values.  mono_thread_cleanup() continues checking the
16899         array of threads until it is empty, to cope with subthreads
16900         spawning new threads after the main thread has finished.
16901
16902         * profiler.h:
16903         * profiler.c:
16904         * profiler-private.h: Pass the thread ID to thread profiler
16905         functions, instead of a handle
16906
16907 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16908
16909         * verify.c: fixes to make it more usable.
16910         * pedump.c: added --verify code to verify IL code in an assembly.
16911
16912 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16913
16914         * reflection.c: turn errors into warnings to allow compiling corlib.
16915
16916 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16917
16918         * reflection.c: add special cases to compile corlib.
16919
16920 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16921
16922         * reflection.c: handle properties with only a set method.
16923
16924 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16925
16926         * opcodes.h: add enum with opcodes in opval order.
16927
16928 2002-07-01  Dick Porter  <dick@ximian.com>
16929         
16930         * object.h:
16931         * object.c (mono_runtime_run_main): Removed unneeded argument
16932
16933 2002-06-28  Martin Baulig  <martin@gnome.org>
16934
16935         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16936
16937 2002-06-27  Dick Porter  <dick@ximian.com>
16938
16939         * threads.c: Store the handle in both the parent thread and in the
16940         subthread, to minimise the time between starting a new thread and
16941         storing its ID.
16942
16943 2002-06-26  Dick Porter  <dick@ximian.com>
16944
16945         * appdomain.c (mono_runtime_cleanup): Close the socket library
16946         after all the threads have finished, not before
16947
16948 2002-06-26  Martin Baulig  <martin@gnome.org>
16949
16950         * debug-symfile.c (mono_debug_find_source_location): Added
16951         `guint32 *line_number' argument.  If it's not NULL, store the line number
16952         there and return the file name without the line number.
16953
16954 2002-06-25  Dick Porter  <dick@ximian.com>
16955
16956         * icall.c:
16957         * process.h:
16958         * process.c: Process forking and other support functions
16959
16960 2002-06-25  Dick Porter  <dick@ximian.com>
16961
16962         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
16963         things dont happen when the image is closed.
16964         (mono_image_lookup_resource): Walk the resource section looking
16965         for a particular entry
16966
16967         * cil-coff.h: PE resource section decoding
16968
16969 2002-06-25  Dick Porter  <dick@ximian.com>
16970         
16971         * assembly.h:
16972         * assembly.c: 
16973         (mono_assembly_foreach): Accessor functions to walk the list of
16974         loaded assemblies
16975         (mono_assembly_set_main):
16976         (mono_assembly_get_main): Process methods need to know which
16977         assembly is the "main" one
16978
16979         * object.c (mono_runtime_run_main): Record the main assembly
16980
16981         * debug-helpers.c: Fix typo
16982
16983 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
16984
16985         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
16986         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
16987
16988 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16989
16990         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
16991
16992 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
16993
16994         * image.c (do_mono_image_open): Initialize reference count,
16995         otherwise we leak the MonoImage.
16996
16997 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16998
16999         * reflection.c: small tweak to handle self-hosting.
17000
17001 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17002
17003         * reflection.c: fix type name parse code.
17004
17005 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17006
17007         * reflection.c: break out of the loop.
17008         * image.c: special case corlib.
17009
17010 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17011
17012         * reflection.c: add all the custom attrs at the end to ensure the
17013         ctors have been properly initialized when the attributes are defined
17014         in the current assembly.
17015
17016 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17017
17018         * reflection.c: handle correctly multiple-nested types.
17019
17020 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17021
17022         * row-indexes.h: fix typos.
17023         * reflection.c: adjust for typos and fix method_def_or_ref
17024         encoding in MethodImpl table.
17025
17026 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17027
17028         * reflection.c: fix entry point patching (thanks Serge!).
17029
17030 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
17031
17032         * verify.c: add check for System.Exception
17033
17034 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17035
17036         * image.c, class.c: minifix for code just c&p'ed.
17037         * reflection.c: warning fix.
17038         * object.h, loader.h, domain.c: load also StringBuilder.
17039
17040 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17041
17042         * marshal.h, marshal.c: some support code to handle complex marshaling.
17043
17044 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17045
17046         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
17047         Better signatures with vtable error dump.
17048
17049 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
17050
17051         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
17052
17053 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
17054
17055         * icall.c (ves_icall_Type_GetField): impl.
17056
17057 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17058
17059         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
17060         to retrieve a marshal description blob for a field or param.
17061
17062 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17063
17064         * reflection.h, reflection.c: change order of nested type emission
17065         to avoid table corruption. The NestedTypes table is sorted.
17066         * icall.c: change order of GetConstructor results to workaround mcs bug.
17067
17068 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17069
17070         * reflection.h, reflection.c: handle field and param marshal
17071         information.
17072
17073 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17074
17075         * icall.c, marshal.c marshal.h: more Marshal class implementation.
17076
17077 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17078
17079         * reflection.c: fix call convention.
17080
17081 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17082
17083         * reflection.h, reflection.c: mono_image_get_memberref_token()
17084         takes a type instead of a class, now. Added
17085         mono_image_get_array_token() to create tokens for the special
17086         multi-dim array methods.
17087
17088 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17089
17090         * assembly.c: handle modules (no assembly table). Split
17091         loading references in its own function.
17092         * class.c: handle moduleref resolution scope.
17093         * image.c, image.h: cache module name in image.
17094
17095 2002-06-07  Martin Baulig  <martin@gnome.org>
17096
17097         * reflection.c (mono_image_get_type_info): Only add a class layout entry
17098         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
17099
17100 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17101
17102         * icall.c: more signature fixes that used uint instead of int.
17103
17104 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17105
17106         * reflection.c: fixed signature of field refs.
17107
17108 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17109
17110         * class.c, reflection.c: handle typerefs of nested types
17111         (both on read and when writing files).
17112
17113 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17114
17115         * icall.c: fix method signatures that tried to workaround the previous
17116         typo, d'oh!
17117
17118 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17119
17120         * debug-helpers.c: fix typo.
17121
17122 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17123
17124         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
17125         rewrote the PE/COFF writing code (our programs are understood by the
17126         ms runtime, now).
17127
17128 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17129
17130         * gc.c, gc.h, icall.c: weakreference support.
17131
17132 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17133
17134         * Makefile.am, mono-config.c: use $(sysconfdir).
17135
17136 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17137
17138         * icall.c: changed default precision of Double.ToString() to 15.
17139         Fixed memory leak. Unified with Single.ToString.
17140
17141 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17142
17143         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
17144
17145 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17146
17147         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
17148         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
17149         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
17150         and myself.
17151
17152 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17153
17154         * debug-symfile.c, sysmath.c: yet more compilation fixes.
17155
17156 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17157
17158         * reflection.c, socket-io.c: more compilation fixes.
17159
17160 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17161
17162         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
17163         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
17164         unicode.c: warning and compiler compatibility fixes.
17165
17166 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17167
17168         * class.h, metadata.c: fixed warnings/compilation errors.
17169
17170 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17171
17172         * Makefile.am, mono-config.c, mono-config.h: configuration file
17173         support routines.
17174         * loader.c, loader.h: make Dll mapping configurable at runtime in the
17175         config file. Export methods to insert and lookup mappings.
17176
17177 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17178
17179         * reflection.c: handle types and boxed objects in custom attr
17180         constructors.
17181
17182 2002-05-30  Martin Baulig  <martin@gnome.org>
17183
17184         * debug-symfile.c
17185         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
17186
17187 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
17188
17189         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
17190         to lookup the implmap row for a P/Invoke method.
17191         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
17192         P/Invoke method from the runtime on an as needed basis.
17193
17194 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
17195
17196         * metadata.c (mono_metadata_parse_signature): impl.
17197
17198 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17199
17200         * class.c: handle .pack directive.
17201
17202 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17203
17204         * object.c: initialize static fields with RVA data.
17205
17206 2002-05-25  Martin Baulig  <martin@gnome.org>
17207
17208         * debug-symfile.c
17209         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
17210
17211 2002-05-24  Martin Baulig  <martin@gnome.org>
17212
17213         * debug-symfile.c
17214         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
17215         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
17216         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
17217
17218 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17219
17220         * object.c: special case string ctros in invoke.
17221         * gc.c: silly whitespace changes.
17222
17223 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
17224
17225         * threadpool.[ch]: impl. a threadpool that can
17226         be used by mint and mono.
17227
17228 2002-05-22  Martin Baulig  <martin@gnome.org>
17229
17230         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
17231         The first argument is now a `MonoReflectionModuleBuilder *', the return
17232         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
17233         `methods' field to get the method builder.  The `token' argument is the
17234         unfixed token.
17235
17236         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
17237         invalid characters instead of g_assert_not_reached()ing.  This seems
17238         to be the behaviour of mscorlib.
17239
17240 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
17241
17242         * object.c (mono_runtime_invoke_array): applied patch from Rachel
17243         Hestilow to fix bug #25104
17244
17245 2002-05-21  Martin Baulig  <martin@gnome.org>
17246
17247         * debug-symfile.c (mono_debug_find_source_location): New function.
17248         Looks up an IL offset in the line number table and returns the source
17249         location as a string.
17250
17251 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17252
17253         * icall.c:
17254         (mono_double_ToStringImpl): changed %f by %g until we have something
17255         better.
17256
17257 2002-05-21  Nick Drochak  <ndrochak@gol.com>
17258
17259         * icall.c : Use different name for Math.Pow's icall.  Needed to check
17260         parameters first in C#.
17261
17262 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17263
17264         * icall.c, reflection.h: added icall to get info about an event.
17265
17266 2002-05-20  Radek Doulik  <rodo@ximian.com>
17267
17268         * object.c (mono_value_box): don't use memcpy for boxing on BIG
17269         endian
17270         (mono_value_box): don't use memcpy for small sizes on
17271         architectures with unaligned access
17272
17273 2002-05-20  Martin Baulig  <martin@gnome.org>
17274
17275         * reflection.c (mono_reflection_setup_internal_class): Don't crash
17276         if `tb->parent == NULL'.
17277         (mono_reflection_create_internal_class): New function.  This is
17278         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
17279         for enum types.
17280
17281         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
17282         New interncall.
17283
17284 2002-05-19  Martin Baulig  <martin@gnome.org>
17285
17286         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
17287         argument to get the length, don't default to the array length.
17288
17289 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
17290
17291         * assembly.c (mono_assembly_setrootdir): New function used to
17292         override the MONO_ASSEMBLIES directory.
17293
17294 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17295
17296         * icall.c: ValueType_GetHashCode() initialize local var.
17297
17298 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17299
17300         * reflection.c: sort custom attributes table.
17301
17302 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17303
17304         * reflection.c: support named args in custom attributes (write support).
17305
17306 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17307
17308         * reflection.c: fix finally position calculation.
17309
17310 2002-05-15  Radek Doulik  <rodo@ximian.com>
17311
17312         * reflection.c: fixed endianess at many places
17313
17314         * icall.c (ves_icall_InitializeArray): comment out debug msg
17315
17316 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
17317
17318         * object.c (mono_unhandled_exception): new function to handle
17319         unhandled exceptions.
17320         (mono_unhandled_exception): call the UnhandledException event.
17321         (mono_runtime_delegate_invoke): impl.
17322
17323 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
17324
17325         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
17326         returns the RVA, not the direct pointer to the data. Handle the case
17327         when the class size is fixed.
17328
17329 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17330
17331         * reflection.c: fix some endianess issues.
17332
17333 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
17334
17335         * object.c (mono_runtime_invoke): is now able to catch exceptions.
17336
17337         * threads.c (mono_thread_init): added a callback which is invoked
17338         at thread start.
17339
17340 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17341         
17342         * icall.c: make GetHashCode return non-negative values.
17343
17344 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17345
17346         * object.c, icall.c, gc.c: revert to address-based hashcode.
17347
17348 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
17349
17350         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
17351
17352 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17353
17354         * icall.c, class.c: special case <Module>.
17355
17356 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
17357
17358         * icall.c: fix bug in GetNow().
17359
17360 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
17361
17362         * object.c (mono_runtime_class_init): make sure that we call all
17363         static class constructors.
17364
17365 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17366
17367         * reflection.c: sort methodsemantics table.
17368
17369 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17370
17371         * reflection.h, reflection.c: honour init locals setting.
17372
17373 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
17374
17375         * icall.c: copied Double ToStringImpl for Single ToStringImpl
17376
17377 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17378
17379         * reflection.c: support ContructorBuilders in attribute blob creation.
17380
17381 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17382
17383         * reflection.c: some changes to build a binary that can be run
17384         directly in windows.
17385
17386 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17387
17388         * loader.c: print a big message when an icall can't be found.
17389
17390 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17391
17392         * string-icalls.c: fix bug 24248.
17393
17394 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17395
17396         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
17397         icall.c, reflection.h: separate assembly loading by pathname and by
17398         assembly name. Use the MONO_PATH env var to search for assemblies.
17399
17400 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17401
17402         * assembly.c, image.h: add some support for assemblies
17403         with multiple modules.
17404         * class.c, class.h: export mono_class_from_typeref().
17405         * loader.c: remove duplicated code and use mono_class_from_typeref(),
17406         instead.
17407
17408 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17409
17410         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
17411         documentation says (the ECMA one is correct).
17412
17413 2002-05-02  Dick Porter  <dick@ximian.com>
17414
17415         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
17416         Don't name the synchronisation mutex.
17417
17418 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
17419
17420         * rand.c
17421         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
17422         Make the prototypes match.
17423         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
17424         Same.
17425
17426         * icall.c
17427         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
17428         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
17429         all systems have tm.tm_zone, so use strftime() with %Z to print
17430         the timezone abreviation into a temp string.
17431
17432         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
17433         rather than mono_array_addr() on a MonoString on Big Endian
17434         machines.
17435
17436 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
17437
17438         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
17439         fix bug 24041
17440
17441 2002-04-30  Dick Porter  <dick@ximian.com>
17442
17443         * socket-io.c: Cope with SOCKET being an integer rather than a
17444         pointer now.
17445
17446         * threads.c: Added Thread_free_internal, to deal with thread
17447         handle cleanup.  Moved calls to handle_store() and handle_remove()
17448         to start_wrapper(), so each can only be called once.  Allocate
17449         synchronisation blocks with GC_malloc(), and use GC finalisation
17450         to close the handles.
17451
17452         * icall.c: added System.Threading.Thread::Thread_free_internal
17453
17454 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17455
17456         * icall.c: support Environment.Exit, CommandLineArgs().
17457
17458 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17459
17460         * object.c, object.h: added mono_runtime_run_main () and
17461         mono_runtime_get_main_args () for use in System.Environment.
17462
17463 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17464
17465         * gc.c: fix thinko, enable actual finalization since the jit is now
17466         fixed.
17467
17468 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17469
17470         * gc.c, object.c: take into account that an object may be offset wrt the address
17471         returned by GC_malloc().
17472
17473 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17474
17475         * image.c: handle files without entries in the assembly table (modules).
17476
17477 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
17478
17479         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
17480         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
17481         allowed to be null when it's System.Object class setup.
17482
17483 2002-04-27  Martin Baulig  <martin@gnome.org>
17484
17485         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
17486         if `tb->parent == NULL' rather than crashing.
17487
17488 2002-04-28  Nick Drochak  <ndrochak@gol.com>
17489
17490         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
17491         calling acos() where asin() should have been called.
17492
17493 2002-04-26  Martin Baulig  <martin@gnome.org>
17494
17495         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
17496         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
17497         there's a subdirectory called `System', but we don't want to read that
17498         subdirectory as an assembly.
17499
17500 2002-04-25  Martin Baulig  <martin@gnome.org>
17501
17502         * debug-symfile.c: Reflect latest MonoString changes.
17503
17504 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17505
17506         * rand.c, rand.h: instance method icalls need to have an explicit
17507         this pointer as first argument in the C implementation.
17508
17509 2002-04-25  Nick Drochak <ndrochak@gol.com>
17510
17511         * icall.c: Fix typo in map for GetNonZeroBytes
17512
17513 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17514
17515         * string-icalls.c : String does now passes unit tests without any 
17516         errors, the following changes has been made:
17517         
17518         Implemented replace methods.
17519         Renaming of methods to (try) follow the standard.
17520         Fixed compare ordinal
17521         Made all memory allocated directly to function instead of via icall function.
17522         Small performance fix in is_in_array function
17523                         
17524  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
17525
17526         c (mono_string_Internal_ctor_charp_int_int):
17527         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
17528         sindex < 0, throw ArgumentOutOfRangeException instead of
17529         ArgumentNullException.
17530
17531         Added new check for length == 0, however
17532         I need to make it return String.Empty from the C code.
17533         
17534         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
17535         that calculate the length for us here.
17536         
17537         (mono_string_Internal_ctor_sbytep_int_int): Replaced
17538         mono_string_new_utf16 with mono_string_new, since value is utf8.
17539
17540 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17541
17542         * object.c: register the object for finalization if needed.
17543         Allocate one more char in the string for the terminating 0 char.
17544
17545 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17546
17547         * class.c, class.h, image.c: check if a type implemenst a destructor.
17548         Use the proper key for array class lookups.
17549         * icall.c: register the icalls in the System.GC class.
17550         * gc.c, gc.h: GC-related functions and icalls.
17551
17552 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17553
17554         * icall.c:
17555         * socket-io.c:
17556         * unicode.c: free some strings gotten from mono_string_to_utf8 and
17557         changed a couple of free () by g_free ().
17558
17559         * decimal.c: one-liner in the comments for decimal2string ().
17560
17561 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17562
17563         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
17564
17565 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17566
17567         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
17568         * object.c (mono_runtime_invoke_array) : handle null in params
17569
17570 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17571
17572         * string-icalls.c: fixed bug in split (one off bug)
17573
17574 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17575
17576         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
17577         * icalls.c: added String::Equals as internal method
17578
17579 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17580
17581         * threads.c: fixed bug in the double interlocked functions
17582
17583 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
17584
17585         * threads.c: implemented all of the new interlocked icalls.
17586         * string-icalls.c: fix a bug in insert.
17587         * icalls.c: added the icalls for interlocked, removed old string functions.
17588         
17589 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17590
17591         * loader.c: fix off-by-one error when reading argument names.
17592
17593 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17594
17595         * profiler.c: win32 counter implementation (untested).
17596         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
17597         (the latter needs testing and more complete impl. from win32 folks).
17598
17599 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
17600
17601         * object.c: mono_array_new_full workaround mono_array_class_get
17602         problem.
17603
17604 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17605
17606         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
17607         * object.h (mono_string_chars): Changed casting type.
17608
17609 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17610
17611         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
17612                            method signatures to use gunichar2 instead of gint16.
17613
17614 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
17615
17616         * object.h, object.c: domain-specific versions of mono_object_new and
17617         mono_array_new.
17618
17619 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
17620
17621         * object.c: changed String layout
17622
17623         * string-icalls.c (mono_string_Internal_ctor_chara): added
17624         internal string constructors.
17625
17626 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
17627
17628         * threads.c: pass 'this' to the thread start routine.
17629
17630 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17631
17632         * string-icalls.c: fix IndexOf and LastIndexOf. Now
17633         InternalCompareStr don't call twice mono_string_cmp_char for the last
17634         character. Improved performance in mono_string_cmp_char.
17635
17636 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17637
17638         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
17639         code into its own library: libmonoruntime.
17640
17641 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
17642
17643         * object.h, object.c: changed array format so that szarrays do not
17644         require a bounds structure.
17645         * icall.c, appdomain.c: support for new szarray format.
17646
17647 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17648
17649         * metadata.c: compare also the retuns type when comparing signatures:
17650         we didn't do this as an optimization since really overloaded methods
17651         must differ also in the arguments, but this doesn't work with
17652         low-level IL code (or when using explicit conversion operators: see
17653         bug#23498 for an example).
17654
17655 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17656
17657         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
17658
17659 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17660
17661         * icall.c: make MonoType::GetElementType its own icall.
17662
17663 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17664
17665         * icall.c: remove MonoMethod_get_Name().
17666         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
17667         object.
17668
17669 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17670
17671         * string-icalls.c: optimized a few methods.
17672
17673 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17674
17675         * icall.c: added all new string internal calls
17676         * string-icalls.c: added, new string internal call implementation.
17677         * object.c: added mono_string_new_size for allocating a string a size
17678
17679 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
17680
17681         * object.c (mono_object_isinst): use the same code as in the
17682         optimized x86 version.
17683
17684 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17685
17686         * profiler.c: TSC-based timer code (faster and more accurate).
17687         Not hooked up in configure, yet (set USE_X86TSC to 1).
17688
17689 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
17690
17691         * profiler.c, profiler.h: track time spent compiling methods.
17692         * threads.c: track thread creation/destruction.
17693
17694 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
17695
17696         * profiler.c, profiler.h, profiler-private.h: profiling interface
17697         and sample implementation. Moved here so that it can be used also by
17698         the jit.
17699
17700 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
17701
17702         * reflection.c, reflection.h: keep types and other handles separate in
17703         the hash tables for referred tokens. Add guid for modules.
17704
17705 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17706
17707         * assembly.c: fix bugs found with valgrind.
17708         * metadata.h, metadata.c: added mono_metadata_guid_heap().
17709
17710 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
17711
17712         * threads: added icall support for getting current domain for
17713                    the thread.
17714  
17715 2002-04-13  Martin Baulig  <martin@gnome.org>
17716
17717         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
17718         (MonoDebugVarInfo): Added `index' field for register based addresses.
17719         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
17720         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
17721         `MonoDebugVarInfo *params' and `guint32 this_offset' with
17722         `MonoDebugVarInfo *this_var'.
17723
17724         * debug-symfile.c (relocate_variable): New static function to write
17725         a location description for a local variable or method parameter.
17726
17727 2002-04-12  Martin Baulig  <martin@gnome.org>
17728
17729         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
17730         stack offset and begin/end scope address of a local variable.
17731         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
17732         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
17733         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
17734
17735         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
17736         Added new relocation types for start/end scope of a local variable.
17737
17738 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17739
17740         * object.h: add mono_object_domain() macro.
17741         * reflection.c: handle typespecs.
17742         * icall.c: MonoMethod::get_Name() implementation.
17743
17744 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17745
17746         * icall.c: String::GetHashCode() icall implementation.
17747
17748 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17749
17750         * icall.c: String::IndexOfAny icall.
17751         * object.c, object.h: make array->max_length more useful.
17752         Intrduced mono_object_class() and mono_string_length() macros.
17753
17754 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17755
17756         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
17757         instead of g_unichar_isdigit.
17758
17759 2002-04-11  Nick Drochak  <ndrochak@gol.com>
17760
17761         * icall.c: Implement a simple Double.ToString().
17762
17763 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17764
17765         * appdomain.h: only io-layer.h is supposed to be included.
17766         * icall.c: explicitly import environ. Fix warning.
17767
17768 2002-04-10  Nick Drochak  <ndrochak@gol.com>
17769
17770         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
17771                 return true even if it's not Daylight Savings time.
17772                 Only return false for the case where the function isn't
17773                 implemented for a plaform (read Windows).
17774
17775 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17776
17777         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
17778         data with a mutex.
17779
17780 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17781
17782         * mempool.c (mono_mempool_alloc): only use g_malloc when
17783         absolutely necessary.
17784
17785 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17786
17787         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17788
17789         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17790         (mono_class_proxy_vtable): use domain mempool
17791
17792 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17793
17794         * appdomain.h, appdomain.c: split initialization that requires the
17795         execution engine support into mono_runtime_init().
17796
17797 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17798
17799         * class.c (mono_class_init): don't include vtable inside MonoClass
17800         to save some memory, gather some statistics.
17801         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17802
17803 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17804
17805         * icall.c: internalcall implementation for ValueType.Equals().
17806
17807 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17808
17809         * object.c (mono_message_init): moved 
17810         (mono_runtime_exec_main): new arch. independent impl.
17811         (mono_runtime_invoke_array): new method - like
17812         mono_runtime_invoke, but you can pass an array of objects.
17813         (mono_remoting_invoke): new arch. independent impl.
17814         (mono_message_invoke): new arch. independent impl.
17815         (mono_runtime_class_init): new arch. independent impl.
17816         (mono_runtime_object_init): new arch. independent impl.
17817
17818 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17819
17820         * metadata.c, object.c, reflection.c: documented the exported
17821         functions.
17822
17823 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17824
17825         * icall.c: simpler code to pass the assembly builder data to corlib.
17826         Implement GetNestedTypes() internalcall.
17827
17828 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17829
17830         * class.c: warn if a type can't be loaded.
17831
17832 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17833
17834         * image.h: typedef MonoImageOpenStatus
17835         * types.h: removed unused file
17836         
17837 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17838
17839         * icall.c: Enum_ToObject accepts enum value arguments.
17840
17841 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17842
17843         * class.c: move initialization of properties, events and nested
17844         classes, so that they happen for interfaces, too.
17845
17846 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17847
17848         * icall.c: cleanup some ugly casts in Array_SetValue*.
17849
17850 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17851
17852         * icall.c: the values array fro enums is of the correct type, now.
17853         Implement (correctly) getFullName instead of assQualifiedName for
17854         MonoType.
17855         * reflection.h, reflection.c: added mono_type_get_name ().
17856
17857 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17858
17859         * assembly.c, image.h: for each MonoImage, record from wich assembly
17860         it was loaded.
17861         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17862         Make Type.Assembly work.
17863
17864 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17865
17866         * debug-symfile.h: use char* instead of gpointer to avoid
17867         unnecessary casts.
17868
17869         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17870
17871         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17872         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17873
17874 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17875
17876         * icall.c (mono_message_init): impl. (code cleanup)
17877         (ves_icall_InternalExecute): impl. FieldGetter
17878
17879         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17880         defined we call all (non-static)methods through the vtable. 
17881
17882 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17883
17884         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17885         finalizer even though the memory is still referenced (and the chunk of
17886         memory is not freed).
17887
17888 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17889
17890         * assembly.c: fix brokeness.
17891
17892 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17893
17894         * class.c: kill some warnings. Check explicit interface method
17895         implementation also without considering the namespace.
17896         Load also literal strings in static class data.
17897
17898 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17899
17900         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17901         (default_assembly_name_resolver): Make the resolver take the
17902         "base" directory where the assembly was originally defined, so we
17903         can load DLLs that are in the same directory as the assembly that
17904         is being referenced.
17905
17906 2002-03-28  Dick Porter  <dick@ximian.com>
17907
17908         * file-io.h: 
17909         * file-io.c:
17910         * socket-io.c: 
17911         * unicode.h: 
17912         * unicode.c: Warning cleanups
17913
17914 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17915
17916         * object.h, reflection.h: use the correct type instead of MonoObject.
17917
17918 2002-03-28  Martin Baulig  <martin@gnome.org>
17919
17920         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17921         (mono_debug_update_symbol_file): Initialize classes if necessary.
17922
17923 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17924
17925         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17926         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17927
17928 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17929
17930         * assembly.h: fix function prototype.
17931         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17932         * mono-endian.h: use const cast.
17933
17934 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17935
17936         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17937
17938 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17939
17940         * loader.c: don't assert when a typeref can't be loaded, give
17941         a chance to the runtime to trow an exception instead.
17942         * loader.h: fix warning.
17943
17944 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17945
17946         * class.c (mono_class_proxy_vtable): added proxy support
17947
17948 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17949
17950         * icall.c: removed last of PAL calls, added System.Environment
17951         * file-io.h, file-io.c: MonoIO implementation
17952         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17953
17954 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17955
17956         * appdomain.c: do not use the byte marker in ldstr table lookup.
17957         * debug-helpers.c: allow two ':' to separate class and method name.
17958         * object.c: allocate arrays bounds with the GC, too.
17959         * verify: add a few more checks.
17960
17961 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
17962
17963         * reflection.c: output also literal strings. Allocate parameter data
17964         with GC_malloc() (thanks, Martin, for catching this!).
17965
17966 2002-03-26  Martin Baulig  <martin@gnome.org>
17967
17968         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
17969         include the `this' offset in the `param_offsets'.
17970
17971 2002-03-25  Martin Baulig  <martin@gnome.org>
17972
17973         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
17974         mono_debug_get_class() function to get the classes. Added new
17975         relocation types for arrays and strings.
17976         (mono_debug_get_class): New static function to search in all
17977         referenced assemblies for a metadata token.
17978
17979         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
17980
17981 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17982
17983         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
17984         hold gc-allocated objects. Make the string heap a stream like the
17985         others. Removed duplicated code when writing stream info.
17986         Added asserts to catch possible buffer overflows. Set the sorted map
17987         for tables that need sorting. Added some documentation.
17988
17989 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
17990
17991         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
17992         for interned strings and vtables.
17993
17994 2002-03-24  Martin Baulig  <martin@gnome.org>
17995
17996         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
17997         it in the array since it was created with g_slist_prepend().
17998
17999 2002-03-24  Martin Baulig  <martin@gnome.org>
18000
18001         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
18002         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
18003         (mono_debug_method_from_token): Renamed to
18004         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
18005         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
18006
18007         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
18008         relocation types.
18009
18010         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
18011
18012 2002-03-24  Martin Baulig  <martin@gnome.org>
18013
18014         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
18015         (mono_debug_method_from_token): New func.
18016
18017         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
18018         New interncall, calls mono_debug_local_type_from_signature().
18019         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
18020         calls mono_debug_method_from_token().
18021
18022 2002-03-23  Martin Baulig  <martin@gnome.org>
18023
18024         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
18025         specifies the number of bytes to be converted, not the array size.
18026         Return the number of chars, not the number of bytes.
18027         (ves_icall_iconv_get_chars): The `byteCount' argument
18028         specifies the number of bytes to be converted, not the array size.
18029
18030 2002-03-23  Martin Baulig  <martin@gnome.org>
18031
18032         * reflection.h (MonoReflectionSigHelper): New type.
18033
18034         * reflection.c (mono_reflection_sighelper_get_signature_local),
18035         (mono_reflection_sighelper_get_signature_local): New functions.
18036
18037         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
18038         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
18039         interncalls.
18040
18041 2002-03-23  Martin Baulig  <martin@gnome.org>
18042
18043         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
18044         is_writeable is set.
18045         (mono_raw_buffer_update): New function to write the modified map
18046         back to disk.
18047
18048         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
18049
18050         * debug-symfile.c (mono_debug_update_symbol_file): Call
18051         mono_raw_buffer_update() when done writing.
18052
18053 2002-03-23  Martin Baulig  <martin@gnome.org>
18054
18055         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
18056
18057         * debug-symfile.c: Added support for arguments and local variables.
18058
18059 2002-03-23  Dick Porter  <dick@ximian.com>
18060
18061         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
18062         protected by ifdefs, hence breaking the w32 build.
18063
18064 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18065
18066         * object.c: implement is_interned() the right way.
18067
18068 2002-03-21  Martin Baulig  <martin@gnome.org>
18069
18070         * debug-symfile.[ch]: New files to handle debugging information
18071         files. There's also support to dynamically update these symbol
18072         files to include machine dependent information.
18073
18074 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
18075
18076         * threads.c (mono_thread_create): new function to create thread
18077         from C
18078
18079 2002-03-20  Martin Baulig  <martin@gnome.org>
18080
18081         * icall.c (ves_icall_InternalInvoke): Create a new object if the
18082         method is a constructor.
18083         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
18084         points to ves_icall_InternalInvoke().
18085
18086 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
18087
18088         * file-io.c: Flush shouldn't throw exceptions.
18089
18090 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
18091
18092         * file-io.c: FileStream flush support; FileSetLength now
18093         restores file pointer.
18094
18095 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18096
18097         * class.c: set image for pointer classes.
18098
18099 2002/03/19  Nick Drochak <ndrochak@gol.com>
18100
18101         * sysmath.c: Forgot one.
18102
18103 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
18104
18105         * sysmath.c: Avoid redefining existing names.
18106
18107 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
18108
18109         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
18110         handled by runtime as icall rather than dllimport from libm.so
18111         * file-io.c, file-io.h: fixed handle argument type.
18112
18113 2002-03-18  Dick Porter  <dick@ximian.com>
18114
18115         * reflection.c (mono_image_get_type_info): rename interface to
18116         iface, because of "#define interface struct" on windows.
18117
18118 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
18119
18120         * class.c, class.h: rename and export mono_ptr_class_get().
18121         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
18122         * reflection.c, reflection.h, icall.c: better/saner type name
18123         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
18124         method signatures.
18125
18126 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
18127
18128         * class.c (mono_class_init): removed hardcoded GHC_SLOT
18129
18130         * icall.c (ves_icall_InternalInvoke): impl.
18131
18132 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18133
18134         * reflection.c: output the interface map table, too.
18135
18136 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
18137
18138         * class.c (class_compute_field_layout): separate computation of 
18139         static field layout
18140
18141 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
18142
18143         * icall.c: added System.Buffer support.
18144         * file-io.c: moved file icalls from PAL to FileStream.
18145
18146 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
18147
18148         * icall.c (ves_icall_System_Object_GetHashCode): impl.
18149
18150 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
18151
18152         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
18153
18154 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18155
18156         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
18157
18158 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18159
18160         * debug-helpers.{c,h}: moved here from monograph some useful functions
18161         to locate a method by name/signature in a class or image. Included
18162         also a small and flexible IL disassembler.
18163
18164 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18165
18166         * reflection.c: fixup tokens in methods with small header size, too.
18167
18168 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
18169
18170         * object.c (mono_string_to_utf8): remove assert(!error), instead
18171         print a warning. 
18172
18173 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
18174
18175         * icall.c: update to the new mono_Array_class_get interface.
18176
18177 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
18178
18179         * appdomain.c, object.c: Boehm-GC enable.
18180         * icall.c: make get_data_chunk() support split data requests.
18181         Ensure a class is initialized in more cases. Return only the first
18182         property found in GetProperties() or the compiler gets confused. 
18183         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
18184         * reflection.h, reflection.c: add fixup mechanism for field and method
18185         tokens. Initialize assembly->typeref in a single place. Output
18186         properties after events. Support custom attributes for events, too.
18187         Typo fix for paramter custom attrs.
18188
18189 2002-03-07  Martin Baulig  <martin@gnome.org>
18190
18191         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
18192
18193 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
18194
18195         * class.c (mono_array_class_get): fix. for multi. dim. arrays
18196
18197 2002-03-06  Martin Baulig  <martin@gnome.org>
18198
18199         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
18200         non-zero lower bounds. See testcases #F10-#F13.
18201
18202 2002-03-05  Martin Baulig  <martin@gnome.org>
18203
18204         * exception.c (mono_get_exception_argument_out_of_range): New exception.
18205
18206         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
18207         ves_icall_System_Array_GetValue(), only calculate the absolute array position
18208         here.
18209         (ves_icall_System_Array_SetValue): Likewise.
18210         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
18211         as argument and does the actual work. This function is used when copying a
18212         multi-dimensional array.
18213         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
18214         now do all the widening conversions of value types.
18215         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
18216
18217 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18218
18219         * class.c: remove some magic numbers and use the smbolic names,
18220         instead. Added init_events() to load event info at class init time.
18221         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
18222         and mono_metadata_methods_from_event().
18223         * reflection.h, reflection.c: added support for writing out the evnets
18224         related information.
18225
18226 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
18227
18228         * reflection.h, icall.c: use a different method (GetInterfaces)
18229         to gather interface info and add isbyref, isprimitive and
18230         ispointer to the ves_icall_get_type_info() return value.
18231
18232 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
18233
18234         * class.h: stared adding support for events.
18235         * icall.c: split find_members implementation. Added debug icall to get
18236         the address of an object.
18237         * reflection.c: handle TypeBuilders in mono_type_get_object().
18238
18239 2002-03-01  Martin Baulig  <martin@gnome.org>
18240
18241         * icall.c (ves_icall_System_Array_GetLength): This must throw an
18242         ArgumentOutOfRangeException(), not an ArgumentException().
18243         (ves_icall_System_Array_GetLowerBound): Likewise.
18244         (ves_icall_System_Array_GetValue): Improved argument checking.
18245         (ves_icall_System_Array_SetValue): Improved argument checking.
18246
18247 2002-03-01  Martin Baulig  <martin@gnome.org>
18248
18249         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
18250         called with invalid arguments rather than just dying with g_assert().
18251         (ves_icall_System_Array_SetValue): Likewise.
18252         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
18253         raise a NotImplementedException instead.
18254         (ves_icall_System_Array_GetLength): Added argument checking.
18255         (ves_icall_System_Array_GetLowerBound): Added argument checking.
18256
18257 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
18258
18259         * object.h (mono_assert): new macros mono_assert and
18260         mono_assert_not_reached
18261
18262 2002-02-28  Martin Baulig  <martin@gnome.org>
18263
18264         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
18265         and "System::String::IsInterned" to "System::String::_IsInterned".
18266
18267 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
18268
18269         * icall.c: remove hacks for typebuilder. Added icall to create a
18270         modified type from a tybebuilder.
18271         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
18272         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
18273         to create a backing MonoClass for a TypeBuilder.
18274
18275 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18276
18277         * class.c, class.h: more refactoring of class init.
18278         Export mono_class_setup_mono_type() and mono_class_setup_parent().
18279
18280 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
18281
18282         * marshal.c, marshal.h: start of marshaling interface.
18283
18284 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18285
18286         * icall.c: fix order in assembly qualified name icall.
18287
18288 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18289
18290         * class.c: do not free str, since we store it in the hash table.
18291         * reflection.h: add label field to MonoILExceptionInfo.
18292         * reflection.c: handle references to more than one assembly. Handle
18293         case when there isn't a module created in the assembly.
18294
18295 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18296
18297         * class.c: Fix typo. Start refactoring of class init code.
18298
18299 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18300
18301         * appdomain.c: exit with 1 on error.
18302         * class.c: we already have the name in MonoClassField.
18303         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
18304         MonoStreamHeader instead of an offset of image->raw_metadata.
18305
18306 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
18307
18308         * appdomain.c (mono_init): Be even more descriptive about the error.
18309
18310 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
18311
18312         * appdomain.c: give the user an informative message when corlib can't
18313         be loaded.
18314
18315 2002-02-26  Martin Baulig  <martin@gnome.org>
18316
18317         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18318         New icall to get the time zone data.
18319
18320 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18321
18322         * reflection.c: set virtual and raw size of section correctly.
18323         * threads.c: transfer domain information to newly created threads.
18324
18325 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18326
18327         * class.c: when instancing a class in a domain, load the default
18328         vaules for static fields from the constant table. Fix System.Enum to
18329         not be an enum.
18330         * icall.c: implement Object::GetType() internalcall. Implemented
18331         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
18332         Fixed checking of binding flags in find_members().
18333         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
18334         * reflection.c: handle enumerations when writing to the constant
18335         table. Use a different object cache for types.
18336
18337
18338 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
18339
18340         * object.c (mono_object_isinst): fix for arrays
18341
18342         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
18343
18344 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18345
18346         * object.c: don't use mprotect ()  and fix intern pool hash table
18347         lookup for big endian systems.
18348
18349 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18350
18351         * icall.c: change type_is_subtype_of () signature.
18352
18353 2002-02-21  Mark Crichton  <crichton@gimp.org>
18354
18355         * rand.c, rand.h: Added random number generator for
18356         System.Security.Cryptography classes.
18357
18358         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
18359
18360         * icall.c: Added System.Security.Cryptography calls.
18361
18362 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18363
18364         * class.c, icall.c, metadata.c: better support for pointer types.
18365         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
18366         * reflection.c: Add support for getting custom attrs for properties
18367         and simplify some code.
18368
18369 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18370
18371         * icall.c: change getToken () and add custom attribute GetBlob()helper
18372         method.
18373         * reflection.h: add custom attrs array to the reflection builder structures.
18374         * reflection.c: encode and emit custom attributes for all the relevant
18375         reflection objects. Cache fieldref and methodref tokens. Change
18376         mono_image_create_token() interface to take a MonoDynamicAssembly.
18377         More complete custom attributes decoder. Load custom attributes for
18378         Assembly, Field, Method and Constructor objects, too. Make the
18379         returned array an Attribute[] one, not object[]. Added
18380         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
18381         custom attribute constructor.
18382
18383 2002-02-20  Dick Porter  <dick@ximian.com>
18384
18385         * icall.c:
18386         * rawbuffer.c:
18387         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
18388         problem code out for now).
18389
18390 2002-02-19  Radek Doulik  <rodo@ximian.com>
18391
18392         * object.c (mono_ldstr): use hash table to avoid multiple swapping
18393
18394 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
18395
18396         * icall.c: register the GetCustomAttributes method.
18397         * object.c, object.h: add mono_string_new_len ().
18398         * reflection.h, reflection.c: added mono_runtime_invoke(),
18399         mono_install_runtime_invoke(). Added
18400         mono_reflection_get_custom_attrs () to load custom attributes and
18401         create the attribute objects.
18402
18403 2002-02-19  Dick Porter  <dick@ximian.com>
18404         * threads-dummy-types.c:
18405         * threads-dummy-types.h:
18406         * threads-dummy.c:
18407         * threads-dummy.h:
18408         * threads-pthread-types.c:
18409         * threads-pthread-types.h:
18410         * threads-pthread.c:
18411         * threads-pthread.h:  Deleted obsolete files
18412
18413 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
18414
18415         * class.c (mono_class_vtable): runtime init the class when we
18416         allocate static class data.
18417
18418         * icall.c (ves_icall_System_Array_SetValue): check for null values.
18419
18420         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
18421         and String - but we will need generic marshalling support in the
18422         future. 
18423         (mono_init): set the domain name in a ms compatible way
18424
18425         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
18426         String[].
18427
18428 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
18429
18430         * object.c (mono_array_clone): use alloca() instead of g_malloc  
18431         for sizes
18432
18433         * appdomain.c (mono_domain_unload): impl.
18434
18435 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18436
18437         * appdomain.c, object.c: fix intern pool implementation.
18438         * class.c: fix alignment code.
18439
18440 2002-02-16  Radek Doulik  <rodo@ximian.com>
18441
18442         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
18443         and s2 > s1, just copy lower bytes to be compatible with little
18444         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
18445         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
18446
18447         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
18448         force big_endian to be 1 for big endian machines 
18449         (ves_icall_iconv_new_decoder): ditto
18450
18451 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
18452
18453         * socket-io.c (convert_sockopt_level_and_name): If the system
18454         doesn't define SOL_IP or SOL_TCP, get them by hand using
18455         getprotobyname() and caching the values (because this could be a
18456         slow operation).
18457         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
18458         Use the appropriate struct when the system does support it. Ie,
18459         not all systems have struct ip_mreqn so use struct ip_mreq when
18460         appropriate.
18461
18462 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
18463
18464         * reflection.c: handle finally clauses.
18465
18466 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
18467
18468         * socket-io.c: use g_snprintf() instead of snprintf.
18469
18470 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18471
18472         * reflection.c (mono_param_get_objects): Cast second argument to
18473         mono_method_get_param_names to a const char** to silence the
18474         compiler warning.
18475
18476         * appdomain.c (mono_domain_assembly_open): Put parens around the
18477         truth statement in the for-loop.
18478
18479         * unicode.c (iconv_convert): Got rid of a compiler warning about
18480         int i being unused when the system has a new iconv.
18481         (iconv_get_length): Same.
18482
18483         * image.c (load_class_names): Cast the second argument to
18484         g_hash_table_insert() to char* to hush compiler warnings about the
18485         arg being a const.
18486         (mono_image_open): Same here.
18487
18488         * socket-io.c: Don't conditionally include sys/filio.h or
18489         sys/sockio.h here anymore since we now get them from
18490         io-layer/io-layer.h
18491         (inet_pton): If the system doesn't support inet_aton, implement
18492         using inet_addr and also #define INADDR_NONE if it isn't defined
18493         by the system.
18494
18495 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18496
18497         * metadata.c, metadata.h: added function to get packing and size info
18498         of a typedef.
18499         * reflection.h, reflection.c: handle field RVA data. Save info about
18500         the table layout if needed. Assign typedef indexes to all the types
18501         before dumping the info about them to avoid forward reference problems.
18502
18503 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
18504
18505         * socket-io.c (convert_sockopt_level_and_name): ifdef
18506         SO_ACCEPTCONN because it is not defined on my system (old debian)
18507
18508 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18509
18510         * opcode.c: use stddef.h to get NULL.
18511
18512 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18513
18514         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
18515         for FIONBIO, FIONREAD and SIOCATMARK.
18516         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
18517         define INADDR_NONE and besides, inet_addr() is deprecated and
18518         should not be used. Use inet_pton() instead - it also has the
18519         added bonus that it can easily handle IPv6 addresses as well.
18520         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
18521
18522 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18523
18524         * decimal.c: remove _MSC_VER conditional.
18525
18526 2002-02-13  Dick Porter  <dick@ximian.com>
18527
18528         * socket-io.c: 
18529         * icall.c: Internal calls for Blocking, Select, Shutdown,
18530         GetSocketOption and SetSocketOption
18531
18532 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18533
18534         * assembly.cs: better resolver: use it instead of some kludgy
18535         code.
18536
18537 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
18538
18539         * reflection.c: the best way to speed-up the compiler is to avoid
18540         infinite loops.
18541
18542 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
18543
18544         * class.c (mono_class_vtable): changed the object layout
18545         (obj->vtable->class). 
18546         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
18547
18548 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18549
18550         * assembly.c: look for assemblies in the assembly dir, too.
18551
18552 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18553
18554         * class.c: fix thinko in mono_class_from_type().
18555
18556 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18557
18558         * exception.h, exception.c: added TypeLoadException.
18559         * object.h, object.c: added mono_array_clone ().
18560         * icall.c: handle throwOnError in AssemblyGetType().
18561         Added Array.Clone().
18562         * opcode.h, opcode.c: use a single value for the opcode val.
18563         Compile fix for non-gcc compilers.
18564
18565 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
18566
18567         * opcodes.c, opcodes.h: export interesting info about opcodes.
18568
18569 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
18570
18571         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
18572         icalls. 
18573
18574         * class.c (class_compute_field_layout): set element_class for enums
18575         (mono_class_create_from_typedef): set element_class for normal classes
18576
18577         * icall.c (ves_icall_System_Enum_get_value): impl.
18578
18579         * class.c (mono_class_create_from_typedef): do not set valuetype
18580         flag for System.ValueType and System.Enum
18581
18582 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
18583
18584         * unicode.c (iconv_convert): fix big endian problem.
18585
18586 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18587
18588         * class.c: add asserts if we are ever going to scribble over memory.
18589         * socket-io.c: not all systems have AF_IRDA defined.
18590
18591 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
18592
18593         * class.c (class_compute_field_layout): do not consider static
18594         fields to compute alignment
18595
18596 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
18597
18598         * appdomain.c (mono_appdomain_get): impl.
18599         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
18600
18601 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18602
18603         * icall.c: ignore "file://" prefix when loading an assembly.
18604
18605 2002-01-23  Dick Porter  <dick@ximian.com>
18606
18607         * socket-io.c:
18608         * icall.c:
18609         * Makefile.am: Added socket support
18610
18611 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18612
18613         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
18614         code back.  This should return the assemblies that are loaded by
18615         the runtime on behalf of an application domain. 
18616
18617         The current implementation is still broken, it just returns every
18618         assembly loaded, but until we get real applications domain this
18619         will do.
18620
18621 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
18622
18623         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
18624         AppDomain object.
18625
18626 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18627
18628         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
18629         the mono_class_from_name lookup.
18630         (ves_icall_get_parameter_info): ditto.
18631         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
18632         method.
18633         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
18634
18635 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18636
18637         * class.c: load also nested classes on class init.
18638         System.ValueType instance methods gets passed boxed
18639         values, unless methods in derived classed that get a pointer to the
18640         data.
18641         * icall.c: use better name parsing code in GetType().
18642         * image.c, image.h: add mono_image_loaded ().
18643         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
18644         * reflection.c, reflection.h: added mono_reflection_parse_type().
18645
18646 2002-01-22  Veronica De Santis <veron78@interfree.it>
18647
18648         * icall.c : Added mapping of internal calls for Manual and Auto reset events
18649         * threads.c : Added the implementation of internal calls for events
18650         * threads.h : Added prototypes of internal calls for events
18651         
18652 2002-01-21  Radek Doulik  <rodo@ximian.com>
18653
18654         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
18655
18656 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
18657
18658         * class.c (mono_class_init): set min_align to 1 (instead of 0)
18659         (mono_class_value_size): use min_align
18660
18661 2002-01-20  Dick Porter  <dick@ximian.com>
18662
18663         * threads.h:
18664         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
18665         so it compiles on w32.
18666
18667 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
18668
18669         * metadata.c (mono_type_stack_size): impl.
18670
18671         * class.c (mono_class_get_field): impl. memberref token
18672
18673 2002-01-16 Veronica De Santis <veron78@@interfree.it>
18674
18675         * icall.h : Added the internal calls mapping for CreateMutex_internal
18676                     and ReleaseMutex_internal.
18677         * threads.h : Added the prototype of mutexes internal calls.
18678         * threads.c : Added the implementations of mutexes internal calls.
18679
18680 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18681
18682         * metaparse.h: removed unused file.
18683         * reflection.c, reflection.h: added stream_data_align () function 
18684         to align data in streams and keep stream aligned. Add support for
18685         exception support in method headers.
18686
18687 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
18688
18689         * unicode.c: make iconv_convert () return the number of bytess written
18690         in the output buffer.
18691
18692 2002-01-15  Dick Porter  <dick@ximian.com>
18693         * threads.c: Make the runtime's idea of infinite timeouts coincide
18694         with the class library's
18695
18696         Fix a particularly egregious bug in mono_thread_cleanup(). That
18697         code was so utterly bogus it must have been written on a Monday.
18698
18699 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18700
18701         * reflection.h: add subtypes field to TypeBuilder.
18702         * reflection.c: encode constants for literal fields.
18703         Handle subtypes. Fix user string token (and add a zero byte)
18704         at the end.
18705         
18706 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
18707
18708         * class.c (mono_class_init): bug fix: assign slot numbers for
18709         abstract methods.
18710
18711 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18712
18713         * reflection.c: don't try to output a code RVA for abstract methods.
18714         Small fixes for method header format. Output parameter info to the
18715         ParamDef table. Save method overriding info to MethodImpl table.
18716         Fix property support. Allow typedef.extends to be a type in the
18717         building assembly.
18718         * verify.c: fix off-by-one error.
18719
18720 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
18721
18722         * class.c: fix mono_class_from_mono_type () for szarray types.
18723         Remove unused cache check in mono_class_from_type_spec().
18724         * icall.c: *type_from_name () functions handle simple arrays and byref.
18725         * reflection.c: handle byref and szarray types. Handle methods without
18726         body (gets P/Invoke compilation working). Handle types and fields in
18727         get_token ().
18728         * reflection.h: add rank to MonoTypeInfo.
18729
18730 2002-01-10  Dick Porter  <dick@ximian.com>
18731
18732         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
18733         internal calls
18734
18735 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18736
18737         * icall.c: initialize class in type_from_handle ().
18738         Loop also in parent classes for get_method ().
18739         * reflection.c: properly encode class and valuetype types.
18740         Start on encoding TypeBuilder types. Handle fieldrefs.
18741         Use correct length when registering a user string.
18742         Handle ConstructorBuilder and MonoMethod in get_token ().
18743         Make mono_type_get_object () aware of cached types.
18744         * object.c: back out change to mono_string_new ().
18745
18746 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
18747         * object.c: mono_string_new should return a NULL when the string 
18748         passed in is NULL -- not try to deference it.
18749         
18750 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18751
18752         * icall.c: hack to make IsSubType work for TypeBuilders.
18753         * reflection.c: emit constructors before methods.
18754         Retrieve param names in mono_param_get_objects().
18755
18756 2002/01/05  Nick Drochak  <ndrochak@gol.com>
18757
18758         * Makefile.am: fix list of headers and sources so automake 1.5
18759         doesn't complain. Removed \# at end of list.
18760
18761 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18762
18763         * reflection.c: get token for a method ref. Set return type of
18764         constructor to void.
18765         * loader.c: debug message.
18766         * class.c: typo fix.
18767
18768 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
18769
18770         * icall.c: fix array init with rank > 1. FindMembers
18771         loops in parent class as well.
18772         * image.c: do not insert nested types in name cache.
18773         * reflection.c: warning fix.
18774         * reflection.h: add override method (for interface impl).
18775
18776 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
18777
18778         * metadata.c: fix customattr decoding.
18779
18780 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18781
18782         * rawbuffer.cs: Added native Win32 implementation, avoids using
18783         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18784
18785 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18786
18787         * class.c: make the low-level routines handle the cache.
18788
18789 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18790
18791         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18792
18793 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18794
18795         * class.c: fix mono_array_element_size() for objects.
18796         * class.h, class.c: add properties to MonoClass and load them
18797         at init time.
18798         * icall.c: check with isinst() when assigning a value to an array
18799         instead of requiring the classes to match exactly.
18800         Implemented icall for System.Type::GetType().
18801         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18802         enums. Handle bindingflags when looking for methods and fields.
18803         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18804         and mono_metadata_methods_from_property().
18805         * reflection.h, reflection.c: added structures for propreties,
18806         parameters and enums. Implemented mono_property_get_object() and
18807         mono_param_get_objects().
18808
18809 2001-12-18  Dick Porter  <dick@ximian.com>
18810
18811         * file-io.c: Use mono_string_to_utf16() instead of
18812         mono_string_chars()
18813
18814         * object.c: Added mono_string_to_utf16(), which copies the non
18815         NULL-terminated MonoString into a new double-null-terminated
18816         buffer.
18817
18818 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18819
18820         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18821
18822 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18823
18824         * file-io.c: raise exceptions if handle is invalid.
18825
18826 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18827
18828         * assembly.c: yet another check for mscorlib.
18829         * class.c, class.h: load nesting info for classes.
18830         * icall.c: many new functions to support the Reflection classes.
18831         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18832         * reflection.h, reflection.c: mono_image_create_token(),
18833         mono_assembly_get_object(), mono_type_get_object(),
18834         mono_method_get_object(), mono_field_get_object(): methods to return
18835         objects that parallel the C representation of assemblies, types,
18836         methods, fields.
18837
18838 2001-12-11  Dick Porter  <dick@ximian.com>
18839
18840         * icall.c:
18841         * file-io.c: Internal calls for file IO.
18842
18843 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18844
18845         * tabledefs.h: missing FileAttributes.
18846         * verify.h, verify.c: use is_valid_string () to simplify and check for
18847         valid strings more correctly. Fix warnings and speeling.
18848         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18849         Check code: branches, maxstack, method calls.
18850
18851 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18852
18853         * object.c (mono_object_allocate): removed static, so that the jit
18854         can allocate value types.
18855
18856         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18857
18858 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18859
18860         * class.c: init enum types right away and register the
18861         token->MonoClass map in mono_class_create_from_typedef ().
18862         * verify.h, verify.c: first cut of the verifier.
18863         * pedump.c: add --verify switch to verify metadata tables.
18864         * tabledefs.h: add some missing enums.
18865
18866 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18867
18868         * class.c (mono_install_runtime_class_init): impl.
18869         (mono_class_init): renamed mono_class_metadata_init to
18870         mono_class_init, also removed the metadata_inited flag
18871
18872         * object.c (mono_object_isinst): use faster algorithm
18873
18874 2001-11-30  Radek Doulik  <rodo@ximian.com>
18875
18876         * mono-endian.h: reverted last change
18877         added function prototypes
18878
18879         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18880         add mono-endian.c back
18881
18882         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18883         for unaligned access, I've mistaked it with endianess. I am
18884         sorry.
18885         (mono_read16): fix reverted endianess
18886         (mono_read64): ditto
18887         (mono_read32): ditto
18888
18889 2001-11-30  Dick Porter  <dick@ximian.com>
18890
18891         * exception.c: Implement mono_exception_from_name()
18892
18893 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18894
18895         * metadata.h, metadata.c: remove params_size and locals_size and their
18896         calculation from the metadata code: they are only usefult to the
18897         interp.
18898
18899 2001-11-29  Radek Doulik  <rodo@ximian.com>
18900
18901         * object.c (mono_ldstr): swap bytes here, it's probably not the
18902         best place, but works for me now, I'll redo it once I know mono
18903         better, also note that I add PROT_WRITE and don't reset back, also
18904         note that it's only affects big endians, so x86 should be OK
18905
18906         * mono-endian.h (read16): use just glib macros for both endians
18907
18908         * mono-endian.c: removed as glib macros are used in in
18909         mono-endian.h so we don't need to care about endianess for read
18910         macros as glib does that for us already
18911
18912 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18913
18914         * class.h, class.h: take minimum alignment into consideration so
18915         that the fields of a class remain aligned also when in an array.
18916
18917 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18918
18919         * loader.h, loader.c: add mono_method_get_param_names().
18920         * class.c: 0-init class fields.
18921
18922 2001-11-26  Dick Porter  <dick@ximian.com>
18923
18924         * icall.c:
18925         * threads-types.h:
18926         * threads.c: New file that handles System.Threading on all platforms
18927
18928         * object.c: 
18929         * object.h: Remove the synchronisation struct from MonoObject,
18930         replace it with a pointer that gets initialised on demand
18931
18932         * Makefile.am: Replace all the system-specific threading code with
18933         a single file that uses the new wrapper library
18934
18935 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18936
18937         * class.c, class.h: add mono_install_trampoline() so that the runtime
18938         can register a function to create a trampoline: removes the ugly
18939         requirement that a runtime needed to export arch_create_jit_trampoline.
18940         * object.h, object.c: added mono_install_handler() so that the runtime
18941         can install an handler for exceptions generated in C code (with
18942         mono_raise_exception()). Added C struct for System.Delegate.
18943         * pedump.c: removed arch_create_jit_trampoline.
18944         * reflection.c: some cleanups to allow registering user strings and
18945         later getting a token for methodrefs and fieldrefs before the assembly
18946         is built.
18947         * row-indexes.h: updates and fixes from the new ECMA specs.
18948
18949 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18950
18951         * class.h, class.c: add enum_basetype field to MonoClass.
18952         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18953         to get index in the constant table reated to a field, param or
18954         property.
18955         * reflection.h, reflection.c: handle constructors. Set public-key and
18956         version number of the built assembly to 0.
18957         * row-indexes.h: update from new ECMA spec.
18958
18959 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18960
18961         * class.h, class.c: add a max_interface_id to MonoClass.
18962         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
18963         since it's used to do that. Added mono_type_type_from_obj().
18964         Make GetType() return NULL instead of segfaulting if the type was not
18965         found. Handle simple arrays in assQualifiedName.
18966         * object.h: add a struct to represent an Exception.
18967         * reflection.c: output call convention in method signature.
18968         Add code to support P/Invoke methods and fixed offsets for fields.
18969
18970 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
18971
18972         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
18973         the value.
18974         * icall.c: use mono_array_addr instead of array->vector: fixes the
18975         reflection image writing.
18976         * reflection.c: init call convention byte to 0 in method signature.
18977         Encode the property signature. Don't output property-related methods
18978         twice. Really process the properties for a type (don't cast a field to
18979         a property, my mom always told me that).
18980         Fix 64 bit issues in pointer alignment in a different and more
18981         readable way.
18982
18983 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
18984
18985         * loader.h: Removed type class from MonoDefaults, added monotype
18986
18987         * loader.c: Loaded MonoType, removed loading of Type
18988
18989         * icall.c (my_mono_new_object): Now returns a System.MonoType,
18990         and fills in System.Type._impl with a RuntimeTypeHandle rather
18991         than the actual MonoClass *
18992
18993         (ves_icall_type_from_handle): change from type_class to
18994         monotype_class
18995
18996         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
18997         implemented
18998
18999         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
19000         implemented
19001
19002         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
19003
19004         (ves_icall_System_Reflection_Assembly_GetType): implemented
19005
19006         (ves_icall_System_MonoType_assQualifiedName): implemented
19007
19008         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
19009
19010 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
19011
19012         * assembly.c (mono_assembly_open): Implement a cache for the
19013         assemblies. 
19014
19015         (mono_assembly_close): only destroy the assembly when the last
19016         reference is gone.
19017         
19018 2001-11-09  Dick Porter  <dick@ximian.com>
19019
19020         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
19021
19022 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
19023
19024         * class.c (mono_class_metadata_init): bug fix: compute the right slot
19025
19026 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19027
19028         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
19029         from Martin Weindel.
19030         * object.h: add mono_string_chars ().
19031
19032 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
19033
19034         * reflection.c (build_compressed_metadata): Eliminates warnings
19035         and uses 64-bit clean code.
19036
19037         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
19038         (mono_type_equal): Change signature to eliminate warnings.
19039
19040 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19041
19042         * icall.c, loader.c: remove the internalcall array constructors.
19043         Changes to match the new MonoArray structure.
19044         * object.h, object.c: an array object doesn't allocate an extra
19045         vector. Add mono_array_new_full () to create jagged arrays easily.
19046
19047 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19048
19049         * metadata.h, metadata.c: add mono_metadata_field_info () to
19050         retreive all the info about a field from vairous tables.
19051         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
19052         * class.h, class.c: augment MonoClassField with more info.
19053         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
19054         policy and load a field's RVA if needed.
19055
19056 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
19057
19058         * class.c (mono_class_metadata_init): create a trampoline for all
19059         virtual functions instead of actually compiling them.
19060
19061 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
19062
19063         * class.h, class.c: include name in MonoClassField.
19064         * class.c: fix fundamental type of System.Object and System.String.
19065         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
19066         tokens in ldtoken.
19067         * icall.c: remove internalcalls for the Reflection stuff that is now
19068         done in C# code.
19069         * loader.c: mono_field_from_memberref () implementation.
19070         * mono-endian.c: thinko (s/struct/union/g).
19071         * object.c, object.h: make the mono_string_* prototypes actually use
19072         MonoString instead of MonoObject.
19073         * reflection.c, reflection.h: updates for changes in the reflection
19074         code in corlib: we use C structures that map to the actual C# classes.
19075         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
19076         fat method header if needed and use the info from the ILGenerator for
19077         methods. Handle fields in types. Misc fixes.
19078
19079 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
19080
19081         * class.c (mono_class_metadata_init): bug fix: always allocate
19082         space for static class data
19083
19084 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
19085
19086         * class.c (mono_compute_relative_numbering): use relative
19087         numbering to support fast runtime type checks.
19088
19089 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
19090
19091         * class.c (mono_class_create_from_typeref): added debugging output
19092         to print class name when MonoDummy is returned instead of real class
19093
19094 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
19095
19096         * class.c (mono_class_metadata_init): interface offset table now
19097         contains pointers into the vtable - this is more efficient for the jit
19098
19099 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
19100
19101         * class.c (mono_class_metadata_init): use a temporary vtable (the
19102         old algorithm only worked for the interpreter, but not for the jit)
19103
19104 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
19105
19106         * loader.c (method_from_memberref): use mono_class_get to get the
19107         class of an array instead of using System.Array directly.
19108         (mono_get_method): also add MEMBERREF methods to the method cache
19109         which usefull for arrays.
19110
19111 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
19112
19113         * pedump.c (arch_compile_method): added to compute vtable entry
19114
19115         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
19116         number of interfaces.
19117         
19118         * class.h: merged MonoArrayClass into MonoClass
19119
19120         * class.c (mono_class_create_from_typedef): compute the vtable size and
19121         allocate space to include the vtable inside MonoClass
19122         (mono_class_metadata_init): initialize the vtable
19123
19124 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
19125
19126         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
19127         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
19128         * image.c: endian fixes by Laurent Rioux.
19129         * object.h, object.c: rename MonoStringObject to MonoString and
19130         MonoArrayObject to MonoArray. Change some function names to conform to
19131         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
19132         guint16* as first argument, so don't use char*.
19133         Provide macros to do the interesting things on arrays in a portable way.
19134         * threads-pthread.c: updates for the API changes and #include <sched.h>
19135         (required for sched_yield()).
19136         * icall.c: updates for the API changes above.
19137         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
19138         platforms that need them.
19139
19140 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19141
19142         * class.c: set the correct type for all the fundamental
19143         type when loading the class.
19144
19145 2001-10-05  Dick Porter  <dick@ximian.com>
19146
19147         * threads-pthread.c (pthread_mutex_timedlock): Simple
19148         compatibility version for C libraries that lack this call.
19149
19150 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19151
19152         * class.c: MonoTypes stored in MonoClass are stored as
19153         fundamental MonoTypes when the class represents a
19154         fundamental type (System.Int32, ...).
19155         The TypeHandle return by ldtoken is a MonoType*.
19156         * icall.c: ves_icall_get_data_chunk () write out all the
19157         PE/COFF stuff. Implement ves_icall_define_method (),
19158         ves_icall_set_method_body (), ves_icall_type_from_handle ().
19159         * image.c: properly skip unknown streams.
19160         * loader.h, loader.c: add type_class to mono_defaults.
19161         * metadata.c, metadata.h: export compute_size () as
19162         mono_metadata_compute_size () with a better interface.
19163         Typo and C&P fixes.
19164         * pedump.c: don't try to print the entry point RVA if there is no entry point.
19165         * reflection.c, reflection.h: many cleanups, fixes, output method
19166         signatures and headers, typedef and typeref info, compress the metadata
19167         tables, output all the heap streams, cli header etc.
19168         * row-indexes.h: typo fixes.
19169
19170 2001-10-04  Dick Porter  <dick@ximian.com>
19171
19172         * object.h: Add a synchronisation mutex struct to MonoObject
19173
19174         * object.c (mono_new_object): Initialise the object
19175         synchronisation mutexes
19176
19177         * icall.c: System.Threading.Monitor internal calls
19178         
19179         * threads-pthread.h:
19180         * threads-pthread.c: System.Threading.Monitor internal calls
19181
19182         * threads-types.h: New file, includes the system-specific thread
19183         structures
19184         
19185         * threads-pthread-types.h:
19186         * threads-pthread-types.c: New files, handle pthread-specific
19187         synchronisation types
19188
19189         * threads-dummy-types.h: 
19190         * threads-dummy-types.c: New files of dummy support for
19191         thread-specific types
19192
19193         * metadata.c:
19194         * image.c:
19195         * pedump.c: include mono-endian.h not endian.h
19196         
19197         * Makefile.am: More threads files.
19198         Name mono-endian.h not endian.h
19199
19200 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
19201
19202         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
19203         stuff and implement a few more bits.
19204         * icall.c: a field needs to be dereferenced twice. Do not use the same
19205         name for two variables in the same scope.
19206         * image.c, image.h: cleanups.
19207
19208 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
19209
19210         * class.c (mono_class_metadata_init): bug fix: compute the right size
19211
19212 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
19213
19214         * icall.c: implemented some of the Reflection internalcalls.
19215         * image.c, image.h: start writing out the PE/COFF image.
19216         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
19217         that does the reverse than decode_blob_size ().
19218         * object.c: use mono_metadata_encode_value (). Move here
19219         temporary implementation of mono_string_to_utf8 ().
19220         * rawbuffer.c: make malloc_map static.
19221
19222 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19223
19224         * metadata.c: fix type comparison for arrays.
19225         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
19226         Added a couple of new classes to monodefaults.
19227         * icall.c: added a couple of Reflection-related internalcalls.
19228         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
19229         Added a byval_arg MonoType to MonoClass.
19230
19231 2001-09-28  Dick Porter  <dick@ximian.com>
19232
19233         * icall.c:
19234         * threads-pthread.h: 
19235         * threads-pthread.c: Implemented internal calls for
19236         LocalDataStoreSlot operations.  Applied mutexes around all shared
19237         data.  Reworked the thread creation and Start() operations to
19238         avoid a race condition.
19239         
19240         * threads-dummy.h:
19241         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
19242
19243 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
19244
19245         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
19246
19247 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
19248
19249         * class.c, loader.c: warn and return NULL instead of erroring out.
19250         * icall.c: added System.AppDomain::getCurDomain().
19251         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
19252
19253 2001-09-25  Dick Porter  <dick@ximian.com>
19254
19255         * threads-pthread.h:
19256         * threads-pthread.c: Implemented timed thread joining and added
19257         System.Threading.Thread::Join_internal internal call
19258
19259         * icall.c: Added System.Threading.Thread::Join_internal internal call
19260
19261         * threads-dummy.h:
19262         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
19263
19264 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
19265
19266         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
19267         mono_string_intern () to implement the semantics of the ldstr opcode
19268         and the interning of System.Strings.
19269         * icall.c: provide hooks to make String::IsIntern and String::Intern
19270         internalcalls.
19271
19272 2001-09-23  Dick Porter  <dick@ximian.com>
19273
19274         * threads-dummy.c: 
19275         * threads-dummy.h: New files of dummy threading routines
19276
19277         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
19278         support code based on system specifics
19279
19280         Rename PTHREAD_LIBS to THREAD_LIBS
19281         
19282 2001-09-23  Dick Porter  <dick@ximian.com>
19283
19284         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
19285         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
19286         internal calls.
19287         (mono_thread_init): Set up a Thread object instance to return when
19288         the main thread calls Thread.CurrentThread
19289         (mono_thread_cleanup): Wait for all subthreads to exit
19290
19291         * icall.c: New internal calls for System.Threading.Thread::Sleep
19292         (including Schedule) and CurrentThread
19293
19294         * threads.h: New file, to insulate thread-specific stuff from the
19295         rest of the code
19296
19297 2001-09-21  Dick Porter  <dick@ximian.com>
19298
19299         * threads-pthread.h: 
19300         * threads-pthread.c: New file, for handling pthreads-style
19301         threading support.  Start() now starts a new thread and executes
19302         the ThreadStart delegate instance.
19303
19304         * icall.c: Added the internalcall for
19305         System.Threading.Thread::Start_internal
19306
19307         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
19308
19309 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
19310
19311         * loader.c: work around the different signatures for delegates
19312         constructors csc generates in compiled code vs the ones compiled in mscorlib.
19313
19314 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19315
19316         * class.h, class.c: add mono_class_get_field_from_name ().
19317         * *: Fix C comments and other ANSI C issues.
19318
19319 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
19320
19321         * endian.h, assembly.c: fix some endianness issues.
19322
19323 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
19324
19325         * loader.h, load.c: add delegate_class to mono_defaults.
19326         Handle runtime provided methods in mono_get_method ().
19327
19328 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
19329
19330         * loader.c (mono_get_method): use pinvoke for internal call
19331
19332         * icall.c: use pinvoke for internal call
19333
19334         * loader.c (method_from_memberref): set the method name
19335
19336 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
19337
19338         * metadata.c: help the compiler generate better code for
19339         mono_class_from_mono_type ().
19340
19341 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
19342
19343         * class.c (mono_class_metadata_init): delayed computing of the
19344         class size to mono_class_metadata_init ()
19345
19346 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
19347
19348         * class.c, class.h: add an interfaces member to MonoClass.
19349         * image.c, image.h: add assembly_name field to MonoImage
19350         from the assembly table.
19351         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
19352
19353 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19354
19355         * class.c: Handle Array in mono_class_from_mono_type ().
19356         * metadata.c, pedump.c: some endian fixes.
19357
19358 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19359
19360         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
19361         * metadata.c: fix small problem introduced with the latest commit.
19362
19363 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
19364
19365         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
19366         We don't need a MonoMetadata pointer anymore to compare signatures in
19367         mono_metadata_signature_equal (), update callers.
19368         Reduced memory usage an number of allocations for MonoMethodHeader and
19369         MonoMethodSignature.
19370
19371 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
19372
19373         * metadata.c: added compare for szarray.
19374
19375 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
19376
19377         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
19378         and add a couple more types to it and mono_defaults. Give an hint on
19379         classes that need implementing in our corlib and are referenced
19380         in mscorlib.
19381
19382 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
19383
19384         * class.h, class.c: keep track if a class is also an Enum.
19385         * loader.c: Implement a couple more types for use in libffi
19386         marshalling. Gives better diagnostics when failing to dlopen
19387         a library. Set method->klass for P/Invoke methods, too.
19388
19389 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
19390
19391         * class.c, class.h: add a MonoType this_arg to MonoClass that
19392         represents a pointer to an object of the class' type that
19393         can be used by the interpreter and later the type cache.
19394         Add best guess alignment info for valuetype objects.
19395
19396 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
19397
19398         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
19399         into MonoType: one less level of indirection and allocation and
19400         simplifies quite a bit of code. Added cache for MonoTypes that are
19401         used frequently, so that we don't need to allocate them all the time.
19402
19403 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
19404
19405         * class.c (mono_class_create_from_typedef): System.Enum is also a
19406         value type, although it does not derive from System.ValueType
19407         (maybe a bug in the ms compiler?)
19408
19409         * metadata.c (mono_type_size): return the right size for value types
19410
19411         * loader.c (mono_get_method): only initialize method header if not abstract
19412
19413         * class.c (mono_class_from_mono_type): use mono_default values. 
19414
19415 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
19416
19417         * *: use MonoClass pointers instead of <type_tokens>
19418         
19419         * class.h: new flag: metadata_inited.
19420
19421         * class.c (mono_class_metadata_init): impl.
19422         (mono_class_instance_size): impl.
19423         (mono_class_data_size): impl.
19424
19425 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19426
19427         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
19428         MonoClass now has the name and name_space fields. 
19429         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
19430         mono_get_method () takes and optional MonoClass as argument.
19431         Removed mono_typedef_from_name() and added mono_class_token_from_name()
19432         instead that takes advantage of a map from class names to typedef
19433         tokens in MonoImage.
19434
19435 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
19436
19437         * metadata.c: zero is not a valid alignment boundary.
19438         Merge MONO_TYPE_VOID in default decoding code.
19439
19440 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
19441
19442         * image.h: merged MonoMetadata into MonoImage
19443
19444         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
19445         identify the type of elements.
19446
19447 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
19448
19449         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
19450         * cil-coff.h: split MonoMSDOSHeader and add size info.
19451         * image.c: add some consistency checks.
19452         * metadata.c: fix row size computation: one programmer
19453         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
19454         add explanation for the locator routine.
19455         Fix decoding of size in method header.
19456         
19457 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
19458
19459         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
19460         (g_concat_dir_and_file): Bring g_concat_dir_and_file
19461         function from gnome-libs.  This uses the right path separator
19462         based on the OS, and also works around a bug in some systems where
19463         a double slash is not allowed. 
19464         (default_assembly_name_resolver): Use g_concat_dir_and_file
19465         (mono_assembly_open): ditto.
19466
19467 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
19468
19469         * metadata.c (mono_metadata_signature_equal): impl.
19470
19471         * *: void is now a realy MonoType (instead of using NULL)
19472         
19473         * metadata.c (do_mono_metadata_parse_type): use
19474         mono_metadata_parse_type to parse void value.
19475
19476 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
19477
19478         * metadata.c, metadata.h: in the signature and method header store
19479         only the space required for holding the loca vars and incoming arguments.
19480
19481 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
19482
19483         * metadata.c (do_mono_metadata_parse_type): treat void like any
19484         other type (instead of assigning NULL);
19485
19486 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
19487
19488         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
19489
19490 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
19491
19492         * image.c (do_mono_image_open): added a cache for arrays.
19493
19494 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19495
19496         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
19497         decode a single column from a row in a metadata table and changes
19498         to take advantage of it in the typedef locator (gives a nice speed up).
19499         Store offset info for function params.
19500
19501 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
19502
19503         * image.h (MONO_IMAGE_IS_CORLIB): removed 
19504
19505 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
19506
19507         * assembly.c: how could mono_assembly_close () had ever worked?
19508         * metadata.c, metadata.h: provide offset info for local vars.
19509         Implement mono_type_size () to take care of alignment as well
19510         as size (it was mono_field_type_size in cli/class.c before).
19511
19512 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
19513
19514         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
19515
19516         * assembly.h (CORLIB_NAME): set to corlib.dll
19517
19518         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
19519
19520 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19521
19522         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
19523         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
19524         tokentype.h: massive namespace cleanup.
19525
19526 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19527
19528         * metadata.h, metadata.c: decode exception clauses when parsing method header.
19529
19530 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
19531
19532         * metadata.c (mono_metadata_free_type): added check for type !=
19533         NULL (void) before calling mono_metadata_free_type()
19534
19535 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
19536
19537         * metadata.h, row_indexes.h: added header with enumerations to use
19538         to index in the columns from tables in metadata and to decode coded
19539         tokens: we should start using this instead of embedding magic numbers
19540         all over the code.
19541
19542 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
19543
19544         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
19545         Move metadata_t info from cli_image_info_t to MonoImage, where
19546         it's easily accessible. Changed all the uses accordingly.
19547         Added the method and class caches to MonoImage.
19548         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
19549         and mono_metadata_decode_value () signature to be more consistent
19550         with the other parse functions (and simplify code). Taken advantage
19551         of zero-length array allocation with GCC. Removed reduntant (and
19552         wrong) MonoFieldType struct and use MonoParam instead. Changed
19553         mono_metadata_parse_field_type () to use common code for parsing.
19554         Added mono_metadata_typedef_from_field () and
19555         mono_metadata_typedef_from_method () to lookup a typedef index from a
19556         field or method token.
19557         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
19558
19559 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
19560
19561         * metadata.c (mono_metadata_parse_field_type): Implement. 
19562         (do_mono_metadata_parse_type): Split engine from
19563         mono_metadata_parse_type, so that we can create smaller structures
19564         for things that just have one pointer to the MonoType (look at
19565         the MonoFieldType)
19566
19567 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
19568
19569         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
19570         as Jan Gray found out, it is incorrect. 
19571
19572 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
19573
19574         * assembly.c: Implement asssembly loading.  This loads an image
19575         and loads all the referenced assemblies.  Come to think of it, we
19576         could always do lazy loading of the assemblies. 
19577
19578         * image.c (mono_image_open): Keep loaded images in a hashtable.
19579
19580         * image.h (MonoImage): Add reference count.
19581
19582 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
19583
19584         * assembly.c (mono_assembly_open): Keep track of the file name in
19585         case the assembly has no ASSEMBLY table.
19586
19587         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
19588         from get.c here.
19589
19590 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
19591
19592         * metadata.c, metadata.h: decode local vars in method header
19593         parse function. Change callers accordingly.
19594
19595 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
19596
19597         * metadata.h, cil-coff.h: protect against multiple inclusion.
19598         Added some new structures to hold information decoded from metadata:
19599         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
19600         and relevant decoding/free functions.
19601         * metadata.c: implement decoding functions. Add warning for out of bounds
19602         index in mono_metadata_locate(). Implement mono_get_method () to retreive
19603         all the info about a method signature and invocation. Remove check on
19604         uninitialized local var in parse_mh() and fix memory leak.
19605
19606 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
19607
19608         * metadata.h: More macros.
19609
19610         * tokentype.h: New file.
19611
19612 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
19613
19614         * assembly.c: added a consistency check and initialize
19615         some structures with g_new0().
19616         * metadata.c: fixed a couple more bugs in table size computation
19617         and add other checks for out-of bound access to metadata.
19618
19619 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
19620
19621         * metatada.c: fix bugs computing table sizes. Spew a
19622         warning when index in string heap is out of bounds.
19623
19624 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
19625
19626         * metadata.h: Add a couple of macros to manipulate tokens. 
19627
19628 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19629
19630         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
19631         cli_section_tables).
19632
19633 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
19634
19635         * metadata.c (mono_metadata_user_string): New function, provides
19636         access to the UserString heap. 
19637
19638 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
19639
19640         * metadata.c: Add inline documentation.
19641
19642 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
19643
19644         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
19645         files. 
19646
19647 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
19648
19649         * typeattr.h: New file, TypeAttribute flags. 
19650
19651 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
19652
19653         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
19654         mono_assembly_ensure_section): Section loading code.
19655         (load_section_tables): Load the sections.
19656
19657         * mono/metadata/metadata.c (mono_metadata_locate_token,
19658         mono_metadata_locate): Functions to locate the information
19659         definition given a token or a table and an index.
19660         (mono_metadata_compute_table_bases): New.
19661         (compute_size): New function to compute the sizes of the various
19662         tables.
19663
19664         * mono/metadata/metadata.h: Finish listing the different index
19665         types. 
19666
19667         * mono/metadata/pedump.c: Improve to dump new information.
19668
19669 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
19670
19671         * mono/metadata/metadata.c: Entered all the tables matching
19672         Beta2. 
19673
19674         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
19675
19676
19677