2006-09-08 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
2
3         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
4
5         * image.c (load_class_names): Move this to class.c, and rename it to 
6         'mono_image_init_name_cache'.
7         (load_modules): Fix a warning.
8
9         * class.c icall.c image.c: Initialize image->name_cache lazily.
10
11         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
12         on its name using information in the AOT file.
13
14         * class.c (mono_class_from_name): Use the new hook function.
15
16 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
17
18         * reflection.c (mono_param_get_objects): Handle enum default parameter values
19         correctly.
20
21         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
22         Fixes #79289.
23         
24 2006-09-06  Martin Baulig  <martin@ximian.com>
25
26         * icall.c (mono_lookup_internal_call): Small fix.
27
28 2006-09-05  Raja R Harinath  <rharinath@novell.com>
29
30         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
31         double g_free.
32
33 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
34
35         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
36         when --debug is specified.
37
38 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
39
40         * class.c (setup_generic_array_ifaces): Fix a warning.
41
42 2006-09-04  Miguel de Icaza  <miguel@novell.com>
43
44         * Temporarily remove the patch to assemly.c that checks the
45         assembly versions as it breaks our gacutil.
46
47 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
48
49         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
50
51         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
52         a net 1.0 runtime.
53
54         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
55         created using the default ctor. Fixes #79152.
56         (mono_string_builder_to_utf16): Ditto.
57
58 2006-09-01  Martin Baulig  <martin@ximian.com>
59
60         Fix handling of the generic array interfaces.
61
62         * class-internals.h
63         (MonoDefaults): Removed `generic_array_class' and added
64         `generic_ilist' class.
65
66         * class.c
67         (mono_bounded_array_class_get): Add the new generic array interfaces.
68         (setup_generic_array_ifaces): New static method; create vtable
69         entries for each method in the generic array interfaces.
70
71         * metadata.c
72         (select_container): Allow "parent-less" generic methods.
73
74         * marshal.c
75         (mono_marshal_get_generic_array_helper): New public method.
76
77         * icall.c
78         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
79         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
80         moved the interncall into System.Array.
81
82 2006-09-01  Raja R Harinath  <rharinath@novell.com>
83
84         A few more cases of avoiding work on types with ->byref set.
85         Has the real fix for #79238
86         * icall.c (is_generic_parameter): New helper.
87         (ves_icall_Type_GetGenericParameterPosition): Use it.
88         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
89         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
90         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
91         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
92         reference types.
93         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
94         reference types.
95         (ves_icall_Type_get_IsGenericInstance): Likewise.
96         (ves_icall_Type_get_IsGenericType): Likewise.
97
98 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
99
100         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
101         class if possible.
102
103         * mempool.h (mono_mempool_get_allocated): New helper function.
104
105         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
106         change.
107
108         * mempool.c: Fix warnings and the calculation of stats.
109
110         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
111
112         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
113
114         * loader.c (mono_get_method_from_token): Update method_count stat.
115
116         * class-internals.h (MonoStats): Add some stats.
117
118 2006-08-31 Robert Jordan  <robertj@gmx.net>
119
120         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
121         with managed variants.
122         All code is contributed under the MIT/X11 license.
123         
124 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
125
126         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
127         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
128
129         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
130
131         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
132         with cycles in classes.
133
134         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
135
136         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
137         missing a [MarshalAs] directive. Fixes #79203.
138
139         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
140         klass->marshal_info. Fixes #79217.
141
142 2006-08-30  Martin Baulig  <martin@ximian.com>
143
144         Committing a patch from Joachim Ante <joe@otee.dk>:
145         Add support for binary data symbol stores.
146
147         * debug-mono-symfile.c
148         (mono_debug_open_mono_symbol_file): Renamed into
149         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
150         arguments.
151
152         * mono-debug.c
153         (mono_debug_open_image): Added `raw_contents' and `size' args.
154         (mono_debug_init_2_memory): New public function.
155
156 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
157
158         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
159
160 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
161
162         * appdomain.c: implement support for ShadowCopyFiles.
163
164 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
165
166         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
167         when value is NULL (and should remove CID #51).
168
169 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
170
171         * image.c: moved 2 functions to ../utils.
172
173 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
174
175         * gc.c: cope with the target object of a GC handle being NULL
176         (bug #78877).
177
178 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
179
180         * class.c: recursively check parent's explicit implementations
181         of interface methods (fixes bug #79125).
182
183 2006-08-19  Miguel de Icaza  <miguel@novell.com>
184
185         * filewatcher.c: Avoid warnings when building, do not redefine
186         constants that are defined.
187
188         Remove warnings.
189
190 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
191
192         * image.c: don't fail when the link points to an absolute path.
193
194 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
195
196         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
197         Fix CID #3.
198
199 2006-08-17  Miguel de Icaza  <miguel@novell.com>
200
201         * image.c (full_path): A new method used to obtain the actual path
202         of an assembly even in the presence of symbolic links.  
203
204         This is necessary for the case where we are running a binary that
205         has been GACed, but we are using the "published" path name
206         ($prefix/mono/1.0/blah.exe) which happens to point to the real
207         file in the GAC.
208
209         This was the source of the failure for the `xsp' command with the
210         recent AppDomain changes, as far as the runtime was concerned,
211         there were two different assemblies: $prefix/mono/1.0/blah.exe and
212         $prefix/mono/gac/blah/version/blah.exe.
213
214         (do_mono_image_open): use full path
215
216 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
217
218         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
219
220 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
221
222         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
223         domain_id is supplied. Fix CID #241 and corlib's unit tests.
224
225 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
226
227         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
228         small structures. Fixes #78990.
229
230 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
231
232         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
233
234         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
235
236 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
237
238         * appdomain.c:
239         * marshal.c: don't load all the assemblies from a domain into newly
240         created ones. The new domains might have different rules and load
241         assemblies from different locations. Fixes bug #76757.
242
243         Patch by Lluis. Conflicts resolved by Brian Crowell.
244
245 2006-08-16  Alp Toker  <alp@atoker.com>
246
247         * socket-io.c: First half of the fix for #79084.
248         Set sa_size to the length of the content, not that of the struct.
249         Don't add NULL suffix to the content, this should be done in
250         managed code if needed.
251
252 2006-08-14  Raja R Harinath  <rharinath@novell.com>
253
254         Fix part of #79012
255         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
256         mono_metadata_parse_type returns NULL.
257
258 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
259
260         * normalization-tables.h : new file for string normalization data.
261         * locales.c, locales.h, icall.c :
262           added load_normalization_resource() for string normalization,
263           and icall as well.
264         * Makefile.am : added normalization-tables.h to the sources.
265
266 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
267
268         * marshal.c: Add more helper functions to reduce code duplication and use them
269         everywhere.
270
271 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
272
273         * marshal.c: Fix non-x86 stdcall warnings.
274         
275         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
276         them everywhere.
277
278 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
279
280         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
281         type check on multi-dimensional arrays. Fixes #79000.
282
283 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
284
285         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
286         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
287         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
288         * class-internals.h: add is_com_object to class structure.
289         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
290         null checks to COM object marshalling. Fix .ctor call on RCW.
291         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
292         
293         All code is contributed under the MIT/X11 license.
294
295 2006-08-09  Dick Porter  <dick@ximian.com>
296
297         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
298         racing mono_monitor_allocator_lock() somewhere, so don't delete
299         the critical section for now.  Found by running and exiting
300         monodevelop.
301
302 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
303
304         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
305         (ves_icall_System_ComObject_FindInterface): Ditto.
306         (ves_icall_System_ComObject_CacheInterface): Ditto.
307
308         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
309         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
310
311 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
312
313         * threadpool.c: treat pipes from process asynchronous reads as sockets
314         when reading from them, so we get select/poll or epoll to wait for
315         data.
316
317 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
318
319         * loader.c: Fix a typo (CID #233) in the null check.
320
321 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
322
323         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
324         Hopefully fixes #78949.
325         
326         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
327         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
328         bytes. Fixes #78972.
329
330 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
331
332         * filewatcher.c: we need to set errno here.
333
334 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
335
336         * filewatcher.c: let Win32Exception get the error value.
337
338 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
339
340         * filewatcher.c: translate errno into win32 errors for Win32Exception
341         to know what happened.
342
343 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
344
345         * threadpool.c: Fix more warnings.
346
347         * assembly.c (search_loaded): Fix warnings.
348
349         * threadpool.c (mono_thread_pool_finish): Fix warnings.
350         (mono_async_invoke): Ditto.
351
352 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
353
354         * object.c (mono_remote_class_vtable): Need to create proxy vtable
355         entries for __ComObject type in addition to ComImport types.
356         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
357         about hash table.
358         
359         All code is contributed under the MIT/X11 license.
360
361 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
362
363         * image.c: avoid tentative loading of modulerefs that contain
364         no metadata (P/Invoke library names).
365
366 2006-07-28  Dick Porter  <dick@ximian.com>
367
368         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
369         mono_loader_lock() somewhere, so don't delete the critical section
370         for now.  Found by running and exiting monodevelop.
371
372 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
373
374         * filewatcher.c: define the inotify syscalls when we're building on
375         linux and have sys/syscall.h. The build system might not have support
376         for inotify but the target system might have it.
377
378 2006-07-26  Miguel de Icaza  <miguel@novell.com>
379
380         * domain.c: Documentation updates.
381
382         * loader.c (mono_free_method): Do not release the method
383         information if we are being profiled, as profilers will use this
384         information at shut down to present some data to the user.
385
386         This is needed so that the profiler does not crash, as the
387         profiler tends to keep MonoMethods around, and they might become
388         invalid if we free these.
389
390         (mono_get_method_constrained): Return the original CIL stream
391         method as well, so verification can be performed against it.
392
393 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
394
395         * filewatcher.[ch]: support for inotify file system watcher.
396         * icall.c: add new internal calls for the inotify file system watcher.
397
398 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
399
400         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
401         #78888.
402
403 2006-07-20  Dick Porter  <dick@ximian.com>
404
405         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
406         warning.
407
408 2006-07-20  Dick Porter  <dick@ximian.com>
409
410         * threads.c (start_wrapper): Do the thread cleanup while we still
411         hold a reference to its object.  Fixes bug 78123.
412
413 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
414
415         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
416         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
417           "managed-to-managed".
418         * icall.c: Redirect string constructors that take sbyte* to
419           ves_icall_System_String_ctor_RedirectToCreateString.
420         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
421           to CreateString () methods with matching signature.
422         * reflection.c: Use original security informations for
423           MONO_WRAPPER_MANAGED_TO_MANAGED.
424         * security-manager.c: Use original security informations for
425           MONO_WRAPPER_MANAGED_TO_MANAGED.
426         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
427           that is a placeholder and only its address should be used.
428         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
429           that is a placeholder and only its address should be used.
430
431 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
432
433         Begin implementing COM Interop.
434         * appdomain.c: Increment corlib version.
435         * class.c: Set ComImport classes' parent to __ComObject.
436         * loader.c: Mark cominterop methods as such.
437         * domain.c: Add __ComObject class to MonoDefaults structure.
438         * image.c: Add 2 hashtables to the image for COM Interop related methods
439         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
440         using the mempool allocator
441         
442         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
443         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
444         declaration for mono_metadata_type_dup_mp.
445         
446         * debug-helpers.c: Added strings for two additional wrapper types
447         * object.c: Create proxy objects for ComImport classes
448         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
449         and added __ComObject class to MonoDefaults structure.
450         
451         * object-internals.h: Finish MonoRealProxy definition, and add definition of
452         MonoComInteropProxy and MonoComObject.
453         
454         * marshal.c: Added support for COM Interop
455         (signature_cominterop): Converts managed signature to corresponding
456         unmanaged COM signature.
457         (cominterop_get_function_pointer): gets unmanaged function pointer via
458         COM object vtable
459         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
460         (cominterop_get_method_interface): returns interface type that method is defined on
461         (mono_mb_emit_cominterop_call): emits native call to function pointer
462         gotten from vtable
463         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
464         that matches signature of unmanaged function.
465         (cominterop_get_native_wrapper): wrapper around adjusted method call.
466         (cominterop_get_invoke): forwards call from proxy to __ComObject
467         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
468         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
469         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
470         
471         * marshal.h: Added Marshal icall declarations.
472         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
473         so we can access them in finalizer
474         
475 2006-07-14  Dick Porter  <dick@ximian.com>
476
477         * object.c (mono_type_initialization_cleanup): Fix a race
478         condition by temporarily commenting out the critical section
479         deletion.
480
481 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
482
483         * reflection.c (create_custom_attr): Fix some warnings.
484         (create_custom_attr_data): Ditto.
485         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
486         types. Fixes #78855.
487
488 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
489
490         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
491
492         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
493
494 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
495
496         * reflection.c (resolve_object): Add support for DynamicMethod.
497
498         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
499         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
500
501 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
502
503         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
504         don't leak GPtrArray's pdata has we have no use (nor free) for it.
505
506 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
507
508         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
509         Fixes #77888.
510
511 2006-06-30  Raja R Harinath  <rharinath@novell.com>
512
513         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
514         slightly: remove a shadow local variable.
515
516 2006-06-29  Raja R Harinath  <rharinath@novell.com>
517
518         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
519         definition that introduces the virtual function slot.
520         Also fix Coverity #105.
521
522 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
523
524         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
525         for dynamic assemblies. Fixes #78724.
526
527 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
528
529         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
530         Fixes #78722.
531
532 2006-06-21  Martin Baulig  <martin@ximian.com>
533
534         * reflection.c
535         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
536         fixes #76484.
537
538 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
539
540         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
541
542 2006-06-20  Raja R Harinath  <rharinath@novell.com>
543
544         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
545         nor TYPEREFs.
546         * class.c (mono_class_create_from_typespec): Add 'context' argument.
547         Inflate result if necessary.
548         (mono_class_get_full): Remove old version.  Rename from
549         'mono_class_get' and add 'context' argument.  Pass it to
550         ..._create_from_typespec.
551         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
552         (mono_ldtoken): Revert change below.
553
554 2006-06-20  Martin Baulig  <martin@ximian.com>
555
556         * class.c (mono_ldtoken): Don't pass the generic context to
557         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
558
559 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
560
561         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
562         and later freeing it. Fixes #78638.
563
564 2006-06-15  Miguel de Icaza  <miguel@novell.com>
565
566         * icall.c (mono_class_get_throw): Revert over-zealous error
567         throwing, the caller for mono_class_get_throw will cope with
568         errors when classes are not properly initialized already.
569
570         The code still copes with loader exceptions though.
571
572         Fixes the regression in reftype1 and reftype3 from the CAS tests.
573         
574 2006-06-14  Miguel de Icaza  <miguel@novell.com>
575
576         Fixes the `make run1' version of RuntimeAbort (to be commited,
577         source is in Bugzilla).
578         
579         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
580         FALSE on class loading failure instead of returning true.
581
582         * class.c (mono_class_create_from_typedef): It is possible for
583         mono_metadata_interfaces_from_typedef_full to fail if a class is
584         not found, cope with this.
585         
586
587 2006-06-14  Dick Porter  <dick@ximian.com>
588
589         * socket-io.c: 
590         * process.c: Fix a bunch of signed/unsigned warnings from gcc
591         4.1.1
592
593 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
594
595         * culture-info-table.h : oops, forgot to make it nsync with r61548.
596
597 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
598
599         * icall.c: Another fix for building mono in Visual Studio.
600
601 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
602
603         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
604         
605 2006-06-09  Martin Baulig  <martin@ximian.com>
606
607         * debug-mono-symfile.c: Put this back and really fix it this
608         time. Sorry for all the trouble.
609
610 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
611
612         * icall.c (mono_class_get_throw): Fix a warning.
613         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
614         ReflectionTypeLoadException if needed. Fixes #78606.
615
616         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
617         (mono_class_init): Ditto.
618
619         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
620         ref_only exceptions.
621         (mono_loader_clear_error): Make this work even if there is no error.
622
623 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
624
625         * object-internals.h marshal.c marshal.h icall.c: Implement method 
626         Marshal.GetComSlotForMethodInfo using internal call.
627
628 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
629
630         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
631         a function for signalling it.
632
633         * class.c (mono_class_from_typeref): Use the new kind of loader error when
634         a referenced assembly is not found.
635
636         * loader.c (mono_loader_error_prepare_exception): Add support for 
637         LOADER_ERROR_ASSEMBLY. Fix formatting.
638
639 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
640
641         * domain.c appdomain.c class-internals.h marshal.c: Add support 
642         for VARIANT marshalling on windows and increment corlib version
643         since Variant struct was added.
644
645 2006-06-03  Miguel de Icaza  <miguel@novell.com>
646
647         * debug-mono-symfile.c: Revert Martin's previous patch which broke
648         stack trace line information:
649
650         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
651         (Martin) when looking up B which is between A and C, return A not C.
652
653         Bug is #78573.
654
655         Thanks to Alexander Olk for tracking this down.
656
657 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
658
659         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
660         
661         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
662         avoid clobbering its value.
663         (mono_string_to_lpstr): Fix a warning on windows.
664
665 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
666
667         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
668
669         * reflection.c loader.c: Removed references to 'dummy' flag.
670
671         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
672
673         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
674         it gets GC tracking.
675
676         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
677         GC tracking.
678         
679         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
680
681         * marshal.c threadpool.c: Update callers of mono_async_result_new.
682
683         * appdomain.c: Bump corlib version.
684
685 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
686
687         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
688         CEE_STIND_REF when working with object references.
689
690 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
691
692         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
693         Fixes #78539.
694
695 2006-05-30  Miguel de Icaza  <miguel@novell.com>
696
697         * loader.c (method_from_memberref): Fix argument value for
698         mono_loader_set_error_method_load (I was passing the MonoClass
699         instead of the class name char *).
700
701 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
702
703         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
704         CEE_STIND_REF when working with object references.
705
706 2006-05-30  Martin Baulig  <martin@ximian.com>
707
708         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
709         mono_method_full_name() change and replace the ':' with a '.'
710         here.
711
712 2006-05-30  Martin Baulig  <martin@ximian.com>
713
714         * debug-mono-symfile.c
715         (mono_debug_symfile_lookup_location): Fix the algorithm:
716         when looking up B which is between A and C, return A not C.
717
718 2006-05-29  Martin Baulig  <martin@ximian.com>
719
720         * mono-debug.h
721         (MonoDebugMethodInfo): Make the typedef public.
722         (MonoDebugSourceLocation): New public struct.
723
724         * mono-debug.c
725         (mono_debug_source_location_from_address): Removed.
726         (mono_debug_source_location_from_il_offset): Removed.
727         (mono_debug_il_offset_from_address): Removed.
728         (mono_debug_address_from_il_offset): Removed.
729         (mono_debug_lookup_method): New public function.
730         (mono_debug_lookup_source_location): New public function; replaces
731         the old mono_debug_source_location_from_*() functions; see the
732         inline documentation.
733         (mono_debug_free_source_location): New public function.
734         (mono_debug_print_stack_frame): New public function; see the
735         inline documentation.
736
737         * debug-mono-symfile.c
738         (mono_debug_find_source_location): Renamed into
739         mono_debug_symfile_lookup_location(); only take a
740         `MonoDebugMethodInfo *' and an `offset' argument; added inline
741         documentation.
742         (mono_debug_find_method): Renamed into
743         mono_debug_symfile_lookup_method().
744
745 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
746
747         * assembly.c (mono_assembly_open_full): Dont overwrite the status
748         returned by mono_image_open_full ().
749
750         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
751         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
752         #78517.
753
754         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
755         #78518.
756
757 2006-05-27  Miguel de Icaza  <miguel@novell.com>
758
759         * class.c (mono_class_from_typeref): handle missing images
760         earlier, deals with bug #78418.   Refactor code; 
761
762         Fix a warning introduced in my previous commit (some stale code
763         from before I revisited my patch).
764
765         * class.c (mono_class_create_from_typedef): On failure, remove the
766         class from the MonoImage->class_cache as the class is not
767         initialized;   Fixes the leak pointed out by Paolo.
768
769 2006-05-25  Dick Porter  <dick@ximian.com>
770
771         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
772         DeleteCriticalSections until I figure out which one may still be
773         sometimes locked when mono_thread_cleanup is called.
774
775 2006-05-24  Dick Porter  <dick@ximian.com>
776
777         * threads.c (mono_thread_cleanup): Move the threading cleanup out
778         of mono_thread_manage and back into its own function, so it can be
779         called after the finalizer thread has finished.
780
781         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
782
783 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
784
785         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
786         Fixes #78495.
787
788         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
789         with non-blittable elements.
790         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
791
792 2006-05-24  Martin Baulig  <martin@ximian.com>
793
794         * mono-debug-debugger.h (MonoDebuggerEvent): Added
795         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
796
797         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
798         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
799         `mono_debugger_event_handler' to NULL.
800
801 2006-05-24  Martin Baulig  <martin@ximian.com>
802
803         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
804
805 2006-05-24  Martin Baulig  <martin@ximian.com>
806
807         * mono-debug-debugger.h
808         (mono_debugger_create_notification_function): Added
809         `MonoCodeManager *' argument.
810
811 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
812
813         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
814
815 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
816
817         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
818         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
819         implementation.
820
821 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
822
823         * icall.c: precise GC support: objects can't be stored in unmanaged
824         memory anymore, even if they are kept alive by other references: since
825         they can move the GC needs to be able to always find them.
826
827 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
828
829         * object.c: precise GC support for static fields. Support
830         for moving GCs: write barriers and pinned allocation for interned
831         strings.
832
833 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
834
835         * domain.c, domain-internals.h: precise GC support for the MonoDomain
836         structure.
837
838 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
839
840         * class.c, gc.c: sgen and precise GC updates.
841
842 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
843
844         * marshal.h, marshal.c: added write barrier wrapper and precise type
845         fixes.
846
847 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
848
849         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
850         support.
851
852 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
853
854         * reflection.c: precise and sgen GC updates.
855
856 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
857
858         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
859
860 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
861
862         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
863
864 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
865
866         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
867         MONO_TYPE_OBJECT. Fixes #78462.
868
869 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
870
871         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
872         and blittable types.
873
874 2006-05-17  Miguel de Icaza  <miguel@novell.com>
875
876         * class.c (mono_class_get_exception_for_failure): Implement parts
877         of a TODO: if the loader error is set (instead of the class
878         error), we return a Loader exception that can be properly thrown
879         elsewhere.
880
881         This was exposed by some Winforms 2.0 code that I tried to run
882         (Atsushi pointed me to it).
883
884 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
885
886         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
887         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
888         
889         * marshal.c (emit_marshal_vtype): Add limited support for 
890         UnmanagedType.LPStruct. Fixes #78427.
891
892         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
893         Applied a patch from kangaroo to fix #77523.
894
895 2006-05-17  Martin Baulig  <martin@ximian.com>
896
897         * threads.c
898         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
899         (debugger_thread_created): Removed.
900         (debugger_thread_exited): Removed.
901
902 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
903
904         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
905
906         * object-internals.h (MonoReflectionResource): Sync with managed version.
907
908 2006-05-12  Wade Berrier <wberrier@novell.com>
909
910         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
911
912 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
913
914         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
915         functions try to allocate from the image mempool.
916
917 2006-05-12  Dick Porter  <dick@ximian.com>
918
919         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
920
921 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
922
923         * object.c: The FieldGetter and FieldSetter methods require the full
924         name of the class, not only the name. Fixes bug #78277.
925
926 2006-05-11  Miguel de Icaza  <miguel@novell.com>
927
928         * loader.c (method_from_memberref): Do not pass the NULL klass to
929         mono_loader_set_error_() methods.  Pass the non-NULL value
930         (class). 
931
932 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
933
934         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
935         (mono_assembly_close): Null out assembly->image->references after freeing it.
936
937         * image.c (mono_image_close): Free image->references.
938         
939         * reflection.c (mono_image_basic_init): Fix a small memory leak.
940
941 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
942
943         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
944         before checking if it's NULL (g_assert).
945
946 2006-05-10  Martin Baulig  <martin@ximian.com>
947
948         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
949         I thought I already killed that two months ago, but now it somehow reappeared.
950
951 2006-05-10  Martin Baulig  <martin@ximian.com>
952
953         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
954
955 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
956
957         * reflection.c: Allocate memory for dynamically created methods in the image
958         mempools.
959
960 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
961
962         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
963         don't use the ad pointer before checking if it's NULL (g_assert).
964
965 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
966
967         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
968         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
969
970         * marshal.c: Allocate all signatures from mempools.
971
972         * marshal.c: Allocate some more signatures from mempools.
973
974 2006-05-09  Miguel de Icaza  <miguel@novell.com>
975
976         * object.c (mono_load_remote_field): The code used to provide a
977         temporary variable for returning results if the user did not
978         provide a result pointer.  But our temporary variable was allocted
979         on the satck.
980
981         Fix calling code to always pass a result area.   Coverity ID 103.
982
983 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
984
985         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
986         value, not the old. Fixes #78312.
987         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
988
989         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
990         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
991         per-image cache.
992
993         * assembly.c (mono_assembly_close): Free image->references.
994
995         * assembly.c (mono_assembly_names_equal): Fix a warning.
996         (mono_assemblies_cleanup): Cleanup more global data.
997
998         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
999
1000         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
1001         ptr_cache and image->modules.
1002
1003         * image.c (mono_image_init): Allocate array_cache lazily.
1004         
1005 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1006
1007         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
1008         behavior was changed recently and has bad side effects.
1009
1010 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
1011
1012         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
1013         
1014         * assembly.c (mono_assembly_close): Remove a debug printf.
1015
1016         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
1017
1018         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
1019         to also allow for temporary references between mono_image_open ()/close ().
1020
1021         * domain.c (get_runtimes_from_exe): Add a FIXME.        
1022
1023 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
1024
1025         * marshal.c: Fix support for dynamic methods.
1026
1027         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
1028
1029         * marshal.c (mono_marshal_cleanup): New cleanup function.
1030
1031         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
1032         image mempools.
1033
1034         * class.c (mono_class_init): Fix leaking class->nested_classes.
1035
1036         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
1037
1038         * image.c (mono_image_init): Initialize the new cashes.
1039
1040         * image.c (mono_image_close): Destroy the new cashes.
1041
1042         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
1043
1044         * mempool.c (mono_mempool_strdup): New helper function.
1045
1046         * class-internals.h: Add prototype for mono_loader_unlock ().
1047
1048         * domain.c (mono_jit_info_table_find): Fix a warning.
1049         (mono_debugger_check_runtime_version): Ditto.
1050
1051         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
1052         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
1053         functions to these modules.
1054
1055         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
1056         metadata modules.
1057         
1058         * marshal.c (mono_free_bstr): Fix a warning.
1059
1060         * assembly.c (mono_assembly_open_full): Fix another small leak.
1061
1062         * object.c: Fix some unload leaks in the remoting code.
1063
1064         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
1065         function.
1066
1067         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
1068
1069         * reflection.c: Fix some unload leaks in dynamic assemblies.
1070
1071 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
1072
1073         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
1074         * marshal.h: Add BSTR support on Win32
1075         * icall.c: Add BSTR icalls
1076         * metadata.h: Add BSTR enums
1077
1078 2006-04-28  Miguel de Icaza  <miguel@novell.com>
1079
1080         Work to catch the crash from #76795 and turn it into an
1081         exception.   As I stubbed out pieces of the VisualBasic support,
1082         I found a number of places where the code was failing and I added
1083         checks to those places. 
1084         
1085         * metadata.c (do_mono_metadata_parse_generic_class): Make this
1086         function return a status code.  If we fail to parse the signature
1087         from mono_metadata_parse_generic_inst, return FALSE.
1088
1089         * loader.c (mono_get_method_from_token): If we fail to load the
1090         method (mono_class_get) return NULL.   
1091
1092         * (method_from_memberref): Return NULL if we are unable to parse
1093         the method signature
1094
1095         (mono_loader_error_prepare_exception): Since we now use the
1096         loader_error flag internally to stop processing, and obtaining
1097         exceptions that might be thrown will walk this code path the
1098         proper way of going from a MonoLoaderError into a
1099         MonoException was convoluted.   This new routine encapsulates the
1100         process of turning the error into an exception and *clearing* the
1101         error afterwards.
1102         
1103 2006-04-27  Miguel de Icaza  <miguel@novell.com>
1104
1105         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
1106         with missing assemblies), and to cope with:
1107
1108                 * Missing fieldref from a non-existing assembly.
1109                 * Missing methodref from a non-existing assembly.
1110
1111         The first batch of work to address *some* of the issues from 76661.
1112         
1113         * object.c (mono_class_create_runtime_vtable): If we fail to
1114         initialize the class raise the exception here. 
1115
1116         * metadata.c (mono_class_get_overrides_full): If any methods fail
1117         to load return the failure to the caller.
1118
1119         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
1120         flagging assemblies that failed to load.   
1121
1122         Do not crash if we are unable to load the assembly.
1123
1124         (mono_assembly_close): Do nothing with REFERENCE_MISSING
1125         assemblies. 
1126
1127         * loader.c (mono_loader_set_error_type_load): Change the
1128         convention to always pass unallocated strings, so we make our own
1129         copies (I know our own code had duplicated strings before, but
1130         this keeps the normal conventions).
1131         (method_from_memberref): Call mono_loader_set_error_method_load
1132         for all possible failures of loading the class. 
1133         Remove assert, turn into a loader error.
1134
1135         (mono_loader_error_to_exception): Move this routine from mini
1136         (mini_loader_error_to_exception) there was no need to have that in
1137         mini. 
1138
1139         * class.c (mono_class_from_typeref): If we were not able to load
1140         the assembly with mono_assembly_load_reference, call the
1141         mono_loader_set_error_type_load to register the problem.
1142
1143         (mono_class_setup_fields): If we fail to load the type from
1144         mono_metadata_parse_type_full, call mono_class_set_failure and
1145         break from the loop.
1146
1147         If class->exception_type is set, we do not layout the fields as
1148         that might crash the runtime, and instead return (from breaking
1149         from the previous loop).
1150
1151         (mono_class_setup_vtable): This now returns a boolean indicating
1152         whether the table was properly setup.   The decision is driven by
1153         mono_class_get_overrides_full which might run into non-existing
1154         methods. 
1155         
1156         (mono_class_init): Returns TRUE on success or FALSE if there was a
1157         problem in loading the type (incorrect assemblies, missing
1158         assemblies, methods, etc).
1159
1160         When we call mono_class_setup_fields we also check for a potential
1161         error inside this call (either a class exception or a general
1162         loader exception).
1163
1164         (mono_class_create_from_typedef): If the parent fails to load
1165         (calling mono_class_get_full) return NULL.
1166         
1167         ** Important **
1168
1169         calls to mono_metadata_parse_type_full should be checked
1170         everywhere and set the mono_class_set_failure
1171         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
1172
1173         The current patch checks the places where my manually constructed
1174         tests show the errors are showing up, but we should do it
1175         everywhere. 
1176
1177         ** Important2 **
1178
1179         mono_class_init return values should be tested everywhere, like
1180         the previous case this is something that we should audit
1181         everywhere and not only on the cases exposed by the tests I
1182         created. 
1183
1184 2006-04-26  Miguel de Icaza  <miguel@novell.com>
1185
1186         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
1187         boolean parameter and instead pass the information on `options'
1188         parameter (FileOptions).
1189
1190         * icall.c: Register the new signature for MonoIO.Open.
1191
1192         * debug-helpers.c (dis_one): Trying to understand how coverity
1193         works.  Fix Run 5, item 78.
1194
1195 2006-04-26  Dick Porter  <dick@ximian.com>
1196
1197         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
1198         dereference.
1199
1200 2006-04-25  Martin Baulig  <martin@ximian.com>
1201
1202         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
1203
1204         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
1205         debugger_thread_created().
1206         (debugger_gc_push_all_stacks): Don't handle the main thread in any
1207         special way.
1208         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
1209         (mono_debugger_finalize_threads): New function; undo the effects
1210         of mono_debugger_init_threads().
1211         (mono_debugger_create_all_threads): Removed.
1212
1213 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
1214
1215         * image.c (mono_image_close): Tidy up trace messages.
1216
1217         * assembly.c (mono_assembly_close): Ditto.
1218
1219         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
1220         no longer references an already freed assembly. Fixes #78168.
1221
1222 2006-04-21  Dick Porter  <dick@ximian.com>
1223
1224         * threads.c (mono_thread_detach): Fix reference counting when
1225         detaching threads.
1226
1227 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
1228
1229         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
1230         #78155.
1231
1232 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
1233
1234         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
1235         (mono_type_to_stind): Ditto.
1236
1237         * marshal.c: Use the new helper functions to simplify code.
1238
1239         * image.c (mono_image_close): Add some code for help debug assembly unloading
1240         problems.
1241
1242         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
1243         image mempool.
1244
1245         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
1246         assembly was already loaded in another appdomain. Fixes #78083.
1247
1248 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
1249
1250         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
1251         referenced assemblies.
1252         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
1253
1254         * domain.c (mono_domain_free): Add a trace message.
1255
1256         * appdomain.c (add_assemblies_to_domain): Ditto.        
1257
1258         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
1259         field.  
1260
1261 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1262
1263         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
1264
1265 2006-04-12  Martin Baulig  <martin@ximian.com>
1266
1267         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
1268         `USE_INCLUDED_LIBGC'.   
1269
1270 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1271
1272         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
1273         the patch contains ../ and a small directory name later. Hopefully fixes
1274         #78035.
1275
1276 2006-04-10  Martin Baulig  <martin@ximian.com>
1277
1278         Clean up the debugger's thread-handling code.
1279
1280         The debugger's thread-handling code has been moved from
1281         ../mini/debug-debugger.c to threads.c.  We now iterate directly
1282         over the `threads' hash, keep track of exiting threads and also
1283         use proper locking.
1284
1285         We can now debug XSP and XSP based applications with the debugger.
1286
1287         * object-internals.h (MonoThread): Added `gpointer end_stack'.
1288
1289         * threads.h
1290         (MonoThreadCallbacks): Removed; this was only used by the debugger.
1291         (mono_install_thread_callbacks): Likewise.      
1292
1293         * threads.c (mono_thread_callbacks): Removed.
1294         (debugger_thread_created, debugger_thread_exited): New static functions.
1295         (start_wrapper): Call debugger_thread_created().
1296         (thread_cleanup): Call debugger_thread_exited().
1297         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
1298         (mono_debugger_init_threads): New public function.
1299         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
1300         iterate directly over the `threads' hash and also use proper locking.
1301
1302         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
1303
1304         * mono-debug-debugger.h
1305         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
1306
1307 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
1308
1309         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
1310         argument type=array. Fixes #78057.
1311
1312 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
1313
1314         * culture-info-table.h : regenerated. Fixed bug #69652.
1315
1316 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
1317
1318         * loader.c metadata.c: Reapply a variant r59116.
1319         
1320         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
1321
1322         * class.c (mono_class_setup_interface_offsets): New internal function.
1323
1324         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
1325         interfaces too. Fixes #77398.
1326
1327         * reflection.c (encode_cattr_value): Add support for 
1328         parameter type=object, argument type=array.
1329         (load_cattr_value): Ditto. Fixes #77916.
1330
1331         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
1332         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
1333
1334         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
1335         a byval char array and CharSet is Ansi.
1336
1337         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
1338
1339 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
1340
1341         * metadata.c: Add some locking comments.
1342         
1343         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
1344         mempool.
1345         (mono_metadata_free_method_signature): Don't free the signature itself.
1346
1347         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
1348
1349         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
1350         reference the same MonoImage.
1351         (mono_assembly_load_from_full): Add an assert.
1352
1353 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
1354
1355         * image.c (mono_image_close): Don't put the image we are about to free into the
1356         loaded_images_guid_hash.
1357
1358         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
1359         to reduce code duplication.
1360
1361         * marshal.c: Register the native functions called by this module as icalls, to
1362         somewhat centralize the creation of MonoMethodSignature's.
1363
1364         * loader.c (mono_method_signature): Add a cache for method signatures.
1365
1366         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
1367         the parameter attributes of a method.
1368         (mono_metadata_parse_method_signature_full): Refactored the computation of
1369         parameter attributes into a separate function. Also avoid one allocation in
1370         most cases.
1371
1372         * assembly.c (mono_assembly_close): Ditto.
1373
1374         * image.c (mono_image_close): Log trace messages with INFO level.
1375
1376         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
1377
1378         * image.c reflection.c: Correct reference counting of image modules.
1379         
1380         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
1381         of this function from the image mempool.
1382         
1383         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
1384         to allow more cached types to be used.
1385
1386         * mono-debug.c (mono_debug_add_method): Appled patch from
1387         David S. Miller  <davem@sunset.davemloft.net>: Access 
1388         minfo->lexical_blocks[] entry elements using read32().
1389
1390 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
1391
1392         * loader.c (mono_free_method): No longer free the method header for non-dynamic
1393         methods as it is allocated from the mempool.
1394
1395         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
1396         image mempool.
1397
1398         * metadata-internals.h: Add comments describing the reference counting scheme
1399         used for MonoImage and MonoAssembly.
1400
1401         * image.c assembly.c reflection.c: Rework reference counting of images and 
1402         assemblies so they are freed when the runtime is shut down. Free some 
1403         additional memory structures when an image is unloaded.
1404         
1405 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
1406
1407         * class.c loader.c reflection.c: Allocate more data structures in
1408         the image mempool.
1409
1410 2006-03-31  Miguel de Icaza  <miguel@novell.com>
1411
1412         * icall.c
1413         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
1414         build on pre glib 2.4 systems.
1415
1416 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
1417
1418         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
1419
1420         * icall.c: Fix some warnings.
1421
1422 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
1423
1424         * culture-info-table.h : regenerated.
1425
1426 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
1427
1428         * threads.c, object-internals.h, verify.c: changed the culture caching
1429         code to use a normal MonoArray for storage so the GC can keep track of
1430         them easily. Fixed bits of the cache logic, too and simplified the
1431         code.
1432
1433 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
1434
1435         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
1436         thread for non-Boehm GCs.
1437
1438 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1439
1440         * domain.c, object.c, domain-internals.h: reduce the amount of memory
1441         needed to keep track of the data for static fields.
1442
1443 2006-03-29  Raja R Harinath  <rharinath@novell.com>
1444
1445         Fix #75172
1446         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
1447         for interface classes.  Use 'num_methods' instead.
1448         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
1449         before using '->vtable_size' field.
1450
1451 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1452
1453         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
1454         doesn't contain managed pointers, so use a normal hashtable.
1455
1456 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1457
1458         * reflection.c, class-internals.h, domain.c: fixed handling of types
1459         used as values for objects in custom attributes (bug #77915):
1460
1461 2006-03-24  Martin Baulig  <martin@ximian.com>
1462
1463         * class.c (mono_class_setup_fields): Added support for generic
1464         instances; fixes #77580.
1465
1466 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1467
1468         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
1469
1470 2006-03-24  Dick Porter  <dick@ximian.com>
1471
1472         * file-io.c (get_file_attributes): More stat macro breakage.
1473         Fixes bug 77759.
1474
1475 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
1476
1477         * profiler.c: added the file=filename option in the default profiler
1478         to output the profile data to filename.
1479
1480 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1481
1482         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
1483         bug #77877.
1484
1485 2006-03-22  Martin Baulig  <martin@ximian.com>
1486
1487         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
1488         allocated `MonoClassField *' in `fb->handle'.
1489
1490 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1491
1492         * class.c, image.c, metadata-internals.h: implemented new mechanism to
1493         allocate interface ID to save memory and allow better ID reuse on
1494         appdomain unload. setup_generic_vtable () removal from Martin.
1495
1496 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1497
1498         * object.h, appdomain.c, domain.c, exception.c, icall.c,
1499         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
1500         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
1501         write barriers for reference stores with managed objects accessed with
1502         C structures in the runtime and in embedding programs.
1503
1504 2006-03-20  Raja R Harinath  <rharinath@novell.com>
1505
1506         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
1507         'interface_id' and 'max_interface_id' fields of MonoClasses
1508         representing open generic types.
1509
1510 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
1511
1512         * object.h, object.c, icall.c: added functions to deal with
1513         storing valuetypes that contain references in managed objects.
1514         * reflection.c, string-icalls.c, threads.c, marshal.c: small
1515         fixes and comments around uses of mono_array_addr ().
1516
1517 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
1518
1519         * object.h, icall.c, monitor.c: object.GetHashCode ()
1520         implementation that supports the moving garbage collector.
1521
1522 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
1523
1524         * icall.c, threads-types.h, threads.c: implemented finalizer for
1525         LocalDataStoreSlot.
1526
1527 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1528
1529         * metadata.c (mono_type_size): Add a fixme.
1530         (mono_type_stack_size): Ditto.
1531
1532         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
1533         'type_forwarders' field.
1534
1535         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
1536         attribute from net 2.0.
1537
1538         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
1539         from class.c.
1540
1541         * class.c (mono_class_setup_fields): Fix a warning.
1542         
1543         * class.c (mono_class_from_name): Add support for assemblyref entries
1544         in the EXPORTEDTYPE table.
1545
1546         * reflection.c: Add support for handling type forwarders under net 2.0.
1547
1548         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
1549         
1550 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
1551
1552         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
1553         overwriting entries in ModuleBuild->types, also clean up the code
1554         a little. Fixes #77774.
1555
1556 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
1557
1558         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
1559         load friend assembly info when present.
1560
1561 2006-03-14  Raja R Harinath  <rharinath@novell.com>
1562
1563         Fix crasher on gtest-158.cs.
1564         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
1565         the return value if the MonoClass we want is yet in an
1566         inconsistent state.
1567         * class.c (mono_class_create_from_typedef): Add an comment
1568         explaining an order dependency between mono_class_setup_parent and
1569         mono_class_setup_mono_type.
1570
1571 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
1572
1573         * class.c: documentation updates and events bug fix.
1574
1575 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1576
1577         * class.c: some cleanup, locking fixes.
1578
1579 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
1580
1581         * class.c: fix the generics code to setup nested
1582         type info to the instantiated type (bug #77770).
1583
1584 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1585
1586         * marshal.c: fixed a few type correctness issues.
1587
1588 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1589
1590         * loader.c: the Set/Get/Addrtess array methods should be public.
1591
1592 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
1593
1594         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
1595         
1596         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
1597         info->wrapper.
1598
1599 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
1600
1601         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
1602
1603         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
1604
1605         * mempool.c (mono_mempool_alloc): Speed this up a bit.
1606         (mono_mempool_alloc0): Ditto.
1607
1608 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1609
1610         * socket-io.c:
1611         (create_object_from_sockaddr): it was allocating 4 extra bytes
1612         for the AF_UNIX data. Fixes bug #77747.
1613
1614 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
1615
1616         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
1617
1618 2006-03-09  Dick Porter  <dick@ximian.com>
1619
1620         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
1621         Fixes bug 76966 again.
1622
1623 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
1624
1625         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
1626         names from r57532
1627         * appdomain.c: Bumped corlib version to 48 (due to r57532)
1628
1629 2006-03-07  Martin Baulig  <martin@ximian.com>
1630
1631         * object.c
1632         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
1633
1634 2006-03-07  Martin Baulig  <martin@ximian.com>
1635
1636         * class.c
1637         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
1638         regression introduced in r56970; see gtest-252.cs.
1639
1640         * loader.c (mono_get_method_constrained): Correctly handle generic
1641         methods; see gtest-253.cs.
1642
1643 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
1644
1645         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
1646
1647 2006-03-04  Martin Baulig  <martin@ximian.com>
1648
1649         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
1650         compute the parent type at runtime, just like we're already doing
1651         it for interfaces.
1652
1653         * reflection.c
1654         (mono_reflection_bind_generic_parameters): Don't compute the
1655         parent type anymore.
1656
1657         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
1658
1659 2006-03-04  Martin Baulig  <martin@ximian.com>
1660
1661         * mono-debug-debugger.h
1662         (mono_debugger_create_notification_function): Allocate memory at
1663         runtime and return a pointer to it.
1664
1665 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1666
1667         * assembly.c: Fix windows build.
1668         
1669         * assembly.c: Fix build.
1670
1671         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1672
1673         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1674         
1675 2006-03-03  Dick Porter  <dick@ximian.com>
1676
1677         * process.c
1678         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1679         Check parameters before dereferencing them.  Fixes Aaron's part of
1680         bug 77393.
1681
1682 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1683
1684         Fix performance regression.
1685         * loader.c (find_method_in_class): Add 'from_class' argument.
1686         Rename 'klass' argument to 'in_class'.  The signature is compared
1687         against the method in 'in_class', and the corresponding method is
1688         returned from 'from_class'.
1689         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1690         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1691         type definition and generic instantiation in parallel.
1692         (mono_get_method_constrained): Update to changes.
1693
1694 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1695
1696         * threads.c: make sure the domain is correct, too when doing
1697         mono_thread_attach ().
1698
1699 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1700
1701         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1702         windows. Fixes #77683.
1703
1704 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1705
1706         * object.h, *: introduced specific way to set elements of an array
1707         of references to be used as write barrier. Still need to audit the
1708         uses of mono_array_addr.
1709
1710 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1711
1712         * object-internals.h: New field to cache the assmebly name, patch
1713         from Tambet Ingo (tambet@ximian.com)
1714
1715 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1716
1717         * decimal.h, class-internals.h, metadata-internals.h,
1718         file-io.h: mark a few function declarations as internal, to
1719         reduce the number of PLT entries.
1720
1721 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1722
1723         * file-io.c: fix typo in warning message.
1724
1725 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1726
1727         * loader.c: on unix, lookup the "*A" version of a function
1728         if charset is auto as a second option before failing.
1729
1730 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1731
1732         * class.h (mono_class_inflate_generic_method): Revert to two
1733         argument version.
1734         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1735         (mono_class_inflate_generic_method_full): Add.
1736         * class.c (mono_class_inflate_generic_method_full): Rename from
1737         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1738         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1739         * loader.c, reflection.c: Update to changes.
1740
1741 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1742
1743         * icall.c: const fixes and small improvements.
1744
1745 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1746
1747         * threadpool.c: for asynchronous connect(), enable the same workaround
1748         for BSD 6 as for the Mac. Fixes bug #77637.
1749
1750 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1751
1752         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1753         formatted classes. Fixes #77524.
1754
1755 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1756
1757         * class.c (inflate_generic_type): Add a couple more
1758         micro-optimizations.
1759         (inflate_generic_context): Don't use the 'gmethod' from
1760         'inflate_with'.
1761         (mono_class_inflate_generic_method): If the method has generic
1762         parameters, but the passed-in context doesn't have a 'gmethod',
1763         create one.  Use the possibly simplified generic instantiation
1764         from the declaring class instead of the one passed in.
1765
1766 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1767
1768         Make generic method signature and method header handling lazy.
1769         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1770         (inflate_generic_header): Likewise.
1771         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1772         parameter to avoid inflating types.
1773         (mono_get_inflated_method): Empty out.
1774         * class.h (mono_class_inflate_generic_method): Update to changes.
1775         * loader.c (mono_get_method_from_token): Don't parse signature for
1776         generic methods, nor methods of generic classes.
1777         (mono_method_signature): Rename from 'mono_method_signature'.
1778         Inflate signature on demand.
1779         (mono_method_get_header): Inflate method header on demand.
1780         * reflection.c: Update to changes.
1781
1782 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1783
1784         * metadata.c (mono_metadata_inflate_generic_inst): If the
1785         instantiation is closed, don't bother expanding it in the new
1786         context.
1787         * class.c (inflate_generic_class): If the generic instantiation
1788         doesn't change after inflation, return the argument itself.
1789         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1790         Add bounds checks.
1791         (inflate_generic_context): If neither the generic class nor the
1792         generic method instantiations change, return the original context.
1793         * reflection.c (mono_method_get_object): Do
1794         'mono_get_inflated_method' before accessing the ->klass field.
1795         (inflate_mono_method): Don't create a MonoGenericMethod unless
1796         necessary.
1797         (inflate_method): Don't pass a constructed type as the declaring
1798         type of a methodbuilder.
1799
1800 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1801
1802         * object.c: fix memory overwrite.
1803
1804 2006-02-22  Dick Porter  <dick@ximian.com>
1805
1806         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1807         it doesn't work any more.
1808         (mono_threads_request_thread_dump): Fix unused variable warnings.
1809
1810 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1811
1812         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1813         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1814         the public header file.
1815
1816 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1817
1818         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1819
1820 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1821
1822         * class-internals.h, object.c: reduce the size of MonoVTable
1823         and store the interface_offsets array at negative offsets.
1824
1825 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1826
1827         * metadata.c: tweak table descriptors data structures to reduce
1828         size and runtime relocations.
1829
1830 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1831
1832         * marshal.c: fix some types and opcodes to be type-safe
1833         in marshaling wrappers.
1834
1835 2006-02-21  Ankit Jain  <jankit@novell.com>
1836
1837         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1838
1839 2006-02-21  Raja R Harinath  <rharinath@novell.com>
1840
1841         * metadata.c (get_constraints): Relax debugging checks for monodis.
1842
1843 2006-02-21  Ankit Jain  <jankit@novell.com>
1844
1845         * metadata.c (mono_metadata_load_generic_params): Move the code
1846         checking for ambiguous generic params from here to mono/dis/get.c
1847         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
1848
1849 2006-02-21  Raja R Harinath  <harinath@gmail.com>
1850
1851         Fix assertion triggered when compiling nemerle.
1852         * class.c (mono_get_shared_generic_inst): Rename from
1853         get_shared_inst and make non-static.
1854         * loader.c (mono_get_shared_generic_method): New.  Used to create
1855         the MonoGenericContext-equivalent of a MonoGenericContainer.
1856         (mono_get_method_from_token): Initialize the 'context' field of
1857         the created MonoGenericContainer.
1858         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
1859         * metadata.c (get_constraints): Add sanity check.
1860         * class-internals.h: Add new internal methods.
1861
1862         * reflection.c (verify_safe_for_managed_space): New sanity check.
1863         Currently checks that owner-less generic parameters aren't allowed
1864         in managed space.
1865         (mono_type_get_object): Use it.
1866         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
1867         that are now in mono_type_get_object.
1868         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
1869
1870 2006-02-19  Raja R Harinath  <harinath@gmail.com>
1871
1872         * metadata.c (mono_type_create_from_typespec): Rename from
1873         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
1874         argument and caching of types in the generic container.
1875         (unwrap_arrays, find_generic_param): Remove.
1876         * metadata-internals.h: Update.
1877         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
1878
1879 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
1880
1881         * class.c (mono_class_get_exception_for_failure): Fix a warning.
1882
1883         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
1884         return values. Fixes #77581.
1885
1886         * class.c (mono_fnptr_class_get): Switch name and name_space.
1887
1888         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
1889         classes and add support for [In, Out] attributes.
1890         (mono_marshal_free_asany): Ditto. Fixes #77524.
1891
1892 2006-02-18  Raja R Harinath  <harinath@gmail.com>
1893
1894         * class.c (mono_class_from_generic_parameter): Make more robust to
1895         incomplete MonoGenericContainers from monodis.
1896
1897 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1898
1899         * class-internals.h: added some more exception types.
1900         * class.c, metadata.c: added a few checks to handle missing
1901         types.
1902
1903 2006-02-17  Raja R Harinath  <rharinath@novell.com>
1904
1905         Use owner-less generic-params some more.
1906         * class.c (my_mono_class_from_generic_parameter): Remove.
1907         (mono_class_from_generic_parameter): Handle null image,
1908         param->name and param->owner.
1909         (mono_class_from_mono_type): Update.
1910         (mono_class_create_from_typespec): Remove 'container' parameter.
1911         If that parameter is non-null, the result is always inflated by
1912         'mono_class_get_full' anyway.
1913         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
1914         parameter.
1915         (mono_class_get_full): Update.
1916
1917         * class.c (inflate_generic_type) [GENERICINST]: If the generic
1918         instance is not open, don't bother inflating.
1919         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
1920         parse metadata for inflated classes.
1921         (_mono_class_get): Change GenericContext* parameter to
1922         GenericContainer*.
1923         (mono_class_create_from_typespec): Likewise.  Simplify, and
1924         implement trivially.  All the cases are handled in
1925         mono_class_from_mono_type.  Don't inflate returned class.
1926         (mono_class_get_full): Delegate GENERICINST optimization to
1927         inflate_generic_type.
1928         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
1929
1930 2006-02-16  Dick Porter  <dick@ximian.com>
1931
1932         * socket-io.c (create_object_from_sockaddr): Fix typo.
1933         (create_sockaddr_from_object): Check array lengths before
1934         potentially accessing items off the end.
1935         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
1936         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
1937         (ves_icall_System_Net_Sockets_Socket_Send_internal)
1938         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
1939         length checks to avoid wraparound overflows.
1940         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
1941         contents of the array of sockets
1942         (hostent_to_IPHostEntry2)
1943         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
1944         Check return value of inet_ntop ().
1945         (addrinfo_to_IPHostEntry): Fix typo
1946
1947 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1948
1949         Type metadata parsing doesn't use generic-instantiation information.
1950         * metadata.c (mono_metadata_parse_array_full): Change
1951         MonoGenericContext* parameter to MonoGenericContainer*.
1952         (mono_metadata_parse_type_full): Likewise.
1953         (mono_type_create_from_typespec_full): Likewise.
1954         (mono_metadata_parse_mh_full): Likewise.
1955         (mono_metadata_parse_generic_inst): Likewise.
1956         (do_mono_metadata_parse_generic_class): Likewise.
1957         (do_mono_metadata_parse_type): Likewise.
1958         * metadata-internals.h: Update to changes.
1959         * class.c (mono_class_find_enum_basetype): Likewise.
1960         (mono_class_setup_fields): Likewise.
1961         (mono_class_create_from_typespec): Likewise.
1962         * loader.c (method_from_methodspec): Likewise.
1963         (mono_get_method_from_token): Likewise.
1964         (mono_method_get_header): Likewise.
1965
1966 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1967
1968         * marshal.c: handle additional GENERICINST case (patch from
1969         Thong Nguyen <tum@veridicus.com>).
1970         Fix a few cases where LDIND_I/STIND_I was used for references.
1971
1972 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1973
1974         * reflection.c (mono_reflection_get_token): Remove unused variable.
1975
1976 2006-02-16  Martin Baulig  <martin@ximian.com>
1977
1978         * reflection.c (mono_reflection_get_token): Add support for fields
1979         in instantiated generic types.
1980
1981         * icall.c
1982         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
1983
1984 2006-02-15  Martin Baulig  <martin@ximian.com>
1985
1986         * icall.c
1987         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
1988         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
1989         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
1990         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
1991
1992 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1993
1994         * class.c, metadata.c, metadata.h, object.c, icall.c,
1995         marshal.c: changed mono_type_get_underlying_type () to do
1996         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
1997         Fixed handling of instantiated generic valuetypes (bug #75479).
1998
1999 2006-02-15  Raja R Harinath  <rharinath@novell.com>
2000
2001         * metadata.c (mono_metadata_decode_signed_value): Simplify.
2002         Delegate to mono_metadata_decode_value, and work on the returned value.
2003
2004         * icall.c (ves_icall_MonoType_GetGenericArguments):
2005         Add consistency check here too.
2006         
2007 2006-02-15  Ankit Jain  <jankit@novell.com>
2008
2009         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
2010         char/short etc.
2011
2012 2006-02-15  Ankit Jain  <jankit@novell.com>
2013
2014         * metadata.c (mono_metadata_decode_signed_value): New function to decode
2015         signed values, used only for representing lower bounds of arrays.
2016         (mono_metadata_parse_array_full): Use new
2017         mono_metadata_decode_signed_value to decode lower bounds.
2018
2019 2006-02-14  Martin Baulig  <martin@ximian.com>
2020
2021         * reflection.c
2022         (mono_reflection_get_token): Support "MonoGenericMethod" and
2023         "MonoGenericCMethod" and allow generic instances / methods.
2024
2025 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
2026
2027         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
2028         to obtain the terminal size using an ioctl.
2029
2030         * object.c (mono_nullable_init): Revert this as nullable reference
2031         types are not valid.
2032         (mono_nullable_box): Ditto.
2033
2034 2006-02-09  Dick Porter  <dick@ximian.com>
2035
2036         * threads.c (mono_thread_detach): Drop a reference to the thread
2037         we're detaching.
2038
2039 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
2040
2041         * object.c (mono_nullable_init): Handle nullable reference types.
2042         (mono_nullable_box): Ditto. Fixes #77446.
2043
2044 2006-02-07  Martin Baulig  <martin@ximian.com>
2045
2046         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
2047
2048 2006-02-07  Ankit Jain  <jankit@novell.com>
2049
2050         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
2051         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
2052         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
2053         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
2054         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
2055         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
2056
2057 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
2058
2059         * class.c (mono_class_create_generic): Set type_token as well.
2060
2061         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
2062         compatible with MS.
2063
2064 2006-02-02  Martin Baulig  <martin@ximian.com>
2065
2066         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
2067         has never been used so far.
2068
2069 2006-02-02  Martin Baulig  <martin@ximian.com>
2070
2071         * mono-debug-debugger.h: Changed comment at the top of this file;
2072         the header is not installed, but it's safe to #include it from
2073         within the JIT.
2074
2075         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
2076         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
2077
2078 2006-02-02  Martin Baulig  <martin@ximian.com>
2079
2080         * mono-debug.h
2081         (MonoSymbolTable): Removed the `metadata_info' field.
2082
2083         * mono-debug.c
2084         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
2085
2086         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2087         (mono_debugger_add_builtin_types): Removed.
2088         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
2089         (mono_debugger_create_notification_function): We now operate on a
2090         pre-allocated area; take a `gpointer' and return `void'.
2091
2092         * mono-debug-debugger.c
2093         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
2094         (mono_debugger_add_builtin_types): Removed.
2095
2096 2006-02-02  Martin Baulig  <martin@ximian.com>
2097
2098         * threads.c (mono_debugger_create_all_threads): New public method.
2099
2100 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2101
2102         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
2103         breaks on several platforms.
2104
2105 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
2106
2107         * assembly.c: the VS.NET build doesn't supply default values for
2108         MONO_ASSEMBLIES and MONO_CFG_DIR.
2109
2110 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
2111
2112         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
2113         helper function.
2114
2115         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
2116
2117         * loader.c (method_from_memberref): Fix a warning.
2118
2119         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
2120
2121         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
2122         with explicit layout. Fixes #77433.
2123
2124 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
2125
2126         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
2127         max_interface_id is initialized before using it. Fixes #77398.
2128         (ves_icall_Type_GetInterfaces): Ditto.
2129
2130 2006-01-30  Raja R Harinath  <rharinath@novell.com>
2131
2132         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2133         allocate memory for parameter attributes when parsing memberref
2134         signatures.
2135         * loader.c (mono_loader_set_error_method_load): Don't warn.
2136         (method_from_memberref): Ensure MissingMethodException gets thrown
2137         if method is not found.  Make warning more informative.
2138
2139 2006-01-29  Raja R Harinath  <harinath@gmail.com>
2140
2141         Fix #77397
2142         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
2143         return true if is byref.
2144         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2145         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
2146         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2147
2148 2006-01-27  Raja R Harinath  <rharinath@novell.com>
2149
2150         Fix tests/find-method.2.il
2151         * loader.c (find_method, find_method_in_class): Remove is_inflated
2152         argument.  Revert 2006-01-18 change.
2153         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
2154         is generic, search for method in its generic definition.
2155         * class.c (mono_class_setup_vtable_general): Print generic
2156         arguments of generic types in debugging printf.
2157
2158 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
2159
2160         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
2161
2162         * threads.c (mono_threads_request_thread_dump): New helper function.
2163
2164 2006-01-25  Raja R Harinath  <rharinath@novell.com>
2165
2166         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
2167
2168 2006-01-25  Ankit Jain  <jankit@novell.com>
2169
2170         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
2171         move definition to ..
2172         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
2173         
2174 2006-01-25  Ankit Jain  <jankit@novell.com>
2175             Raja R Harinath  <rharinath@novell.com>
2176
2177         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
2178         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
2179         as necessary.
2180
2181 2006-01-25  Martin Baulig  <martin@ximian.com>
2182
2183         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
2184         `MonoDebuggerThread' into debug-debugger.c.
2185
2186 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
2187
2188         * profiler.c: fix printing of data.
2189
2190 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
2191
2192         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
2193           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
2194
2195 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2196
2197         * object.c: fix deadlock related to string interning.
2198
2199 2006-01-23  Martin Baulig  <martin@ximian.com>
2200
2201         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2202
2203         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
2204
2205 2006-01-23  Martin Baulig  <martin@ximian.com>
2206
2207         * mono-debug.h: Moved the prototypes of some functions which are
2208         used by the JIT here from mono-debug-debugger.h.
2209
2210 2006-01-21  Martin Baulig  <martin@ximian.com>
2211
2212         * Makefile.am: Don't install mono-debug-debugger.h.
2213
2214 2006-01-21  Martin Baulig  <martin@ximian.com>
2215
2216         * mono-debug-debugger.h: Enforce the private status of this header
2217         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
2218         Moved some stuff from mono-debugger-jit-wrapper.h here.
2219
2220 2006-01-20  Raja R Harinath  <rharinath@novell.com>
2221
2222         * class.c (mono_class_from_typeref): Add a sanity test to help
2223         catch lack of assembly load/search hooks.
2224
2225 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
2226
2227         * marshal.c (emit_struct_conv): Relax the fields with same offset
2228         check even more. Fixes #77230.
2229
2230 2006-01-18  Martin Baulig  <martin@ximian.com>
2231
2232         * loader.c (find_method_in_class): Added `gboolean is_inflated'
2233         argument; if false, we compare the uninstantiated signatures.
2234         (method_from_memberref): Compare the uninstantiated signatures;
2235         fixes #76417.
2236
2237 2006-01-18  Robert Jordan  <robertj@gmx.net>
2238
2239         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
2240         Clear the weak link. Fixes bug #77170.
2241
2242         * gc.c (mono_gchandle_free):
2243         Reflect *-gc.c changes (tiny optimization).
2244
2245 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
2246
2247         * metadata.c (mono_metadata_signature_dup): Applied patch from
2248         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
2249         Fixes #77288.
2250
2251 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
2252
2253         * marshal.c (emit_struct_conv): Allow fields with the same offset when
2254         marshalling from native to managed code. Fixes #77230.
2255
2256 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2257
2258         * threadpool.c: fix problem (Mac only) when more than one asynchronous
2259         connect. Fixes bug #77020.
2260
2261 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2262
2263         * class.c: fixed id assignement for nested interfaces (bug #77275).
2264         Added also better info for --print-vtable debugging.
2265
2266 2006-01-12  Martin Baulig  <martin@ximian.com>
2267
2268         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
2269         interfaces on-the-fly; fixes #76625.
2270
2271         * class-internals.h
2272         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
2273         don't need that anymore.
2274
2275 2006-01-12  Miguel de Icaza  <miguel@novell.com>
2276
2277         * socket-io.c
2278         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2279         To avoid initing the nested_classes when not needed I turned the
2280         PeerCredData as a toplevel internal class, as it has to be shared
2281         anyways. 
2282
2283         Fixes the CASA issue.
2284
2285 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
2286
2287         * domain.c: Accessors for MonoJitInfo
2288
2289         * profiler-private.h: Add jitinfo to the end jit hook
2290
2291         * profiler.[ch]: Define new hooks, called after jitting which give
2292         the MonoJitInfo that was compiled
2293
2294 2006-01-10  Martin Baulig  <martin@ximian.com>
2295
2296         * class.c (mono_class_setup_events): Add support for generic
2297         classes; fixes #76440.
2298
2299 2006-01-06  Raja R Harinath  <rharinath@novell.com>
2300
2301         Fix #77160.
2302         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
2303         on passed-in method.
2304
2305 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2306
2307         * object.c (mono_runtime_invoke_array): Add Nullable support.
2308
2309         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
2310
2311 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
2312
2313         * file-io.c: Don't consider sockets as directory and avoid an endless
2314         loop. Fix bug #76966.
2315
2316 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2317
2318         * object.c (mono_nullable_init): New helper function.
2319         (mono_nullable_box): Ditto.
2320
2321         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
2322
2323         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
2324
2325         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
2326         
2327 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
2328
2329         * class.c (mono_class_is_assignable_from): Make T assignable to 
2330         Nullable<T>.
2331
2332 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
2333
2334         * appdomain.c: Bump corlib version to 46.
2335         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
2336         serialization purpose) and changed ves_icall_System_Reflection_
2337         Assembly_get_code_base signature to accept a boolean (to escape, or 
2338         not, the assembly code base).
2339
2340 2005-12-23  Dick Porter  <dick@ximian.com>
2341
2342         * icall.c: 
2343         * threads-types.h: 
2344         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
2345         CreateEvent icall now returns "created" boolean parameter.
2346
2347 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
2348
2349         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
2350         #76967.
2351
2352         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
2353         when attr_klass is an interface. Fixes #77045.
2354
2355 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
2356
2357         * marshal.c (emit_struct_conv): Fix previous patch.
2358         
2359         * marshal.c (emit_struct_conv): Add a check for fields with the same
2360         offset.
2361
2362 2005-12-20  Raja R Harinath  <rharinath@novell.com>
2363
2364         Fix regression in Mono.C5.
2365         * class.c (mono_class_create_generic): If 'klass' is an interface
2366         set up the interface offsets.
2367         (mono_class_is_assignable_from): Don't throw away generic arguments.
2368
2369 2005-12-19  Raja R Harinath  <rharinath@novell.com>
2370
2371         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
2372         type parameters.
2373
2374 2005-12-15  Raja R Harinath  <rharinath@novell.com>
2375
2376         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
2377         dead store.
2378         (do_mono_metadata_parse_generic_class): Don't pass the current
2379         generic context when parsing the type being instantiated: it
2380         cannot use it, anyway.
2381
2382         * loader.c (method_from_memberref): Don't inflate a signature if
2383         it doesn't contain any type parameters.
2384
2385 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2386
2387         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
2388
2389 2005-12-14  Martin Baulig  <martin@ximian.com>
2390
2391         * class.c
2392         (mono_type_get_name_recurse): Don't return null for type
2393         parameters and open generic classes.
2394         (mono_class_setup_methods): Don't exclude generic instances.
2395         (mono_get_unique_iid): Use different IDs for different
2396         instantiations of the same generic type.
2397         (mono_class_setup_vtable): Only use setup_generic_vtable() for
2398         open generic instances; create a normal vtable for closed generic
2399         instances.
2400         (mono_class_setup_vtable_general): We're now also called for
2401         closed generic instances.
2402
2403         * reflection.c
2404         (mono_reflection_bind_generic_parameters): Correctly use
2405         mono_metadata_lookup_generic_inst() everywhere.
2406
2407 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
2408
2409         * object.c (mono_class_create_runtime_vtable): Call 
2410         mono_class_setup_vtable ().
2411
2412         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
2413         function.
2414         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
2415         #76959.
2416
2417         * loader.c (mono_loader_set_error_type_load): Print the type load
2418         warnings to the console so they are more visible to the user.
2419         (mono_loader_set_error_method_load): Ditto.
2420
2421         * reflection.c (ensure_runtime_vtable): Revert the last change as it
2422         is still broken.
2423         
2424         * reflection.c (ensure_runtime_vtable): Fix build.
2425
2426         * reflection.c (ensure_runtime_vtable): Disable an optimization which
2427         doesn't work in all cases.
2428
2429 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
2430
2431         * object.c (mono_array_new_full): Treat a single dimensional array
2432         with 0 lower bounds as an szarray. Fixes #76973.
2433
2434         * reflection.c (custom_attr_visible): Really fix this.
2435
2436 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
2437
2438         * reflection.c (custom_attr_visible): Allow nested public attributes
2439         as well.
2440
2441         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
2442         interface check.
2443
2444 2005-12-12  Raja R Harinath  <harinath@gmail.com>
2445
2446         * class.c (set_generic_param_owner): Delete.
2447         (mono_class_create_from_typedef): Don't set ->owner field of
2448         generic parameters to "param containers" of enclosing classes.
2449         * reflection.c (mono_reflection_initialize_generic_parameter):
2450         Likewise.
2451
2452 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
2453
2454         * reflection.c (custom_attr_visible): Fix build.
2455
2456 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
2457
2458         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
2459         private attributes.
2460         
2461         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
2462         handling of null parameter defaults.
2463
2464 2005-12-09  Raja R Harinath  <rharinath@novell.com>
2465
2466         * class.c (mono_class_from_generic_parameter): Don't set
2467         klass->generic_container.
2468         (my_mono_class_from_generic_parameter): Likewise.
2469
2470 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2471
2472         * reflection.c (load_public_key): Fix a warning.
2473         (method_encode_code): Fix unaligned accesses.
2474
2475 2005-12-07  Martin Baulig  <martin@ximian.com>
2476
2477         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
2478
2479         * reflection.c
2480         (write_generic_param_entry): Encode our custom attrs.
2481
2482         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
2483
2484 2005-12-07  Martin Baulig  <martin@ximian.com>
2485
2486         * reflection.c (encode_new_constraint): Removed; we don't use the
2487         `NewConstraintAttribute' anymore.
2488
2489 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2490
2491         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
2492         not fire a TypeResolve event when Assembly.GetType () is called.
2493
2494 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2495
2496         Beginning of support for nullable types in the runtime. Parts of
2497         this patch are from Martin.
2498
2499         * appdomain.c (MONO_CORLIB_VERSION): Bump
2500
2501         * domain.c (mono_init_internal): get the nullable type
2502
2503         * class.c (mono_class_is_nullable): New method
2504         (mono_class_get_nullable_param): New mehod
2505         (mono_class_create_generic): In types T? set cast_class to T
2506
2507         * class-internals.h (MonoDefaults): new nullable default class
2508         (mono_class_get_nullable_param, mono_class_get_nullable_param):
2509         new methods.
2510
2511 2005-12-05  Raja R Harinath  <rharinath@novell.com>
2512
2513         * metadata.c (select_container): New.  Refactor code to select the
2514         appropriate GenericContainer given the type of generic parameter
2515         we are looking for.
2516         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
2517         not a MonoGenericContext.  Use select_container.  Update parameters.
2518         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
2519         and MONO_TYPE_MVAR.
2520         (unwrap_arrays): Remove duplicate tests.
2521         (find_generic_param): Rename from 'has_same_context'.  Now walks a
2522         generic instantiated class to find any arguments that are generic
2523         parameters.
2524         (mono_type_create_from_typespec_full): Use find_generic_param to
2525         avoid evicting some generic instantiations from the typespec
2526         cache.
2527
2528 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
2529
2530         * reflection.c: fixed writing of doubles on ARM FPA.
2531
2532 2005-12-02  Robert Jordan  <robertj@gmx.net>
2533
2534         * icall.c: Fixed EventInfo.ReflectedType (#76829).
2535
2536 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2537
2538         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
2539         least on SUSE 10 they are not the same (on debian, they are just the
2540         same thing).
2541
2542 2005-12-01  Raja R Harinath  <rharinath@novell.com>
2543
2544         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
2545         DeclaringType for VARs and MVARs.
2546         * class.c (set_generic_param_owner): Fix initialization of owner
2547         fields.
2548
2549 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2550
2551         * icall.c: fixed Enum.ToObject() to correctly convert the values.
2552
2553 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2554
2555         * threadpool.c: workaround for a bug that shows up on the Mac:
2556         select()+connect() on a blocking socket is not like it should
2557         be, so we proceed to connect() in that case, wasting the I/O
2558         threadpool thread until connect succeedes. Fixes bug #75436.
2559
2560 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2561
2562         * threadpool.c: fix typo when setting file descriptor states.
2563
2564 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2565
2566         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
2567         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2568         create a temporary signature container.
2569         (mono_metadata_parse_generic_param): Update to changes.
2570         (mono_type_create_from_typespec_full): Update to changes.
2571         * loader.c (method_from_memberref): Don't use a
2572         MonoGenericContainer while parsing a memberref signature.
2573         (method_from_methodspec): Remove dead-store of the 'container'
2574         variable.  It's overwritten before use.
2575
2576         * metadata.c (mono_type_create_from_typespec_full): Make debugging
2577         checks tighter.
2578         (mono_metadata_parse_generic_param): Likewise.
2579         * loader.c (find_method_in_class): Does not need a
2580         MonoGenericContainer.  Use 'mono_method_signature' rather than
2581         'mono_method_signature_full'.
2582         (find_method, mono_get_method_constrained, method_from_memberref):
2583         Update to changes.
2584
2585         * metadata.c (mono_type_create_from_typespec_full): Ensure that
2586         owner-less generic-parameters are never evicted from the typespec
2587         cache.
2588
2589         * loader.c (method_from_memberref): Don't use the current context
2590         when parsing signatures.
2591         (method_from_methodspec, mono_get_method_from_token): Update to changes.
2592
2593         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
2594         side-effects in g_assert.
2595         * loader.c (mono_get_method_from_token): Resolve klass earlier so
2596         that we don't potentially lose information.
2597
2598 2005-11-26  Dick Porter  <dick@ximian.com>
2599
2600         * icall.c:
2601         * threads.c: icalls to implement basic (ie, not named)
2602         System.Threading.Semaphore.
2603
2604 2005-11-24  Dick Porter  <dick@ximian.com>
2605
2606         * process.c
2607         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2608         Use GetProcessId() if it's available.
2609
2610 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
2611
2612         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
2613
2614 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2615             Ankit Jain  <jankit@novell.com>
2616
2617         * loader.c (mono_get_method_from_token): Initialize 'method' field
2618         of all generic parameters before parsing the signature.  Remove
2619         code that "fixed"-up MVAR references.
2620
2621 2005-11-23  Ankit Jain  <jankit@novell.com>
2622
2623         * metadata.c (mono_metadata_has_generic_params):
2624         (mono_metadata_load_generic_param_constraints):
2625         (mono_metadata_load_generic_params): Move duplicate code ...
2626         (mono_metadata_get_generic_param_row): ... here. Returns the
2627         first row-id in GenericParam table for a given owner (token).
2628         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
2629         prototype.
2630
2631 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2632             Ankit Jain  <jankit@novell.com>
2633
2634         * metadata.c (mono_metadata_class_equal): Pass signature_only when
2635         comparing VARs too.
2636         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
2637         type->data.generic_param only if the type is an MVAR.
2638         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
2639         leak owner-less VARs and MVARs into managed space.
2640
2641 2005-11-21  Martin Baulig  <martin@ximian.com>
2642
2643         * class-internals.h
2644         (MonoMethod): Moved the `generic_container' here from
2645         `MonoMethodNormal' since we now also need it for
2646         `MonoMethodPInvoke';
2647         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
2648         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
2649         an union containing both `MonoMethodNormal' and
2650         `MonoMethodPInvoke'.
2651
2652         * loader.c
2653         (mono_get_method_from_token): Allow implementing generic methods
2654         as interncalls.
2655
2656         * threads.c
2657         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
2658         icall.
2659
2660 2005-11-17  Dick Porter  <dick@ximian.com>
2661
2662         * icall.c: 
2663         * process.h: 
2664         * process.c: Split the Process Start_internal icall into
2665         ShellExecuteEx_internal and CreateProcess_internal, which are
2666         called depending on whether UseShellExecute is true.  Fixes bug
2667         76670.
2668
2669         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2670
2671 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2672
2673         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2674         'msize' parameters, use the information in 'mspec' instead.
2675         (emit_object_to_ptr_conv): Ditto.
2676
2677         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2678         fields out of order. Fixes #76733.
2679
2680 2005-11-17  Ankit Jain  <jankit@novell.com>
2681
2682         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2683
2684 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2685
2686         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2687           bug #76575.
2688
2689 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2690
2691         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2692         for types with non-auto layout. Fixes #76717.
2693
2694 2005-11-16  Ankit Jain  <jankit@novell.com>
2695
2696         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2697         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2698         if generic_context is null.
2699           (mono_metadata_generic_param_equal): param->owner can be null.
2700           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2701         null.
2702
2703 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2704
2705         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2706         the correct value.
2707
2708 2005-11-15  Martin Baulig  <martin@ximian.com>
2709
2710         * object.c (set_value): Use mono_class_from_mono_type() instead of
2711         the hack for generic instances; fixes #76136.
2712
2713 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2714
2715         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2716         fields.
2717
2718         * image.c (load_metadata_ptrs): Initialize the new fields.
2719
2720         * reflection.c (create_dynamic_mono_image): Ditto.
2721
2722         * reflection.c (build_compressed_metadata): Use the new fields.
2723
2724         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2725         icall.
2726
2727         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2728         icall.
2729         
2730 2005-11-15  Ankit Jain  <jankit@novell.com>
2731             Raja R Harinath  <harinath@gmail.com>
2732
2733         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2734         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2735         new per-generic_container cache if the cached MonoType's context matches
2736         the current context.
2737           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2738         to the expected context.
2739           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2740
2741 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2742
2743         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2744         we changed the signature of an icall.
2745         * icall.c: Modify to mono_double_ParseImpl return true/false 
2746         depending on the success, instead of throwing the exception. This will
2747         help us in Double.TryParse methods.
2748         
2749 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2750
2751         * marshal.c (emit_marshal_object): Throw an exception when
2752         marshalling 'object' instead of crashing. Fixes #76696.
2753
2754 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2755
2756         * class-internals.h: Add prototype for mono_type_get_full_name ().
2757
2758 2005-11-11  Dick Porter  <dick@ximian.com>
2759
2760         * threads.c (mono_thread_manage): Make sure the main thread has
2761         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2762
2763 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2764
2765         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2766         console about the missing type.
2767         (mono_loader_set_error_method_load): Ditto.
2768
2769 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2770
2771         * mono-config.c (mono_get_config_dir): Set the system defaults if
2772         none is specified.
2773
2774         * assembly.c (mono_set_dirs): New API entry point to set the
2775         assembly and the config directory in one call
2776
2777 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2778
2779         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2780         the ftnptr was created from a delegate in a domain other than the
2781         current domain. Fixes #75377.
2782
2783         * exception.h exception.c: Add mono_get_exception_not_supported ().
2784
2785 2005-11-08  Martin Baulig  <martin@ximian.com>
2786
2787         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2788
2789 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2790
2791         * security-manager.h: Added definitions to deal with strongname key 
2792         pairs bigger (and smaller) than 1024 bits.
2793         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2794         adjust wrt the public key length being used.
2795
2796 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2797
2798         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2799           Windows build (r51396-51397).
2800
2801 2005-11-03  Martin Baulig  <martin@ximian.com>
2802
2803         * class.c (mono_class_setup_vtable_general): Also add generic
2804         methods to the vtable; fixes #76581.
2805
2806 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2807
2808         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2809         sure that we lookup GetString method from the System.Text.Encoding
2810         class, not the derived class or we get an empty method.
2811
2812         Fixed class #76612.
2813
2814 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2815
2816         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2817         if it has been previously set (embedders). 
2818
2819         Make mono_set_rootdir available also on Unix.
2820
2821 005-10-24  Robert Jordan  <robertj@gmx.net>
2822
2823         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2824
2825 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2826
2827         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2828         only calls which are made to native code use this flag.
2829
2830         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2831
2832 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2833
2834         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2835         Add support for FieldBuilders.
2836
2837 2005-10-29  Martin Baulig  <martin@ximian.com>
2838
2839         * mono-debug.c
2840         (mono_debug_using_mono_debugger): New public method; returns
2841         whether we're running inside the debugger.
2842
2843 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
2844
2845         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
2846         for Method/Constructor/FieldBuilders.
2847
2848 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2849
2850         * reflection.c (module_add_cattrs): Save custom attributes for global methods
2851         and fields as well.
2852
2853 2005-10-26  Martin Baulig  <martin@ximian.com>
2854
2855         * mono-debug-debugger.c
2856         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
2857
2858 2005-10-24  Raja R Harinath  <harinath@gmail.com>
2859
2860         * icall.c (base64_to_byte_array): Don't pass an out-of-range
2861         integer to isspace.
2862
2863 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2864
2865         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
2866         when passing valuetypes byref. Fixes #76502.
2867
2868 2005-10-19  Jackson Harper  <jackson@ximian.com>
2869
2870         * profiler.c: Don't put a . in front of types that are not in a
2871         namespace.
2872
2873 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
2874
2875         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
2876
2877 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
2878
2879         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
2880         #76436.
2881         (mono_marshal_get_ldflda_wrapper): Fix a warning.
2882
2883 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2884
2885         * assembly.c metadata-internals.h icall.c: Define an additional
2886         parameter for mono_assembly_name_parse_full, so we can avoid creating
2887         S.R.AssemblyName.Version when no version info wasn't passed.
2888         
2889 2005-10-09  Miguel de Icaza  <miguel@novell.com>
2890
2891         * class.c (mono_type_get_full_name): Reimplement method that was
2892         removed. 
2893
2894         * image.c: Some docs
2895
2896 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
2897
2898         * profiler.c (output_newobj_profile): Fix printing of Total memory
2899         on x86.
2900
2901 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2902
2903         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
2904
2905 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
2906
2907         * threads.c: remove debug output.
2908
2909 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2910
2911         * threads.c (mono_thread_manage): Fix crashes if more than 64
2912         threads need to be aborted. Hopefully fixes #75899.
2913
2914         * assembly.c (mono_stringify_assembly_name): New helper function.
2915
2916         * class.c: Use mono_stringify_assembly_name instead of the similar
2917         static function.
2918
2919         * assembly.h assembly.c: Add support for calling a postload search 
2920         hook if an assembly cannot be loaded.
2921
2922         * appdomain.c: Register new search hooks which call the AssemblyResolve
2923         events in AppDomain. Fixes #75231
2924
2925 2005-10-07  Martin Baulig  <martin@ximian.com>
2926
2927         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
2928         methods without debug info.
2929
2930 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
2931
2932         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
2933         wrappers.
2934
2935 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2936
2937         * file-io.c: now that we return symlinks, use lstat and, when the file
2938         is a symbolic link, stat, to get the file attributes. Also avoid the
2939         conversion to/from utf16/external.
2940
2941 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
2942
2943         * class.c (mono_class_layout_fields): Compute klass->has_references
2944         correctly if an embedded valuetype is not yet initialized. Fixes
2945         #76331.
2946
2947 2005-10-04  Martin Baulig  <martin@ximian.com>
2948
2949         * metadata.c
2950         (mono_metadata_load_generic_param_constraints): New public
2951         function; splitted the constraints loading out from
2952         mono_metadata_load_generic_params().
2953
2954         * class.c (mono_class_create_from_typedef): Call
2955         mono_metadata_load_generic_param_constraints() after setting up
2956         the type and creating our parent; fixes #75329.
2957
2958 2005-10-04  Martin Baulig  <martin@ximian.com>
2959
2960         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
2961         non-dynamic parent classes.
2962
2963 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2964
2965         * file-io.c : win32 build fix (ETXTBSY seems not found).
2966
2967 2005-10-04  Martin Baulig  <martin@ximian.com>
2968
2969         * reflection.c
2970         (mono_image_get_methodspec_token): Make the cache actually work;
2971         fixes #75974.
2972
2973 2005-10-04  Martin Baulig  <martin@ximian.com>
2974
2975         * class.c (mono_class_name_from_token): Removed the unneccessary
2976         `MonoGenericContext *' argument.
2977
2978 2005-10-04  Martin Baulig  <martin@ximian.com>
2979
2980         * loader.c
2981         (method_from_methodspec): Make the caching work again; fixes the
2982         performance regression from #76262.
2983
2984 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2985
2986         * file-io.c:
2987         * file-io.h:
2988         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
2989         GetFileSystemEntries that performs the same work but without going
2990         into io-layer, locking, etc.
2991
2992 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
2993
2994         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
2995         ThreadState_Stopped as well. Fixes #76047.
2996
2997 2005-09-29  Martin Baulig  <martin@ximian.com>
2998
2999         * class.c
3000         (inflate_generic_context): If the new context has a `gmethod', set
3001         its `container' that that gmethod's `container'.
3002
3003         * metadata.c
3004         (mono_metadata_parse_generic_param): Simplify things;
3005         `generic_container = generic_context->container;' is just fine.
3006
3007         * loader.c (method_from_methodspec): Code cleanups.
3008
3009 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
3010
3011         * decimal.c: fix warning (and let gcc generate correct
3012         code on ARM with optimizations).
3013
3014 2005-09-28  Martin Baulig  <martin@ximian.com>
3015
3016         * loader.c
3017         (method_from_memberref): Added `MonoGenericContext *class_context'
3018         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
3019         (method_from_methodspec): If we're a memberref, use the enclosing
3020         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
3021
3022 2005-09-28  Martin Baulig  <martin@ximian.com>
3023
3024         * object.c (mono_runtime_invoke_array): Added support for
3025         MONO_TYPE_GENERICINST; fixes #75917.
3026
3027 2005-09-27  Martin Baulig  <martin@ximian.com>
3028
3029         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
3030         `k->byval_arg.type' to determine the actual type.
3031
3032         * loader.c (method_from_methodspec): Removed some hacks.
3033
3034 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
3035
3036         * class-internals.h (mono_field_is_deleted): Do the test for
3037         rtspecialname before we check the actual name of the field. This
3038         prevents us from dereferencing a pointer into the string table,
3039         saving us from accessing a few pages
3040
3041         * *.c: Replace the use of {Enter,Leave}CriticalSection with
3042         macros. This will allow a deadlock debugger to easily be plugged
3043         in.
3044
3045 2005-09-27  Martin Baulig  <martin@ximian.com>
3046
3047         * loader.c (method_from_methodspec): Create a "signature"
3048         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
3049
3050 2005-09-27  Martin Baulig  <martin@ximian.com>
3051
3052         * class.c
3053         (inflate_generic_class): Correctly set the new context's
3054         container.
3055
3056         * loader.c
3057         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
3058         instead of a `MonoGenericContext *'.
3059         (mono_method_signature_full): Take a `MonoGenericContainer *'
3060         instead of a `MonoGenericContext *'.
3061
3062         * metadata.c
3063         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
3064         instead of a `MonoGenericContext *'.
3065         (mono_metadata_parse_method_signature_full): Likewise.
3066
3067 2005-09-26  Martin Baulig  <martin@ximian.com>
3068
3069         * class.c
3070         (mono_class_from_generic_parameter): Set `klass->generic_container'
3071         (mono_class_from_generic_parameter): Likewise.
3072         (mono_bounded_array_class_get): We inherit the generic container
3073         from the element class.
3074
3075         * loader.c
3076         (find_method, find_method_in_class): Take a `MonoGenericContext *'
3077         argument rather than computing it here.
3078         (method_from_memberref): Correctly set the generic context before
3079         parsing the signature.  Fixes #75681.
3080
3081 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
3082
3083         * object.c (mono_class_has_special_static_fields): Fix warnings.
3084
3085 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3086
3087         * assembly.c: Add parse_public_key function, to
3088         par the public keys. Also added mono_assembly_name_parse_full,
3089         to define it the parsed key should be freed or not.
3090         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
3091         to parse a long format assembly name.
3092         * metadata-internals.h: Keep mono_assembly_name_parse_full as
3093         private, since calling it to preserve the key requires
3094         freeing it manually.
3095         
3096 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
3097
3098         * locales.c : removed HAVE_ICU part.
3099
3100 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
3101
3102         * object.c (mono_class_create_runtime_vtable): Avoid calling 
3103         field_is_special_static if the klass has no special static fields.
3104
3105         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
3106         (MonoCachedClassInfo): Likewise.
3107
3108         * object.c (mono_class_has_special_static_fields): New helper function.
3109
3110 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3111
3112         * class.c (mono_class_create_from_typedef): Don't call 
3113         interfaces_from_typedef_full for enums.
3114         (mono_class_create_from_typedef): Compute the base types of enums directly
3115         without calling mono_class_setup_fields ().
3116         (mono_class_find_enum_basetype): New helper function.
3117
3118         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
3119         one place inside the string heap.
3120         
3121 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
3122
3123         * class.c: locking fixes, code cleanups, some docs added.
3124         Allocate some data structures in the image mempool.
3125
3126 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3127
3128         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3129         the example code.
3130         
3131 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
3132
3133         * class-internals.h, class.c, reflection.c: reduce memory taken by
3134         MonoClass.
3135
3136 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
3137
3138         * metadata.c, metadata.h, loader.h: documentation updates, code and
3139         API cleanups.
3140
3141 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3142
3143         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3144         the example code.
3145
3146         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
3147         page faults caused by the runtime while reading metadata.
3148
3149 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3150
3151         * socket-io.c: the field names were changed 3 months ago and no one
3152         realized until bug #76077 got filed!
3153
3154 2005-09-20  Martin Baulig  <martin@ximian.com>
3155
3156         * icall.c (assembly_icalls): Removed some unused debugger icalls.
3157
3158 2005-09-20  Martin Baulig  <martin@ximian.com>
3159
3160         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
3161         write the rank into the class entry.
3162
3163 2005-09-20  Martin Baulig  <martin@ximian.com>
3164
3165         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
3166
3167 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
3168
3169         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3170
3171         * icall.c (custom_attrs_defined_internal): New icall.
3172
3173         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
3174         function.
3175         (mono_custom_attrs_construct_by_type): New helper function.
3176
3177 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
3178
3179         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
3180         terminate the resulting string. Fixes #76123.
3181
3182 2005-09-16  Martin Baulig  <martin@ximian.com>
3183
3184         * mono-debug.c
3185         (mono_debug_add_method): Ignore inflated methods for the moment.
3186
3187 2005-09-14  Martin Baulig  <martin@ximian.com>
3188
3189         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
3190
3191 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
3192
3193         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
3194         return a success/failure indication.
3195         (mono_metadata_interfaces_from_typedef_full): Ditto.
3196         (get_constraints): Ditto.
3197
3198 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
3199
3200         * marshal.c (emit_marshal_array): Fix handling of null arrays.
3201         
3202         * marshal.c (emit_marshal_array): Add support for returning string
3203         arrays from delegates. Fixes #76063.
3204
3205         * marshal.c: Use the emit_ldloc/stloc macros where possible.
3206
3207 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3208
3209         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
3210         icall.
3211
3212 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
3213
3214         * reflection.c icall.c: Fix after mono_get_exception_type_load
3215         signature change.
3216
3217         * assembly.c (mono_assembly_get_assemblyref): New helper function.
3218         (mono_assembly_load_reference): Use the new helper.
3219
3220         * class-internals.h (MonoLoaderError): New structure containing 
3221         information about type loading errors.
3222
3223         * class-internals.h loader.c: Add APIs to store per-thread loader
3224         error information.
3225
3226         * loader.c class.c: Set the loader error if needed.
3227
3228         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
3229
3230 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
3231
3232         * decimal.c: fixed to handle the broken ARM fp format.
3233
3234 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
3235
3236         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
3237         broken.
3238
3239 2005-09-06  Martin Baulig  <martin@ximian.com>
3240
3241         * domain.c (supported_runtimes): Added v2.0.50727.
3242
3243 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
3244
3245         * culture-info.h: reduce the size of some structures.
3246
3247 2005-09-05  Martin Baulig  <martin@ximian.com>
3248
3249         Reflect latest API changes in the August CTP.
3250
3251         * icall.c
3252         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
3253         ("MonoType.HasGenericArguments"): Removed.
3254         ("MonoMethod.BindGenericParameters"): Renamed to
3255         "MakeGenericMethod".
3256         ("MethodBuilder.BindGenericParameters"): Renamed to
3257         "MakeGenericMethod".    
3258
3259 2005-09-05  Martin Baulig  <martin@ximian.com>
3260
3261         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
3262
3263 2005-09-05  Martin Baulig  <martin@ximian.com>
3264
3265         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3266
3267         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
3268         generic_container is non-NULL.
3269
3270 2005-09-05  Martin Baulig  <martin@ximian.com>
3271
3272         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3273
3274         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
3275
3276 2005-08-29  Michal Moskal  <malekith@nemerle.org>
3277
3278         * reflection.c (encode_locals,
3279         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
3280         for large generic types.
3281
3282 2005-09-05  Martin Baulig  <martin@ximian.com>
3283
3284         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3285
3286         * class.c (mono_dup_array_type): New public method.
3287         (mono_metadata_signature_deep_dup): New public method.
3288         (dup_type): Correctly duplicate array and function types.
3289
3290 2005-09-05  Martin Baulig  <martin@ximian.com>
3291
3292         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3293
3294         * reflection.c (get_default_param_value_blobs): Handle generic types
3295         and generic methods.
3296
3297 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
3298
3299         * class.c: Fixed error reporting (method/class were inversed) for 
3300         inheritance demands.
3301         * security-manager.c|h: Added the AppDomain when calling the managed
3302         System.Security.SecurityManager.InheritanceDemand method.
3303
3304 2005-09-01  Raja R Harinath  <rharinath@novell.com>
3305
3306         * reflection.c (encode_marshal_blob): 'marshaltype' and
3307         'marshaltyperef' are alternate sources for the custom marshaler
3308         name.
3309
3310 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
3311
3312         * class.c: fix creation of array classes with rank == 1
3313         (patch by Ankit Jain <jankit@novell.com>).
3314
3315 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
3316
3317         * object.c: fix check for creating the bound data for arrays vs
3318         szarrays.
3319
3320 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3321
3322         * object.c: configuration file name is now based on the executable name,
3323         not the image name. Fixes bug #75931.
3324
3325 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
3326
3327         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
3328         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
3329
3330 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
3331
3332         * rand.c: Use wincrypt.h instead of WinCrypt.h.
3333
3334 2005-08-24  Ankit Jain  <jankit@novell.com>
3335             Raja R Harinath  <rharinath@novell.com>
3336
3337         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
3338           called by it recursively.
3339           (mono_class_init): Remove special case in pending_init handling, since it's
3340           superseded by the fix to mono_class_from_typeref.
3341
3342 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3343
3344         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
3345         BROKEN_THREAD_START stuff.
3346
3347 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
3348
3349         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
3350         trampoline.
3351
3352         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
3353         
3354         * object.c (mono_delegate_ctor): Replace the original function address with
3355         a delegate trampoline.
3356
3357 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
3358
3359         * icall.c: add boolean argument to base64_to_byte_array and 
3360         InternalFromBase64String to control whether a whitespace-only string
3361         is allowed (or should casue a FormatException to be thrown). We need
3362         this as the behavior has changed between MS.NET 1.x and 2.0, and we
3363         to match the MS behaviour in both profiles.
3364         * appdomain.c: Bump corlib version.
3365
3366 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3367
3368         This patch implements a big portion of publisher policy
3369         support, used to bind assembly versions and redirect
3370         one assembly from version A to version B.
3371
3372         * assembly.c:
3373         New GSList loaded_assembly_bindings, for storing the cached
3374         assembly bindings.
3375         (assembly_binding_maps_name): New static function for checking if a 
3376         assembly binding information maps an assembly name.
3377         (mono_assembly_binding_info_free): New function for freeing
3378         assembly binding information resources.
3379         (get_publisher_policy_info): New static function for retrieving 
3380         assembly binding information from a MonoImage.
3381         (compare_versions): New static function for comparing an assembly
3382         binding information data and the version of an assembly name.
3383         (check_policy_versions): New static function for checking if an
3384         assembly binding info mapping an assembly name is valid for it.
3385         (mono_assembly_load_publisher_policy): New static function for
3386         loading the 'policy.major.minor.MyAssembly' image for an assembly
3387         with an assembly name 'aname'.
3388         (mono_assembly_bind_version): New static function for updating
3389         assembly redirection.
3390         (mono_assembly_apply_binding): New static function for applying
3391         assembly binding.
3392         (search_binding_loaded): New static function for searching 
3393         loaded assembly binding infos in the cache domain.
3394         (mono_assembly_load_full): Don't apply assembly binding for
3395         reflection only assemblies.
3396
3397         * metadata-internals.h: Add MonoAssemblyBindingInfo,
3398         which contains information about assembly binding. Also
3399         declare signature for mono_config_parse_publisher_policy ()
3400         function, used to retrieve pub policy info.
3401         
3402         * mono-config.c:
3403         (publisher_policy_start): New static function used to parse publisher 
3404         policy config files.
3405         (publisher_policy_parser): New static MonoParseHandler containing 
3406         the functions used when parsing config files.
3407         (mono_config_parse_publisher_policy): New function for parsing
3408         publisher policy files.
3409         
3410 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3411
3412         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
3413
3414         * marshal.c (mono_delegate_free_ftnptr): Ditto.
3415
3416         * object.c (mono_get_addr_from_ftnptr): New helper function.
3417
3418         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
3419
3420         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3421
3422 2005-08-19  Dick Porter  <dick@ximian.com>
3423
3424         * threads.c, threads.h, appdomain.c, appdomain.h,
3425         profiler-private.h, monitor.c, object.c, object-internals.h,
3426         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
3427         store the thread ID, so it can hold a 64 bit value if needed.
3428
3429 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3430
3431         * reflection.c (mono_reflection_create_dynamic_method): Store the
3432         handle class into the method references as well so ldtoken works in
3433         dynamic methods.
3434
3435         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
3436         types.
3437
3438 2005-08-19  Ankit Jain <jankit@novell.com>
3439
3440         Fix #75847.
3441         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
3442           here rather than using the method signature of a arbitrary function
3443           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
3444           two arguments.
3445           Hack done with Harinath.
3446
3447 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3448
3449         * threadpool.c: disable printing stack traces when we get a exception
3450         in a threadpool thread. I need to do more testing to figure out which
3451         cases actually print this. Fixes bug #75828.
3452
3453 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3454
3455         * icall.c: there might be ignored whitespace after the last '='. This
3456         fixes length computation and bug #75840.
3457
3458 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
3459
3460         * assembly.c (mono_assembly_load_full): Consider .exe extension as
3461         well. Fixes #75809.
3462
3463         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
3464         #75784.
3465         
3466         * reflection.c (create_custom_attr_data): Ditto.
3467
3468 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
3469
3470         * locales.c, culture-info.h : removed RegionLCIDMap.
3471         * culture-info-tables.h : regenerated.
3472
3473 2005-08-16  Martin Baulig  <martin@ximian.com>
3474
3475         * class.c (mono_type_get_name_recurse): Small fix.
3476
3477 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3478
3479         * locales.c : indentation fixie.
3480
3481 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
3482
3483         * object-internals.h,
3484           locales.h,
3485           locales.c,
3486           culture-info.h,
3487           icall.c : added RegionInfo table support.
3488         * culture-info-table.h : regenerated for region support.
3489
3490 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
3491
3492         * reflection.c (resolve_object): handle all kinds of MonoMethod
3493         including generic ones
3494
3495 2005-08-12  Ankit Jain <jankit@novell.com>
3496
3497         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
3498           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
3499
3500 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
3501
3502         * process.c: Don't close a thread handle when it's NULL. This is a
3503         workaround for bug #75733.
3504
3505 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3506
3507         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
3508
3509 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
3510
3511         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
3512
3513 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3514
3515         * threadpool.c: if a work item in the thread pool has a callback that
3516         catches a exception, don't propagate it after invoking the callback.
3517         Fixes bug #75336.
3518
3519 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3520
3521         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
3522
3523         * class-internals.h (MonoCachedClassInfo): Add some new fields.
3524
3525         * class.c (mono_class_init): Load field info lazily in the AOT case.    
3526
3527         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
3528
3529 2005-08-03  Ankit Jain  <jankit@novell.com>
3530
3531         Fix #75683.
3532         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
3533           PInvoke calling convention is 0.
3534
3535 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
3536
3537         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
3538         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
3539
3540 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
3541
3542         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
3543         to handle threads not started by the GC (patch by Michael Meeks
3544         <michael.meeks@novell.com>).
3545
3546 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
3547
3548         * reflection.c: Make buffer used in emitting types larger for some
3549         big generic types (patch by Michal Moskal).
3550
3551 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3552
3553         * mono-debug.c: Fix some (not all) alignment problems.
3554
3555 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3556
3557         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
3558         Invoke mono_image_load_from_data_full passing the refonly
3559         parameter.
3560
3561         * assembly.c
3562         (mono_assembly_open_from_bundle): Add the refonly argument, 
3563         in order to pass it to other methods it calls to.
3564         (do_mono_assembly_open): Add the refonly argument, in order 
3565         to pass it to other methods it calls to.
3566         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
3567         the refonly parameter to it.
3568
3569         * image.c: Add loaded_images_refonly_hash and
3570         loaded_images_refonly_guid_hash to cache the reflection
3571         only loaded images.
3572         (mono_images_init): Initialize the hash tables used for
3573         caching the reflection only images.
3574         (load_modules): Invoke mono_image_open_full passing the refonly
3575         parameter to load the modules the correct way.
3576         (build_guid_table): Add the refonly argument, to re-build the 
3577         correct hash table.
3578         (do_mono_image_open): Added the refonly argument, in order to
3579         define it for the loaded image.
3580         (mono_image_loaded_full): New function, which receives an
3581         additional parameter to look for the image in the refonly or
3582         non-refonly section.
3583         (mono_image_loaded): Updated, using mono_image_loaded_full.
3584         (mono_image_loaded_by_guid_full): The same case that happens
3585         with mono_image_loaded_full.
3586         (mono_image_loaded_by_guid): Likewise.
3587         (register_image): Use the ref_only variable inside MonoImage
3588         to decide in which hash table store the current image.
3589         (mono_image_open_from_data_full): Rename
3590         mono_image_open_from_data to mono_image_open_from_data_full,
3591         adding the refonly argument, to define the ref_only variable 
3592         inside MonoImage.
3593         (mono_image_open_from_data): Return 
3594         mono_image_open_from_data_full.
3595         (mono_image_open_full): Rename mono_image_open to
3596         mono_image_open_full, receiving the new refonly argument,
3597         to pass it to inner methods.
3598         (mono_pe_file_open): Update this function, to open
3599         a MonoImage as a non-refonly image.
3600         (mono_image_close): Use the refonly variable inside
3601         MonoImage to remove the image from the correct caches.
3602
3603         * image.h: Add the signatures of mono_image_open_full,
3604         mono_image_open_from_data_full, mono_image_loaded_full,
3605         mono_image_loaded_by_guid_full.
3606
3607         * metadata-internals.h: Add the ref_only field to 
3608         MonoImage.
3609         
3610 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3611
3612         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
3613         Fix the last behavior, which used to load the assemblies and
3614         extract MonoReflectionAssemblyName information, instead of
3615         extract it from the metadata tables. Needed for Reflection
3616         Only assemblies.
3617         
3618 2005-07-29  Martin Baulig  <martin@ximian.com>
3619
3620         * mono-debug-debugger.c
3621         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
3622         not initialized.
3623
3624         * mono-debug.c
3625         (mono_debug_address_from_il_offset): Check whether we have
3626         debugging support before attempting to take the lock.
3627         (mono_debug_source_location_from_address): Likewise.
3628         (mono_debug_source_location_from_il_offset): Likewise.
3629         (mono_debug_il_offset_from_address): Likewise.
3630         (mono_debug_address_from_il_offset): Likewise.
3631
3632 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
3633
3634         * class.c (mono_class_from_name_case): Add support for dynamic images.
3635         Fixes #75650.
3636
3637         * object.c (mono_class_compute_gc_descriptor): Add a workaround
3638         for #75479.
3639
3640 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3641         
3642         * reflection.c (mono_method_get_object): Fix warning.
3643
3644 2005-07-28  Martin Baulig  <martin@ximian.com>
3645
3646         * mono-debug.c
3647         (mono_debug_add_wrapper): Also write the wrapper type.
3648
3649 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3650
3651         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
3652         
3653         * class.c (mono_class_init): Avoid reading nested classes if the AOT
3654         data indicates the class has none.
3655
3656 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
3657
3658         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
3659         loader lock with the debugger lock. Prevents deadlocks for beagle.
3660
3661         Beagle can now run on an smp box for a weekend without any
3662         issues. Woohoo!
3663
3664 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3665
3666         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3667         in a module. Fixes #75629.
3668
3669 2005-07-26  Martin Baulig  <martin@ximian.com>
3670
3671         * mono-debug.c (mono_debug_add_wrapper): New static method.
3672         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3673         interncall or a wrapper.
3674
3675         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3676         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3677         (MONO_DEBUGGER_VERSION): Bump to 51.
3678
3679         * mono-debug-debugger.c
3680         (mono_debugger_add_type): Removed this empty function.
3681         (mono_debugger_add_method): Likewise.
3682
3683 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3684
3685         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3686         before accessing method->slot.
3687
3688 2005-07-21  Jb Evain  <jbevain@gmail.com>
3689
3690         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3691         Fixes #75010.
3692
3693 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3694
3695         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3696         #75587.
3697
3698 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3699
3700         * image.h image.c: Add mono_image_get_guid () API function.
3701
3702 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3703
3704         There were issues when multiple threads tried to load
3705         assemblies. A deadlock was created between assemblies_mutex and
3706         mono_domain_assemblies_lock. This fixes the issue by making the
3707         assembly ref counting be lock free. See bug 75586.
3708         
3709         * image.c (mono_image_close): The add ref function here was using
3710         Interlocked operations while the unref was using a mutex and a
3711         --. I don't think this was ever a bug that would be exposed in a
3712         non-pendantic way (ie, by an embedder doing a ref on one thread
3713         and an unref on another), but for the sake of correctness, this is
3714         now Interlocked.
3715
3716         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3717         (mono_assembly_load_reference): Call mono_assembly_addref rather
3718         than touching the refcount ourselves.
3719         (mono_assembly_close): Use InterlockedDecrement to unref the
3720         assembly. Don't acquire the lock unless it is actually needed.
3721
3722 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3723
3724         * class.c (mono_class_layout_fields): Fix calculation of has_references
3725         for generic types.
3726
3727 2005-07-12  Martin Baulig  <martin@ximian.com>
3728
3729         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3730
3731         * metadata.c
3732         (mono_type_hash): Provide better hashing for generic instances.
3733         (mono_generic_inst_hash): Improve hashing.
3734         (mono_generic_class_hash): Likewise.
3735
3736         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3737         generic instances.
3738
3739 2005-07-12  Martin Baulig  <martin@ximian.com>
3740
3741         * reflection.c (mono_reflection_create_runtime_class): Remove the
3742         hack for generic type definitions and non-`Run' assemblies.
3743         (mono_reflection_bind_generic_parameters): Also use
3744         `klass->wastypebuilder' to check for TypeBuilders.
3745
3746 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3747
3748         * class.c (mono_class_layout_fields): Fix calculation of has_references
3749         for generic types.
3750
3751         * class.c (inflate_generic_class): Fix a leak.
3752         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3753         for generic types.
3754
3755 2005-07-11  Martin Baulig  <martin@ximian.com>
3756
3757         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3758         on error.
3759
3760 2005-07-11  Martin Baulig  <martin@ximian.com>
3761
3762         * loader.c (find_method): Also lookup in
3763         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3764
3765 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3766
3767         * appdomain.c (mono_domain_unload): Don't free the error message
3768         before passing it to mono_get_exception_...
3769
3770         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3771         
3772 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3773
3774         * threads.c: try to better guess an available RT signal (bug #75387).
3775
3776 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3777
3778         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3779         and CACHE_OBJECT.
3780
3781 2005-07-07  Martin Baulig  <martin@ximian.com>
3782
3783         * class.c (mono_type_get_name_full): Return NULL for
3784         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3785         fixes #75408.
3786
3787 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3788
3789         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3790         exit the appdomain as well being aborted.
3791
3792         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3793         change back to the root domain after calling managed code. This enables
3794         appdomains using threadpools to be unloaded.
3795
3796 2005-07-07  Martin Baulig  <martin@ximian.com>
3797
3798         * class-internals.h
3799         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3800         into `MonoDynamicGenericClass' since we only need it for dynamic
3801         types.
3802
3803         * reflection.c (mono_class_bind_generic_parameters): We don't need
3804         to compute the `parent' here.
3805
3806 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3807
3808         * culture-info-table.h : regenerated.
3809
3810 2005-07-06  Martin Baulig  <martin@ximian.com>
3811
3812         * icall.c
3813         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3814
3815         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3816
3817 2005-07-06  Martin Baulig  <martin@ximian.com>
3818
3819         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3820         we're doing a signature-only comparision; fixes #74945.
3821
3822 2005-07-06  Martin Baulig  <martin@ximian.com>
3823
3824         * class-internals.h (MonoGenericClass): Moved some things out into
3825         a new `MonoInflatedGenericClass' type.  
3826         (MonoInflatedGenericClass): New type; the `klass' of a
3827         `MonoGenericClass' is now computed lazyly in
3828         mono_get_inflated_generic_class().      
3829
3830         * class.c (mono_get_inflated_generic_class): New public function.
3831         (mono_class_inflate_generic_method): Removed the unused
3832         `MonoClass *' argument.
3833         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3834         all the methods.
3835         (mono_class_create_generic): Make this static and merge it with
3836         mono_class_create_generic_2(); we're now called automatically from
3837         mono_get_inflated_generic_class().
3838
3839         * loader.c (mono_method_signature): Call
3840         mono_get_inflated_method() here.
3841
3842 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
3843
3844         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
3845         type of fields with RVA.
3846
3847         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
3848         for this pseudo class.
3849         (my_mono_class_from_generic_parameter): Likewise.
3850         (mono_class_init): Allow interfaces to have cctors.
3851
3852 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3853
3854         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
3855         lazily for AOT methods.
3856
3857 2005-07-05  Martin Baulig  <martin@ximian.com>
3858
3859         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
3860         returns FALSE for a successful match, not TRUE.
3861
3862 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3863
3864         * loader.c (mono_method_get_index): Optimize this a bit.
3865
3866 2005-07-04  Martin Baulig  <martin@ximian.com>
3867
3868         * class.c
3869         (class_compute_field_layout): Move the check for generic type
3870         definitions into mono_class_layout_fields().  Fixes #74684.
3871         (mono_class_from_generic_parameter): Correctly compute
3872         `klass->parent'; fixes #75457.
3873
3874         * reflection.c (register_assembly, register_module): Make sure
3875         `domain->rejobject_hash' is already created.
3876
3877 2005-07-02  Martin Baulig  <martin@ximian.com>
3878
3879         * class-internals.h
3880         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
3881         `MonoDynamicGenericClass'.      
3882
3883 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
3884
3885         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
3886         returned by a field getter is null, since null is a valid value.
3887
3888 2005-07-01  Martin Baulig  <martin@ximian.com>
3889
3890         * reflection.c (mono_reflection_generic_class_initialize): Update
3891         the `dgclass->fields [i].parent' to the correct class.
3892         (mono_image_get_fieldref_token): Use the declaring type, not the
3893         reflected type.
3894
3895 2005-07-01  Martin Baulig  <martin@ximian.com>
3896
3897         * loader.c (find_method): Also look in the interfaces; fixes #75429.
3898
3899 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
3900
3901         * threads.c (thread_cleanup): assert that thread != NULL
3902         (wait_for_tids_or_state_change): We were using the wrong variable
3903         when accessing wait->threads. `i' was always out of the bounds of
3904         the array.
3905
3906 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3907
3908         * loader.c: map user32 and kernel32 to libMonoSupportW
3909
3910 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
3911
3912         * appdomain.c (unload_thread_main): Mark this as WINAPI.
3913
3914 2005-06-28  Martin Baulig  <martin@ximian.com>
3915
3916         * loader.c (method_from_methodspec): Fix #75334.
3917
3918 2005-06-28  Martin Baulig  <martin@ximian.com>
3919
3920         Fix #74953 - Arrays now implement the generic IList<T> interface
3921         on the 2.0 platform.
3922
3923         * class-internals.h (MonoDefaults): Added `generic_array_class'.
3924
3925         * reflection.c (mono_class_bind_generic_parameters): New public
3926         function; similar to mono_reflection_bind_generic_parameters(),
3927         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
3928
3929         * domain.c (mono_init_internal): Try to initialize.
3930         `mono_defaults.generic_array_class' here; this'll only succeed if
3931         we're using the 2.0 corlib.
3932
3933         * icall.c
3934         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
3935         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
3936         (mono_lookup_internal_call): Added support for nested classes.
3937
3938         * loader.c
3939         (mono_get_method_from_token): Set `result->signature->pinvoke' if
3940         we're an interncall and have generic arguments.
3941
3942         * class.c
3943         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
3944         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
3945         instance of System.Array.InternalArray<T> for arrays, so they
3946         implement the generic IList<T> interface.
3947
3948 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
3949
3950         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
3951         (chastamar@yahoo.com). Fixes #75374.    
3952
3953 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
3954
3955         * culture-info-table.h: regenerated.
3956
3957 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3958
3959         * icall.c: handle spaces correctly for base64 strings.
3960
3961 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
3962
3963         * *.c: Kill some warnings.
3964
3965 2005-06-23  Duncan Mak  <duncan@novell.com>
3966
3967         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
3968         that this builds on Solaris 10 (x86).
3969
3970 2005-06-23  Martin Baulig  <martin@ximian.com>
3971
3972         * class.c
3973         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
3974         generic type definitions.
3975
3976 2005-06-23  Martin Baulig  <martin@ximian.com>
3977
3978         Fix #75331.
3979
3980         * metadata.c (mono_class_get_overrides): Renamed to
3981         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
3982         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
3983         pass it to mono_get_method_full().
3984
3985 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
3986
3987         * reflection.c (mono_reflection_create_runtime_class): take the
3988         mono_domain_lock in this method. Prevents deadlocks
3989
3990 2005-06-22  Martin Baulig  <martin@ximian.com>
3991
3992         * loader.c (method_from_methodspec): Fix #75330.
3993
3994 2005-06-22  Martin Baulig  <martin@ximian.com>
3995
3996         * reflection.c (type_get_qualified_name): Use
3997         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
3998         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
3999         argument; use it if we don't have an assembly name.
4000
4001 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
4002
4003         * object.c: In mono_message_init, set "copy out" flag for in
4004         parameters with the [Out] flag.
4005
4006 2005-06-21  Martin Baulig  <martin@ximian.com>
4007
4008         * class.c
4009         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
4010         and MONO_TYPE_PTR.
4011
4012 2005-06-21  Martin Baulig  <martin@ximian.com>
4013
4014         * class.c (mono_class_init): Don't initialize `class->fields' for
4015         generic instances since they're initialized again in
4016         compute_field_layout(). 
4017         (compute_field_layout): Set the field's `generic_info' here; fix
4018         #75320. 
4019
4020 2005-06-21  Martin Baulig  <martin@ximian.com>
4021
4022         * class-internals.h
4023         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
4024
4025         * metadata.c (mono_metadata_generic_method_equal): Also
4026         distinguish the `generic_class'; fixes #75334.
4027
4028 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4029
4030         * domain.c:
4031         * appdomain.c:
4032         * domain-internals.h:
4033         * reflection.c: 'domain_assemblies' field is now protected by its own
4034         lock. Don't call into managed code to run the AssemblyLoad event if we
4035         now there are no registered delegates for it.
4036
4037 2005-06-20  Martin Baulig  <martin@ximian.com>
4038
4039         * class.c (mono_class_is_assignable_from): Use a custom version of
4040         mono_class_has_parent() to make things work for generic instances;
4041         fix #75300.
4042
4043 2005-06-20  Martin Baulig  <martin@ximian.com>
4044
4045         * loader.c (method_from_methodspec): Apply a patch from
4046         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
4047
4048 2005-06-20  Martin Baulig  <martin@ximian.com>
4049
4050         * class.c (mono_class_init): Reverted Zoltan's last change; it
4051         breaks generics.
4052
4053 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
4054
4055         * threads.c (wait_for_tids_or_state_change): Add missing locking.
4056
4057 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4058
4059         * socket-io.c: fix the index in the socket array for writable/error
4060         sockets. Fixes bug #75306.
4061
4062 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
4063
4064         * class.c (mono_class_init): Allow interfaces to have static ctors.
4065
4066 2005-06-17  Martin Baulig  <martin@ximian.com>
4067
4068         * loader.c (method_from_methodspec): Use `context->container' when
4069         parsing the `gmethod->inst'.
4070
4071 2005-06-17  Martin Baulig  <martin@ximian.com>
4072
4073         * class.c (mono_type_get_name_recurse): Don't add the assembly
4074         name for type arguments.
4075
4076 2005-06-15  Martin Baulig  <martin@ximian.com>
4077
4078         * reflection.c (mono_image_get_inflated_method_token): Encode
4079         correct klass; fixes #75260.
4080
4081 2005-06-13 Michal Moskal <malekith@nemerle.org>
4082
4083         * icall.c: Make GetCorrespondingMethod/Constructor take
4084         MonoReflectionMethod method not MonoMethod. Removed
4085         MonoType.GetCorrespondingField, and make
4086         MonoGenericType.GetCorrespondingField take name not
4087         MonoClassField.
4088
4089 2005-06-13  Michal Moskal <malekith@nemerle.org>
4090
4091         * reflection.c (field_encode_signature, encode_locals):
4092          Make sizes of buffers for types larger (for big generic types).
4093          (create_generic_typespec,
4094          mono_reflection_sighelper_get_signature_local,
4095          mono_reflection_sighelper_get_signature_field):
4096          Add asserts for too small buffers.
4097
4098 2005-06-15  Martin Baulig  <martin@ximian.com>
4099
4100         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
4101         if our parent is not a dynamic type.
4102
4103 2005-06-15  Martin Baulig  <martin@ximian.com>
4104
4105         * class-internals.h (MonoTypeNameFormat): New enum.
4106
4107         * class.c
4108         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
4109         (mono_type_get_full_name): Removed.
4110         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
4111         argument instead of the boolean's.
4112
4113         * icall.c (ves_icall_System_MonoType_getFullName):
4114         Added `gboolean assembly_qualified'.    
4115
4116         * reflection.h
4117         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
4118
4119         * reflection.c (mono_reflection_parse_type): Parse the new type
4120         name format.
4121
4122 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4123
4124         * icall.c: no need to convert from utf16 to utf8 and then back again
4125         after the call to GetLogicalDrives.
4126
4127 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4128
4129         * icall.c: frombase64. Fix problems exposed by new tests.
4130
4131 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4132
4133         * icall.c: added internal calls for converting char [] and strings in
4134         base64 into byte [].
4135
4136 2005-06-10  Martin Baulig  <martin@ximian.com>
4137
4138         * class.c (mono_class_create_generic_2): Read the nested classes
4139         from the metadata rather than from `gklass->nested_classes' since
4140         `gklass' might not be initialized yet.
4141
4142 2005-06-09  Duncan Mak  <duncan@novell.com>
4143
4144         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
4145         all public headers. Fixes #74919.
4146
4147 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
4148
4149         * domain.c: The key for proxy_vtable_hash is now a pointer
4150         array. Added new GHashFunc and GCompareFunc functions for this.
4151
4152         * class.h: The list of interfaces in MonoRemoteClass is known in
4153         advance and can't grow (we create a new MonoRemoteClass if needed),
4154         so now the interface array can be allocated together with
4155         MonoRemoteClass.
4156         
4157         * object.c: Added a new method create_remote_class_key.
4158         Fixed mono_remote_class so it does not depend on
4159         mono_upgrade_remote_class.
4160         Removed extend_interface_array.
4161         Added new method clone_remote_class(), which makes a copy of a remote
4162         class and adds a new interface or class to it.
4163         mono_upgrade_remote_class() now creates a new remote class (or gets
4164         it from the cache) if an vtable upgrade is needed. In this way
4165         we make sure that other objects sharing the same remote class
4166         don't get the new vtable with unwanted interfaces.
4167         
4168         * object-internals.h:
4169         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
4170         
4171         * marshal.c: Track changes in mono_upgrade_remote_class().
4172
4173 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
4174         * icall.c: Add runtime methods for obtaining members of inflated
4175         class, which were created from supplied non-inflated members. It
4176         is used in internal Get{Method,Constructor,Field} methods in
4177         System.Type
4178
4179 2005-06-09  Martin Baulig  <martin@ximian.com>
4180
4181         * reflection.c
4182         (mono_reflection_bind_generic_method_parameters): Fix #75169.
4183
4184 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4185         * reflection.c (mono_image_basic_init): Define
4186         Version in MonoDynamicAssembly. 
4187         
4188 2005-06-08  Martin Baulig  <martin@ximian.com>
4189
4190         Fix #75136.
4191
4192         * loader.c
4193         (mono_method_signature_full): New public method; takes a
4194         `MonoGenericContext *'.
4195         (find_method): Use mono_method_signature_full() and pass the
4196         klass'es context to it.
4197
4198         * class.c (mono_class_is_inflated_method): Use
4199         mono_method_signature_full() and pass the context to it.
4200
4201 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
4202
4203         * object.c: add proper locking in mono_remote_class_vtable(),
4204         fixes possible memory corruption.
4205
4206 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
4207
4208         * marshal.c (mono_remoting_marshal_init): set
4209         initialized after initialization.
4210
4211 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4212
4213         * locales.c : hush.
4214
4215 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
4216
4217         * object.c (extend_interface_array): fix really silly
4218         memory corrupting / comparison bug.
4219
4220 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4221
4222         * reflection.c: Functions added to support the creation
4223         of CustomAttributeData, which includes Attribute data
4224         used by ReflectionOnly methods.
4225
4226         * reflection.h:  mono_reflection_get_custom_attrs_data and
4227          mono_custom_attrs_data_construct added (functions exposed).
4228
4229          * icall.c: Added mono_reflection_get_custom_attrs_data
4230          as icall.
4231         
4232 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
4233
4234         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
4235         lupus's request.
4236
4237 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
4238
4239         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
4240
4241         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
4242         dynamic DllImportAttribute.
4243
4244         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
4245         dynamic DllImportAttribute.
4246
4247         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
4248         Fixes #75162.
4249
4250 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4251
4252         * threads.c: avoid segfault when an unstarted thread is aborted.
4253
4254 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
4255
4256         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
4257         Returns the name and version of the runtime for reporting.
4258
4259 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4260
4261         * appdomain.c: bump corlib version.
4262         * object-internals.h: new field in MonoReflectionAssembly.
4263
4264 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4265
4266         * object-internals.h: Carlos forgot to add this field.
4267
4268 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4269
4270         * icall.c: Added create_version to create instances
4271         of Version of MonoReflectionAssemblyName. This change helps
4272         the AssemblyName tests to keep running fine.
4273         
4274 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
4275   
4276         * object.c (mono_method_return_message_restore): A somehow less
4277         intrusive fix for #75138.
4278
4279 2005-06-03  Raja R Harinath  <rharinath@novell.com>
4280
4281         * object.c (mono_method_return_message_restore): Fix computation
4282         of expected number of out args.
4283
4284 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4285
4286         * reflection.c (mono_image_get_method_info): Fix the case when the
4287         charset is empty.
4288
4289 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
4290
4291         * object.c: Added missing null check in
4292           mono_method_return_message_restore.
4293
4294 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4295
4296         * reflection.c (mono_image_get_method_info): Handle the case when
4297         dllentry is empty.
4298
4299 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
4300
4301         * object.c: When creating the vtable for a proxy, take into account
4302         all inherited interfaces, not only the ones registered in
4303         iclass->interfaces. This fixs bug #74996.
4304         Also, in mono_method_return_message_restore, verify that the array
4305         of out args has the expected lengh.
4306
4307 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4308
4309         * socket-io.c: update the timeout in Poll when the call is interrupte.
4310
4311 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4312
4313         * socket-io.c: support abort/suspend in Select_internal after last
4314         change.
4315
4316 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4317
4318         * threadpool.c: remove warning.
4319
4320 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4321
4322         * icall.c:
4323         * socket-io.[ch]: Select_internal uses poll() now when available, thus
4324         removing the 1024 limit from select(). Runtime part of the fix for
4325         bug #71203.
4326
4327 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4328
4329         * socket-io.c: when resolving the addresses for the same
4330         host returned by gethostname(), get the local IPs from the interface
4331         list. Loopback addresses are discarded if the are interfaces up with
4332         non-loopback ones. Fixes bug #63265.
4333
4334 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
4335
4336         * appdomain.c, verify.c, object-internals.h, reflection.c:
4337         bumped corlib number to 36, and added new extra_flags field
4338         to ReflectionMethodBuilder and friends.  Fixes #75060.
4339
4340 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
4341
4342         * gc.c: register a new weak link only if the object is non-null
4343         (fixes bug#75047).
4344
4345 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4346
4347         * culture-info.h : short time pattern too.
4348
4349 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4350
4351         * culture-info.h : expand long time pattern string length.
4352
4353 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4354
4355         * culture-info-table.h : update (more French date format; #72788).
4356
4357 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
4358
4359         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
4360         the method is static. Fixes #75029.
4361
4362 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
4363
4364         * reflection.c: Update the table_idx field of method builders after
4365         saving the module, since it can change. This is a workaround for
4366         bug #74914. 
4367
4368 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4369
4370         * culture-info-table.h : update (additional French date format).
4371
4372 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4373
4374         * icall.c (ves_icall_type_Equals): Revert last change.
4375         
4376         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
4377
4378         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
4379
4380 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
4381
4382         * class-internals.h: Added executioncontext_class field to 
4383         MonoDefaults structure.
4384         * domain.c: Cache System.Threading.ExecutionContext class in 
4385         mono_defaults.
4386         * object.c: Capture the ExecutionContext for asynchroneous calls in
4387          mono_async_result_new.
4388         * object-internals.h: Added execution_context and original_context 
4389         fields to MonoAsyncResult. Added execution_context to MonoThread.
4390         * security-manager.c|.h: Added mono_get_context_capture_method to 
4391         return the capture method (if required by the security manager or by
4392         the framework version used).
4393         * threadpool.c: Apply capture (if present) ExecutionContext in 
4394         mono_async_invoke and revert to original context after it completes.
4395
4396 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
4397
4398         * culture-info-table.h : updated (real hacky solution for zh-CHT).
4399
4400 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
4401
4402         * culture-info-table.h : zh-CHT related workaround.
4403
4404 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4405
4406         * marshal.c (emit_marshal_custom): Add some error checking and call the
4407         methods in the ICustomMarshaler interface. Fixes #74875.
4408         
4409         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
4410         native->managed wrappers.
4411
4412 2005-05-12  Martin Baulig  <martin@ximian.com>
4413
4414         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
4415         here and use the loader lock.
4416
4417         * mono-debug.c: Properly lock when the debugger is not attached.
4418         (mono_debug_init): Release the initial lock if we're not running
4419         in the debugger.
4420
4421 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4422
4423         * marshal.c (emit_marshal_custom): Pass through NULL values without
4424         calling the custom marshalling routines.
4425
4426         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
4427         conversion in structures. Fixes #74882.
4428
4429 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
4430
4431         * culture-info-table.h : zh-* cultures were missing.
4432
4433 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
4434
4435         * threads.c: Added a new event background_change_event which is signaled
4436         when a thread changes its background mode.
4437         Moved here several checks previously done in managed code. The checks
4438         require the thread lock, and using the thread lock in managed code
4439         can result in deadlocks.
4440         Merged Start_internal and Thread_internal into a single method. Now 
4441         Thread_internal does all work of creating and starting a thread.
4442         Added icalls for setting and getting the state of the object. Moved from
4443         managed code to avoid locking there.
4444         Added wait_for_tids_or_state_change() which is called instad of
4445         wait_for_tids when waiting for non-backround threads to end. This method
4446         will return if one of the threads ends or the background_change_event
4447         is signaled.
4448         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
4449         the background mode. This method signals the background_change_event
4450         event.
4451         * icall.c:
4452         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
4453         removed Start_internal.
4454         
4455 2005-05-11  Martin Baulig  <martin@ximian.com>
4456
4457         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
4458         to order of some fields to get proper alignment on 64-bit machines.
4459
4460 2005-05-11  Martin Baulig  <martin@ximian.com>
4461
4462         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
4463         changes as they're broken and completely fuck up the debugger.
4464
4465         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
4466
4467 2005-05-10  Martin Baulig  <martin@ximian.com>
4468
4469         * reflection.c (mono_reflection_generic_class_initialize): Don't
4470         call mono_class_setup_parent() here.
4471
4472 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4473
4474         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
4475         send/receive timeout use an integer in milliseconds. We were using a
4476         struct timeval.
4477
4478 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4479
4480         * locales.c:
4481         (internal_get_cultures): reserve the first slot of the array for the
4482         InvariantCulture, which will be filled in managed code.
4483
4484 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
4485
4486         * reflection.c (mono_image_fill_module_table): Initialize the
4487         GENERATION field as well.
4488
4489 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4490
4491         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
4492         Monitor.Enter on the object.
4493
4494 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4495
4496         * threads.c: Enable the wait for running threads when exiting.
4497         * icall.c: Suspend all threads before exiting.
4498
4499 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4500
4501         * assembly.c (mono_assembly_load_reference): Fix warning.
4502
4503 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4504
4505         * threadpool.c: changed the default number of threads per cpu. From now
4506         on, the default will be 20 + (5 * number of cpus) instead of 50.
4507
4508 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
4509
4510         * loader.c (mono_method_get_signature_full): Add locking here.
4511
4512 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
4513
4514         * appdomain.c: Moved methods for parsing and freeing assembly
4515         names to assembly.c.
4516         * assembly.c, domain-internals.h: Created public methods for parsing
4517         assembly names. Fixed mono_assembly_load_with_partial_name:
4518         it now finds the best match, taking into account the version,
4519         token and culture specified in the partial name. Also return
4520         the latest version if no version information is specified.
4521
4522 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
4523
4524         * threadpool.c: replace check for SocketAsyncCall class.
4525
4526 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4527
4528         * threadpool-internals.h:
4529         * Makefile.am: added threadpool-internals.h
4530
4531         * threadpool.c: call mono_unhandled_exception on exceptions not handled
4532         that happen in threadpool threads (tested on MS).
4533         (mono_thread_pool_remove_socket): new function that dispatch any pending
4534         AIO call on a socket that is closing. By now only epoll really needs it,
4535         as select/poll wake up when the socket closes.
4536
4537
4538         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
4539
4540 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
4541
4542         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
4543
4544 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
4545
4546         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
4547
4548 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
4549
4550         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
4551         has an abort request, convert it into a suspend request.
4552
4553 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
4554
4555         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
4556         warning for the usage of `UnmanagedFunctionPointerAttribute' which
4557         is not supported yet.
4558
4559 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4560
4561         * image.c: register assemblies loaded from data (bundles) in the loaded
4562         assemblies hash. Fixes bug #74772.
4563
4564 2005-04-29  Martin Baulig  <martin@ximian.com>
4565
4566         * class.c (mono_type_get_name_recurse): Update to the new naming
4567         schema from the latest .NET 2.x beta2.
4568         (mono_class_setup_vtable_general): If we're a generic instance,
4569         copy the vtable from our generic type definition and inflate all
4570         the methods in it.
4571
4572         * loader.c (find_method): Update to the new naming schema from the
4573         latest .NET 2.x beta2.
4574
4575 2005-04-29  Raja R Harinath  <harinath@gmail.com>
4576
4577         * class.c (mono_class_init): Add a mono_loader_unlock to the
4578         #74734 fix.
4579
4580 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4581
4582         * icall.c (ves_icall_System_Environment_Exit): Remove the 
4583         suspend_all_other_threads () call for the time being, since it can hang.
4584
4585         * threads.c (mono_thread_manage): Similarly, disable the waiting for
4586         the background threads to exit, since it can also hang.
4587
4588         * class.c (mono_class_init): Applied patch from Ankit Jain 
4589         (radical@gmail.com). Avoid pending init errors when a field refers
4590         to a nested class using a typeref. Fixes #74734.
4591
4592         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
4593         this for dynamic modules.
4594
4595 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4596
4597         * threads.c: don't wait for threads that are in the process of aborting
4598         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
4599         and waiting for background threads to finish. This makes xsp and
4600         mod-mono-server exit without random length delays and/or hangs.
4601
4602 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4603
4604         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
4605
4606 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
4607
4608         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
4609         dynamic types to prevent infinite loops. Fixes #74727.
4610
4611         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
4612         ..._is_assignable_to.
4613
4614 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
4615
4616         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
4617
4618 2005-04-25  Martin Baulig  <martin@ximian.com>
4619
4620         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
4621
4622         * domain.c
4623         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
4624
4625         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
4626
4627         * reflection.c (build_compressed_metadata): Set metadata header
4628         version to 2.0.
4629
4630 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4631
4632         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
4633         number into an integral and a decimal part. Fixes #70473.
4634
4635         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
4636
4637 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
4638
4639         * culture-info-table.h : reflected the latest locale-builder output.
4640
4641 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4642
4643         * threadpool.c: check for SuspendRequested too when deciding if
4644         mono_thread_interruption_checkpoint should be called.
4645
4646 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4647
4648         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
4649         * threads.c: remove interruption_mutex and use Interlocked instead. When
4650         suspending all the threads, wait for all the suspended events at once.
4651         If we're shutting down and get an APC that is going to be queued,
4652         call mono_thread_execute_interruption immediately, as the thread might
4653         be sleeping on a pthread condition or mutex.
4654
4655         * icall.c: call mono_runtime_set_shutting_down before suspending the
4656         threads.
4657
4658         Fixes bug #74693. And now xsp is happier when exiting.
4659
4660 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4661
4662         * loader.c (mono_stack_walk): Fix #74690.
4663
4664 2005-04-22  Martin Baulig  <martin@ximian.com>
4665
4666         * mono-debug.h (MonoDebugMethodJitInfo): Added
4667         `MonoDebugMethodJitInfo *jit'.
4668
4669         * mono-debug.c (mono_debug_read_method): Cache the
4670         MonoDebugMethodJitInfo in `address->jit'.
4671         (mono_debug_free_method_jit_info): New public method.
4672
4673 2005-04-22  Martin Baulig  <martin@ximian.com>
4674
4675         * class.c (mono_class_is_assignable_from): Disallow
4676         type parameter -> interface.
4677
4678 2005-04-21  Dick Porter  <dick@ximian.com>
4679
4680         * threads.c (mono_thread_create): Turn an assertion into an error.
4681
4682 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4683
4684         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4685         
4686         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4687         Fix some gcc 4.0 warnings.
4688
4689 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4690
4691         * file-io.c: fix alt dir separator char on unix systems
4692         and cleanup (fixes bug #71214).
4693
4694 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4695
4696         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4697         a call to a remote domain, since the method may be an
4698         interface method in the client domain. This fixes bug #74192.
4699
4700 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4701
4702         * threadpool.c: recv/send are now performed before going back to managed
4703         code to save one transition.
4704
4705 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4706
4707         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4708
4709         * metadata/threadpool.c: removed hack to workaround the bug above.
4710
4711         Fixes bug #74618.
4712
4713 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4714
4715         * reflection.c reflection.h: Fix handling of parameter defaults in
4716         dynamic methods. Also fixes handling of parameter attributes.
4717         Fixes #74609.
4718
4719         * mono-debug.c (mono_debug_close_image): Fix warning.
4720
4721 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4722
4723         * socket-io.h: replaced old unused field with new 'blocking'.
4724         * threadpool.c: restore socket blocking state on windows(tm).
4725
4726 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4727
4728         * icall.c: don't return the codebase in the AssemblyName[] returned by
4729         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4730         * object-internals.h: Removed FIXME (fields were presents) and fixed
4731         versioncompat declaration.
4732
4733 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4734
4735         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4736         not closed, so don't cleanup when it happens.
4737
4738 2005-04-13  Chris Toshok  <toshok@ximian.com>
4739
4740         * mono-debug-debugger.h: change prototype for
4741         mono_debugger_lookup_type.
4742
4743         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4744         this function, although it should probably be named
4745         mono_debugger_init_type.
4746
4747 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4748
4749         * threadpool.c: fix non-AIO case.
4750
4751 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4752
4753         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4754         the built-in profiler to measure just JIT compilation times.
4755
4756 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4757
4758         * threadpool.c: the epollfd might be closed by another thread at
4759         any time, so ignore EBADF at treat it as a "we're closing" sign.
4760
4761 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4762
4763         * threadpool.c: release the semaphores with a count equals to the number
4764         of working threads in both IO and regular pools. Fixed typo that messed
4765         up the count of IO pool threads. Don't initialize the pipe handles if
4766         we're using epoll.
4767
4768 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4769
4770         * threadpool.c: some systems don't like a NULL when deleting the socket
4771         from epoll.
4772
4773 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4774
4775         * threadpool.c: fix semaphore allocation.
4776
4777 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4778
4779         * threadpool.c: added epoll() based implementation for asynchronous IO
4780         that is used instead of the default poll() when available.
4781         It can be disabled by setting MONO_DISABLE_AIO.
4782
4783 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4784
4785         * threadpool.c: windows needs 'closesocket' and instead of returning
4786         0 when the stream is closed while in select, it returns -1. Fixes bug
4787         #74573.
4788
4789 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4790
4791         * class.c (class_compute_field_layout): Fix the regression caused by
4792         the previous try.
4793
4794 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4795
4796         * threadpool.c: separate pool for socket async. IO.
4797         * threadpool.h: mono_max_worker_threads is not a global any more.
4798
4799 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4800
4801         * class.c (class_compute_field_layout): Fix #74549.
4802
4803 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4804
4805         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4806         use 2 connected sockets instead.
4807
4808 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4809
4810         * mono-config.c: Add new entry point for mkbundle
4811         mono_config_parse_memory. 
4812
4813 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4814
4815         * threadpool.c: removed another unused function.
4816
4817 2005-04-08  Ankit Jain  <radical@corewars.org>
4818
4819         * reflection.c (get_default_param_value_blobs): Add 'types'
4820         parameter to get the types encoded in the constant table.
4821         (mono_param_get_objects): Use the type from the constant table,
4822         not the type of the parameter, when creating default values.
4823         Handle null default values correctly.
4824
4825 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4826
4827         * file-io.c:
4828         * file-io.h:
4829         * threadpool.c:
4830         * threadpool.h:
4831         * icall.c:
4832         * socket-io.c: removed dead code for async IO.
4833
4834 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4835
4836         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4837
4838         * threadpool.c: intercept socket async. calls and pass them to a thread
4839         that is polling and dispatching the job items to the threadpool as
4840         socket become ready. Fixes bugs #71217, #71933.
4841
4842         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
4843         between char and short/ushort arrays.
4844
4845         * socket-io.c: remove dead code.
4846
4847 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4848
4849         * locales.c,
4850           icall.c : removed InternalToUpper_Comp() and
4851           InternalToLower_Comp().
4852
4853 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4854
4855         * char-conversions.h : The tables were incorrectly generated. Should
4856           be generated against invariant culture.
4857
4858 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4859
4860         * object.c (mono_runtime_invoke_array): Fix return value when 
4861         passing pre-created valuetype objects to ctors.
4862
4863         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
4864         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
4865         Fixes #74338.
4866
4867 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
4868
4869         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
4870         only used with --security and hides the wrong corlib version error.
4871
4872 2005-03-30  Joshua Tauberer  <tauberer@for.net>
4873
4874         * class.c: Changed mono_class_name_from_token so that types
4875         outside of a namespace don't have an initial period.  Improved
4876         the g_warning message used in _mono_class_get when loading
4877         fails.
4878         * assembly.c: In mono_assembly_load_reference, when an assembly
4879         can't be found, "No such file or directory" is misleading and
4880         unhelpful because a few paths were checked for the presence of
4881         the assembly.  When that happens (ENOENT), display a nicer
4882         message indicating the directories that were searched.  In all
4883         cases, the warning is made easier to read for non-hackers.
4884
4885 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
4886
4887         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
4888         project/solution.
4889         * appdomain.h|domain.c: Removed inline from functions.
4890         * appdomain.c: Reduced warnings when compiling on windows.
4891         * icall.c: Fixed output_debug declaration to gunichar2*.
4892         * mono-config.c: Reduced warnings when compiling on windows.
4893         * rand.c: Added missing "windows.h". Added missing return value.
4894         * rawbuffer.c: Added missing winsock2.h for windows.
4895         * sysmath.h: Added mono-compiler.h header to allow/ease 
4896         compilation with non-GCC compilers.
4897         * threads.c: Fixed declarations to compile with VS.NET C compiler.
4898         Removed cast warnings.
4899
4900         Adapted from the work of J Lothian (for VC6).
4901
4902 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4903
4904         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
4905         from default_path.
4906
4907 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
4908
4909         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
4910         the 2.0 profile.
4911
4912 2005-03-27  Raja R Harinath  <harinath@gmail.com>
4913
4914         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
4915         has to be in $(exec_prefix).  $(prefix) is for arch-independent
4916         stuff, and it would probably use $(prefix)/share rather than
4917         $(prefix)/lib.
4918
4919 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4920
4921         * console-io.c: added 2 includes that might be missing.
4922
4923 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4924
4925         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
4926         profile.
4927
4928         * reflection.c (create_custom_attr): Allocate the params array using
4929         alloca so it gets GC tracking.
4930
4931 2005-03-23  Chris Toshok  <toshok@ximian.com>
4932
4933         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
4934         out some spew.
4935
4936 2005-03-24  Raja R Harinath  <rharinath@novell.com>
4937
4938         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
4939         changes to pick up any changes in prefix, etc.
4940
4941 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4942
4943         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
4944         
4945         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
4946         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
4947
4948 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4949
4950         * class-internals.h object-internals.h class.c reflection.c: Extend the
4951         mono_lookup_dynamic_token () function to return the class of the
4952         token as well. 
4953
4954         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
4955         well. Fixes #73848.
4956
4957 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
4958
4959         * security-manager.c: Skip inheritance checks for intra-corlib
4960         class inheritance and method overrides. This skips a lot of checks
4961         and (anyway) permissions cannot work until corlib is loaded.
4962
4963 2005-03-23  Martin Baulig  <martin@ximian.com>
4964
4965         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
4966         MONO_TYPE_GENERICINST.  
4967
4968 2005-03-23  Martin Baulig  <martin@ximian.com>
4969
4970         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
4971
4972 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4973
4974         * class.c: added locking comments to some functions.
4975         Cache the interface offsets arrays (saves about 20 KB
4976         of runtime memory in a typical app).
4977         Reduce the time overhead in mono_class_setup_supertypes ().
4978
4979 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
4980
4981         * icall.c: speedup and fix leaks in GetMethodsByName and
4982         GetPropertiesByName.
4983
4984 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
4985
4986         * reflection.c: some locking fixes.
4987
4988 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
4989
4990         * metadata.c: added missing break in case statement.
4991
4992 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
4993
4994         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4995         typedbyref return values. Fixes #73941.
4996
4997 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
4998
4999         * security-manager.c|h: Added demandunmanaged method and 
5000         suppressunmanagedcodesecurity class to MonoSecurityManager.
5001         Renamed aptc class to allowpartiallytrustedcallers.
5002
5003 2005-03-17  Martin Baulig  <martin@ximian.com>
5004
5005         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
5006
5007 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5008
5009         * file-io.c: disabled file async. IO using aio_*. It uses the
5010         threadpool now. Workaround for bug #73718.
5011
5012 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5013
5014         * assembly.h, mono-config.c: added code to deal with bundled configs
5015         for bundled assemblies.
5016
5017 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
5018
5019         * *.c, private.h: cleanup, removing old private.h header file.
5020
5021 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
5022
5023         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
5024         and throw_on_unmappable_char attributes.
5025
5026 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
5027
5028         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
5029         _ProcessName_internal.
5030
5031 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
5032
5033         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
5034         #73631.
5035
5036         * icall.c threads.c threads-types.h: Remove slothash icalls as they
5037         are no longer used.
5038
5039 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
5040
5041         * object.c (compute_class_bitmap): Add support for generics. Fixes
5042         #73527.
5043
5044 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
5045
5046         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
5047
5048 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5049
5050         * filewatcher.c: commented out the code for windows watcher, as we don't
5051         use it (we use the managed implementation instead).
5052
5053 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
5054
5055         * object-internals.h (MonoThread): Remove 'unused1' field.
5056
5057         * appdomain.c: Bump corlib version.
5058
5059         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
5060
5061         * reflection.c (mono_reflection_create_runtime_class): Remove the
5062         AssemblyBuilder.Save optimization since it causes too many problems.
5063
5064 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
5065
5066         * exception.c|h: Added mono_get_exception_reflection_type_load to
5067         create a ReflectionTypeLoadException object.
5068         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
5069         to return NULL is a InheritanceDemand fails during reflection. Updated
5070         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
5071         ReflectionTypeLoadException if an InheritanceDemand fails during 
5072         reflection. Added icall mapping for GetLinkDemandSecurity.
5073         * security-manager.c|h: Added ves_icall_System_Security_
5074         SecurityManager_GetLinkDemandSecurity internal call to return the
5075         class and methods permissions set for a LinkDemand. Removed unused
5076         fields in MonoSecurityManager.
5077
5078 2005-03-10  Martin Baulig  <martin@ximian.com>
5079
5080         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
5081         it's a generic instance.
5082
5083 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
5084
5085         * reflection.c (mono_get_object_from_blob): Applied patch from
5086         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
5087
5088         * class.c (mono_class_is_assignable_from): Another try at fixing 
5089         #73469 without breaking anything.
5090
5091 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
5092
5093         * class.c: (mono_class_is_assignable_from): Revert the last changes
5094         since they don't work with generics.
5095         
5096         * class.c (mono_class_is_assignable_from): Fix build bustage.
5097
5098         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
5099         the managed IsAssignableFrom method. Fixes #73469.
5100
5101         * reflection.c (mono_reflection_call_is_assignable_from): New helper
5102         function.
5103
5104 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
5105
5106         * object.c (mono_load_remote_field_new): Fix returning uninitialized
5107         memory when the remoting callback does not sets the out arguments.
5108         Fixes #73007.
5109
5110         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
5111         by mistake.
5112
5113         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
5114
5115         * object-internals.h (MonoStackFrame): Sync with managed object layout.
5116
5117         * appdomain.c: Bump corlib version.
5118
5119 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
5120
5121         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
5122         function.
5123
5124         * threads.c (mono_thread_attach): Detect threads which are not started
5125         by the GC pthread wrappers.
5126
5127 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
5128
5129         * icall.c: Added new icall for RNG.
5130         * rand.c|h: Added new icall to open the RNG. This allows to share a 
5131         single handle on Linux to access /dev/urandom and fix #73183.
5132
5133 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
5134
5135         * object.c: setting the new vtable in a transparent proxy object must
5136         not change the GC descriptor.
5137
5138 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5139
5140         * object.c: fixed compilation without GCJ support.
5141         * reflection.c: for runtime-created types ensure klass->has_references
5142         is correct (bug #73215).
5143
5144 2005-03-02  Martin Baulig  <martin@ximian.com>
5145
5146         * class.c (mono_class_is_assignable_from): Make this work if
5147         `oklass' is a generic instance; fixes #72831.
5148
5149 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5150
5151         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
5152         with hasthis set.
5153         
5154         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
5155
5156         * marshal.c: Reorganize native->managed marshalling code to also use
5157         the emit_marshal_... functions.
5158
5159 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5160
5161         * object.c: typed allocs have issues with bitmap sizes > 30,
5162         so check for max_set >= 30.
5163
5164 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5165
5166         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
5167         managed code. Fixes #73012.
5168
5169         * metadata.h (MonoMarshalSpec): Add elem_mult field.
5170
5171         * metadata.c reflection.c: Load/Emit elem_mult as well.
5172         
5173         * metadata.h (MonoMarshalSpec): Add comment.
5174
5175         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
5176
5177         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
5178         num_elem to -1 if not given.
5179
5180         * object-internals.h (MonoReflectionMarshal): Add has_size field.
5181
5182         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
5183         given values.
5184
5185 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
5186
5187         * null-gc.c (mono_gc_free_fixed): Was not compilable.
5188
5189 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
5190
5191         * reflection.c (encode_marshal_blob): Encode param_num field as well.
5192
5193         * object-internals.h (MonoReflectionMarshal): Add param_num field.
5194
5195 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5196
5197         * object.c: generalized the reference bitmap creation
5198         and added hooks for the new GC.
5199         * class-internals.c: removed the gc_bitmap field from MonoClass.
5200
5201 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5202
5203         * domain.c: help the compiler to produce better code
5204         in mono_jit_info_table_find ().
5205
5206 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5207
5208         * object.c: make all allocations look typed.
5209
5210 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5211
5212         * socket-io.c: load Mono.Posix if it's not loaded already
5213         (fixes bug#73033).
5214
5215 2005-02-24  Martin Baulig  <martin@ximian.com>
5216
5217         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
5218         * reflection.c (dup_type): Likewise.
5219
5220 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
5221
5222         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
5223         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
5224
5225 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5226
5227         * domain.c, threads.c, object-internals.h: make the critical thread
5228         local vars use the fast access mode (even when we're compiled in
5229         a lib). Provide accessors to be used by the jit during codegen.
5230
5231 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5232
5233         * appdomain.c: Changed hook functios behavior to include
5234         support for the reflection only assemblies. Some icalls were changed
5235         to support the mentioned assemblies too. Signatures of static methods
5236         try_assembly_resolve and real_load now have an additional parameter:
5237         refonly.
5238
5239         * assembly.c: General changes to mono_assembly_ methods to support
5240         reflection only api. Functions mono_assembly_open, mono_assembly_load,
5241         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
5242         suffix, to support an additional gbool parameter to specify whether
5243         the assembli is reflection only or not. Created some new hook functions 
5244         to add support for reflection only assemblies. Signatures of static 
5245         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
5246         have now an additional parameter: refonly.
5247
5248         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
5249         indicating whether the assembly is reflection only or not.
5250
5251         * exception.c: Add mono_get_exception_invalid_operation.
5252
5253         * icall.c: Throw an InvalidOperationException when trying to invoke
5254         a property/method/event, or trying to set/get the value of a field.
5255         Also add an icall to retrieve the ref_only flag to the
5256         MonoReflectionAssembly.
5257
5258 2005-02-23  Chris Toshok  <toshok@ximian.com>
5259
5260         Part of fix for #72827.
5261         * mono-debug.c (mono_debug_add_method): add lexical block data to
5262         the info we write.  Kind of a hack at the moment - we copy the
5263         lexical block info from the MonoDebugMethodInfo to the
5264         MonoDebugMethodJitInfo here, before writing it.
5265         (mono_debug_read_method): read the lexical block info.
5266
5267         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
5268
5269         * debug-mono-symfile.h: add lexical block support.
5270
5271         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
5272         support.
5273
5274 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5275
5276         * loader.c (mono_lookup_pinvoke_call): Fix warning.
5277
5278         * object.c (mono_runtime_free_method): Call mono_free_method () and
5279         put the TODOs there.
5280
5281         * loader.c (mono_free_method): Free up most memory allocated for 
5282         dynamic methods.
5283
5284 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5285
5286         * reflection.c: properly flag a Type argument to a
5287         named custom attr value (bug #72248).
5288
5289 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5290
5291         * reflection.c: reduce code duplication in named custom
5292         attribute encoding.
5293
5294 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
5295
5296         * reflection.c: properly encode custom attrs of type object
5297         (bug #72649).
5298
5299 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5300
5301         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
5302
5303 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
5304
5305         * socket-io.c: load System.dll if it's not loaded already
5306         (bug #72850 and #70477).
5307
5308 2005-02-21  Martin Baulig  <martin@ximian.com>
5309
5310         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5311         generic instances.
5312
5313 2005-02-21  Martin Baulig  <martin@ximian.com>
5314
5315         * reflection.c (mono_image_build_metadata): We also need to
5316         "fixup" the MethodImpl table after we computed the final method
5317         indices.  Call fixup_methodimpl() to do that.
5318         (fixup_methodimpl): New private method.
5319
5320 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5321
5322         * assembly.c: special case mscorlib.dll (bug#72536),
5323         patch from Carlos Alberto Cortez.
5324
5325 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
5326
5327         * threads-types.h threads.c: Fix build bustage.
5328
5329         * threads.c: Use a union for long<->double conversions.
5330
5331         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
5332         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
5333
5334         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
5335         containing the checkpoint call with NOT_TAKEN.
5336         
5337         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
5338         checkpoint before pushing the arguments, so they won't have to be
5339         spilled to stack.
5340
5341 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5342
5343         * domain.c, assembly.c, domain-internals.h: make some data
5344         const and relocation-free.
5345
5346 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
5347
5348         * object.c, appdomain.c, class-internals.h: introduce the
5349         MonoClassRuntimeInfo structure to hold the info needed to
5350         use a class at runtime. Made mono_class_vtable() lock-free
5351         for all the appdomains.
5352
5353 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
5354
5355         * metadata-internals.h, image.c: introduce a per-image mempool to
5356         be used for memory that has the same lifetime as the image.
5357
5358 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
5359
5360         * domain.c: In mono_init_internal(), instead of selecting the first
5361         runtime version supported by an executable, get a list of all
5362         supported versions and select the one for which an mscorlib exists
5363         (since even if the runtime supports a given version, it doesn't mean
5364         that the framework for that version is installed).
5365         Modified get_runtimes_from_exe to support this behavior.
5366         In supported_runtimes, added information about additional system
5367         assembly versions.
5368         
5369         * assembly.c: Added support for more than one system assembly version
5370         per runtime version. Updated the assembly list.
5371         In mono_assembly_remap_version, removed the initial version check,
5372         since we don't know to which version we need to compare until we
5373         get the version set on which the assembly is based.
5374         Moved the code for loading corlib into the new method
5375         mono_assembly_load_corlib(), so it can be used by the initialization
5376         code.
5377         
5378         * domain-internals.h: Updated data structures and added declaration
5379         for mono_assembly_load_corlib.
5380
5381 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5382
5383         * reflection.c (resolve_object): Fix the creation of the signature in 
5384         the SignatureHelper case.
5385
5386         * assembly.c (mono_assembly_remap_version): Fix binary search.
5387         
5388 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
5389  
5390         * class.c: Added inheritance check when a method is overloaded (from a
5391         virtual method or when implementing an interface) and when a class is
5392         inherited. Added functions to set a failure for a class and to 
5393         retreive the exception from a failure.
5394         * class-internals.h: Added fields to MonoClass to keep the exception
5395         information status for inheritance (or other exceptions) to be thrown
5396         later (i.e. not at load time).
5397         * object.c: Throw the inheritance SecurityException when a type is to 
5398         be created with either class or method inheritance violations.
5399         * reflection.c|h: Fix when getting declsec from a class. Removed 
5400         unrequired code for class. Improved sanity in parameter naming.
5401         * security-manager.c|h: Added functions to check for class and method
5402         inheritance.
5403
5404 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5405
5406         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
5407         and has_finalize in dynamic types as well.
5408
5409 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
5410
5411         * culture-info-table.h : fixed currency format for en-GB (and so on).
5412
5413 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
5414
5415         * gc.c: ensure the GC handles never have 0 as a value.
5416
5417 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5418
5419         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
5420         a pointer to a struct to unmanaged code. Fixes #72625.
5421
5422 2005-02-16  Martin Baulig  <martin@ximian.com>
5423
5424         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
5425
5426 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5427
5428         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
5429
5430 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5431
5432         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
5433
5434         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
5435         UnmanagedFunctionPointerAttribute, use it for determining calling convention
5436         etc. Fixes #71471.
5437
5438         * reflection.c (mono_custom_attrs_get_attr): New helper function.
5439
5440         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
5441
5442 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
5443
5444         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
5445         changes to make the current context a field in MonoThread.
5446
5447 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5448
5449         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
5450         the last change.
5451         
5452         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
5453         extracted from mono_marshal_get_native_wrapper.
5454
5455         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
5456         to create wrappers around native functions.
5457
5458         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
5459         delegates for arbitrary function pointers. Fixes #71472.
5460
5461 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5462
5463         * threads.c: cleaned up the code a little.
5464
5465 2005-02-15  Martin Baulig  <martin@ximian.com>
5466
5467         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
5468         the data table.
5469
5470         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
5471         allocate larger chunks if needed.
5472
5473 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5474
5475         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
5476         in by mistake.
5477
5478 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
5479
5480         * domain.c: keep the domains in an array and ensure the domain ids
5481         are kept small, so they can be used as indexes to domain-specific data
5482         with a small memory overhead.
5483
5484 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5485
5486         * icall.c: Handle byref types in Type icalls. Fixes #72544.
5487
5488 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
5489
5490         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
5491
5492 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
5493
5494         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
5495
5496         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
5497         values.
5498
5499         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
5500         
5501 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
5502
5503         * domain-internals.h: add the hashtable here.
5504
5505         * class-internals.h: Remove `info' from MonoMethod
5506
5507         * domain.c: Add a new hashtable, jit_trampoline_hash
5508
5509 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5510
5511         * object.c: don't set the value of static fields
5512         (fixes bug#72494).
5513
5514 2005-02-11  Martin Baulig  <martin@ximian.com>
5515
5516         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
5517         (mono_debug_add_method): Silently ignore the method if it's too big.
5518         (mono_debug_add_type): Likewise.
5519
5520 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
5521
5522         * threads.c, appdomain.c: remove #ifdefs from the code.
5523
5524 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
5525
5526         * metadata-internals.h: Added flags to MonoAssembly to cache the most
5527         common security informations. This allows us to stay in unmanaged code
5528         when doing LinkDemand and it's special cases (except for the first 
5529         time for initialization). The flags a very much used with --security.
5530         * reflection.c|h: Added code to get declarative security attributes 
5531         for LinkDemand and InheritanceDemand. This required to refactor the
5532         existing code for Demand.
5533         * security-manager.c|h: Added new method fields for the special cases
5534         of LinkDemand.
5535
5536 2005-02-10  Martin Baulig  <martin@ximian.com>
5537
5538         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
5539         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
5540
5541 2005-02-10  Martin Baulig  <martin@ximian.com>
5542
5543         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
5544         debugging code; this is almost a complete rewrite.
5545
5546         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
5547
5548 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5549
5550         * domain.c, object.h: expose mono_string_equal () and 
5551         mono_string_hash ().
5552         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
5553         it's implemented in managed code.
5554
5555 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5556
5557         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
5558         lo leak objects between appdomains.
5559
5560 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5561
5562         * assembly.c: old compilers compilation fix from 
5563         robertj@gmx.net (Robert Jordan).
5564
5565 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
5566
5567         * class-internals.h: Little reminder for the future.
5568
5569         * debug-helpers.c: Fix up wrapper_type_names
5570
5571 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5572
5573         * image.c, metadata-internals.h: when loading an image from a file,
5574         mmap all of it and use the same codepaths as when using a
5575         in-memory image: the code is simpler and we use less memory
5576         (both writable and readonly).
5577
5578 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5579
5580         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
5581         API to alloc runtime data structures that need to be tracked by the
5582         GC and contain pointers.
5583         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
5584         make the code more readable and eventually use a different GC.
5585
5586 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
5587
5588         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
5589         for out arguments.
5590         
5591 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
5592
5593         * object.c: In release_type_locks(), don't release the cctor lock
5594         if it has already been released. This fixes a crash in the
5595         thread5 test.
5596
5597 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5598
5599         * gc.c, marshal.c, icall.c: register a delegate for finalization
5600         only when the native function pointer has been allocated for it.
5601
5602 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5603
5604         * object.c: cleaned up some code, allocate objects that are
5605         pointer free with the atomic malloc variant. Allocate memory
5606         for static data from the mempool if it's pointer-free.
5607         Allocate the bounds array at the end of the array data, when needed.
5608         * object-internals.h, object.h: move a private function in a private
5609         header.
5610         * class.c: handle missing case in tracking references in fields.
5611
5612 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5613
5614         * class.c, class-internals.h: keep track if a type has
5615         reference fields in either the instance or static fields.
5616
5617 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
5618
5619         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
5620         and renamed to MonoRuntimeInfo. Added fields to store the expected
5621         framework assembly version. Changed mono_get_framework_version and
5622         mono_get_runtime_version for a single mono_get_runtime_info method.
5623         
5624         * assembly.c: Added method to remap system assembly versions to the
5625         current executing runtime version. Removed old mapping code.
5626         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
5627         
5628         * icall.c, reflection.c: Track api changes.
5629
5630 2005-02-06  Miguel de Icaza  <miguel@novell.com>
5631
5632         * loader.c (method_from_memberref): Improve error reporting,
5633         produce the class name instead of the typeref/typedef index. 
5634
5635 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
5636
5637         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
5638
5639 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5640
5641         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
5642         stdcall and charset name mangling.  Reorganize the code and add
5643         some tracing stuff.
5644
5645 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5646
5647         * monodiet.c: More iters!
5648
5649         * marshal.c: Iter usage.
5650
5651         * icall.c: Iter usage.
5652
5653         * object.c: Use iters.
5654
5655         * debug-helpers.c: More iters
5656
5657 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5658
5659         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
5660         under win32.
5661
5662 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5663
5664         * mono-debug-debugger.c: use iters
5665
5666         * class.c, class-internals.h: mono_class_setup_events is static
5667         now
5668
5669         * All callers: use iters
5670
5671 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5672
5673         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5674         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5675
5676 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5677
5678         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5679
5680         * marshal.h: Add prototypes for ldfld/stfld_remote.
5681
5682         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5683         this is called during startup.
5684         
5685 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5686
5687         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5688         MonoThreadsSync struct private in monitor.c. Changed the way
5689         MonoThreadsSync is allocated so it's faster and there is no
5690         need to keep track of it with a finalizer and it uses less memory.
5691         This also finally allows us to allocate mono objects as ptrfree when
5692         there are no reference fields.
5693
5694 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5695
5696         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5697         disappearing link to the GC interface and use them to simplify
5698         the gchandles code.
5699
5700 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5701
5702         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5703         stfld_remote which call mono_load/store_field_new. This allows methods
5704         calling ldfld/stfld wrappers to be AOTed.
5705
5706         * console-io.c: Include sys/filio.h under solaris.
5707         
5708         * console-io.c: Include curses.h if needed correctly.
5709
5710 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5711         
5712         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5713         method->klass as well.
5714
5715         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5716
5717         * class.c (mono_class_init): Switch on lazy initialization of 
5718         methods.
5719
5720         * class.c (mono_class_get_finalizer): Handle the case when the 
5721         finalizer is inherited.
5722
5723 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5724
5725         * console-io.c: <curses.h> is needed by term.h on solaris.
5726
5727 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5728
5729         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5730         mono_class_setup_properties where possible. Remove this ftn from
5731         the header file, and make it static.
5732
5733 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5734
5735         * loader.c: Add missing setup_... call.
5736
5737         * class.c: Add missing setup_... calls.
5738
5739         * class.c (mono_class_init): Switch on lazy initialization of 
5740         the generic vtable.
5741         
5742         * class.c (mono_class_init): Fix generics broken by the recent changes.
5743
5744         * monodiet.c (handle_type): Add missing setup_... calls.
5745
5746         * class.c: Back out garbage in previous patch.
5747         
5748         * class.c: Add missing setup_... calls.
5749
5750         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5751         mono_class_setup_methods () if possible.
5752
5753         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5754
5755         * class-internals.h (MonoCachedClassInfo): New structure.
5756
5757         * class.c: Initialize properties and events fields of MonoClass lazily.
5758
5759         * class.c: Add infrastructure for lazily initializing the methods and
5760         vtable fields of MonoClass. Not yet used.
5761
5762         * class.c (mono_class_get_finalizer): New helper function.
5763
5764         * class.c: Add infrastructure for loading some class related data from
5765         an AOT file.
5766
5767         * object.c: Add infrastructure for initializing the vtable from data
5768         in the AOT file.
5769
5770         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5771
5772         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5773         appropriate initialization function before accessing parts of the
5774         MonoClass structure.
5775
5776         * marshal.c: Fix warnings.
5777         
5778         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5779
5780         * mono-debug-debugger.c (get_exception_message): Use 
5781         mono_class_get_method_from_name_flags ().
5782
5783 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5784
5785         * reflection.c, appdomain.c: Replace a few manual searches that
5786         Zoltan missed. (Paolo approved this part of my initial patch).
5787
5788 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5789
5790         * profiler.c: disable recording statistical events at report time.
5791
5792 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5793
5794         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5795         to byteswap arrays of enum values, too (bug #72080).
5796
5797 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5798
5799         * appdomain.c (set_domain_search_path): Allow this to be called if
5800         domain->setup is not yet set.
5801
5802         * loader.c (mono_method_get_index): New helper function.
5803
5804         * loader.c reflection.c: Use mono_method_get_index ().
5805
5806         * class.c (mono_class_get_method_from_name_flags): New helper method.
5807
5808         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5809         this.
5810
5811         * class.c (mono_class_get_cctor): New helper method.
5812
5813         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5814         mono_class_get_method () to look up methods.
5815
5816 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5817
5818         * console-io.c: Fix the build, this should work on Windows.
5819
5820 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5821
5822         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5823         be set to null to keep things valid
5824
5825 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5826
5827         * icall.c: added Console 2.0 icalls.
5828         * Makefile.am: added console-io.[ch]
5829         * console-io.[ch]: internal calls for Console 2.0 API.
5830
5831 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5832
5833         * class.c: make sure we consider all the interfaces
5834         when calculating max_interface_id (bug found by
5835         Jeroen Frijters running ikvm).
5836
5837 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5838
5839         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
5840         valuetype fields to null.
5841
5842         * object.c (set_value): Ditto. Fixes #71669.    
5843
5844 2005-01-31  Martin Baulig  <martin@ximian.com>
5845
5846         * metadata.c (mono_metadata_has_generic_params): New public
5847         function; checks whether something is a generic method.
5848
5849 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
5850
5851         * appdomain.c: fix infinite recursion when adding assemblies.
5852
5853 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
5854
5855         * object.c: Fix small typo to return all items for Environment.
5856         GetCommandLineArgs.
5857
5858 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5859
5860         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5861         reflection.c: more domain and assembly-unload related fixes
5862         and memory leaks plugs.
5863
5864 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
5865
5866         * 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.
5867
5868 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
5869
5870         * loader.c (mono_method_signature): Make this method lazy
5871         (mono_get_method_from_token): Don't computate the signature here.
5872
5873         Doing this saves quite a bit of memory. I got 90 kb on starting up
5874         monodoc. It should also save some disk reads on startup.
5875
5876         * *: MonoMethod->signature might be NULL now. You *MUST* use
5877         mono_method_signature.
5878
5879 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
5880
5881         * object.c (mono_runtime_get_main_args): Return an array from the
5882         current domain here. Fixes #71938.
5883
5884 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
5885
5886         * monitor.c: formatting changes to comply with the
5887         mono coding style and remove #ifdefs from the code.
5888
5889 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5890
5891         * metadata.c, private.h: remove some unneeded data
5892         and use a more compact representation for table schemas.
5893
5894 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
5895
5896         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
5897         to get a better distribution in hash tables.
5898         * *.c: use mono_aligned_addr_hash() where appropriate.
5899         * assembly.c: make var static.
5900
5901 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
5902
5903         * domain-internals.h: Put MonoJitInfo on a diet.
5904
5905         * domain.c: Fix a warning.
5906
5907 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5908
5909         * gc.c: rework the gc handles code to reuse handles
5910         when freed.
5911
5912 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5913
5914         * domain.c: fixed long standing bug in mono_string_equal() which
5915         was brought to light with the ldstr changes.
5916
5917 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
5918
5919         * reflection.c: Remove warning by adding missing include for marshal.h
5920
5921 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5922
5923         * domain.c, object.c: change the ldstr_table to hold
5924         MonoString* as keys: makes the runtime isinterned lookup
5925         faster and simplifies memory management.
5926
5927 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
5928  
5929         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
5930         possible to add imperative security checks before calling the icall.
5931         * reflection.c: Return security attributes on the original MonoMethod
5932         (and not the wrapped one). This fix permissions on icalls.
5933
5934 2005-01-25  Dick Porter  <dick@ximian.com>
5935
5936         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
5937         the check for mktime() support actually test the mktime() return
5938         value.  "Fixes" bug 71682, though the output is still different to
5939         MS.
5940
5941 2005-01-25  Martin Baulig  <martin@ximian.com>
5942
5943         * class.c (mono_class_is_assignable_from): Make this work for
5944         generic instances.
5945
5946 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
5947
5948         * marshal.c (mono_string_utf8_to_builder)
5949         (mono_string_builder_to_utf16): We might not have ownership of the
5950         string. In thise case, we need to create a new buffer.
5951
5952         * object-internals.h (mono_stringbuilder_capacity): sb->str might
5953         be null, in which case, use the default capacity.
5954
5955 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5956
5957         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
5958         GC events to the profiler.
5959
5960 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5961
5962         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
5963         if you don't want the GC to run.
5964
5965 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
5966
5967         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
5968         start providing a GC API and keeping different implementations in
5969         their own file.
5970         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
5971
5972 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
5973
5974         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
5975         mmap rather than allocating a huge buffer.
5976         (mono_debug_close_mono_symbol_file): Free the buffer allocated
5977         above.
5978
5979 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
5980
5981         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
5982         and CheckExecutionRights.
5983         * reflection.c|h: Keep the index of the declarative security to be 
5984         used, instead of the pointer, when AOT compiler is used. Also add 
5985         class initialization when requesting demands.
5986         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
5987         CheckExecutionRights. Both properties are now FALSE by default, and
5988         unmodifiable, unless the --security option is used.
5989
5990 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5991
5992         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
5993         reflection.c: properly refcount images and assemblies, many leaks fixed.
5994
5995 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5996
5997         * threadpool.c: increase the timeout for threads in the thread pool to
5998         10s.  Fixes bug #67159.
5999
6000 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
6001
6002         * class-internals.h: Sun's compiler insists on explicit
6003         signed on bit fields to handle then correctly.
6004
6005 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
6006
6007         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
6008         Make the size of the array fit only the number of invalid path
6009         chars that we have.
6010
6011         * class.c (_mono_class_get): Improve the error reporting when a
6012         class referenced is not found, to assist debugging. 
6013
6014 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
6015
6016         * threads.c: fix off-by-one error.
6017         * domain.c: free data allocated in the domain.
6018
6019 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
6020
6021         * reflection.c (mono_method_body_get_object): Fill out exception info
6022         as well.
6023
6024         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
6025         structure.
6026         
6027 2005-01-19  Martin Baulig  <martin@ximian.com>
6028
6029         * loader.c (mono_get_method_constrained): Make this work again.
6030
6031 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
6032
6033         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
6034         guint16 to match the managed side.
6035
6036         * reflection.c (mono_reflection_body_get_object): Fill out local
6037         variables array.
6038
6039         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
6040         as well.
6041
6042         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
6043         'local_var_sig_token'.
6044
6045 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
6046
6047         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
6048         System.Drawing.
6049
6050         * reflection.c (mono_method_body_get_object): Handle abstract and
6051         runtime methods.
6052
6053 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
6054
6055         * marshal.c, loader.c, class-internals.h, reflection.c:
6056         store the emthod data for a wrapper in an array instead of a list.
6057
6058 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
6059
6060         * marshal.c: change the code to allocate memory more
6061         conservatively for method wrappers.
6062
6063 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
6064
6065         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
6066         fields from MonoClass to the marshal info structure where they belong.
6067
6068 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6069
6070         * class.c, object.c, class-internals.h, marshal.c: rearrange
6071         some fields and tweak some types to lower memory usage.
6072
6073 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
6074
6075         * threads.c (signal_thread_state_change): Handle the case when the
6076         target thread is the current thread.
6077
6078         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
6079
6080         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
6081         emit_ptr_to_object_conv. 
6082
6083         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
6084         marshalling. Fixes #71352.
6085
6086 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6087
6088         * metadata.h, blob.h: move table enum to blob.h so it can be included
6089         in any header.
6090         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
6091         cut the size of MonoImage/MonoDynamicImage.
6092
6093 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
6094
6095         * profiler.c (mono_profiler_install_simple): Fix default arguments.
6096
6097 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6098
6099         * reflection.c, reflection.h, icall.c: add a function to check
6100         if an attribute type is defined for a metadata object.
6101
6102 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
6103
6104         * object-internals.h: Added some needed fields from StringBuilder class.
6105         * marshal.c: Set the maxCapacity when creating a StringBuilder.
6106
6107 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
6108
6109         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
6110         threads before shutting down the runtime.
6111
6112         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
6113
6114 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6115
6116         * object-internal.h, threads.c: implement stacksize and 
6117         parameterized thread start functionality (requires
6118         matching corlib). Marked broken code for later removal.
6119
6120 2005-01-12  Martin Baulig  <martin@ximian.com>
6121
6122         * class-internals.h (MonoGenericClass): Moved the `initialized'
6123         flag to MonoDynamicGenericClass, removed `init_pending'.
6124         (MonoGenericInst): Added `is_reference' flag.
6125
6126 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
6127
6128         * reflection.c (mono_image_create_pefile): Only set the pe_offset
6129         inside the MSDOS header. Fixes #71201.
6130
6131         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
6132         gc thread.
6133         (mono_domain_finalize): Ditto.
6134
6135 2005-01-12  Martin Baulig  <martin@ximian.com>
6136
6137         * class.c (mono_get_shared_generic_class): Use the cache for
6138         non-dynamic generic classes.
6139
6140         * class-internals.h (mono_class_create_generic_2): Removed
6141         function prototype, this function is now static inside class.c.
6142
6143         * class.c (mono_class_create_generic_2): Made this static, only
6144         call it from mono_class_init() and mono_class_setup_parent().
6145         (collect_implemented_interfaces_aux): Call mono_class_init() on
6146         the interfaces we collect.
6147         (mono_class_setup_vtable): Call mono_class_init (class->parent).
6148
6149 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6150
6151         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
6152         it a real thread handle.
6153
6154         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
6155         MonoJitExceptionInfo, since each catch clause needs its own variable.
6156         
6157 2005-01-11  Dick Porter  <dick@ximian.com>
6158
6159         * image.c (mono_pe_file_open): New variant on mono_image_open()
6160         that does not set up the CLI metadata; used for FileVersionInfo so
6161         it can get the data for windows binaries too.
6162         
6163         * process.c (process_read_string_block): Don't read off the end of
6164         the StringTable block.
6165
6166         These both fix bug 70766.
6167
6168 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
6169
6170         * gc.c: set some fields to NULL at GC cleanup time.
6171         * threads.c: if we quit the main thread, call exit ().
6172
6173 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6174
6175         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
6176
6177 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
6178
6179         * threads.h, threads.c, object.c: added accessor and settor for
6180         main_thread. Handle it specially when exiting from it: wait
6181         for other foreground threads to exit.
6182
6183 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
6184
6185         * process.c, verify.c: remove some bloat.
6186
6187 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
6188
6189         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
6190         the calling convention to cdecl under win32.
6191
6192 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
6193
6194         * object.c (mono_object_get_size): New function to get the size of
6195         an object instance.
6196
6197         * profiler.c (simple_allocation): Use above.
6198
6199 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
6200
6201         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
6202         ves_icall_System_AppDomain_getRootDomain (as it's not required to
6203         get an appdomain by it's id and we can't assume the root's id is 0).
6204         * domain-internals.h: Change the function prototype to match.
6205         * icall.c: Change the icall table for AppDomain.
6206
6207 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
6208
6209         * locales.c (string_invariant_compare_char): Only compute
6210         GUnicodeTypes in the case where we need them.  Test for ordinality
6211         first and return if so.
6212
6213         From the commit:
6214
6215                 /*
6216                  * FIXME: here we must use the information from c1type and c2type
6217                  * to find out the proper collation, even on the InvariantCulture, the
6218                  * sorting is not done by computing the unicode values, but their
6219                  * actual sort order.
6220                  */
6221
6222 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6223
6224         * loader.c: for P/Invoke methods, allow the "Internal" shared
6225         library name to refer to the calling process symbol namespace.
6226
6227 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
6228
6229         * Makefile.am: Add the security manager to the build.
6230         * security-manager.c|h: New. Initialization of the security manager.
6231
6232 2005-01-07  Dick Porter  <dick@ximian.com>
6233
6234         * threads.c: 
6235         * monitor.c: Update thread state during Monitor and WaitHandle
6236         waits.  Fixes bug 71031.
6237
6238 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
6239
6240         * reflection.c (property_encode_signature): Correctly handle when the
6241         property has no methods.
6242
6243 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
6244
6245         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
6246         
6247         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
6248         fields from mb, not rmb. Fixes #71017.
6249
6250         * marshal.c (emit_ptr_to_str_conv): Add support for 
6251         ByValTStr -> string conversion. Fixes #71015.
6252
6253         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
6254
6255         * mempool.c (mono_mempool_contains_addr): New helper function.
6256
6257 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6258
6259         * metadata.c (mono_metadata_compute_size): Fix size calculation of
6260         HasSematics encoded fields.
6261         
6262         * metadata.c (mono_type_to_unmanaged): Improve error message for 
6263         invalid string marshalling.
6264
6265         * metadata.c: Fix warnings.
6266         
6267 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6268
6269         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
6270         profiler support.
6271
6272 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6273
6274         * domain.c object.c domain-internals.h: Revert part of r38077 since the
6275         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
6276         tests.
6277
6278 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
6279
6280         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
6281         so methods containing these can be AOTed.
6282
6283 2005-01-03  Martin Baulig  <martin@ximian.com>
6284
6285         * loader.c (find_method): Removed the hack for generic instances.
6286         (method_from_memberref): If our parent is a generic instance, pass
6287         its generic type definition to find_method() and then inflate the
6288         method.
6289         (mono_get_method_constrained): Pass the generic type definition to
6290         find_method() and inflate the method later.
6291
6292         * class-internals.h (MonoStats): Added `generic_class_count'.
6293
6294         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
6295         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
6296
6297         * reflection.c (mono_custom_attrs_from_params): Don't ignore
6298         generic type definitions.
6299
6300 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
6301
6302         * loader.c icall.c: Fix warnings.
6303
6304 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
6305
6306         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
6307         blittable types. Fixes #70864.
6308
6309 2004-12-29  Martin Baulig  <martin@ximian.com>
6310
6311         * icall.c
6312         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
6313
6314         * reflection.c (mono_method_get_object): Create a
6315         "System.Reflection.MonoGenericMethod" for inflated methods; don't
6316         call mono_get_inflated_method().
6317
6318         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
6319
6320 2004-12-27  Martin Baulig  <martin@ximian.com>
6321
6322         * class-internals.h (MonoMethod): Added `is_inflated' flag.
6323         (MonoMethodInflated): Added `inflated' field.
6324
6325         * class.c (mono_class_inflate_generic_method): Don't really
6326         inflate the method here; just set the `is_inflated' flag in the
6327         MonoMethod.
6328         (mono_class_get_inflated_method): Actually inflate the method here
6329         if it's not already inflated; we use the MonoMethodInflated's new
6330         `inflated' field as a cache.
6331
6332 2004-12-26  Martin Baulig  <martin@ximian.com>
6333
6334         * class.c
6335         (inflate_generic_class): Moved some code out of inflate_generic_type().
6336         (mono_class_inflate_generic_method): If we're already inflated,
6337         inflate the context and use the declaring method; ie. make sure
6338         the declaring method of an inflated method is always the generic
6339         method definition.
6340         (mono_class_create_from_typedef): Create
6341         `class->generic_container->context->gclass'.
6342
6343 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
6344
6345         * metadata-internals.h, marshal.c, reflection.c: More
6346         MonoGHashTable->GHashTable.
6347
6348         * domain-internals.h, class.c: Change MonoGHashTable's into
6349         GHashTables for some cases where no gc stuff is used
6350
6351         All users: update apis
6352
6353 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
6354
6355         * metadata.c (builtin_types): Make this `const'. Makes this get
6356         put into the shareable section.
6357         (mono_metadata_init): Casts to make gcc happy.
6358
6359 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
6360
6361         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
6362
6363 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
6364
6365         * icall.c: Added an internal call to retrieve the position and length
6366         of assembly-level declarative security attributes (RequestMinimum, 
6367         RequestOptional and RequestRefuse). This is used by the Assembly class
6368         to re-create the corresponding permission sets.
6369
6370 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
6371
6372         * marshal.c: fix the stelemref wrapper to be type correct
6373         (and faster).
6374
6375 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
6376
6377         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
6378         to do key & 0x7fffffff. Hashtable already does this. It just
6379         results in longer code.
6380
6381 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
6382
6383         * appdomain.c: Bump corlib version.
6384         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
6385         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6386         * reflection.c|h: Add functions to get declarative security infos
6387         (blob position and length) for assemblies, classes and methods.
6388
6389 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
6390
6391         * reflection.c: sort the constant table (bug #70693).
6392
6393 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
6394
6395         * object-internals.h, threads.c, domain.c: add accessors for
6396         the MonoThread and MonoDomain tls keys.
6397
6398 2004-12-18  Martin Baulig  <martin@ximian.com>
6399
6400         * class.c (inflate_generic_type): If we're inflating a generic
6401         instance, set `ngclass->context->container = context->container';
6402         ie. the container we inflated into.
6403
6404         * metadata.c (mono_metadata_parse_generic_param): Reflect above
6405         inflate_generic_type() changes.
6406
6407 2004-12-17  Martin Baulig  <martin@ximian.com>
6408
6409         * class-internals.h
6410         (MonoGenericClass): Replaced `MonoType *generic_type' with
6411         `MonoClass *generic_class'.  Removed `dynamic_info'; if
6412         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
6413         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
6414
6415 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
6416
6417         * exception.c (mono_exception_from_token): New helper function.
6418
6419 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
6420
6421         * assembly.c (mono_assembly_load_with_partial_name): Call 
6422         mono_assembly_loaded before invoking the preload hooks. Fixes
6423         #70564.
6424
6425         * object-internals.h (MonoThread): Change culture_info and 
6426         ui_culture_info into an array.
6427
6428         * threads.c: Cache culture info objects from more than one appdomain.
6429
6430         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
6431         current UI culture.
6432
6433 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
6434
6435         * threads.h threads.c appdomain.c: Clear the culture_info field of
6436         all threads during unloading if they point to an object in the dying
6437         appdomain.
6438
6439 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
6440
6441         * culture-info.h (TextInfoEntry): New struct
6442         * object-internals.h: sync with managed
6443         * locales.c: fill the `text_info_data' field
6444         * culture-info-tables.h: update
6445
6446 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
6447
6448         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
6449         collector.
6450
6451 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
6452
6453         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
6454         (ves_icall_ModuleBuilder_getMethodToken): Ditto
6455
6456 2004-12-12  Martin Baulig  <martin@ximian.com>
6457
6458         * mono-debug-debugger.c (write_type): If we're an enum and the
6459         builtin types have already been initialized, call mono_class_init().
6460
6461 2004-12-11  Martin Baulig  <martin@ximian.com>
6462
6463         * metadata.c (mono_metadata_load_generic_params): Added
6464         `MonoGenericContainer *parent_container' argument; automatically
6465         compute `container->is_method'; pass the correct owner to
6466         get_constraints().      
6467
6468         * reflection.c (compare_genericparam): Sort the GenericParam table
6469         according to increasing owners. 
6470
6471 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
6472
6473         * profiler.c: allow disabling the default profiler.
6474
6475 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
6476
6477         * decimal.c, icall.c: allow disabling System.Decimal support.
6478
6479 2004-12-09  Marek Safar <marek.safar@seznam.cz>
6480
6481         * reflection.c: Add support for null attribute arguments.
6482
6483 2004-12-09  Martin Baulig  <martin@ximian.com>
6484
6485         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
6486         names to get rid of compiler warnings.
6487
6488 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6489
6490         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
6491         mono_marshal_load_type_info (). Fixes #69625.
6492         (mono_marshal_get_ptr_to_struct): Likewise.
6493
6494 2004-12-08  Martin Baulig  <martin@ximian.com>
6495
6496         * mono-debug.h: Bumped version number to 47.
6497
6498         * mono-debug-debugger.c
6499         (mono_debugger_event_handler, mono_debugger_event): Take two
6500         guint64 arguments insteed of a gpointer and a guint32.  
6501
6502 2004-12-08  Martin Baulig  <martin@ximian.com>
6503
6504         * debug-mono-symfile.h
6505         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
6506         `address' to `native_offset'.
6507
6508 2004-12-08  Martin Baulig  <martin@ximian.com>
6509
6510         * class.c (mono_class_create_from_typespec): Only inflate if we
6511         either have `context->gclass' or `context->gmethod'.
6512
6513 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6514
6515         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
6516
6517         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
6518
6519         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
6520
6521         * reflection.c (mono_assembly_get_object): Remove the workaround put
6522         in for the release.
6523         
6524         * appdomain.c: Use the corlib_internal field from MonoAssembly.
6525
6526         * appdomain.c: Bump corlib version.
6527
6528         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
6529         be visible in other appdomains.
6530
6531 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
6532
6533         * threads.c: Interlocked inc and dec for longs were messed up,
6534         use a KISS based impl for this. Fixes 70234
6535
6536 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
6537
6538         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
6539
6540 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6541
6542         * icall.c: fix to follow policy not to allow struct
6543         arguments in icalls.
6544
6545 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6546
6547         * process.c: make the patch that handles spaces in file paths work
6548         on mono/windows too.
6549
6550 2004-12-06  Martin Baulig  <martin@ximian.com>
6551
6552         * class.c (mono_class_create_generic): Call
6553         mono_class_setup_supertypes() if we're dynamic.
6554         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
6555
6556 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
6557
6558         * object-internals.h: Add new fields to MonoThread.
6559
6560         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6561
6562         * icall.c threads-types.h threads.c: Add new icalls.
6563
6564         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
6565
6566         * object-internals.h (MonoReflectionAssembly): Sync object layout with
6567         managed side.
6568
6569         * appdomain.c: Bump corlib version.
6570
6571         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
6572         internal assemblies. Fixes #69181.
6573
6574 2004-12-05  Martin Baulig  <martin@ximian.com>
6575
6576         * class.c (mono_class_inflate_generic_signature): Make this a
6577         no-op if `context' is NULL or we don't have any type parameters;
6578         also copy `sentinelpos'.        
6579
6580 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
6581
6582         * image.c: Add unbox_wrapper_cache.
6583
6584         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
6585
6586         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
6587         function generator.
6588         
6589         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
6590         Fixes #70173.
6591
6592         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
6593         
6594 2004-12-04  Martin Baulig  <martin@ximian.com>
6595
6596         * loader.c (mono_method_get_signature_full): New public function;
6597         like mono_method_get_signature(), but with an additional
6598         `MonoGenericContext *' argument.
6599
6600         * class.c (mono_class_inflate_generic_signature): Formerly known
6601         as inflate_generic_signature(); make this public.
6602
6603 2004-12-04  Martin Baulig  <martin@ximian.com>
6604
6605         * metadata.c
6606         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
6607         instead of a `MonoGenericContainer *'.  
6608         (mono_metadata_parse_array_full): Likewise.
6609         (mono_metadata_parse_signature_full): Likewise.
6610         (mono_metadata_parse_method_signature_full): Likewise.
6611         (mono_metadata_parse_generic_inst): Likewise.
6612         (mono_metadata_parse_generic_param): Likewise.
6613         (mono_metadata_parse_mh_full): Likewise.
6614         (mono_type_create_from_typespec_full): Likewise.
6615
6616 2004-12-03  Martin Baulig  <martin@ximian.com>
6617
6618         * class-internals.h (MonoGenericContainer): Replaced the
6619         `MonoGenericContext * pointer with a `MonoGenericContext'
6620         structure and made it the first element.
6621
6622 2004-12-03  Martin Baulig  <martin@ximian.com>
6623
6624         * class.c
6625         (inflate_generic_type): Set the `context->container' when creating
6626         a new MonoGenericContext.
6627         (mono_class_inflate_generic_method): Likewise.
6628         (mono_class_create_from_typespec): Just use `context->container'
6629         to get the container.
6630
6631         * loader.c (method_from_methodspec): Set `context->parent' from
6632         `context->container' - and if that's a method container, use its
6633         parent.  Also set the `context->container' when creating a new
6634         MonoGenericContext.
6635         (mono_get_method_from_token): Use just `context->container' to get
6636         the container.
6637
6638         * metadata.c (do_mono_metadata_parse_generic_class): Also set
6639         `gclass->context->container'.
6640
6641         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
6642         the `context->container' when creating a new MonoGenericContext.
6643
6644 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
6645
6646         * reflection.c (compare_genericparam): Sort params with identical
6647         owner by their number. Fixes gen-111 on sparc.
6648
6649 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6650
6651         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
6652         around the domain changes.
6653
6654         * appdomain.c (mono_domain_unload): Handle the case when the thread
6655         calling Unload is itself being aborted during unloading. Fixes #70022.
6656
6657         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
6658
6659         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
6660         checkpoint_func as an icall so it gets a wrapper.
6661         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
6662         in the cross-appdomain wrappers too.
6663
6664         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6665
6666         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6667
6668         * reflection.c: Fix some memory leaks.
6669         
6670 2004-12-02  Martin Baulig  <martin@ximian.com>
6671
6672         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6673
6674         * metadata.c (generic_class_cache): New static hashtable.
6675         (mono_metadata_lookup_generic_class): New public method.
6676
6677 2004-12-02  Martin Baulig  <martin@ximian.com>
6678
6679         * class.c (mono_class_create_from_typedef): Call
6680         mono_class_setup_parent() and mono_class_create_mono_type() before
6681         parsing the interfaces.
6682
6683 2004-12-02  Martin Baulig  <martin@ximian.com>
6684
6685         * metadata.c (generic_inst_cache): New static hashtable.
6686         (mono_metadata_lookup_generic_inst): New public function.
6687         (mono_metadata_inflate_generic_inst): New public function.
6688         (mono_metadata_parse_generic_inst): New public function.
6689         (do_mono_metadata_parse_generic_class): Use the new
6690         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6691         since this'll also use the cache.
6692
6693         * reflection.c (mono_reflection_bind_generic_method_parameters):
6694         Use mono_metadata_lookup_generic_inst() to use the new cache.
6695
6696         * class.c (inflate_mono_type): Use
6697         mono_metadata_inflate_generic_inst() to inflate a generic
6698         instance; this'll also use the new cache.
6699
6700         * loader.c (method_from_methodspec): Use
6701         mono_metadata_parse_generic_inst() and
6702         mono_metadata_inflate_generic_inst() rather than parsing it
6703         manually, so we can use the new cache.
6704
6705 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6706
6707         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6708         the wait times out.
6709
6710 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6711
6712         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6713         iter->args based on whether parameters are passed in registers (i.e.
6714         MONO_ARCH_REGPARMS is defined)
6715
6716 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6717
6718         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6719         the exception message. Fixes #70070.
6720         (method_from_methodspec): Fix warnings.
6721
6722 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6723
6724         * process.c: (complete_path) return the path quoted
6725
6726 2004-12-01  Martin Baulig  <martin@ximian.com>
6727
6728         * class-internals.h (MonoGenericInst): New structure.
6729         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6730         `is_open' with `MonoGenericInst *inst'.
6731         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6732         `is_open' with `MonoGenericInst *inst'.
6733
6734 2004-11-30  Martin Baulig  <martin@ximian.com>
6735
6736         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6737
6738         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6739         to `generic_class_cache'.
6740
6741         * metadata.c
6742         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6743         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6744         (mono_generic_inst_is_valuetype): Renamed to
6745         mono_generic_class_is_valuetype().
6746
6747         * class-internals.h
6748         (MonoGenericInst): Renamed to MonoGenericClass.
6749         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6750         (MonoClass): Renamed `generic_inst' to `generic_class'.
6751         (MonoGenericContext): Renamed `ginst' to `gclass'.
6752
6753         * object-internals.h
6754         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6755
6756         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6757         mono_reflection_generic_class_initialize().
6758
6759         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6760         now known as "System.Reflection.MonoGenericClass".
6761         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6762
6763 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6764
6765         * class-internals.h: Added a flag field to MonoClass to cache the
6766         declarative security attributes actions associated with the class.
6767         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6768         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6769         applicable to the JITted method.
6770         * reflection.c|h: Added functions to extract (as flags) which security
6771         actions are available (declaratively) for a method, class or assembly.
6772         * metadata.c|h: Added functions to search the declarative security
6773         table in the metadata.
6774         
6775 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6776
6777         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6778         EXPORTEDTYPES are already in the class name cache, so there is no
6779         need to add extra code here to look at them. Just removes a bit of
6780         cruft.
6781
6782         (ves_icall_System_Environment_get_TickCount): No need for #if
6783         WINDOWS. We already have the code in io-layer.
6784
6785 2004-11-28  Martin Baulig  <martin@ximian.com>
6786
6787         * loader.c
6788         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6789         Fixes gen-112.cs.
6790
6791 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6792
6793         * assembly.c (do_mono_assembly_open): Instead of having a
6794         conditional WITH_BUNDLE, incorporate support for bundles here, by
6795         having a global `bundles' variable holding a pointer to the actual
6796         bundles. 
6797
6798         (mono_register_bundled_assemblies): New API call used by the
6799         bundle code. 
6800
6801         See mkbundle.1 for details.
6802         
6803 2004-11-27  Martin Baulig  <martin@ximian.com>
6804
6805         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6806         the vtable for generic methods.
6807
6808 2004-11-26  Martin Baulig  <martin@ximian.com>
6809
6810         * metadata.c
6811         (mono_metadata_generic_method_hash): New public function.
6812         (mono_metadata_generic_method_equal): Likewise.
6813
6814         * class-internals.h
6815         (MonoGenericContainer): Added `GHashTable *method_hash'.
6816
6817         * reflection.c (ReflectionMethodBuilder): Added
6818         `MonoGenericContainer *generic_container'.
6819         (reflection_methodbuilder_to_mono_method): Don't create a new
6820         MonoGenericContainer each time we're called.
6821         (mono_reflection_bind_generic_method_parameters): Use
6822         `container->method_hash' to cache the results so we don't create a
6823         different method if we're called several times with the same
6824         arguments.
6825
6826         * loader.c (method_from_methodspec): Use the new
6827         `container->method_hash' here, too.
6828
6829 2004-11-26  Martin Baulig  <martin@ximian.com>
6830
6831         * class.c (inflate_generic_signature): Correctly compute
6832         `res->has_type_parameters'.
6833         (mono_class_vtable): Use the `has_type_parameters' flag to
6834         determine whether we're a generic method.
6835
6836         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6837
6838 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6839
6840         * object.c (mono_runtime_run_main): Fix a small memory leak.
6841
6842 2004-11-25  Martin Baulig  <martin@ximian.com>
6843
6844         * class.c (set_generic_param_owner): Fixed the loop.
6845
6846 2004-11-25  Martin Baulig  <martin@ximian.com>
6847
6848         * object.c (mono_class_vtable): Don't create any JIT wrappers for
6849         generic methods.
6850
6851 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
6852
6853         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
6854         names. Fixes #69787.
6855
6856 2004-11-24  Martin Baulig  <martin@ximian.com>
6857
6858         * class.c (mono_class_create_generic_2): If we don't have a
6859         `ginst->parent', inflate `gklass->parent' to get our parent.
6860
6861 2004-11-24  Martin Baulig  <martin@ximian.com>
6862
6863         * reflection.c (compare_genericparam): Correctly sort the
6864         GenericParam table; fixes #69779.
6865
6866 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
6867
6868         * reflection.c: When writing a PE file, don't create a huge
6869         buffer in memory. Just write the arrays we have to the file.
6870         This reduces memory usage.
6871
6872         * metadata-internals.h: MonoDynamicStream pefile is no longer used
6873         globally.
6874
6875 2004-11-17  Martin Baulig  <martin@ximian.com>
6876
6877         * class.c (mono_class_init): Don't setup `class->parent' for
6878         dynamic instances; moved this to mono_class_generic_2().
6879         (mono_class_create_generic): Also set `klass->inited' for dynamic
6880         generic instances.
6881         (mono_class_create_generic_2): Don't do anything for dynamic
6882         generic instances.  Set `klass->parent' here and also call
6883         mono_class_setup_parent() here. 
6884
6885         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
6886         `MonoType *parent' argument; set `ginst->parent' before calling
6887         mono_class_create_generic_2(), so we set the correct parent.
6888
6889 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
6890
6891         * reflection.c: allow getting attributes from ModuleBuilder
6892         (used by ikvm).
6893
6894 2004-11-17  Martin Baulig  <martin@ximian.com>
6895
6896         * class.c (mono_class_create_from_typedef): If a type parameter is
6897         inherited from an outer class, set its owner to that class.
6898
6899 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
6900
6901         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
6902           for (int*) written size. This fixes bug #69592.
6903
6904 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
6905
6906         * icall.c: Added IsAuthenticodePresnet internal call.
6907         * image.c|h: New function that check a MonoImage for an Authenticode
6908         signature in the certificate PE data directory.
6909         * security.c|h: New internal call to ask the runtime if an 
6910         Authenticode signature seems referenced in the PE header.
6911
6912 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
6913
6914         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
6915
6916         * reflection.c (mono_image_create_pefile): Free the assembly streams
6917         after writing out the assembly file.
6918
6919         * object.c (mono_runtime_run_main): Fix small memory leak.
6920
6921         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
6922         property access modifiers. Fixes #69389.
6923
6924 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
6925
6926         * domain.c, object.c, object-internals.h, domain-internals.h,
6927         object.h, marshal.c: keep dynamic code info per domain.
6928
6929 2004-11-15  Martin Baulig  <martin@ximian.com>
6930
6931         * class.c (mono_type_get_name_recurse): Put type arguments in
6932         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
6933         see bug #68387.
6934
6935 2004-11-15  Martin Baulig  <martin@ximian.com>
6936
6937         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
6938         (mono_class_setup_vtable): When computing `the_cname' for a
6939         generic instance, don't include the namespace since we'd otherwise
6940         add it twice.
6941
6942 2004-11-15  Martin Baulig  <martin@ximian.com>
6943
6944         * class.c (mono_class_create_generic): Changed return type to void.
6945         (mono_class_create_generic_2): New public function; setup
6946         `class->method', `class->field' and `class->interfaces' here
6947         instead of in mono_class_init().
6948
6949         * class.h (mono_class_create_generic): Moved to class-internals.h.
6950
6951 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
6952
6953         * reflection.c (mono_image_create_pefile): take a file HANDLE.
6954         rather than writing to memory, write to this file. Right now,
6955         we are just writting into a buffer, and copying that. However
6956         we can avoid the buffer later.
6957
6958         (mono_dynamic_stream_reset): new function
6959
6960         * icall.c, object-internals.h: update for the above.
6961
6962 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
6963
6964         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
6965         have been using gc'd memory. First it is slower, unlikely
6966         the comment in the source code said, secondly, it increases
6967         our footprint to do it in the gc.
6968
6969         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
6970         the method so that it does not have to copy to managed code.
6971
6972 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
6973
6974         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
6975
6976 2004-11-12  Martin Baulig  <martin@localhost>
6977
6978         * reflection.c (mono_image_create_token): Allow generic method
6979         definitions here, since they may appear in an `.override'; see
6980         gen-98/gen-99 for an example.
6981
6982 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
6983
6984         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
6985         #69365.
6986
6987         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
6988         descriptive.
6989
6990 2004-11-11  Martin Baulig  <martin@ximian.com>
6991
6992         * class.c (mono_class_setup_vtable): In an explicit interface
6993         implementation, the method name now includes the arity.
6994
6995 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
6996
6997         * object.c (mono_array_full_copy): Fix warning.
6998
6999 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
7000
7001         * appdomain.c: Removed look_for_method_by_name(). Use the new method
7002         mono_class_get_method_from_name() instead.
7003         
7004         * class-internals.h: Added two new types of wrappers. 
7005         Added MonoRemotingTarget enum. Added new trampoline function type, which
7006         takes an additional MonoRemotingTarget value as parameter, so it is
7007         possible to request a trampoline for a specific target.
7008         
7009         * class.c: Added new mono_class_get_method_from_name() method.
7010         
7011         * class.h: In MonoRemoteClass, we can have now to vtables, one for
7012         general remoting sinks and one specific for cross domain calls.
7013         
7014         * debug-helpers.c: Added new wrapper names.
7015         
7016         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
7017         of a remote class.
7018         
7019         * image.c: Porperly delete value objects form the remoting invoke hashtable.
7020         
7021         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
7022         with several other methods (mono_marshal_get_xappdomain_dispatch,
7023         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
7024         and others) can generate a fast remoting wrapper for cross domain calls.
7025         More information can be found in docs/remoting.
7026         Other changes: Removed mono_find_method_by_name, and used
7027         mono_class_get_method_from_name instead.
7028         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
7029         is stored in the remoting invoke hashtable.
7030         
7031         * marshal.h: published the new method for getting the xdomain wrapper,
7032         and also added a method for getting the adequate wrapper for a given
7033         method and target.
7034         
7035         * object-internals.h, object.c: Added a couple of methods for capying and
7036         cloning arrays.
7037         Modified mono_install_remoting_trampoline, which takes the new remoting
7038         trampoline that has a remoting target as parameter.
7039         mono_class_proxy_vtable now also takes a remoting target as parameter, and
7040         will return the most suitable vtable for the target.
7041         Added mono_remote_class_vtable, which returns the vtable of a remote class
7042         (which can be the normal remoting vtable or the xdomain vtable).
7043         
7044         * threads.c: the xdomain invoke and dispatch wrappers must also be
7045         protected against interruptions.
7046
7047 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7048
7049         * icall.c: use memmove in BlockCopyInternal when the source and
7050         destination arrays are the same.
7051
7052 2004-11-09  Martin Baulig  <martin@ximian.com>
7053
7054         * class-internals.h (MonoGenericContainer): Removed `method' and
7055         `signature', replaced them with `is_method' and `is_signature'
7056         flags.  Added `context'.
7057
7058         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
7059         instead of a `MonoGenericContainer *'.
7060
7061         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
7062         for dynamic type parameters.
7063         (mono_metadata_load_generic_params): Setup `container->context'.
7064
7065         * reflection.c (mono_reflection_setup_generic_class): Setup
7066         `tb->generic_container->context'.
7067         (do_mono_reflection_bind_generic_parameters): Use
7068         mono_class_inflate_generic_type() to correctly inflate types,
7069         rather than using our own hack just for MONO_TYPE_VAR.
7070
7071 2004-11-09  Martin Baulig  <martin@ximian.com>
7072
7073         * class.c (mono_class_inflate_generic_method): Small fix; don't
7074         crash here.
7075
7076         * icall.c
7077         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
7078         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
7079         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
7080         (ves_icall_Type_BindGenericParameters): Likewise.
7081         (ves_icall_Type_get_IsGenericInstance): Likewise.
7082         (ves_icall_Type_GetGenericParameterPosition): Likewise.
7083         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
7084         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
7085         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7086
7087 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
7088
7089         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
7090         assembly versions and public key tokens. Fixes #69113.
7091
7092 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
7093
7094         * metadata.c: fix bug introduced with the type cache changes
7095         on 2004-11-06.
7096
7097 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
7098
7099         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
7100         the MonoClass pointer instead of the token in exception clauses.
7101         * reflection.c: updates for the above and make the code not depend
7102         on the structure of MonoExceptionClause.
7103
7104 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
7105
7106         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7107         Add support for dynamic assemblies. Fixes #69114.
7108
7109         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
7110
7111 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
7112
7113         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
7114         since most only those methods use it. the code member of
7115         MonoMethodPInvoke was dead, so that can be removed too. Also,
7116         remove inline_count (again, not used), and move slot so that it
7117         can share bits with some other flags. This saves 8 bytes in the
7118         structure and gives us about 50 kb back for mcs helloworld.cs
7119
7120         * *.[ch]: Do naming changes for the above.
7121
7122         * loader.c (mono_method_get_header): Lazily init the header
7123         on first access.
7124         (mono_get_method_from_token): don't init the header here
7125         (mono_free_method): the header may never be allocated
7126
7127         Overall, this saves 150 kb of unmanaged allocations
7128         for mcs helloworld.cs. That accounts for 10% of the unmanaged
7129         memory at runtime.
7130         
7131         * loader.c, loader.h (mono_method_get_header): new accessor.
7132
7133         * *.[ch]: use the above method. Prepares us to lazily load
7134         the header.
7135
7136         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
7137         three warnings, which are actual bugs (see 69206).
7138
7139         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
7140         unused. Saves a cool 4 bytes / method.
7141
7142 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
7143
7144         * metadata.c (builtin_types): Add types for System.Object here.
7145         (mono_metadata_parse_type_full): Cache MonoType*'s that are
7146         for a class or valuetype from klass->this_arg or klass->byval_arg.
7147
7148         On mcs for a hello world, this gets us down from 21836 MonoType's
7149         to 14560.
7150
7151         (mono_metadata_free_type): Account for the above change.
7152
7153 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
7154
7155         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
7156         exception instead of asserting if name is null.
7157         (ves_icall_System_AppDomain_GetData): Ditto.
7158
7159 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
7160
7161         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
7162         EnumBuilder.
7163
7164         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
7165         Return NULL when the domain does not have entry_assembly set.
7166
7167         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
7168         Add a 'resource_modules' argument.
7169         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
7170
7171         * reflection.c (mono_reflection_create_runtime_class): Move setting
7172         of wastypebuilder here, so mono_get_type_object () returns a MonoType
7173         for enums too.
7174
7175         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
7176         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
7177         Throw an ArgumentNullException if 'ptr' is null.
7178
7179         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
7180         assemblies here. Fixes #69020.
7181
7182 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
7183
7184         * reflection.c (build_compressed_metadata): Fix the previous patch for
7185         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
7186         the stack.
7187
7188 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
7189
7190         * assembly.c (mono_assembly_names_equal): Allow a match if one of
7191         the cultures is false. Fixes #69090.
7192
7193         * reflection.c (build_compressed_metadata): Fix invalid memory read 
7194         detected by valgrind.
7195         
7196         * reflection.c (mono_reflection_get_type): Avoid triggering a 
7197         TypeResolve multiple times for the same type. Fixes #65577.
7198
7199 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
7200
7201         * marshal.c: Avoid using ldftn to call managed functions. It is
7202         much slower than just a call.
7203
7204         * reflection.c (mono_module_get_object): free the basename we
7205         allocate here from glib.
7206         
7207         * reflection.c (ensure_runtime_vtable): make sure to free
7208         overrides.  Also, we were allocating an array of MonoMethod not an
7209         array of MonoMethod*.
7210
7211         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
7212
7213         * image.c (mono_image_close): free image->guid here.
7214
7215 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
7216
7217         * reflection.c: Fix some spec conformance issues with the PE file
7218         structures so mcs compiled apps run on the Net 2.0 beta.
7219
7220 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
7221
7222         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
7223         Implement this. Fixes #67264.
7224
7225         * debug-helpers.h debug-helpers.c marshal.c: Move 
7226         mono_find_method_by_name to debug-helpers.c.
7227
7228 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
7229
7230         * object.c (mono_release_type_locks): type_initialization_hash is
7231         a GHashTable.
7232
7233         * reflection.c object.c object-internals.h: Fix warnings.
7234
7235         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
7236         without accessors. Fixes #61561.
7237
7238         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
7239         application base from the root domain if not set. Fixes #65641.
7240         (mono_runtime_init): Fix warning.
7241
7242 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7243
7244         * appdomain.c: call mono_thread_pool_init.
7245         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
7246         of worker threads based on the number of CPUs and the environment
7247         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
7248         for non-windows (windows) systems.
7249
7250 2004-10-27  Chris Toshok  <toshok@ximian.com>
7251
7252         * mono-debug-debugger.c (write_class): don't call mono_class_init
7253         here, as even with the check for (!klass->init_pending), we get
7254         into a situation where we're hitting cycles in class
7255         initialization.  Fixes #68816.
7256
7257 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
7258
7259         * image.c: Avoid overwriting values in the loaded_images_hash when an
7260         assembly is loaded multiple times. Fixes #61152.
7261
7262         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
7263         so multiple satellite assemblies for the same name can be loaded.
7264         Fixes #68259.
7265
7266         * mono_domain_assembly_preload: Actually return the loaded assembly, 
7267         not NULL.
7268
7269         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
7270         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
7271
7272         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
7273         pending finalizers are not invoked after the appdomain has been 
7274         unloaded. Fixes #67862.
7275
7276 2004-10-22  Martin Baulig  <martin@ximian.com>
7277
7278         * mono-debug-debugger.c
7279         (mono_debugger_runtime_invoke): Don't box valuetypes.
7280
7281 2004-10-22  Chris Toshok  <toshok@ximian.com>
7282
7283         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
7284         don't hide private methods.
7285
7286 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
7287
7288         * icall.c: Allows the runtime to "share" (when known) the public key
7289         token of an assembly. This avoid the need to recalculate the token 
7290         (from the public key) in managed code.
7291
7292 2004-10-21  Chris Toshok  <toshok@ximian.com>
7293
7294         * debug-helpers.c (append_class_name): argh, revert last patch.
7295         
7296 2004-10-21  Chris Toshok  <toshok@ximian.com>
7297
7298         * debug-helpers.c (append_class_name): use '+' as the delimiter,
7299         not '/', so that it matches what the debugger uses to look up
7300         methods.
7301
7302 2004-10-21  Martin Baulig  <martin@ximian.com>
7303
7304         * mono-debug-debugger.c (mono_debugger_throw_exception): New
7305         public method; this is called each time an exception is thrown and
7306         allows the debugger to use exception catch points.
7307
7308 2004-10-21  Martin Baulig  <martin@ximian.com>
7309
7310         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
7311         the stack pointer and the exception object in some struct and pass
7312         that to the debugger.
7313
7314 2004-10-21  Chris Toshok  <toshok@ximian.com>
7315
7316         * mono-debug-debugger.c (do_write_class): add instance/static
7317         event support.  We don't expose "raise" or "other" yet.
7318         (event_is_static): new method.
7319
7320 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
7321
7322         * mono-debug-debugger.c
7323         (mono_debugger_handle_exception): Remove
7324         bogus return value for fussy compilers.
7325
7326 2004-10-20  Martin Baulig  <martin@ximian.com>
7327
7328         * mono-debug-debugger.c
7329         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
7330         (mono_debugger_handled_exception): Likewise.
7331
7332 2004-10-20  Martin Baulig  <martin@ximian.com>
7333
7334         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7335         MONO_DEBUGGER_EVENT_EXCEPTION.
7336
7337         * mono-debug-debugger.c (mono_debugger_handle_exception): New
7338         public function to send the debugger a notification for an
7339         exception and inform it about a catch/finally clause.
7340
7341 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
7342
7343         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
7344         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
7345         fix 2.95 build. 
7346
7347         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
7348
7349 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
7350
7351         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
7352         marshalled as [In,Out]. Fixes #58325.
7353
7354 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
7355
7356         * reflection.c (mono_method_body_get_object): Implement some fields.
7357
7358 2004-10-12  Martin Baulig  <martin@ximian.com>
7359
7360         * reflection.c (mono_reflection_bind_generic_parameters): Small
7361         fix, correctly retrieve our parent from a generic instance.
7362
7363 2004-10-12  Martin Baulig  <martin@ximian.com>
7364
7365         * metadata.c (mono_metadata_generic_param_equal): We always have
7366         an owner.
7367
7368         * class.c
7369         (mono_class_from_generic_parameter): We need to have an owner.
7370         (my_mono_class_from_generic_parameter): Likewise.
7371
7372         * reflection.c (mono_reflection_setup_generic_class): Renamed to
7373         mono_reflection_create_generic_class() and added a new
7374         mono_reflection_setup_generic_class().  
7375         (mono_reflection_initialize_generic_param): If we're a nested
7376         generic type and inherited from the containing class, set our
7377         owner to the outer class.
7378
7379 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
7380
7381         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
7382
7383         * reflection.c (mono_method_body_get_object): New function to create
7384         a MethodBody object.
7385
7386         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
7387
7388 2004-10-11  Martin Baulig  <martin@ximian.com>
7389
7390         * metadata.c (_mono_metadata_type_equal): Renamed to
7391         do_mono_metadata_type_equal() and made static.
7392
7393 2004-10-11  Martin Baulig  <martin@ximian.com>
7394
7395         * appdomain.c: Bump corlib version number to 28.
7396
7397 2004-10-10  Martin Baulig  <martin@ximian.com>
7398
7399         * class-internals.h
7400         (MonoGenericInst): Added `MonoGenericContainer *container'.
7401         (MonoGenericMethod): Likewise.
7402         (MonoGenericContext): Likewise.
7403         (MonoGenericParam): Added `MonoGenericContainer *owner'.
7404
7405         * metadata.c
7406         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
7407         (do_mono_metadata_parse_generic_inst): Likewise.
7408         (mono_metadata_parse_type_full): New public method.  This is the actual
7409         mono_metadata_parse_type() implementation - with an additional
7410         `MonoGenericContainer *' argument.
7411         (mono_metadata_parse_array_full): Likewise.
7412         (mono_metadata_parse_signature_full): Likewise.
7413         (mono_metadata_parse_method_signature_full): Likewise.
7414         (mono_metadata_parse_mh_full): Likewise.
7415         (mono_type_create_from_typespec): Likewise.
7416         (mono_metadata_interfaces_from_typedef_full): New public method;
7417         this is similar to the other _full() methods, but we take a
7418         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
7419         (mono_metadata_parse_generic_param): Take an additional
7420         `MonoGenericContainer *' argument and lookup the MonoGenericParam
7421         from that container.
7422         (mono_metadata_generic_param_equal): New static method to compare
7423         two type parameters.
7424         (_mono_metadata_type_equal): New static method; takes an
7425         additional `gboolean signature_only' argument - if true, we don't
7426         compare the owners of generic parameters.
7427         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
7428         with a TRUE argument - do a signature-only comparision.
7429
7430         * loader.c: Use the new _full() methods and pass the
7431         MonoGenericContainer to them.
7432
7433         * object-internals.h (MonoReflectionTypeBuilder): Added
7434         `MonoGenericContainer *generic_container' field.
7435         (MonoReflectionMethodBuilder): Likewise.
7436
7437 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
7438
7439         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
7440         case initial images of dynamic assemblies.
7441
7442         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
7443
7444         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
7445
7446         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
7447         length of event->other array.
7448         (typebuilder_setup_events): Ditto.
7449
7450         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
7451         'assembly_by_name' and add an 'assemblies' list.
7452
7453         * assembly.h assembly.c: Add a new search hook for determining whenever
7454         an assembly is already loaded. Use this instead of searching in the
7455         loaded_assemblies list.
7456
7457         * domain.c appdomain.c: Implement the new search hook so loaded 
7458         assemblies are now scoped by appdomain. Fixes #67727.
7459
7460 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
7461
7462         * threads.c (mono_thread_attach): Initialize synch_lock field so
7463         mono_thread_detach works again.
7464
7465         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
7466         'lib' too. Fixes #63130.
7467
7468 2004-10-06  Jackson Harper  <jackson@ximian.com>
7469
7470         * culture-info-tables.h: regenerated.
7471
7472 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
7473
7474         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
7475         implemented by other interfaces in the result. Fixes #65764.
7476         
7477         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7478         Handle unloadable modules without crashing.
7479
7480         * image.c (load_modules): Revert the previous patch since modules must
7481         have a fixed index inside the array.
7482         
7483         * image.c (load_modules): Don't include native modules in the modules
7484         array.
7485
7486 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
7487
7488         * reflection.h: Add param_defaults field.
7489
7490         * reflection.c: Add support for parameter defaults in dynamic methods.
7491         Fixes #64595.
7492
7493         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
7494         an empty string when a type has no namespace. Fixes #64230.
7495
7496 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
7497
7498         * tabledefs.h: Added "internal" security actions to support non-CAS
7499         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
7500         Note: they do not seems to be used anymore in 2.0 (new metadata format)
7501
7502 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7503
7504         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
7505         constructor of abstract class. Fixes #61689.
7506
7507 2004-10-04  Martin Baulig  <martin@ximian.com>
7508
7509         * class-internals.h (MonoGenericContainer): New type.
7510         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
7511         `MonoGenericContainer *generic_container'.
7512         (MonoClass): Replaced `gen_params' and `num_gen_params' with
7513         `MonoGenericContainer *generic_container'.
7514
7515         * metadata.c (mono_metadata_load_generic_params): Return a
7516         `MonoGenericContainer *' instead of a `MonoGenericParam *';
7517         removed the `num' argument.
7518
7519 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
7520
7521         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
7522         for dynamic images.
7523
7524         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
7525         machine fields.
7526
7527         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
7528
7529         * reflection.c: Save pe_kind and machine values into the generated
7530         image file.
7531
7532         * appdomain.c: Bump corlib version number.
7533
7534         * object-internals.h: Reorganize layout of LocalBuilder.
7535
7536         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
7537         New helper function.
7538
7539         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
7540         created MonoType for dynamic types. Fixes #66180.
7541
7542 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
7543
7544         * threadpool.c: the ares hashtable needs a critical section around it.
7545         this prevents some nasty segfaults
7546
7547 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
7548
7549         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
7550         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
7551         bug 67324).
7552         
7553 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7554
7555         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
7556         
7557 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
7558
7559         * image.c: Always canonicalize image file names, to avoid loading
7560         the same assembly twice when referenced using a relative path.
7561
7562 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7563
7564         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
7565
7566         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
7567
7568         * marshal.c: Fix warnings.
7569
7570 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
7571
7572         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
7573         attempting to marshal the delegate_trampoline as the method_addr.
7574         This patch has a static hashtable of marshalled delegates so that 
7575         we can map delegate_trampoline addresses back to delegates.  This
7576         allows a delegate passed to managed code to be passed back into native
7577         code.  Fixes #67039
7578
7579 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7580
7581         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
7582
7583         * reflection.c (method_encode_code): Align method headers properly.
7584         Fixes #66025.
7585
7586 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7587
7588         * marshal.c: In the runtime invoke wrapper, reset the abort
7589         exception if it is cached. This avoids the automatic rethrowal of 
7590         the exception after the catch of the wrapper. Also check for pending
7591         interruptions before calling the managed method. This is done using
7592         the new method emit_thread_force_interrupt_checkpoint, since the
7593         normal checkpoint method is ignored when running the invoke wrapper.
7594         * object.c: If the abort exception is rethrown, set the abort_exc
7595         field of the thread, so it will be rethrown aftere every catch.
7596         * threadpool.c: Only run an interruption checkpoint if what has been
7597         requested is a stop of the thread (aborts will be ignored).
7598         * threads.c: By default, a thread will now never be interrumped while
7599         running the runtime invoke wrapper (this ensures that runtime_invoke
7600         will always return to the caller if an exception pointer is provided).
7601         There is a new special method mono_thread_force_interruption_checkpoint()
7602         to force an interruption checkpoint even if running a protected
7603         wrapper, which is used by the same runtime invoke wrapper to do a check
7604         at a safe point.
7605
7606 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7607
7608         * object.c, object-internals.h: Implemented mono_release_type_locks,
7609         which releases the cctor locks held by a thread.
7610         * threads.c, threads.h: In thread_cleanup, release cctor locks held
7611         by a thread. Added mono_thread_exit() method to be used to safely stop
7612         a thread.
7613
7614 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7615
7616         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7617         Move null check before dereference.  Avoid indexing beyond the end
7618         of the 'modules' array.
7619
7620 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7621
7622         * metadata-internals.h (MonoImage): Add module_count field.
7623         * image.c (load_modules): Set image->module_count.
7624         (mono_image_load_file_for_image): Use image->module_count.
7625         * reflection.c (mono_image_load_module): Append to image->modules array 
7626         of dynamic assembly.
7627         (mono_module_get_object): Fix loop to actually increment index.
7628         Use image->module_count.
7629         * assembly.c (mono_assembly_load_references): Use image->module_count.
7630         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7631         Likewise.
7632
7633 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7634
7635         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
7636         Avoid assert on generic types.
7637
7638 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
7639
7640         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
7641
7642         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
7643
7644         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
7645         function to convert a MarshalSpec structure to its managed counterpart.
7646
7647         * reflection.c: Fix warnings.
7648         
7649         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
7650         field.
7651
7652         * icall.c (mono_create_icall_signature): Fix build.
7653
7654 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
7655
7656         * icall.c: Add MakePointType icall.
7657
7658         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
7659         warnings.
7660
7661 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7662
7663         * threadpool.c: reuse allocated slots in the queue.
7664
7665 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7666
7667         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7668
7669         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7670
7671         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7672         previous change.
7673
7674         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7675         ThrowOnUnmappableChar.
7676
7677         * icall.c (ves_icall_Type_GetPacking): New icall.
7678
7679 2004-09-24  Martin Baulig  <martin@ximian.com>
7680
7681         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7682
7683 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7684
7685         * appdomain.c:
7686         (mono_domain_set): allow setting a domain that is being unloaded.
7687         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7688         being unloaded.
7689
7690 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7691
7692         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7693         the GetCustomAttributes icall.
7694
7695 2004-09-23  Martin Baulig  <martin@ximian.com>
7696
7697         * object-internals.h (MonoReflectionGenericParam): Replaced
7698         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7699         with `guint32 attrs'.
7700
7701 2004-09-23  Martin Baulig  <martin@ximian.com>
7702
7703         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7704
7705 2004-09-23  Martin Baulig  <martin@ximian.com>
7706
7707         * object-internals.h (GenericParameterAttributes): New enum.
7708
7709 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7710
7711         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7712         
7713         * class.c (init_events): Fill out event->other field.
7714
7715         * class.c: Fix warnings.
7716
7717         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7718
7719 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7720
7721         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7722         walk which doesn't supply the IL offset.
7723
7724 2004-09-22  Martin Baulig  <martin@ximian.com>
7725
7726         * reflection.c (mono_reflection_setup_internal_class): If we're
7727         System.ValueType, System.Object or System.Enum, set
7728         `klass->instance_size' and create the vtable.
7729         (mono_reflection_create_internal_class): If we're an enum type,
7730         get the base class from our current corlib.
7731
7732 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7733
7734         * reflection.h (MonoResolveTokenError): New type.
7735
7736         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7737         icall.
7738
7739         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7740
7741 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7742
7743         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7744         Support also calling constructors, but only for already allocated objects.
7745
7746 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7747
7748         * reflection.c (type_get_qualified_name): If the klass is null
7749         return the typename to avoid a NullRefEx.
7750         (encode_cattr_value): Get the qualified name of the boxed type,
7751         not the underlying enumtype.  Fixes #62984.
7752
7753 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7754
7755         * marshal.c: Fix problems with previous checkin.
7756
7757 2004-09-21    <vargaz@freemail.hu>
7758
7759         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7760         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7761
7762         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7763
7764 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7765
7766         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7767         should only return a type for pointers, arrays, and passbyref types.
7768         Fixes bug #63841.
7769
7770 2004-09-21  Martin Baulig  <martin@ximian.com>
7771
7772         * domain.c (mono_debugger_check_runtime_version): New public
7773         function.
7774
7775         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7776
7777 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7778
7779         * reflection.c: Added missing sort to the declarative security 
7780         attributes table. MS implementation stops seeing the attributes if the
7781         token number regress in the table (as shown by ildasm and permview).
7782
7783 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7784
7785         * object-internals.h (MonoReflectionModule): Add 'token' field.
7786         
7787         * reflection.c (mono_reflection_get_token): Add support for Module
7788         and Assembly.
7789         (mono_module_get_object): Set 'token' field.
7790         (mono_module_file_get_object): Set 'token' field.
7791
7792         * icall.c: Add new Assembly and Module icalls.
7793
7794         * appdomain.c: Bump corlib version.
7795
7796 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7797
7798         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7799         tokens of metadata objects.
7800
7801         * reflection.h reflection.c (mono_reflection_get_token): New function
7802         to obtain the token of a metadata object.
7803
7804         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7805
7806 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7807
7808         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7809         
7810         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7811
7812 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7813
7814         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7815         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7816         AssemblyBuilder to access the permissions set in the class lib.
7817         * reflection.c: Added security attributes encoding step in 
7818         mono_image_build_metadata.
7819         * tabledefs.h: Added new security actions defined in 2.0:
7820         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7821
7822 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7823
7824         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7825         macro parameter.
7826
7827 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7828  
7829         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7830           finalized. There where random SIGSEVs at program termination, when
7831           an object being finalized was trying to do a string comparison and
7832           the current culture was already finalized.
7833  
7834 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7835
7836         * threads.c: call thread_cleanup before finishing the thread if we get
7837         there.
7838
7839 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
7840
7841         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
7842         assemblies from the parent. Fixes #65665.
7843
7844 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
7845
7846         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
7847         modifiers.
7848
7849 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
7850
7851         * reflection.h: add prototype for mono_get_dbnull_object
7852         * reflection.c: add prototypes for get_default_param_value_blobs 
7853         and mono_get_object_from_blob for fussier compilers
7854
7855 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
7856  
7857         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
7858         false deadlock checks in class initialization.
7859  
7860 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
7861
7862         * image.c (mono_image_addref): Fix comment.
7863
7864         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
7865         possible.
7866
7867 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
7868
7869         * reflection.c (mono_param_get_objects): Modified to return
7870         ParameterInfo.DefaultValue object.
7871
7872         (get_default_param_value_blobs):
7873         (mono_get_object_from_blob):
7874         (mono_get_dbnull_object): New helper routines. 
7875
7876         * object.c (mono_get_constant_value_from_blob): New helper routine
7877         carved out from get_default_field_value ()
7878
7879         * object-internals.h (mono_get_constant_value_from_blob): Added
7880         function declaration.
7881
7882 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
7883
7884         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
7885         referenced assemblies. Fixes #62135.
7886
7887         * exception.h exception.c (mono_get_exception_file_not_found2): New
7888         helper function.
7889
7890 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
7891
7892         * class.h class.c: Add mono_type_get_underlying_type ().
7893
7894 2004-09-09  Geoff Norton <gnorton@customerndna.com>
7895
7896         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
7897         Fix GetTypes() to support dynamically created assemblies.
7898
7899 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
7900
7901         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
7902         
7903         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
7904         previous patch.
7905
7906         * reflection.h reflection.c loader.c: Allow dynamic construction of
7907         pinvoke methods. Fixes #65571.
7908         
7909         * reflection.c (mono_reflection_get_type): Revert previous change since
7910         it causes regressions.
7911
7912 2004-09-08  Martin Baulig  <martin@ximian.com>
7913
7914         * class.c (class_compute_field_layout): Don't call
7915         mono_class_layout_fields() for open generic instances.
7916
7917 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
7918         * threads.c appdomain.c: fix typo in GC macro
7919
7920 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7921
7922         * threads.c: don't call mono_thread_detach() in start_wrapper(),
7923         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
7924
7925 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
7926
7927         * image.c (mono_image_close): Applied patch from 
7928         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
7929         assembly is loaded multiple times from data.
7930         
7931         * image.c (mono_image_open): Fix warning.
7932
7933 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7934
7935         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
7936         once. Fixes #58334.
7937         
7938         * reflection.c (mono_reflection_create_runtime_class): Initialize
7939         klass->nested_classes. Fixes #61224.
7940
7941 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
7942
7943         * threads.c: sched_yield() on exit, to allow threads to quit.
7944
7945 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7946
7947         * object.c (mono_unhandled_exception): Remove leftover debug code.
7948
7949 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
7950
7951         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
7952
7953 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7954
7955         * marshal.c (emit_marshal_array): Really null terminate string arrays.
7956         
7957         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
7958
7959 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7960
7961         * marshal.c (emit_marshal_array): Null terminate string arrays.
7962         
7963         * marshal.c (raise_auto_layout_exception): Fix warning.
7964
7965         * reflection.c (mono_param_get_objects): Initialize the default value
7966         with DBNull.Value, not null. Fixes #62123.
7967
7968 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
7969
7970         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
7971         throw an exception with a cute explanation.
7972
7973 2004-09-06  Dick Porter  <dick@ximian.com>
7974
7975         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
7976         Close the new process's thread handle, as we don't use it.  The
7977         handle stays around forever otherwise.
7978
7979 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7980
7981         * object.c (arith_overflow): Fix warning.
7982
7983         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
7984         calling conventions in method refs. Fixes #65352.
7985
7986         * reflection.c: Fix warnings.
7987
7988 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7989
7990         * icall.c: Add a new icall for Array.Clear
7991
7992 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7993
7994         * object.c: When allocating an array, we have to throw
7995         an overflow exception if any of the lengths are < 0.
7996
7997 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7998
7999         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
8000         properly. Also move implementation of string array marshalling to 
8001         managed code. Fixes #42316.
8002
8003 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8004
8005         * assembly.c: provide more information when loading an assembly fails.
8006
8007 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8008
8009         * filewatcher.c: don't expect the development fam package to be
8010         installed.
8011
8012 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
8013
8014         * marshal.c: Make a copy of the signature cookie since it will be
8015         freed by the caller.
8016         
8017         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
8018
8019         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
8020
8021         * metadata.c (mono_metadata_free_marshal_spec): New function to free
8022         marshal specs.
8023
8024         * marshal.c: More refactoring.
8025         
8026         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
8027         smaller functions.
8028
8029 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
8030
8031         * object.c: In mono_message_invoke, fill the output parameter array after
8032           calling the managed method (it was done before the call). This fixes
8033           bug #59299.
8034
8035 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
8036
8037         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
8038         as well.
8039
8040 2004-09-02  Martin Baulig  <martin@ximian.com>
8041
8042         * class.c (mono_class_instance_size): Don't allow generic type
8043         definitions or open generic instances.
8044         (mono_class_array_element_size): If we're a value type, call
8045         mono_class_instance_size() on the original class.
8046
8047         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
8048         handle generic instances.
8049
8050         * mono-debug-debugger.c (write_type): Handle generic instances
8051         like classes.
8052
8053 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
8054
8055         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
8056         the allocation request fails. Fixes #65089.
8057
8058         * object.c (mono_runtime_free_method): Do not call mono_free_method.
8059         
8060         * object.c (mono_runtime_free_method): New function to free a dynamic
8061         method.
8062
8063         * marshal.c (mono_delegate_free_ftnptr): New function to free the
8064         delegate trampoline.
8065
8066         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
8067         with hasthis as dynamic,
8068
8069         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
8070
8071         * domain.c (mono_jit_info_table_remove): New function to remove an
8072         entry from the jit info table.
8073
8074         * class-internals.h (MonoMethod): Add 'dynamic' field.
8075
8076         * loader.c: Fix warnings.
8077
8078 2004-09-01  Martin Baulig  <martin@ximian.com>
8079
8080         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
8081         instead of mono_debugger_lock() because the latter one is a no-op
8082         unless running in the debugger.
8083
8084 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
8085
8086         * class.c (class_compute_field_layout): Classes with auto-layout or
8087         reference fields are not blittable.
8088         
8089 2004-09-01  Dick Porter  <dick@ximian.com>
8090
8091         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
8092         mono_image_get_filename() to get the assembly location.
8093
8094         * icall.c:
8095         * metadata.h: Fix compile warnings
8096
8097 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
8098
8099         * class.c (class_compute_field_layout): System.Object is blittable.
8100
8101         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
8102         as in/out. Fixes #59909.
8103
8104 2004-09-01  Martin Baulig  <martin@ximian.com>
8105
8106         * metadata.h (MONO_TYPE_ISREFERENCE): Call
8107         mono_metadata_generic_inst_is_valuetype() if we're a generic
8108         instance to check whether our underlying type is a reference type.
8109
8110 2004-09-01  Martin Baulig  <martin@ximian.com>
8111
8112         * metadata.c (mono_type_size): If we're a generic instance, call
8113         mono_class_value_size() for value types.
8114
8115 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
8116
8117         * marshal.c: Implement more custom marshalling functionality. Fixes
8118         #64915.
8119
8120 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8121
8122         * mono-debug.c, debug-mono-symfile.c: add some locking love.
8123
8124 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
8125
8126         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
8127
8128         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
8129
8130         * icall.c: Fix some warnings.
8131
8132         * threads.c (abort_appdomain_thread): Fix unref errors.
8133         (mono_thread_current): Fix THREAD_DEBUG define.
8134
8135 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
8136
8137         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
8138
8139         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
8140
8141 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
8142
8143         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
8144         string arrays.
8145
8146 2004-08-28  Martin Baulig  <martin@ximian.com>
8147
8148         * metadata.c
8149         (mono_metadata_generic_inst_is_valuetype): New public function.
8150
8151         * metadata.h (MONO_TYPE_ISSTRUCT): Call
8152         mono_metadata_generic_inst_is_valuetype() if we're a generic
8153         instance to check whether our underlying type is a valuetype.
8154
8155 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
8156
8157         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
8158         #63768.
8159
8160 2004-08-25  Martin Baulig  <martin@ximian.com>
8161
8162         * loader.c (mono_get_method_from_token): Abstract methods can also
8163         be generic and thus have type parameters.
8164
8165         * metadata-internals.h
8166         (MonoDynamicImage): Added `GPtrArray *gen_params'.
8167
8168         * reflection.c (mono_image_get_generic_param_info): Don't create a
8169         metadata row, just add an entry to the `gen_params' array.
8170         (build_compressed_metadata): Sort the `gen_params' array and then
8171         actually create the metadata.
8172
8173 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8174
8175         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
8176
8177 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
8178
8179         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
8180
8181 2004-08-24  Martin Baulig  <martin@ximian.com>
8182
8183         * class.cs (mono_class_is_subclass_of): Like an interface, a
8184         generic instance also derives from System.Object.
8185
8186 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
8187
8188         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
8189         custom modifiers to be in any order. Fixes #61990.
8190
8191 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
8192
8193         * object.c: Register mono_object_new_fast icall.
8194         
8195         * object.c (mono_class_get_allocation_ftn): Return to calling
8196         mono_object_new_fast, since it seems faster to compute the object 
8197         size in unmanaged code than passing it as a parameter.
8198
8199         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
8200
8201         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
8202         this function with Boehm as the oom handler, so we don't have to check
8203         the result of GC_malloc.
8204
8205         * object.c: Remove checks for oom.
8206
8207         * object.h object.c (mono_class_get_allocation_ftn): New function to
8208         return the icall which can be used to allocate an instance of a given
8209         class. 
8210
8211         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
8212
8213         * class-internals.h: Add 'enabled' field.
8214
8215 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
8216
8217         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
8218
8219 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
8220         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
8221         value 0x0010.
8222
8223 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
8224
8225         * appdomain.c: use the Tls function for appdomain too,
8226         at Zoltan's request. Actually return in mono_context_get
8227
8228         * appdomain.c, profiler.c, threads.c: use __thread
8229
8230 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
8231
8232         * appdomain.c threads.c: Call GC_CreateThread on windows.
8233
8234         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
8235         multiple libraries since this don't work on windows.
8236
8237 2004-08-18  Martin Baulig  <martin@ximian.com>
8238
8239         * class-internals.h
8240         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
8241         MonoMethodHeader.
8242
8243         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
8244         MonoMethodNormal since we also need it for abstract and interface
8245         methods.
8246
8247         * reflection.c
8248         (build_compressed_metadata): Sort the GenericParam table.
8249         (mono_image_create_token): Added `gboolean create_methodspec'
8250         argument; this is false when generating a MethodImpl token.
8251         (reflection_methodbuilder_to_mono_method): Abstract and interface
8252         methods may also have generic parameters.
8253
8254 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
8255
8256         * appdomain.c: thread local alloc
8257
8258 2004-08-17  Martin Baulig  <martin@ximian.com>
8259
8260         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
8261
8262         * icall.c
8263         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
8264         argument.
8265
8266         * class.c (mono_type_get_full_name): New public function.
8267         (mono_type_get_name): Don't include the type arguments.
8268
8269 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
8270
8271         * Makefile.am: Build static versions of libmetadata and libmonoruntime
8272         for inclusion into the mono executable.
8273
8274 2004-08-16  Martin Baulig  <martin@ximian.com>
8275
8276         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
8277         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
8278
8279 2004-08-14  Martin Baulig  <martin@ximian.com>
8280
8281         * class.c (dup_type): Also copy the `byref' field.
8282
8283 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
8284
8285         * reflection.c (create_dynamic_mono_image): Revert the last change 
8286         since it breaks bootstrap.
8287
8288 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
8289
8290         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
8291
8292         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
8293         not free them with g_free.
8294
8295 2004-08-11  Martin Baulig  <martin@ximian.com>
8296
8297         * reflection.c (mono_reflection_setup_internal_class): Also call
8298         mono_class_setup_mono_type() if we already have a `tb->type.type'.
8299
8300 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
8301
8302         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
8303         called during default (first) AppDomain creation. Keep track of
8304         Evidence when loading assemblies.
8305
8306 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8307
8308         * opcodes.c, opcodes.h: reduce runtime relocations.
8309
8310 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
8311
8312         * culture-info.h, locales.c: fixes and chages to sue the new
8313         optimized format of the locale data.
8314         * culture-info-tables.h: regenerated.
8315
8316 2004-08-06  Geoff Norton <gnorton@customerdna.com>
8317         
8318         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
8319
8320 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
8321
8322         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
8323         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
8324         * domain-internals.h: icall declaration.
8325         * icall.c: icall registration.
8326         * object-internals.h: New fields in MonoAssembly for CAS.
8327
8328 2004-08-05  Duncan Mak  <duncan@ximian.com>
8329
8330         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
8331         CEE_LDELEM_ANY.
8332
8333 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8334
8335         * reflection.c: fix to deal with object[] arrays in custom ctors
8336         (bug #62550).
8337
8338 2004-08-05  Martin Baulig  <martin@ximian.com>
8339
8340         * class.c (mono_class_array_element_size): Added support for
8341         generic instances and correctly handle "recursive" types.
8342
8343 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
8344
8345         * assembly.c: Fix warnings.
8346
8347 2004-08-04  Martin Baulig  <martin@ximian.com>
8348
8349         * class.c
8350         (mono_type_get_name_recurse): Added `gboolean include_arity'
8351         argument specifying whether or not we should include the generic
8352         arity in the type name.
8353         (_mono_type_get_name): New static function.
8354         (mono_class_setup_vtable): If we're a generic instance, don't
8355         include the generic arity in the names of explicit method
8356         implementations.        
8357
8358 2004-08-03  Martin Baulig  <martin@ximian.com>
8359
8360         * class.c (mono_type_get_name_recurse): Enclose the generic type
8361         arguments in `<', '>'.
8362
8363 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8364
8365         * gc.c: make GC warning messages use the trace API, they are just
8366         noise to most of the users.
8367
8368 2004-08-03  Martin Baulig  <martin@ximian.com>
8369
8370         * debug-mono-symfile.c (read_string): Correctly read the string.
8371
8372 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
8373
8374         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
8375         
8376         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
8377         icalls.
8378         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
8379
8380 2004-07-30  Martin Baulig  <martin@ximian.com>
8381
8382         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
8383         Reflect latest symbol writer changes.   
8384
8385 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8386
8387         * object.c: always create an object if null is passed
8388         to Invoke() where a valuetype is expected.
8389
8390 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
8391
8392         * marshal.c (mono_marshal_init): make managed
8393         signatures match native ones better for 64bits.
8394
8395 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8396
8397         * appdomain.c: hack to build correctly the private bin path on windows.
8398         Fixes bug #61991.
8399
8400 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
8401
8402         * assembly.c: Load mscorlib from the correct framework directory
8403           (mono/<version>/mscorlib.dll).
8404         * appdomain.h: Added prototypes for new functions.
8405         * internals.h: Added some prototypes.
8406         * domain.c: When initializing the runtime, get from the executable and
8407           the configuration files the runtime version that the app supports.
8408           Added support methods for reading app.exe.config. Added list of versions
8409           supported by the JIT. Added two new methods: mono_init_from_assembly,
8410           which initializes the runtime and determines the required version from
8411           the provided exe file, and mono_init_version, which initializes
8412           the runtime using the provided version.
8413         * icall.c: Get machine.config from version-specific directory.
8414         * reflection.c: When generating an image, embed the version number
8415           of the current runtime.
8416
8417 2004-07-28  Dick Porter  <dick@ximian.com>
8418
8419         * socket-io.c
8420         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
8421         returned sockaddr size before creating the remote address object.
8422         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
8423         61608.
8424
8425 2004-07-28  Dick Porter  <dick@ximian.com>
8426
8427         * locales.c (string_invariant_compare_char): Fix invariant char
8428         compares between upper and lower cases.  Fixes bug 61458.
8429
8430 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
8431         
8432         * marshal.c: actually cache stelem.ref wrappers.
8433         
8434 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
8435
8436         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
8437         sections and remove the mono_cli_rva_map () function.
8438
8439 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8440
8441         * debug-mono-symfile.c: fix one more endianess issue, from a patch
8442         by Geoff Norton (<gnorton@customerdna.com>).
8443
8444 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8445
8446         * class.c: fix class loads for pointer types (typeof(int) !=
8447         typeof(int*)).
8448
8449 2004-07-27  Martin Baulig  <martin@ximian.com>
8450
8451         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
8452         reading the debugging information from an external ".mdb" file.
8453
8454 2004-07-24  Martin Baulig  <martin@ximian.com>
8455
8456         * reflection.c (mono_image_get_type_info): Only write a class
8457         layout entry if we actually have a size or a packing size.
8458
8459 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8460
8461         * reflection.c (type_get_fully_qualified_name): 
8462         insert cast to get type checking of ?: with non-gcc compilers
8463
8464 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8465
8466         * rand.c: use g_getenv for both lookups of
8467         MONO_EGD_SOCKET
8468
8469 2004-07-17  Martin Baulig  <martin@ximian.com>
8470
8471         * reflection.c (mono_reflection_bind_generic_method_parameters):
8472         Set `gmethod->reflection_info'.
8473
8474 2004-07-17  Martin Baulig  <martin@ximian.com>
8475
8476         * class.c (mono_class_create_from_typedef): Insert the newly
8477         created class into the hash table before computing the interfaces
8478         since we could be called recursively.
8479
8480 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
8481
8482         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
8483         function to implement stelem.ref in managed code
8484         * class-internals.h, debug-helpers.c: a new wrapper type
8485         for the above.
8486
8487 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8488
8489         * gc.c: allow GC handles to work even when no GC is compiled in.
8490         Fix part of bug #61134 (GetAddrOfPinnedObject).
8491
8492 2004-07-13  Peter Williams  <peter@newton.cx>
8493  
8494         * process.c (complete_path): Make sure we don't attempt to execute
8495         directories.
8496  
8497 2004-07-12  Geoff Norton <gnorton@customerdna.com>
8498
8499         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
8500           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
8501           and will add/subtract the hour if needed
8502
8503 2004-07-12  Martin Baulig  <martin@ximian.com>
8504
8505         * reflection.c (mono_field_get_object): If we have
8506         `field->generic_info', take the attributes from
8507         `field->generic_info->generic_type'.    
8508
8509 2004-07-12  Martin Baulig  <martin@ximian.com>
8510
8511         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
8512         This function must be called before initializing the runtime.
8513         (mono_debug_init_1): New function; call this after initializing
8514         the runtime, but before loading the assembly.  It tells the
8515         debugger to load corlib and the builtin types.
8516
8517         * mono-debug-debugger.c: Did some larger changes in the debugging
8518         code; support recursive class declarations, make sure we actually
8519         add all classes.
8520
8521 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8522
8523         * debug-helpers.c: undo my previous patch and fixed the real issue in
8524         ../mini/exceptions-x86.c
8525
8526 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8527
8528         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
8529         when no HOME env. variable was set and a NullRef was thrown in a .cctor
8530         called from other .cctors.
8531
8532 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
8533
8534         * loader.c: Removed the mono_loader_wine_init hack now that we are
8535         doing a managed version of Windows.Forms.
8536
8537 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
8538
8539         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
8540         threadpool.c, threads.c: remove static data from rootset.
8541
8542 2004-07-09  Dick Porter  <dick@ximian.com>
8543
8544         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
8545         Don't do any more processing if the matched length was 0.  It was
8546         increasing the size of the string before.  Fixes bug 61167.
8547
8548 2004-07-09  Dick Porter  <dick@ximian.com>
8549
8550         * socket-io.h:
8551         * socket-io.c
8552         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8553         Add support for SO_PEERCRED if its available.
8554
8555 2004-07-09  Peter Bartok <pbartok@novell.com>
8556         * loader.c: winelib.exe.so error message is now only displayed if
8557         MONO_DEBUG is set. To help us avoid questions when people are trying
8558         out the new Managed.Windows.Forms.
8559
8560 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
8561
8562         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
8563         for isinst and castclass wrappers.
8564
8565         * class-internals.h icall.c: Move registration and lookup of JIT icalls
8566         to libmetadata from the JIT, so they could be used by the marshalling
8567         code and the interpreter.
8568
8569         * marshal.c: Register marshalling related JIT icalls here instead of
8570         in mini.c. Use CEE_MONO_ICALL instead of the family of 
8571         CEE_MONO_PROC<x> opcodes to call marshalling functions.
8572
8573         * metadata.h: Remove unneeded marshalling conversions.
8574
8575         * opcodes.c: Update for new opcodes.
8576         
8577 2004-07-08  Martin Baulig  <martin@ximian.com>
8578
8579         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
8580         (mono_debug_get_domain_data): Make this function static.
8581
8582 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8583
8584         * gc.c, object.h: add nice GC handle API for embedders.
8585
8586 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
8587
8588         * reflection.c: more changes for the new api
8589
8590         * object.c: When we reflect on a field w/ a constant value, it
8591         will not have a memory location, so we must access metadata. Also,
8592         allow easier reading of strings so that we can read them from
8593         the constant data.
8594
8595         * class.c (mono_class_layout_fields): no need for literal fields here.
8596
8597         * class-internals.h: api changes for const fields
8598
8599         * icall.c (ves_icall_get_enum_info): use new apis for const fields
8600
8601 2004-07-06  Martin Baulig  <martin@ximian.com>
8602
8603         * mono-debug.h: Increment version number to 44.
8604
8605         * mono-debug.c (mono_debug_add_wrapper): The second argument is
8606         now a gpointer, rewrote this whole method.
8607
8608         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
8609         function.  Add information about the wrapper in a new "misc table".
8610
8611         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
8612         for the new misc table.
8613
8614 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
8615
8616         * metadata-internals.h image.c: Add a cache for helper signatures.
8617
8618         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
8619
8620 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
8621
8622         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
8623         delegates from a delegate. Fixes #61033.
8624         
8625         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
8626         marshalling of stringbuilder arrays. Fixes #59900.
8627
8628 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
8629
8630         * icall.c: Add EnumBuilder:setup_enum_type icall.
8631
8632 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
8633
8634         * icall.c: Added a new icall for the property version of
8635         OffsetOfStringData.
8636
8637 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
8638
8639         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
8640         it has a constant size across platforms.
8641
8642         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
8643         stack trace.
8644
8645 2004-06-29  Martin Baulig  <martin@ximian.com>
8646
8647         * mono-debug.c (mono_debug_add_method): Protect the whole function
8648         in mono_debugger_lock(), not just parts of it.
8649
8650 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8651
8652         * reflection.c: make sure padding bytes in heaps are zeroed.
8653
8654 2004-06-24  David Waite  <mass@akuma.org>
8655
8656         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
8657         image.c, loader.c, locales.c, marshal.c, metadata.c,
8658         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
8659         string-icalls.c, threads.c: change to C90-style comments from C99 /
8660         C++ -style
8661
8662 2004-06-24  Dick Porter  <dick@ximian.com>
8663
8664         * threads.c
8665         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8666         return createdNew.  Fixes bug 60412.
8667
8668         * threads-types.h: 
8669         * icall.c: Add createdNew parameter to CreateMutex icall
8670
8671 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8672
8673         * reflection.c, object-internals.h: save default value in params.
8674
8675 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8676
8677         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8678         no need to build a new path combining that with the application base.
8679         Fixes bug #60442.
8680
8681 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8682
8683         * reflection.c: fixed minor standard compliance issues.
8684
8685 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8686
8687         * reflection.c: fixed issue with encoding some custom attributes
8688         (arrays in properties and fields, bug #60411).
8689
8690 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8691
8692         * reflection.c: fix start address when copying the public key token.
8693
8694 2004-06-23  Martin Baulig  <martin@ximian.com>
8695
8696         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8697         the `exc' object in a static object to put it into the GC's root set.
8698
8699 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8700
8701         * reflection.c: make mono_reflection_setup_internal_class ()
8702         callable a second time to setup a new parent class.
8703
8704 2004-06-23  Dick Porter  <dick@ximian.com>
8705
8706         * threads.c: Check for WAIT_IO_COMPLETION return values.
8707
8708 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8709
8710         * appdomain.c: Removed the g_free on the public key token. Now copy 
8711         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8712         * assembly.c: Added public key token string value when loading 
8713         assemblies. Fix bug #60439.
8714         * icall.c: Added missing informations (like public key) in 
8715         GetReferencedAssemblies. Fix #60519.
8716         * image.h: Changed definition for public key token from const char*
8717         public_tok_value to guchar public_key_token [17];
8718         * reflection.c: Updated for changes to public key token.
8719
8720 2004-06-22  Lluis Sanchez Gual
8721
8722         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8723         for the field in base classes.
8724
8725 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8726
8727         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8728         mark headers as not supported, they are installed only for use by the
8729         debugger.
8730
8731 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8732
8733         * *.c, *.h: avoid namespace pollution in public headers.
8734
8735 2004-06-21  Martin Baulig  <martin@ximian.com>
8736
8737         * exception.c (mono_get_exception_security): It's in
8738         "System.Security", not in "System".
8739
8740         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8741         the exception classes.
8742
8743 2004-06-21  Martin Baulig  <martin@ximian.com>
8744
8745         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8746         Protect the exception object from being finalized.
8747
8748 2004-06-21  Martin Baulig  <martin@ximian.com>
8749
8750         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8751         public function.
8752
8753 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8754
8755         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8756         if it was not loaded before. Fix parts of #60439.
8757
8758 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8759
8760         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8761         code that was broken since Ben's change: wrappers are now
8762         dependent on the method signature only again.
8763
8764 2004-06-21  Martin Baulig  <martin@ximian.com>
8765
8766         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8767         added interface support.
8768
8769 2004-06-21  Martin Baulig  <martin@ximian.com>
8770
8771         * class.c (mono_vtable_get_static_field_data): New public method.
8772
8773 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8774
8775         * filewatcher.c : Windows build fix to be compliant with API changes.
8776
8777 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8778
8779         * class.h, class.c: more accessors.
8780         * metadata.h, metadata.c: prepare for hiding MonoType and
8781         MonoMethodSignature: people should use the accessors from now on
8782         outside of the tree.
8783
8784 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8785
8786         * *.c, *.h: more API cleanups.
8787
8788 2004-06-18  Jackson Harper  <jackson@ximian.com>
8789
8790         * assembly.c: Trace loading assemblies.
8791         * loader.c: Trace loading native libraries.
8792         * mono-config.c: Trace loading config files.
8793         
8794 2004-06-18  Dick Porter  <dick@ximian.com>
8795
8796         * locales.c: Tell ICU the lengths of strings, it can cope with
8797         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8798
8799 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8800
8801         * image.c: swapped name/filename;
8802
8803 2004-06-18  Martin Baulig  <martin@ximian.com>
8804
8805         * mono-debug-debugger.c (write_class): Write the parent class at
8806         the end of the header.
8807
8808 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8809
8810         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8811
8812 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8813
8814         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8815         (bundle_obj): New conditional define.
8816         (BUILT_SOURCES): Remove.
8817         ($(bundle_srcs)): Make parallel-make safe.
8818         (libmonoruntime_la_LIBADD): Make unconditional.
8819         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8820         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8821
8822 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8823
8824         * culture-info-tables.h: It was inconsistent with the latest
8825           supp info files.
8826
8827 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8828
8829         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8830         be loaded.
8831
8832         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8833         with gcc 2.95.
8834
8835 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8836
8837         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8838         cleaned up public header threads.h.
8839
8840 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8841
8842         * Makefile.am, *.c, *.h: more API cleanups.
8843
8844 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
8845
8846         * Makefile.am: removed monosn from compilation.
8847         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
8848         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
8849         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
8850         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
8851         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
8852         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
8853
8854 2004-06-15  Jackson Harper  <jackson@ximian.com>
8855
8856         * assembly.c: Make locales lower case when searching the GAC for
8857         assemblies. gacutil will always make locales lowercase when
8858         installing so this effectively makes them case insensitive.
8859         
8860 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
8861
8862         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
8863         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
8864           parameter which allows to choose whether the wait can be interrupted or 
8865           not. Also added the method mono_monitor_enter(), which locks the monitor
8866           using an infinite wait and without allowing interruption.
8867           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
8868           interrupted.
8869         * object.h: Added new fields in MonoThread. suspend_event holds the event
8870           used to susped/resume the thread. synch_lock is the lock object to use for
8871           modifying the thread state.
8872         * threads.c: Use the new synch_lock object for locking, instead of "this",
8873           which can generate deadlocks.
8874           Moved thread state change in Thread.Sleep and Thread.Join from managed
8875           to unmanaged code. This avoids a deadlock when the thread was suspended
8876           just after acquiring the thread lock.
8877           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
8878           Implemented Thread.Suspend using an event instead of ThreadSuspend,
8879           which is not fully implemented in the io-layer.
8880         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
8881
8882 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
8883
8884         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
8885         threads-types.h: more API cleanups.
8886
8887 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8888
8889         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
8890         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
8891         threadpool.c, threads.c: first pass at the exported API cleanup.
8892
8893 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
8894
8895         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
8896
8897 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8898
8899         * icall.c: added internalGetHome.
8900
8901 2004-06-14  Dick Porter  <dick@ximian.com>
8902
8903         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
8904         possible to return successfully when '.' or '..' were the only
8905         entries in a directory, but were skipped.  The MonoIOStat was not
8906         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
8907         Fixes bug 59574.
8908
8909 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8910
8911         * reflection.c: make binaries run on .Net 1.1 by default.
8912
8913 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
8914
8915         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
8916
8917 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
8918
8919         * marshal.c: keep track of struct size with explicit layout
8920         (bug #59979).
8921
8922 2004-06-12  Martin Baulig  <martin@ximian.com>
8923
8924         * mono-debug-debugger.c: Comment out a debugging g_message().
8925
8926 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8927
8928         * reflection.c, reflection.h: do not free custom attrs that are cached.
8929         * icall.c: use braces to make code clearer.
8930
8931 2004-06-11  Martin Baulig  <martin@ximian.com>
8932
8933         * class.h (MonoInflatedField): New type.
8934         (MonoClassField): Replaced `MonoType *generic_type' with
8935         `MonoInflatedField *generic_info'.
8936
8937         * icall.c
8938         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
8939
8940 2004-06-11  Martin Baulig  <martin@ximian.com>
8941
8942         * reflection.c (mono_image_create_method_token): Correctly encode
8943         varargs methods.
8944
8945 2004-06-11  Martin Baulig  <martin@ximian.com>
8946
8947         * metadata.c (mono_metadata_parse_method_signature): When parsing
8948         a MethodDef which has VarArgs, also set sentinelpos if we don't
8949         have any parameters.
8950
8951 2004-06-11  Martin Baulig  <martin@ximian.com>
8952
8953         * verify.c (mono_method_verify): In CEE_CALL, use
8954         mono_method_get_signature() to get the method's signature, unless
8955         we're a PInvoke method.
8956
8957 2004-06-10  Jackson Harper  <jackson@ximian.com>
8958
8959         * assembly.c: Use <path>/lib/mono/gac for the extra paths
8960         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
8961         logical name as the supplied path is just a prefix to the gac not
8962         the direct path to it.
8963         
8964 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
8965
8966         * reflection.c: make the token for a created method match
8967         the token of the MethodBuilder it was created from
8968         (IKVM requires this behaviour now).
8969
8970 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
8971
8972         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
8973         reflection.c, socket-io.c: leak fixes.
8974
8975 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
8976
8977         * icall.c: handle sentinel pos in vararg methods in position different
8978         from 0.
8979
8980 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8981
8982         * culture-info-tables.h: freshly generated.
8983
8984 2004-06-09  Martin Baulig  <martin@ximian.com>
8985
8986         * loader.c (mono_get_method_constrained): Call `mono_class_init
8987         (constrained_class)'.   
8988
8989 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
8990
8991         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
8992         any methods. Fixes #59629.
8993
8994 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8995
8996         * culture-info-tables.h: reflecting locale-builder updates.
8997
8998 2004-06-08  Dick Porter  <dick@ximian.com>
8999
9000         * object.h:
9001         * locales.c: Fixed compile warnings, including a real bug in
9002         CompareInfo_internal_compare.
9003         
9004 2004-06-08  Dick Porter  <dick@ximian.com>
9005
9006         * locales.c
9007         (ves_icall_System_Globalization_CompareInfo_internal_index):
9008         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
9009         Double-check the resuls of usearches, because ICU currently
9010         ignores most of the collator settings here.  Fixes bug 59720.
9011         
9012 2004-06-08  Dick Porter  <dick@ximian.com>
9013
9014         * locales.c
9015         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
9016         Fix memory leak and segfault-causing typo.  No idea how this one
9017         lasted so long without being noticed.
9018
9019 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
9020
9021         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
9022         any methods. Fixes #59629.
9023
9024 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9025
9026         * assembly.c:
9027         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
9028         own the critical section before). Removed dead code (that's done
9029         in the preload hook).
9030
9031         (mono_assembly_load_with_partial_name): call the preload hook.
9032
9033 2004-06-08  Martin Baulig  <martin@ximian.com>
9034
9035         * metadata.c (mono_metadata_signature_alloc): Default
9036         `sentinelpos' to -1.
9037
9038         * reflection.c (mono_image_get_array_token): Likewise.
9039
9040 2004-06-08  Martin Baulig  <martin@ximian.com>
9041
9042         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
9043
9044         * metadata.c (mono_metadata_parse_method_signature): When parsing
9045         a MethodDef which has VarArgs, set sentinelpos.
9046
9047         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
9048         `gint16' since we're using -1 for non-varargs methods.
9049
9050         * reflection.c
9051         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
9052         (method_encode_signature): Added varargs support.
9053         (method_builder_encode_signature): Likewise.
9054         (mono_image_get_varargs_method_token): New static method.
9055         (mono_image_create_method_token): New public method; this is
9056         called via an icall instead of mono_image_create_token() when
9057         calling a varargs method.       
9058
9059 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
9060
9061         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
9062
9063 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9064
9065         * culture-info-tables.h : Reflecting the latest locale-builder that
9066           fixed empty array representation ({} to {0}).
9067
9068 2004-06-07  Jackson Harper  <jackson@ximian.com>
9069
9070         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
9071         looking up extra gac paths. This allows MONO_GAC_PATH to act
9072         exactly like a prefix.
9073         
9074 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
9075
9076         * reflection.c (mono_reflection_type_from_name): Make a copy of the
9077         type name before modifying it. Fixes #59405.
9078
9079 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9080
9081         * culture-info.h: added fields for "all datetime patterns".
9082         * locales.c: (  ves_icall_System_Globalization_CultureInfo
9083           _construct_datetime_format ()): fill xxx_patterns fields.
9084         * object.h: added fields for "all datetime patterns" to
9085           MonoDateTimeFormatInfo.
9086         * culture-info-tables.h: reflecting locale-builder updates.
9087
9088 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
9089
9090         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
9091         the event has no add and remove methods. Fixes #59629.
9092
9093 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
9094
9095         * object.c: Fixed possible integer overflow when allocating large
9096         strings.
9097
9098 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
9099
9100         * culture-info-tables.h: reflecting locale-builder updates.
9101
9102 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
9103
9104         * culture-info-tables.h: reflecting locale-builder updates.
9105
9106 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
9107
9108         * culture-info-tables.h: reflecting locale-builder updates.
9109
9110 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
9111
9112         * threads.c: Made Thread.Sleep abortable.
9113
9114 2004-06-02  Martin Baulig  <martin@ximian.com>
9115
9116         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
9117
9118         * debug-mono-symfile.h: Bumped symbol file version number to 37.
9119
9120 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
9121
9122         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
9123
9124 2004-05-30  Jackson Harper  <jackson@ximian.com>
9125
9126         * reflection.c: Do not hardcode assembly versions or public key
9127         tokens anymore. All of this except the corlib section was dead
9128         code anyways.
9129         
9130 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
9131
9132         * object.c (mono_runtime_invoke_array): Automatically create boxed
9133         objects for byref valuetypes if needed. Fixes #59300.
9134         
9135         * object.c (mono_method_return_message_restore): Handle 
9136         MONO_TYPE_OBJECT as well.
9137
9138 2004-05-28  Jackson Harper  <jackson@ximian.com>
9139
9140         * reflection.c: The modified type encoding was causing build
9141         problems. Reverted for now.
9142         
9143 2004-05-28  Jackson Harper  <jackson@ximian.com>
9144
9145         * reflection.c/h: Take an assembly ref so that we dont create
9146         fully qualified names when encoding types in the same assembly as
9147         the custom attribute being emitted.
9148         * appdomain.c: Increment version number.
9149         
9150 2004-05-26  Duncan Mak  <duncan@ximian.com>
9151
9152         * icall.c
9153         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9154         Set the full version number (major, minor, build, revision).
9155
9156 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
9157
9158         * marshal.c (emit_struct_conv): increment src/dst after blit
9159         (mono_marshal_get_managed_wrapper,
9160         mono_marshal_get_native_wrapper): make sure we have marshalling
9161         info before marshalling params (info computation affects
9162         blittable)
9163
9164         * class.c (class_compute_field_layout): correctly deal with
9165         blittable
9166         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
9167         value types (as per what windows dows by default)
9168         (mono_class_setup_mono_type): System.ValueType is blittable
9169         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
9170         blittable
9171
9172         * marshal.c (mono_marshal_load_type_info): flag types  as
9173         non-blittable if the native layout doesn't match the managed
9174         layout
9175
9176 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9177
9178         * appdomain.c: don't add stuff in the private search path that is
9179         above the application base. If application base is not set, there's
9180         no private search path.
9181
9182 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
9183
9184         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
9185         byref struct arguments in native->managed marshalling.
9186
9187 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
9188
9189         * marshal.c (mono_marshal_get_runtime_invoke): correctly
9190         cache methods using signature (special case for methods
9191         that are value type or string class)
9192         
9193         * image.c (mono_image_close): clean up allocated GSList's
9194         in runtime_invoke_cache.
9195
9196 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9197
9198         * mono-config.c: set the correct path for mono_cfg_dir on windows when
9199         there's no MONO_CFG_DIR environment variable defined.
9200
9201 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9202
9203         * threads.c: windows version must be >= 0x0500 to include OpenThread.
9204
9205 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
9206
9207         * threadpool.c: Really wait for 500ms after the async call, even if the wait
9208           is interrumped.
9209         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
9210           before waiting for it, and call CloseHandle after the wait to unref it.
9211           This will make sure that handles are not disposed too early.
9212
9213 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9214
9215         * appdomain.c:
9216         * appdomain.h:
9217         * icall.c: removed
9218         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
9219         needed now.
9220
9221         * object.c: se the application_base only for the domain that runs
9222         Main. Fixes bug #59216,
9223
9224 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9225
9226         * appdomain.c:
9227         * object.c: only the domain in which Main is run have
9228         SetupInformation.ConfigurationFile set, so moved a few lines from
9229         appdomain.c to object.c.
9230
9231 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9232
9233         * appdomain.c: we tried to load [name].(dll|exe), but according
9234         to bug #57710, we must also try [culture]/[name].(dll|exe) and
9235         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
9236         There's a test case attached to bug #58922.
9237
9238 2004-05-27  Dick Porter  <dick@ximian.com>
9239
9240         * icall.c:
9241         * file-io.c: Implemented icalls for locking and unlocking regions
9242         in a file.
9243         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
9244         FALSE on error (fixes both compiler warning and real bug.)
9245
9246 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
9247
9248         * culture-info-tables.h: reflecting locale-builder updates.
9249
9250           (Added missing ChangeLog entry for 05/26)
9251
9252 2004-05-27  Jackson Harper  <jackson@ximian.com>
9253
9254         * locales.c: Fix some cut and paste errors.
9255         
9256 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9257
9258         * mono-config.c: set the correct path for config. directory on windows.
9259
9260 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9261
9262         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
9263           on win32.
9264
9265 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9266
9267         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
9268         from pinvoke functions.
9269         
9270         * marshal.c (mono_ftnptr_to_delegate): Implement this.
9271
9272 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9273
9274         * culture-info-tables.h: reflecting locale-builder updates.
9275
9276 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9277
9278         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
9279         #59086.
9280
9281 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
9282
9283         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
9284         * icall.c: Modified icalls for RNG.
9285         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
9286         Windows (CryptoAPI).
9287
9288 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9289
9290         * locales.c: Fix build.
9291
9292 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9293
9294         * culture-info-tables.h: reflecting locale-builder updates.
9295
9296 2004-05-25  Jackson Harper  <jackson@ximian.com>
9297
9298         * locales.c: When creating the current culture use the $LANGs
9299         specific culture. So DateTimeFormat and NumberFormat entries are created.
9300         
9301 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9302
9303         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
9304         a char array as parameter.
9305
9306 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
9307
9308         * image.c: In mono_image_open(), always use an absolute path name to
9309           look for already loaded images.
9310
9311 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
9312
9313         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
9314         missing in the windows build (like older cygwin include files).
9315
9316 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
9317
9318         * icall.c: Fixed check for possible integer overflow in Buffer_
9319         BlockCopy icall. Replaced comments style // by /* */.
9320
9321 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
9322
9323         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
9324         
9325         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
9326         check after MONO_VTADDR. Fixes pinvoke2.exe.
9327
9328         * marshal.h marshal.c metadata.h: Add beginnings of support for
9329         ftnptr -> delegate marshalling.
9330
9331 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
9332
9333         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
9334         * threads.c: Fix warnings.
9335
9336 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
9337
9338         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
9339         * icall.c: Registered icalls for Suspend and Resume.
9340         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
9341           Thread.Abort.
9342         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
9343         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
9344         * process.c: Use WaitForSingleObjectEx.
9345         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
9346           checkpoints.
9347         * threads.c, threads.h: Make use of new Ex wait methods. Improved
9348           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
9349           for Suspend and Resume. Added new mono_thread_stop, used for stoping
9350           background threads. Added basic support for Abort in Windows.
9351           Start new threads using a managed delegate invoke wrapper. This wrapper
9352           has an interruption checkpoint that is needed since an interruption
9353           can be requested before the thread leaves the unmanaged code that starts 
9354           the thread.
9355         * marshal.c: Added interruption checkpoint after every native call, and
9356           also before managed calls for wrappers called from unmanaged code to
9357           go into managed code.
9358         * object.h: Added new field in MonoThread to keep track of interruption
9359           requests.
9360
9361 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
9362
9363         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
9364         calls.
9365
9366 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9367
9368         * appdomain.c:
9369         * assembly.c:
9370         * gc.c:
9371         * locales.c:
9372         * mono-config.c:
9373         * rand.c: getenv -> g_getenv (windows!)
9374
9375         * process.c: complete_path is also used on non-windows platforms.
9376
9377 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9378
9379         * icall.c: new signature for Process_Start.
9380
9381         * process.[ch]: new signature for Process_Start. If we're on windows
9382         and UseShellExecute is false, we have to search for the program by
9383         ourselves if we don't get a full path.
9384
9385 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
9386
9387         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
9388         marshalling and call CleanUpNativeData if needed. Fixes #58646.
9389
9390 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9391
9392         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
9393         Fixes bug #58373.
9394
9395 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9396
9397         * process.c: use double quotes to quote program name and arguments on
9398         windows. Fixes bug #58575.
9399
9400 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9401
9402         * file-io.c: don't return "." and ".." when using windows Find*File.
9403
9404 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
9405
9406         * marshal.c: Don't pass wrappers to message init because method 
9407         addressed used to lookup metadata. part of remoting[2|3] fix.
9408
9409 2004-05-15  Jackson Harper  <jackson@ximian.com>
9410
9411         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
9412         path is essentially the same as MONO_PATH except that it points to
9413         GACs instead of lib directories.
9414         * loader.h: The user gac is gone so we dont need function to
9415         enable/disable it.
9416         * mono-config.c: user gac option is now gone.
9417         
9418 2004-05-15  Jackson Harper  <jackson@ximian.com>
9419
9420         * culture-info.h: Make defines more consistent, add calendar data
9421         to the culture info table.
9422         * culture-info-tables.h: Add basic calendar data. Basically
9423         everyone gets default gregorian until all the data is
9424         updated.
9425         * locales.c: Use the new consistent defines. Set calendar data for
9426         culture info objects.
9427         * object.h: add a field for calendar data to CultureInfo
9428         
9429 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
9430
9431         * image.c: image->runtime_invoke_cache is keyed on signatures now.
9432         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
9433         a signature.
9434         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
9435         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
9436         an extra param that is the pointer of the method to invoke. The IL for
9437         the invoke method is no longer specific to the method, but to the
9438         signature of the method. Thus, we can share the same code for multiple
9439         methods. This reduces the number of methods that have to be compiled.
9440
9441 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
9442
9443         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
9444
9445         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9446
9447         * icall.c: Optimize Buffer.BlockCopy.
9448
9449 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9450
9451         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
9452         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
9453         quote). Changed them to "MMMM yyyy".
9454
9455 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
9456
9457         * rand.c
9458         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
9459
9460 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
9461
9462         * reflection.h: Updated after changes to managed structures.
9463
9464         * appdomain.c: Bump corlib version.
9465
9466 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9467
9468         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
9469         windows.
9470
9471 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9472
9473         * Makefile.am: link to ../os/libmonoos.la on windows.
9474
9475         * assembly.c:
9476                 -If MONO_DEBUG, warn about non-existing directories in
9477                 MONO_PATH.
9478                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
9479                 compile time variable.
9480                 -Removed init_default_path and call mono_set_rootdir from
9481                 libmonoos.a instead (windows only).
9482
9483         * assembly.h: declare mono_assembly_getrootdir().
9484
9485         * domain.c:
9486         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
9487
9488         * loader.c: s/getenv/g_getenv/
9489
9490 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
9491
9492         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
9493
9494         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
9495
9496         * metadata.h: Add new marshalling conversions.
9497
9498         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
9499         function.
9500
9501         * reflection.c (mono_reflection_get_type): Lookup the type in all
9502         modules of a multi-module assembly. Fixes #58291.
9503
9504 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
9505
9506         * threads.c: Before aborting a background, set the StopRequested
9507         state.  This avoids throwing the Abort exception.
9508         In mono_thread_manage, don't continue with the shutdown until all
9509         aborted threads have actually stopped.
9510
9511 2004-05-10  Jackson Harper  <jackson@ximian.com>
9512
9513         * locales.c: Remove the modifier from culture names.
9514         
9515 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9516
9517         * Makefile.am: monosn is not installed any more. It has been deprecated
9518         in favor of sn.
9519
9520 2004-05-07  Jackson Harper  <jackson@ximian.com>
9521
9522         * locales.c
9523         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
9524         Fix array construction, add bailout if the length is 0.
9525
9526 2004-05-07  Dick Porter  <dick@ximian.com>
9527
9528         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
9529         machine doesn't have a DNS entry.  Patch by Urs Muff
9530         (umuff@quark.com), fixes bug 57928.
9531
9532 2004-05-06  Jackson Harper  <jackson@ximian.com>
9533
9534         * reflection.c: Handle null PublicTokens properly. alloc mem for
9535         assembly names culture so we dont crash when freeing it.
9536         
9537 2004-05-06  Jackson Harper  <jackson@ximian.com>
9538
9539         * assembly.c: Check the usergac when loading with partial names.
9540         
9541 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9542
9543         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
9544         does nothing for now (not required for Linux/Windows) but the class
9545         library can call it (and a newer or modified runtime could need it).
9546         * icall.c: Registred icall.
9547
9548 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9549
9550         * loader.c: prints a message on module loading error we set MONO_DEBUG
9551         environment variable.
9552
9553 2004-05-05  Jackson Harper  <jackson@ximian.com>
9554
9555         * appdomain.c: Handle PublicKeyToken=null properly.
9556         
9557 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9558
9559         * environment.c|h: Added icall ves_icall_System_Environment_
9560         GetOSVersionString to get the current OS version as a string.
9561         * icall.c: Registred icall.
9562
9563 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
9564
9565         * object.c: in mono_object_get_virtual_method(), take into account that
9566         non-virtual methods don't have a slot in the vtable. Check needed when
9567         the object is a proxy.
9568
9569 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
9570
9571         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
9572         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
9573
9574         * object.c (mono_class_compute_gc_descriptor): Fix warning.
9575
9576         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
9577         passed when a valuetype is expected.
9578
9579         * object.c (mono_unhandled_exception): Only set the exit code if the
9580         exception happens in the main thread. Fixes thread5.exe.
9581
9582         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
9583         invalid names. Fixes #58047.
9584
9585 2004-05-03  Jackson Harper  <jackson@ximian.com>
9586
9587         * assembly.c: This line was committed accidently and is unneeded.
9588         
9589 2004-05-03  Jackson Harper  <jackson@ximian.com>
9590
9591         * icall.c: Add new icall for Assembly::LoadWithPartialName
9592         * assembly.c/.h: new function that probes the GAC to load partial
9593         assembly names by Paolo Molaro.
9594         
9595 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9596
9597         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
9598         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
9599         (type_get_fully_qualified_name): Added PublicKeyToken when building a
9600         full type name.
9601
9602 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9603
9604         * appdomain.c: fixed check for 'neutral' culture and removed warning.
9605         * reflection.c: fix bug when parsing a full type name and Version is not
9606         the last thing in the string.
9607
9608 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
9609
9610         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
9611         crashes when it is freed.
9612
9613 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9614
9615         * assembly.c: print the compat warning to stderr.
9616
9617 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
9618
9619         * assembly.c (mono_assembly_load_references): Add a compatibility
9620         hack to run old applications that might be still referencing the
9621         3300-based assemblies, only do this for System.xxx.
9622
9623 2004-05-01  Jackson Harper  <jackson@ximian.com>
9624
9625         * appdomain.c: If the culture is neutral we set it to "".
9626         
9627 2004-04-29  Jackson Harper  <jackson@ximian.com>
9628
9629         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
9630
9631 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
9632  
9633         * string-icalls.c: added low overhead function for copying chars
9634         * icall.c: added needed icall for the above function
9635  
9636 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9637
9638         * icall.c: fix return value of get_global_assembly_cache.  Implemented
9639         Environment.GetLogicalDrives.
9640
9641 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
9642
9643         * rand.c: try and talk to egd or prngd
9644         for random bytes if opening devices fail.
9645
9646 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
9647
9648         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
9649         alignment for the type using the native alignment of its members 
9650         instead of using klass->min_align.
9651
9652         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
9653
9654 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9655
9656         * file-io.c:
9657         * socket-io.c: added check for sys/aio.h.
9658
9659 2004-04-28  Dick Porter  <dick@ximian.com>
9660
9661         * threads.c: Don't abort a thread thats already aborting, when
9662         terminating everything.
9663
9664 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9665
9666         * icall.c: added 2 new async calls for Socket.
9667
9668         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9669         IO on *nix systems.
9670
9671         * threadpool.c: removed unused variable.
9672
9673 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9674
9675         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9676
9677 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9678
9679         * locales.c: put back string_invariant_tolower () and
9680         string_invariant_toupper ().
9681
9682 2004-04-26 David Waite <mass@akuma.org>
9683
9684         * file-io.h:
9685         * socket-io.h:
9686         * threads.h:
9687         * unicode.h: remove comma from end of enumeration declarations
9688
9689 2004-04-26 David Waite <mass@akuma.org>
9690
9691         * debug-mono-symfile.h:
9692         * decimal.c:
9693         * mono_debug.h:
9694         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9695
9696
9697 2004-04-26  Jackson Harper  <jackson@ximian.com>
9698
9699         * appdomain.c: Increment version number.
9700         
9701 2004-04-26  Jackson Harper  <jackson@ximian.com>
9702
9703         * appdomain.c: Set assembly references public token value when
9704         PublicKeyToken is specified, not the hash_value. Free public token
9705         values when free assembly name data. Previously the public key
9706         token was hex decoded, however we are using hex encoded public key
9707         tokens, so this is not neccasary.
9708         * assembly.c: Lookup assemblies in the gac if their public token
9709         value is set. Add function to allow enabling user gac
9710         lookups. Specify whether or not the assembly was loaded from the
9711         GAC. Compare full assembly names when checking the cache for
9712         assemblies (Temporarily disabled see comment in code). Remove
9713         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9714         specifies trace-loader they get extra info to stdout on the
9715         loading of assemblies.
9716         * image.h: Add a field for an assembly references public token
9717         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9718         whether an assembly has been loaded from the GAC.
9719         * image.c: Remove a corlib -> mscorlib name mapping.
9720         * loader.h: Add function to enable/disable the user gac.
9721         * mono-config.c: Check if the usergac is enabled in the config
9722         file.
9723         * icall.c: New icall to determine whether or not an assembly has
9724         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9725         * tabldefs.h: Add constant for assemblyref flag that specifies a
9726         full public key is used instead of a public token.
9727         * reflection.c: Remove mscorlib -> corlib mappings. Set
9728         PublicTokenValue instead of hash value. This value is a hex
9729         string so it does not need to be expanded.
9730
9731 2004-04-26  Martin Baulig  <martin@ximian.com>
9732
9733         * mono-debug-debugger.c (mono_debugger_initialize): Set
9734         `mono_debugger_initialized' before calling mono_debug_lock().
9735
9736 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9737
9738         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9739           InternalToUpper/InternalToLower.
9740         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9741           removed invariant culture shortcut.  This is now done in managed code.
9742         * locales.c: (string_invariant_toupper/tolower) removed.
9743
9744 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9745
9746         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9747         Added Poll internal call.
9748
9749         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9750         call for Poll. Select was too heavy for polling a single socket.
9751
9752         * threadpool.[ch]: added mono_threadpool_cleanup.
9753         * threads.c: use it. Don't use Thread_Abort on windows.
9754
9755 2004-04-23  Martin Baulig  <martin@ximian.com>
9756
9757         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9758
9759 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9760
9761         * icall.c: Registred new icalls for key pair protection and added an
9762         icall for Environment.GetFolderPath on Windows.
9763         * security.c|h: Added new icalls for key pair protection.
9764
9765 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9766
9767         * socket-io.c: don't display the non-supported family warning for known
9768         families. Now this is not displayed on windows when checking support
9769         for IPv4/IPv6.
9770
9771 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9772
9773         * class.c: don't display the layout warning for static fields.
9774
9775 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9776
9777         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9778         * locales.c, locales.h: Added new icalls for culture-specific
9779         Char.ToLower and Char.ToUpper.
9780
9781 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9782
9783         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9784         by David Waite.
9785
9786 2004-04-20  Martin Baulig  <martin@ximian.com>
9787
9788         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9789         of the type name before passing it to mono_reflection_type_from_name().
9790
9791 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9792
9793         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9794         encodings here. Fixes #56965.
9795
9796 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9797
9798         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9799         fix test on strstr result not that I can see anything that
9800         relies on the result.
9801
9802 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9803
9804         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9805         Fixes #57081.
9806
9807         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9808
9809         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9810         function to determine which marshalling to use for strings. Fixes
9811         #56965.
9812
9813         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9814
9815         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9816
9817 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9818
9819         * icall.c: #include mono-config.h
9820
9821 2004-04-15  Jackson Harper  <jackson@ximian.com>
9822
9823         * culture-info-tables.h: Fix date formats for en-US culture.
9824         
9825 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9826
9827         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9828         ThreadPool.SetMinThreads.
9829         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9830         ThreadPool.SetMinThreads.
9831
9832 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9833
9834         * mono-config.c: also load the .config file in the directory
9835         where the assembly was found.
9836
9837 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9838
9839         * assembly.c: load per-assembly config files.
9840         * icall.c: decrapified code to get the config dir and moved to
9841         mono-config.c.
9842         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
9843         per-assembly config files. When doing a dll map lookup give precedence
9844         to the per-assembly data.
9845
9846 2004-04-14  Martin Baulig  <martin@ximian.com>
9847
9848         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
9849         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
9850         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
9851
9852         * mono-debugger-debugger.c: While the debugger is locked, remember
9853         whether the symbol tables have changes and send one single
9854         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
9855
9856 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
9857
9858         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
9859
9860         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
9861         function.
9862
9863         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
9864         account when marshalling string arrays. Fixes #56965.
9865
9866 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
9867
9868         * icall.c: Add new icalls mapping for security.
9869         * security.c|h: Add internal calls for WindowsIdentity,
9870         WindowsImpersonationContext and WindowsPrincipal.
9871
9872 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
9873
9874         * class.c: Added comment to ensure the System.MonoDummy class
9875         is removed when no longer necessary
9876
9877 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
9878
9879         * appdomain.c: Pass arguments to the bootstraping exceptions to
9880         minimize JITed methods at boot
9881
9882         * metadata.c (mono_exception_from_name_two_strings): Allow for the
9883         second string to be null.
9884
9885         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9886         Change the protocol to minimize the JIT methods at startup.  Now
9887         it Returns the internal codepage, if the value of "int_code_page"
9888         is 1 at entry, and we can not compute a suitable code page
9889         number, returns the code page as a string.
9890
9891 2004-04-13  Jackson Harper  <jackson@ximian.com>
9892
9893         * culture-info-tables.h: Fix number of decimal digits for all
9894         english locales.
9895
9896 2004-04-13  Jackson Harper  <jackson@ximian.com>
9897
9898         * icall.c: Clairfy out of sync error message. It is not always
9899         your corlib that is out of sync.
9900
9901 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
9902
9903         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
9904         properties when only the set accessor is overriden. Fixes #55874.
9905
9906 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
9907
9908         * assembly.c (mono_assembly_load_references): Make this thread safe.
9909         Fixes #56327.
9910
9911 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
9912
9913         * monosn.c: Add missing initialization calls.
9914
9915 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
9916
9917         * locales.c:
9918         ves_icall_System_Globalization_CultureInfo_construct_number_format
9919         Fix g_assert so it compiles on fussier compilers re int/ptr
9920         mismatch
9921
9922 2004-04-08  Dick Porter  <dick@ximian.com>
9923
9924         * socket-io.h:
9925         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
9926         53992.  Also rearrange the code so that the internal calls return
9927         an error value and exceptions are thrown from managed code.
9928
9929         * icall.c: Add type info to the socket icalls.
9930
9931 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9932
9933         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
9934         owes me a beer.
9935
9936 2004-04-07  Martin Baulig  <martin@ximian.com>
9937
9938         * class.c (mono_class_from_generic_parameter): Don't default
9939         `klass->parent' to `mono_defaults.object_type'.
9940
9941 2004-04-07  Martin Baulig  <martin@ximian.com>
9942
9943         * reflection.c (mono_reflection_initialize_generic_parameter): Set
9944         `param->pklass->reflection_info'.       
9945
9946 2004-04-07  Jackson Harper  <jackson@ximian.com>
9947
9948         * culture-info-tables.h: Fix date separator symbol.
9949         
9950 2004-04-07  Martin Baulig  <martin@ximian.com>
9951
9952         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
9953         from System.Type to System.MonoType.
9954
9955 2004-04-07  Martin Baulig  <martin@ximian.com>
9956
9957         * reflection.h
9958         (MonoReflectionGenericParam): Added `has_reference_type' and
9959         `has_value_type' fields.
9960
9961         * reflection.c (mono_image_get_generic_param_info): Encode the
9962         correct flags if we have the `class' or `struct' constraint.
9963
9964 2004-04-07  Martin Baulig  <martin@ximian.com>
9965
9966         * reflection.h
9967         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
9968
9969 2004-04-07  Jackson Harper  <jackson@ximian.com>
9970
9971         * appdomain.c: Revert extra patches, just wanted to bump the
9972         version number.
9973         
9974 2004-04-07  Jackson Harper  <jackson@ximian.com>
9975
9976         * Makefile.am: Add culture-info private headers.
9977         * icall.c: Add new icalls for contructing locales.
9978         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
9979         * locales.h: Declare new culture info construction methods.
9980         * object.h: Add new fields used to avoid the CultureMap to
9981         MonoCultureInfo.
9982         * culture-info.h: Definition of structs used in the culture info
9983         tables.
9984         * culture-info-tables.h: Autogenerated tables that contain culture
9985         info data. This file was generated with the locale-builder tool.
9986         * appdomain.c: Incement corlib version number.
9987         
9988 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
9989
9990         * appdomain.c: (mono_runtime_init) move mono_thread_init
9991         to before mono_object_new calls so critical sections
9992         are initialized before use.
9993
9994 2004-04-07  Martin Baulig  <martin@ximian.com>
9995
9996         * icall.c
9997         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
9998         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
9999         (ves_icall_MonoGenericParam_initialize): Removed.
10000         (monogenericparam_icalls): Removed.
10001         (generictypeparambuilder_icalls): Added new table for
10002         System.Reflection.Emit.GenericTypeParameterBuilder.
10003
10004         * reflection.c
10005         (mono_reflection_define_generic_parameter): Removed.
10006         (mono_reflection_initialize_generic_parameter): This is now called
10007         from GenericTypeParameterBuilder's .ctor.
10008
10009 2004-04-06  Martin Baulig  <martin@ximian.com>
10010
10011         * class.c (mono_class_init): Don't inflate nested classes in a
10012         generic instance.
10013         (mono_type_get_name_recurse): Include the generic arguments for
10014         generic instances and generic type declarations.
10015         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
10016         (_mono_class_get_instantiation_name): Removed.
10017         (mono_class_create_generic): Always use `gklass->name' as our name.
10018
10019         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
10020
10021         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
10022         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
10023         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
10024         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
10025         closed generic methods here.
10026
10027         * reflection.c
10028         (mono_reflection_generic_inst_get_nested_types): Removed.
10029         (inflate_mono_method): Copy the generic parameters from the
10030         MonoMethodHeader into out MonoGenericMethod.
10031
10032 2004-04-06  Martin Baulig  <martin@ximian.com>
10033
10034         * row-indexes.h
10035         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
10036
10037         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
10038
10039         * reflection.c (build_compressed_metadata): If we have any entries
10040         in the GenericParam, MethodSpec or GenericParamConstraint tables,
10041         set the header version to 1.1.
10042
10043 2004-04-06  Martin Baulig  <martin@ximian.com>
10044
10045         * class.c (mono_class_init): If we're a generic instance,
10046         initialize our nested classes, too.
10047         (_mono_class_get_instantiation_name): Deal with the new `!%d'
10048         suffix. 
10049
10050 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10051
10052         * process.c: quote the argument passed to the shell on windows.
10053
10054 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
10055
10056         * threads.c (mono_alloc_special_static_data): Allow this to be
10057         called during startup.
10058
10059 2004-04-02  Martin Baulig  <martin@ximian.com>
10060
10061         * icall.c
10062         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
10063
10064 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
10065
10066         * icall.c: Fix build.
10067
10068 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
10069
10070         * Makefile.am: Added security.c|h.
10071         * icall.c: Added icall for get_UserName;
10072         * security.c: New file for security related icalls. Added function
10073         get_UserName for System.Environment (fix #56144).
10074         * security.h: New. Header file for security.c
10075
10076 2004-04-02  Dick Porter  <dick@ximian.com>
10077
10078         * icall.c: Deleted the icalls that were obsoleted some time ago
10079         by the ICU string code, and which were mixed into the icall
10080         rearranging.  Fixes bug 55969.
10081
10082         * string-icalls.h: 
10083         * string-icalls.c: Deleted the code that those icalls reference.
10084
10085 2004-04-01  Martin Baulig  <martin@ximian.com>
10086
10087         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
10088
10089         * class.c (mono_class_from_generic_parameter): Don't set 
10090         TYPE_ATTRIBUTE_INTERFACE.
10091         (my_mono_class_from_generic_parameter): Likewise.
10092
10093 2004-04-01  Martin Baulig  <martin@ximian.com>
10094
10095         * loader.c (find_method): Added an optional `MonoClass *ic'
10096         argument to search in a specific interface.
10097         (mono_get_method_constrained): New public function.
10098
10099 2004-04-01  Martin Baulig  <martin@ximian.com>
10100
10101         * reflection.c (mono_image_get_generic_field_token): Use the
10102         `handleref' cache here.
10103
10104 2004-04-01  Martin Baulig  <martin@ximian.com>
10105
10106         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
10107
10108         * reflection.c (create_generic_typespec): Use the `typespec' hash
10109         here, not the `typeref' one.    
10110
10111 2004-04-01  Martin Baulig  <martin@ximian.com>
10112
10113         * class.c (mono_class_inflate_generic_type): Moved the
10114         functionality into a new static inflate_generic_type() which
10115         returns NULL if it didn't do anything.  Only increment the
10116         `mono_stats.inflated_type_count' if we actually inflated
10117         something.
10118         (mono_class_get_full): Check the classes type to see whether we
10119         need to inflate it; also inflate MONO_TYPE_(M)VAR.
10120
10121 2004-04-01  Jackson Harper  <jackson@ximian.com>
10122
10123         * reflection.c: Set culture for assembly references.
10124         
10125 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
10126
10127         * reflection.[ch], icall.[ch], Fix support for pinning variables.
10128
10129 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10130
10131         * assembly.c:
10132         (do_mono_assembly_open): the critical section also covers
10133         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
10134
10135 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10136
10137         * threads.c:
10138         (mono_manage_threads): abort the background threads when finishing.
10139         Fixes bug #47232.
10140
10141 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10142
10143         * gc.c: only close the done_event handle if there was no timeout.
10144         C-ified comments.
10145
10146 2004-03-30  Martin Baulig  <martin@ximian.com>
10147
10148         * icall.c (icall_entries): It's called "System.Activator", not
10149         "System.Activation".    
10150
10151 2004-03-30  Martin Baulig  <martin@ximian.com>
10152
10153         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
10154         (mono_class_create_from_typespec): Likewise.
10155
10156 2004-03-30  Martin Baulig  <martin@ximian.com>
10157
10158         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
10159         `has_ctor_constraint' and `initialized'.
10160
10161 2004-03-30  Martin Baulig  <martin@ximian.com>
10162
10163         * reflection.c (encode_new_constraint): New static function to add
10164         the constructor constraint attribute to a type parameter.
10165         (encode_constraints): Call encode_new_constraint() if necessary.
10166
10167         * reflection.h
10168         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
10169
10170         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
10171         
10172 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
10173
10174         * reflection.c, icall.c: add support for pinning variables. 
10175
10176 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
10177
10178         * marshal.c (mono_marshal_get_managed_wrapper):
10179         init bool local with zero rather than null.
10180
10181 2004-03-29  Martin Baulig  <martin@ximian.com>
10182
10183         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
10184         the "official" behavior here.
10185         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
10186
10187 2004-03-29  Martin Baulig  <martin@ximian.com>
10188
10189         * icall.c: Reflect latest API changes.
10190
10191 2004-03-29  Martin Baulig  <martin@ximian.com>
10192
10193         * loader.c (mono_get_method_from_token): Also call
10194         mono_metadata_load_generic_params () for abstract and interface
10195         methods; replace the type arguments in the method signature with
10196         the ones which are loaded from the metadata.
10197
10198 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
10199
10200         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
10201         of the lock is not the current thread. MS.NET don't do it, in spite of
10202         what the documentation says. See bug #56157.
10203
10204 2004-03-28  Martin Baulig  <martin@ximian.com>
10205
10206         * class.c (mono_class_init): Don't call init_properties() and
10207         init_events() for generic instances; set `prop->parent' when
10208         inflating properties.
10209
10210         * reflection.c (mono_generic_inst_get_object): Call
10211         `mono_class_init (ginst->klass)'.
10212         (mono_type_get_object): Only create a MonoGenericInst if your
10213         generic type is a TypeBuilder.
10214         (do_mono_reflection_bind_generic_parameters): Only set
10215         `ginst->is_dynamic' if our generic type is a TypeBuilder.
10216
10217 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
10218
10219         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
10220         Fixes #56091.
10221
10222 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10223
10224         * icall.c: added Kill_internal icall.
10225         * process.[ch]: added Kill_internal icall.
10226
10227 2004-03-25  Martin Baulig  <martin@ximian.com>
10228
10229         * class.h (MonoStats): Added `generic_instance_count',
10230         `inflated_method_count', `inflated_type_count' and
10231         `generics_metadata_size'.       
10232
10233 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10234
10235         * reflection.c: no warnings now.
10236
10237 2004-03-25  Martin Baulig  <martin@ximian.com>
10238
10239         * class.c (mono_class_get_full): New public function; does a
10240         mono_class_get(), but also takes a `MonoGenericContext *'.
10241
10242         * loader.c (mono_field_from_memberref): Renamed to
10243         `field_from_memberref', made static and added `MonoGenericContext *'
10244         argument.
10245         (mono_field_from_token): Added `MonoGenericInst *' argument.
10246         (method_from_memberef): Likewise.
10247         (mono_get_method_from_token): Likewise.
10248         (mono_get_method_full): New public function; does a
10249         mono_get_method(), but also takes a `MonoGenericContext *'.
10250
10251         * verify.c (mono_method_verify): Get the method's generic context
10252         and pass it to mono_field_from_token(), mono_get_method_full() and
10253         mono_class_get_full().
10254
10255 2004-03-25  Martin Baulig  <martin@ximian.com>
10256
10257         * class.c (mono_class_inflate_generic_type): Take a
10258         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
10259         `MonoGenericMethod *'.
10260
10261 2004-03-25  Martin Baulig  <martin@ximian.com>
10262
10263         * loader.h (MonoMethodInflated): Store the MonoGenericContext
10264         instead of the MonoGenericMethod here.
10265
10266 2004-03-25  Martin Baulig  <martin@ximian.com>
10267
10268         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
10269         each time we create a new MonoGenericInst, we also create a new
10270         context which points back to us.
10271
10272         * class.c (inflate_method): Use `ginst->context' instead of
10273         creating a new context.
10274
10275         * loader.c (method_from_memberref): Use
10276         `klass->generic_inst->context' instead of creating a new context.
10277
10278 2004-03-25  Martin Baulig  <martin@ximian.com>
10279
10280         * class.h (MonoGenericContext): New struct.
10281         (MonoGenericMethod): Removed `generic_inst'.
10282
10283         * class.c (mono_class_inflate_generic_method): Take a
10284         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
10285
10286 2004-03-25  Martin Baulig  <martin@ximian.com>
10287
10288         * loader.h (MonoMethodInflated): New typedef.
10289
10290         * metadata.h (MonoMethodSignature): Removed `gen_method', make
10291         `generic_param_count' consume just 30 bits, added `is_inflated'
10292         and `has_type_parameters' flags (one bit each).
10293
10294         * class.c (mono_class_inflate_generic_method): Create a
10295         MonoMethodInflated instead of a MonoMethodNormal and set
10296         `is_inflated' in the method signature.
10297
10298         * class.h (MonoGenericMethod): Removed `generic_method'.
10299
10300 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
10301
10302         * image.c: Make sure the name of a MonoImage is always an absolute path.
10303           This fixes bug #54415.
10304
10305 2004-03-24  Martin Baulig  <martin@ximian.com>
10306
10307         * class.c (mono_class_setup_vtable): If we're a generic instance,
10308         use our generic type's vtable size.
10309
10310 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
10311
10312         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
10313         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
10314         problems.
10315
10316 2004-03-23  Martin Baulig  <martin@ximian.com>
10317
10318         * class.h (MonoDynamicGenericInst): Added `int count_events' and
10319         `MonoEvent *events'.
10320
10321         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
10322         (typebuilder_icalls): Added "get_event_info"; calls
10323         mono_reflection_event_builder_get_event_info(). 
10324
10325         * reflection.c (mono_reflection_generic_inst_initialize): Added
10326         `MonoArray *events'.
10327         (mono_reflection_event_builder_get_event_info): New function.
10328
10329 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
10330
10331         * object.h: add mono_type_initialization_init
10332
10333         * object.c (mono_runtime_class_init): 
10334         implement class constructor synchronization rules
10335         to cope with threading issues.  
10336         add mono_type_initialization_init
10337
10338         * appdomain.c (mono_runtime_init): call 
10339         mono_type_initialization_init
10340
10341         * class.h: removing initializing field from MonoVTable
10342
10343 2004-03-23  Martin Baulig  <martin@ximian.com>
10344
10345         * class.c (my_mono_class_from_generic_parameter): Use
10346         `param->name' if it's not NULL. 
10347
10348 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
10349
10350         * class.c: do not insert non-virtual methods in the vtable.
10351         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
10352         that means the method is non-virtual. This never would have
10353         happened before.
10354
10355 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
10356
10357         * profiler.c: Added lock for accessing coverage_hash.
10358
10359 2004-03-22  Martin Baulig  <martin@ximian.com>
10360
10361         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
10362         `method->method->signature->generic_param_count != 0' to make it
10363         work for interface methods.
10364
10365 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10366
10367         * process.c: quote the string passed to the shell using g_shell_quote.
10368
10369 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10370
10371         * threads.c:
10372         (mono_threads_manage): don't remove the finalizer thread and self
10373         from the threads hash table so that mono_thread_manage can be called
10374         more than once.
10375
10376 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10377
10378         * process.c: quote the arguments when UseShellExecute is true. Fixes
10379         bug #55790.
10380
10381 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10382
10383         * threads.c: set mono_thread_detach as a cleanup routine for every
10384         thread. This way it's always executed upon thread termination, either
10385         aborted or finished normally. No more xsp hangs!
10386
10387 2004-03-17  Martin Baulig  <martin@ximian.com>
10388
10389         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
10390         `int count_nested' and a `MonoType **nested'.
10391
10392         * reflection.c (mono_reflection_bind_generic_parameters): Moved
10393         most of the functionality into a new static
10394         do_mono_reflection_bind_generic_parameters() and don't take a
10395         `MonoType *nested_in' argument any more.  Don't compute nested
10396         types here.
10397         (mono_reflection_generic_inst_get_nested_types): New public method
10398         to get nested types.
10399
10400         * class.c (mono_class_create_generic): Set `klass->nested_in' if
10401         we're a nested class.
10402
10403         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
10404         mono_reflection_generic_inst_get_nested_types() to compute the
10405         nested types.
10406
10407 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10408
10409         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
10410         descriptive error message under windows.
10411         
10412 2004-03-17  Martin Baulig  <martin@ximian.com>
10413
10414         * class.c (dup_type): Added `const MonoType *original' argument;
10415         copy the attrs from the original type.
10416
10417 2004-03-17  Martin Baulig  <martin@ximian.com>
10418
10419         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
10420         `m->generic_inst_cache' here.
10421
10422 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10423
10424         * exception.h exception.c: Add stack_overflow_exception.
10425
10426 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10427
10428         * threadpool.c:
10429         (overlapped_callback): call SetEvent *after* invoking the callback.
10430         No need to call CloseHandle.
10431
10432 2004-03-16  Martin Baulig  <martin@ximian.com>
10433
10434         * reflection.c (mono_image_get_fieldref_token): Take a
10435         `MonoReflectionField *' instead of a `MonoClassField *' and a
10436         `MonoClass *'; store the `MonoReflectionField *' in the hash.
10437
10438 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10439
10440         * appdomain.c: don't add the culture to the filename we're looking for
10441         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
10442
10443 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10444
10445         * locales.c: don't ignore symbols when doing case insensitive compares.
10446         Thanks Dick! Fixes bug #54046.
10447
10448         * threads.c: surround 'threads' usage with enter/leave in
10449         mono_thread_manage.
10450
10451 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
10452
10453         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
10454         implicitly marshalled as [Out]. Fixes #55450.
10455
10456         (mono_marshal_get_runtime_invoke): Zero out the result if there is
10457         an exception.
10458
10459 2004-03-16  Martin Baulig  <martin@ximian.com>
10460
10461         * class.c (mono_class_from_generic_parameter): Use the actual
10462         parameter name. 
10463
10464 2004-03-16  Martin Baulig  <martin@ximian.com>
10465
10466         * reflection.c (type_get_signature_size): New static function.
10467         Compues the size of the type in a method signature.
10468         (method_get_signature_size): New static function; calls
10469         type_get_signature_size() to compute the actual size of the
10470         method's signature.
10471         (method_encode_signature): Use method_get_signature_size() to get
10472         the signature's size rather than using `nparams * 10'.
10473
10474 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10475
10476         * file-io.h: define here WapiOverlapped on windows. I don't want the
10477         regular OVERLAPPED one.
10478
10479         * file-io.c:
10480         * threadpool.c: somehow, BindIoCompletionCallback is not found.
10481         Disabling AIO on windows.
10482
10483 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10484
10485         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
10486         bug #55385.
10487
10488 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10489
10490         * appdomain.c: upgraded corlib version.
10491
10492         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
10493         and BeginWrite. Allow opening files for asynchrnous operations.
10494
10495         * file-io.h: new struct that maps FileStreamAsyncResult.
10496         * icall.c: added new icalls.
10497         * process.[ch]: support setting child process environment variables
10498         and use the SHELL or COMSPEC when UseShellExecute is true.
10499
10500         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
10501         callback for async. IO is here and also BindHandle.
10502
10503         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
10504         from here.
10505
10506 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
10507
10508         * reflection.c (create_custom_attr): Allow len == 0.
10509
10510         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
10511         computation on big-endian machines.
10512
10513 2004-03-13  Martin Baulig  <martin@ximian.com>
10514
10515         * class.h (MonoGenericInst): Added `int count_ifaces'.
10516
10517         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
10518         `ginst->count_ifaces' instead `klass->interface_count' since we
10519         may get called before the vtable is created.
10520
10521         * loader.c (mono_method_get_param_names): If we're a generic
10522         instance, return and don't initialize the class.
10523
10524         * reflection.c (mono_reflection_setup_generic_class): Don't call
10525         ensure_runtime_vtable().
10526         (mono_reflection_bind_generic_parameters): Set
10527         `ginst->count_ifaces'.
10528
10529 2004-03-11  Jackson Harper <jackson@ximian.com>
10530
10531         * icall.c:
10532         * unicode.c:
10533         * unicode.h: Remove unused System.Char icalls.
10534         
10535 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
10536
10537         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
10538         code when we P/Invoke the first library in Windows.Forms, instead
10539         of when we first open the assembly.
10540
10541         * assembly.c: Drop the lookup from here.
10542
10543 2004-03-10  Martin Baulig  <martin@ximian.com>
10544
10545         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
10546         class for properties, fields and events.  Finally fixes #54945.
10547
10548 2004-03-10  Martin Baulig  <martin@ximian.com>
10549
10550         * metadata.c (mono_metadata_class_equal): New static function;
10551         checks whether two generic instances or two generic parameters are
10552         equal.
10553         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
10554         compare classes.        
10555
10556 2004-03-10  Martin Baulig  <martin@ximian.com>
10557
10558         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
10559
10560         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
10561         argument and write it into the `reflection_info' field.
10562
10563         * icall.c
10564         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
10565         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
10566
10567 2004-03-09  Jackson Harper  <jackson@ximian.com>
10568
10569         * char-conversions.h: use 8 bits for numeric data its all we need
10570         * icall.c: numeric data is only 8 bits now.
10571
10572 2004-03-09  Martin Baulig  <martin@ximian.com>
10573
10574         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
10575
10576         * class.c (init_properties, init_events): Initialize the new
10577         `parent' field.
10578
10579         * reflection.c (typebuilder_setup_properties): Likewise.
10580         (typebuilder_setup_events): Likewise.
10581
10582         * reflection.h (MonoEventInfo): Replaced `parent with
10583         `declaring_type' and `reflected_type'.
10584
10585         * icall.c (ves_icall_get_property_info): Distinguish between
10586         declaring and reflected type.
10587         (ves_icall_get_event_info): Likewise.
10588
10589 2004-03-09  Martin Baulig  <martin@ximian.com>
10590
10591         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
10592         (ves_icall_Type_GetField): Correctly set field->klass.
10593
10594 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
10595
10596         * loader.h: Fix warning.
10597
10598 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
10599
10600         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
10601         library routine if present.  Notice that it will still continue
10602         executing even if its missing, for those working on the Gtk#
10603         edition of Windows.Forms.
10604
10605         * assembly.c (do_mono_assembly_open): If loading the
10606         System.Windows.Forms call mono_loader_wini_init.
10607
10608 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
10609
10610         * class.h: Added MonoRemoteClass struct.
10611         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
10612         function for MonoStrings.
10613         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
10614         Added internal call for getting the proxy type.
10615         * marshal.c: Get the type of transparent proxies from its remote_class.
10616         Added methods that generate the IL for type checks and casts:
10617         mono_marshal_get_isinst, mono_marshal_get_castclass, 
10618         mono_marshal_get_proxy_cancast.
10619         * marshal.h: Declaration of the previous new methods.
10620         * object.c: Added new moethods for creating and updating MonoRemoteClass
10621         instances: mono_remote_class, mono_upgrade_remote_class, 
10622         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
10623         * verify.c: FIx transparent_proxy_fields layout.
10624         * appdomain.c: Bump corlib version.
10625
10626 2004-03-04  Jackson Harper  <jackson@ximian.com>
10627
10628         * icall.c: Add icall to access char conversion tables.
10629         * char-conversions.h: Character conversion tables.
10630         * Makefile.am: Add char-conversions.h private header file.
10631         
10632 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
10633
10634         * appdomain.c (unload_thread_main): Increase unloading timeout to
10635         10 sec as a temporary workaround for Nant problems.
10636
10637 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
10638
10639         * gc.c: Add checks for GC_enable and GC_disable.
10640
10641         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
10642         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
10643         (bug #54988).
10644         
10645 2004-02-27  Martin Baulig  <martin@ximian.com>
10646
10647         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10648         `MonoReflectionType *' instead of a `MonoType *'.
10649
10650 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
10651
10652         * gc.c (run_finalize): Avoid finalizing the object representing the
10653         finalizer thread.
10654         (finalizer_thread): Fix warning.
10655
10656 2004-02-25  Martin Baulig  <martin@ximian.com>
10657
10658         * class.c (_mono_class_get_instantiation_name): Added `int offset'
10659         argument for nested types.
10660         (mono_class_create_generic): Added support for nested generictypes.
10661
10662         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
10663         `GList *nested'.
10664
10665         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10666
10667         * reflection.c (method_encode_signature): Increase the minimum
10668         value of `size' from 10 to 11.
10669         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10670         and `MonoType **types' arguments instead of the `MonoArray
10671         *types'; added `MonoType *nested_in'.  Recursively instantiate
10672         nested classes. 
10673
10674 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10675
10676         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10677         stack_overflow_ex members which are used by exception handling.
10678
10679         * appdomain.c (mono_runtime_init): Initialize the new members.
10680
10681         * gc.c (mono_gc_enable): New helper function.
10682         * gc.c (mono_gc_disable): New helper function.
10683
10684 2004-02-23  Martin Baulig  <martin@ximian.com>
10685
10686         * icall.c: I must have been really stupid - make it actually work
10687         this time ;-)
10688
10689 2004-02-23  Martin Baulig  <martin@ximian.com>
10690
10691         * loader.c (method_from_memberref): Only inflate the method if
10692         it's in another klass.
10693
10694 2004-02-23  Martin Baulig  <martin@ximian.com>
10695
10696         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10697         (mono_class_init): If we're a generic instance and an interface,
10698         compute `class->interface_id'; also create `class->interfaces'
10699         here and inflate them.
10700
10701         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10702         `ginst->is_open'.
10703         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10704
10705         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10706
10707 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10708
10709         * reflection.c (method_encode_code): Improved the error message
10710         generated by the exception.
10711
10712 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10713
10714         * icall.c: Martin did not do what he said in the ChangeLog for
10715         2004-02-18, but put back the changes for properties and events.
10716         Commenting those changes out again and adding comment to bug #54518.
10717         
10718         * process.c: removed warning.
10719
10720 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10721
10722         * marshal.c (emit_struct_conv): Print an error message instead of
10723         asserting when a type does not have the StructLayout attribute.
10724
10725 2004-02-20  Martin Baulig  <martin@ximian.com>
10726
10727         * reflection.c (mono_type_get_object): Also use the cache for
10728         generic instances.
10729         (mono_reflection_bind_generic_parameters): Always compute
10730         `ginst->ifaces'.        
10731
10732 2004-02-20  Martin Baulig  <martin@ximian.com>
10733
10734         * class.h (MonoGenericMethod): Removed `klass'.
10735
10736         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10737         *klass' argument.
10738
10739 2004-02-20  Martin Baulig  <martin@ximian.com>
10740
10741         * reflection.c (method_encode_methodspec): Actually use the
10742         uninflated signature for the memberref.
10743
10744 2004-02-20  Martin Baulig  <martin@ximian.com>
10745
10746         * class.h (MonoGenericMethod): Removed `declaring'.
10747
10748         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10749         is NULL, compute it here.
10750
10751 2004-02-20  Martin Baulig  <martin@ximian.com>
10752
10753         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10754
10755         * metadata.c (mono_metadata_generic_inst_hash): New method.
10756         (mono_metadata_generic_inst_equal): New method.
10757
10758         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10759         `klass->image->generic_inst_cache' cache to avoid creating
10760         duplicate MonoGenericInst's.
10761
10762         * class.c (mono_class_inflate_generic_type): Use the cache.
10763
10764 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10765
10766         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10767
10768 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10769
10770         * icall.c: added Socket.WSAIoctl icall.
10771
10772         * socket-io.[ch]: implemented
10773         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10774
10775 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10776
10777         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10778
10779 2004-02-18  Urs C Muff  <umuff@quark.com>
10780
10781         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10782         this work on PPC and other big-endian architectures.
10783
10784         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10785         fields with an underscore to make sure they're only accessed by
10786         the read32() macro.
10787
10788 2004-02-18  Martin Baulig  <martin@ximian.com>
10789
10790         * icall.c: Put the klass->refclass changes back for methods and
10791         fields, but not for properties and events.  We're currently not
10792         distinguishing between DeclaringType and ReflectedType for
10793         properties and events, that's what caused the regressions.
10794
10795 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10796
10797         * object.c:
10798         (mono_async_result_new): the handle can be NULL.
10799
10800         * threadpool.c: Use an event instead of a semaphore, don't initialize
10801         it until needed. This saves quite a few semaphores from being created
10802         when using the threadpool.
10803
10804 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10805
10806         * object.c (mono_string_is_interned_lookup): Fix interning of long
10807         strings. Fixes #54473.
10808
10809         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10810
10811         * icall.c: Revert the klass->refclass changes since they introduce
10812         regressions (bug #54518).
10813
10814 2004-02-18  Martin Baulig  <martin@ximian.com>
10815
10816         * class.c (mono_class_init): If we're a generic instance and don't
10817         come from a TypeBuilder, inflate our members here.
10818         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10819         (mono_class_create_generic): New public method.
10820         (mono_class_initialize_generic): Removed.
10821         (get_instantiation_name): Renamed to
10822         _mono_class_get_instantiation_name() and made it public.
10823
10824 2004-02-18  Martin Baulig  <martin@ximian.com>
10825
10826         * class.c (mono_class_inflate_generic_type): Clear the new
10827         instance's `nginst->klass' when inflating a generic instance.
10828         (mono_class_is_subclass_of): Added (basic) support for generic
10829         instances.
10830
10831 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10832
10833         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10834         MonoMempool to hold compiled native code.
10835
10836 2004-02-17  Martin Baulig  <martin@ximian.com>
10837
10838         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10839         `properties'.
10840
10841         * reflection.c (mono_reflection_generic_inst_initialize): Added
10842         `MonoArray *properties' argument.
10843
10844         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
10845
10846 2004-02-17  Martin Baulig  <martin@ximian.com>
10847
10848         * icall.c (ves_icall_Type_GetFields): Renamed to
10849         ves_icall_Type_GetFields_internal() and added a
10850         `MonoReflectionType *rtype' argument; pass it to
10851         mono_field_get_object() to set the field's "reflected" type.
10852         (ves_icall_Type_GetConstructors): Likewise.
10853         (ves_icall_Type_GetEvents): Likewise.
10854         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
10855         argument; pass it to mono_method_get_object() to set the method's
10856         "reflected" type.       
10857
10858 2004-02-17  Martin Baulig  <martin@ximian.com>
10859
10860         * class.h (MonoDynamicGenericInst): New type.
10861         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
10862
10863         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
10864         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
10865         (ves_icall_MonoGenericInst_GetFields): New interncall.
10866
10867         * class.c (mono_class_from_generic): Don't call
10868         mono_class_initialize_generic() if this is a dynamic instance;
10869         ie. it's being created from a TypeBuilder.
10870         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
10871         `class->byval_arg.type'.
10872
10873         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
10874         to `inflate_method' and made static.
10875         (mono_reflection_inflate_field): Removed.
10876         (mono_reflection_generic_inst_initialize): New public method.
10877
10878         * reflection.h (MonoReflectionGenericInst): Removed `methods',
10879         `ctors' and `fields'; added `initialized'.
10880
10881 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
10882
10883         * debug-helpers.c (mono_method_full_name): Fix output for empty
10884         namespaces.
10885
10886 2004-02-12  Martin Baulig  <martin@ximian.com>
10887
10888         * class.h (MonoClassField): Added `MonoType *generic_type'.
10889
10890         * reflection.c (mono_image_get_fieldref_token): Added support for
10891         instantiated generic types.
10892         (field_encode_inflated_field): Removed.
10893         (mono_image_get_inflated_field_token): Removed.
10894         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
10895
10896         * reflection.h (MonoReflectionInflatedField): Removed.
10897
10898 2004-02-12  Martin Baulig  <martin@ximian.com>
10899
10900         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
10901         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
10902
10903         * reflection.c (mono_image_get_methodspec_token): Take a
10904         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
10905         (mono_image_create_token): Check whether we have a
10906         `method->signature->gen_method' and call
10907         mono_image_get_methodspec_token() if appropriate.
10908         (inflated_method_get_object): Removed.
10909         (mono_reflection_bind_generic_method_parameters): Return a
10910         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
10911         (mono_reflection_inflate_method_or_ctor): Likewise.
10912
10913         * reflection.h (MonoReflectionInflatedMethod): Removed.
10914
10915 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
10916
10917         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
10918         for custom valuetype marshalling.
10919
10920         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
10921
10922 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10923
10924         * icall.c: fixed WSAGetLastError_internal name.
10925
10926 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
10927
10928         * threads.c (mono_thread_attach): Allow this to be called multiple
10929         times for a thread.
10930         
10931         * threads.c (build_wait_tids): Do not wait for ourselves.
10932
10933         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
10934         appdomain list is empty.
10935
10936         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
10937         memory returned by mono_string_builder_to_utf16, since it points into
10938         managed memory. Thanks to Bernie Solomon for noticing this.
10939
10940         * icall.c: Add AppDomainSetup icalls.
10941
10942         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
10943
10944         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
10945         types.
10946
10947         * reflection.c (reflection_methodbuilder_to_mono_method): Save
10948         custom attributes to the method_aux struct. Also fix array indexes etc.
10949
10950         * loader.c (mono_method_get_param_names): Make dynamic case work again.
10951         
10952 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
10953
10954         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
10955         (both static and runtime) and reduce startup time.
10956
10957 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
10958
10959         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
10960         AsAny marshalling conversion instead of crashing.
10961
10962         * marshal.c: Fix warnings.
10963
10964 2004-02-09  Martin Baulig  <martin@ximian.com>
10965
10966         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
10967
10968         * reflection.h (MonoReflectionInflatedMethod): Removed the
10969         `declaring' field, it's now in the unmanaged MonoGenericMethod.
10970
10971         * reflection.c (method_encode_methodspec): Removed the `method'
10972         argument; we get it from `gmethod->declaring'.
10973         (inflated_method_get_object): Removed the `declaring' argument.
10974
10975 2004-02-09  Martin Baulig  <martin@ximian.com>
10976
10977         * class.h (MonoGenericMethod): New type.
10978         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
10979         `generic_method'.
10980
10981         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
10982         a `MonoGenericMethod *gen_method' one.
10983
10984         * class.c (mono_class_inflate_generic_type): Take an additional
10985         `MonoGenericMethod * argument.  This is only non-NULL if we're
10986         inflating types for a generic method.   
10987         (mono_class_inflate_generic_signature): Renamed to
10988         inflate_generic_signature() and made static; take a
10989         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10990         (inflate_generic_header): Take a `MonoGenericMethod *' argument
10991         instead of a `MonoGenericInst *' one.
10992         (mono_class_inflate_generic_method): Likewise.
10993
10994         * reflection.c (encode_generic_method_sig): Take a
10995         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10996         (method_encode_methodspec): Likewise.
10997         (inflated_method_get_object): Likewise. 
10998
10999         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
11000         field with a `MonoGenericMethod *gmethod' one.  
11001
11002 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
11003
11004         * class.h (mono_class_has_parent): add parens to expansion
11005         so you can ! this.
11006
11007 2004-02-08  Martin Baulig  <martin@ximian.com>
11008
11009         * image.h (MonoImage): Removed `generics_cache'.
11010
11011         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
11012         instead of a `MonoType *' argument; removed the `inflate_methods'
11013         argument.  Don't inflate methods here.
11014
11015         * loader.c (find_method): If it's a generic instance, call
11016         mono_class_init() on the `sclass->generic_inst->generic_type'.
11017
11018         * metadata.c (mono_type_size): Make this work on uninitialized
11019         generic instances; call it on the `ginst->generic_type's class.
11020
11021         * reflection.c (mono_reflection_bind_generic_parameters): Call
11022         mono_class_from_generic() to create the `ginst->klass'.
11023
11024 2004-02-08  Martin Baulig  <martin@ximian.com>
11025
11026         * class.h (MonoClass): Changed type of `generic_inst' from
11027         `MonoType *' to `MonoGenericInst *'.
11028
11029 2004-02-08  Martin Baulig  <martin@ximian.com>
11030
11031         * icall.c (ves_icall_Type_BindGenericParameters): Just call
11032         mono_type_get_object(), this is now creating a `MonoGenericInst'
11033         for MONO_TYPE_GENERICINST.
11034         (ves_icall_MonoGenericInst_GetParentType): Likewise.
11035         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
11036
11037         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
11038         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
11039         (inflated_method_get_object): Added `MonoClass *refclass' argument.
11040         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
11041         and reflected type.
11042
11043         * reflection.h (MonoReflectionInflatedMethod): Removed
11044         `declaring_type' and `reflected_type'.
11045
11046 2004-02-08  Martin Baulig  <martin@ximian.com>
11047
11048         * class.h (MonoGenericInst): Added `MonoType *parent' and
11049         `MonoType **ifaces'.
11050
11051         * reflection.h (MonoReflectionGenericInst): Removed `klass',
11052         `parent' and `interfaces'.
11053
11054         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11055         `MonoType *' argument and return a `MonoType *'.
11056
11057         * icall.c
11058         (ves_icall_MonoGenericInst_GetParentType): New interncall.
11059         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
11060
11061 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
11062
11063         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
11064         valuetype marshalling.
11065
11066 2004-02-06  Martin Baulig  <martin@ximian.com>
11067
11068         * class.c
11069         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
11070         (my_mono_class_from_generic_parameter): Likewise.
11071
11072 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
11073
11074         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
11075         contents of the symbol files lazily.
11076
11077         * object.h (MonoThread): Add 'name' and 'name_len' fields.
11078
11079         * threads.h threads.c icall.c: New icalls for getting and setting the
11080         threads name.
11081
11082 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
11083
11084         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
11085         Raise an exception when the domain is not found.
11086
11087 2004-02-03  Martin Baulig  <martin@ximian.com>
11088
11089         * reflection.c (mono_image_get_methodspec_token): Use the
11090         uninflated signature; fixes gen-33.
11091
11092 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
11093
11094         * gc.c threads.c: Make the finalizer thread a normal managed thread so
11095         the finalizer code can use thread functionality.
11096
11097         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
11098         the finalizer thread.
11099
11100         * threads.c: Make some functions more robust.
11101
11102         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
11103
11104         * metadata.h: Add new marshalling conventions.
11105
11106         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
11107         stringbuilder marshalling. Fixes #53700.
11108
11109         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
11110
11111         * reflection.c (mono_image_get_type_info): Save declarative security
11112         info.
11113
11114         * reflection.c (mono_image_get_field_info): Handle uninitialized 
11115         unmanaged fields as well.
11116
11117         * appdomain.c: Bump corlib version.
11118
11119 2004-02-01  Martin Baulig  <martin@ximian.com>
11120
11121         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
11122         method type arguments.  
11123
11124 2004-01-30  Duncan Mak  <duncan@ximian.com>
11125
11126         * marshal.h: Add prototype for
11127         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
11128         and
11129         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
11130         fix the build.
11131
11132 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
11133
11134         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
11135         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
11136
11137 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11138
11139         * marshal.c (mono_marshal_get_native_wrapper): Add support for
11140         custom marshalling of valuetypes.
11141
11142         * marshal.c: Fix some warnings.
11143
11144 2004-01-29  Martin Baulig  <martin@ximian.com>
11145
11146         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
11147         for generic method parameters.
11148
11149         * reflection.c (method_encode_methodspec): Write the uninflated
11150         signature into the methodspec table.
11151         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
11152         is always the uninflated method.
11153         (reflection_methodbuilder_to_mono_method): Copy the generic
11154         parameters from the MethodBuilder into `header->gen_params'.
11155
11156 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11157
11158         * class.c (mono_class_from_generic_parameter): Fix warning.
11159
11160 2004-01-27  Martin Baulig  <martin@ximian.com>
11161
11162         * class.c (mono_class_from_generic_parameter): Don't create
11163         `klass->methods' here.  
11164
11165 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
11166
11167         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
11168         extension since it does not work with libraries named lib<FOO>.dll.so.
11169
11170 2004-01-25  Martin Baulig  <martin@ximian.com>
11171
11172         * class.c (mono_class_inflate_generic_type): Added support for
11173         MONO_TYPE_GENERICINST.
11174
11175         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
11176         inflate methods on open constructed types.      
11177
11178 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11179
11180         * object.c: fire ProcessExit event in the root AppDomain after running
11181         Main. Fixes bug #53299.
11182
11183 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
11184
11185         * socket-io.c: include the new socket-wrappers.h header.
11186         Use the wrappers instead of the unix socket functions to make the code
11187         more clear.
11188
11189 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
11190
11191         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
11192
11193         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11194         Fixes #22532.
11195
11196 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
11197
11198         * reflection.c (mono_image_create_pefile): Handle the case when the
11199         entry point is not a MethodBuilder.
11200
11201         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11202         field to ReflectionMethod since it is not allways a builder.
11203
11204         * reflection.c (type_get_fully_qualified_name): New helper function to
11205         return the fully qualified name of a type.
11206
11207         * reflection.c (encode_marshal_blob): Always emit the fully qualified
11208         type name for custom marshallers.
11209
11210         * reflection.c (mono_marshal_spec_from_builder): Ditto.
11211
11212         * class.c (mono_class_setup_vtable): If a parent class already 
11213         implements an interface, use the implementing methods from that class.
11214         Fixes #53148.
11215
11216 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11217
11218         * threadpool.c: just return instead of ExitThread to allow for thread
11219         clean up earlier.
11220
11221 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
11222
11223         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
11224         when closing resource modules.
11225
11226         * reflection.c (mono_image_create_pefile): Handle the case when the
11227         entry point is not a MethodBuilder.
11228
11229         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11230         field to ReflectionMethod since it is not allways a builder.
11231
11232 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11233
11234         * marshal.c (mono_marshal_get_managed_wrapper): 
11235         mono_marshal_alloc takes native int so CONV_I
11236         the arg for 64bits.
11237
11238 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
11239
11240         * reflection.c (fixup_cattrs): New function to fixup the methoddef
11241         tokens in the cattr table. Fixes #53108.
11242
11243 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11244
11245         * loader.c: don't trim ".dll" before looking up in the config file.
11246         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
11247
11248 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
11249
11250         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
11251         Return the module which contains the resource as well.
11252         (ves_icall_System_Reflection_Module_Close): New icall.
11253
11254         * appdomain.c: Bump corlib version number.
11255
11256         * image.c (mono_image_addref): New public function.
11257
11258         * assembly.c: Call mono_image_addref.
11259
11260         * reflection.c (mono_module_get_object): Increase reference count of 
11261         the image.
11262
11263         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11264         Fixes #22532.
11265
11266         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
11267         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
11268         proper exceptions on DllImport problems.
11269
11270 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
11271
11272         * class.c, metadata.c: eliminate CSIZE macro.
11273
11274 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
11275
11276         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
11277         * object.h: Added async_callback field in MonoAsyncResult.
11278         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
11279         * verify.c: Added async_callback in MonoAsyncResult layout.
11280
11281 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
11282
11283         * reflection.c (mono_reflection_get_custom_attrs): Add support
11284         for Modules.
11285
11286 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11287
11288         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
11289         marshalling.
11290         (mono_marshal_method_from_wrapper): Add null pointer check.
11291
11292 2004-01-16  Martin Baulig  <martin@ximian.com>
11293
11294         * debug-mono-symfile.h: Set version number to 36 and reflect
11295         latest symbol writer changes.
11296
11297 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11298
11299         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
11300         multi-dimensional arrays.
11301         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
11302         (mono_class_from_mono_type): Use bounded_array_class_get.
11303         
11304         * class.c (mono_bounded_array_class_get): New function which takes
11305         a 'bounded' bool argument to distinguish vectors from one dimensional
11306         arrays.
11307
11308         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
11309         bounded_array_class_get if the array has bounds.
11310
11311         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11312         Search modules loaded using AssemblyBuilder:AddModule as well.
11313
11314 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11315
11316         * appdomain.c: increased corlib version.
11317         * filewatcher.c: removed g_print.
11318         * icall.c:
11319         (get_property_info): only allocate what is actually requested.
11320         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
11321
11322 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11323
11324         * Makefile.am: added filewatcher.[ch]
11325         * filewatcher.[ch]: FileSystemWatcher runtime support.
11326         * icall.c: added new FSW icalls.
11327
11328 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
11329
11330         * string-icalls.c: fix stringbuilder regression as suggested by
11331         Iain McCoy <iain@mccoy.id.au>.
11332
11333 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
11334
11335         * process.c (process_read_stringtable_block): Recognize '007f' as
11336         a language neutral stringtable block.
11337
11338 2004-01-12  Patrik Torstensson
11339
11340         * object.h (MonoStringBuilder) : Changed layout to support our
11341         new stringbuilder class.
11342         * marshal.c: Change marshalling to support the new layout of 
11343         string builder.
11344         * appdomain.c: increased version number because new layout of
11345         string builder.
11346
11347 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
11348
11349         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
11350         assembly name as an string instead of an AssemblyName, since it is
11351         easier to extract info from it.
11352
11353         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
11354         the culture subdirectories too. Fixes #52231.
11355
11356 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11357
11358         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
11359         It takes 2 new parameters with an optional name for the method to look
11360         for and case ignoring info.
11361
11362         * threadpool.c: removed unused variable.
11363
11364 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11365
11366         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
11367         It takes 2 new parameters with an optional name for the property to look
11368         for and case ignoring info.
11369         Fixes bug #52753.
11370
11371 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
11372
11373         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
11374         Fix #52451.
11375
11376 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11377
11378         * appdomain.c:
11379         * assembly.c: escape the uri before passing it to g_filename_from_uri.
11380         Fixes bug #52630.
11381
11382 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
11383
11384         * reflection.c: Add support for more than one unmanaged resource.
11385
11386         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
11387         in field->def_value, as done in all other cases.
11388
11389         * reflection.c (mono_reflection_get_custom_attrs): Add support for
11390         TypeBuilders.
11391
11392         * reflection.c (mono_reflection_create_runtime_class): Remove 
11393         errorneous assignment to klass->element_class, since it is already
11394         done in mono_reflection_setup_internal_class.
11395
11396 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11397
11398         * gc.c: added missing LeaveCriticalSection.
11399         * icall.c: indented a couple of lines.
11400         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
11401         if we call EndInvoke inside a callback. Fixes bug #52601.
11402
11403 2004-01-07  Martin Baulig  <martin@ximian.com>
11404
11405         * mono-debug-debugger.h
11406         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
11407
11408 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
11409
11410         * appdomain.c: Use messages in NotImplementedException.
11411
11412         * exception.c (mono_get_exception_not_implemented): Now this takes
11413         a message argument.
11414
11415         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
11416         exception instead of g_asserting an aborting when something is not
11417         implemented.
11418
11419         Add some inline docs.
11420
11421 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
11422
11423         * reflection.h: Update after changes to object layout.
11424
11425         * reflection.c: Implement saving of unmanaged aka win32 resources.
11426
11427         * appdomain.c: Bump version number.
11428
11429         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
11430         Handle missing domains gracefully.
11431
11432 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
11433
11434         * file-io.c : On Windows, there are much more invalid_path_chars.
11435
11436 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
11437
11438         * class.h, object.c: prepare for GetType () speedup.
11439
11440 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
11441
11442         * profiler.c: workaround for --profile null reference exception on
11443           cygwin. Patch by Patrik Torstensson.
11444
11445 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
11446
11447         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
11448         make work for unaligned access.
11449
11450 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
11451
11452         * class.c: small cleanup (class->fields [i] -> field).
11453         * image.c: check address of metadata is valid.
11454
11455 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
11456
11457         * assembly.h assembly.c (mono_assembly_loaded): New public function to
11458         search the list of loaded assemblies.
11459
11460         * reflection.c (mono_reflection_type_from_name): Use 
11461         mono_assembly_loaded instead of mono_image_loaded.
11462
11463         * reflection.c: Fix warnings.
11464
11465 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
11466
11467         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
11468         is dynamic. This is needed since an assembly can contain both dynamic and
11469         non-dynamic images.
11470
11471         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
11472         assembly->dynamic.
11473
11474         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
11475
11476         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
11477         to store modules loaded using AddModule.
11478
11479         * reflection.c (mono_image_fill_file_table): Generalize this so it works
11480         on Modules.
11481
11482         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
11483
11484         * reflection.c (mono_image_fill_export_table_from_module): New function to
11485         fill out the EXPORTEDTYPES table from a module.
11486
11487         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
11488         into a separate function. Also handle loaded non-dynamic modules.
11489
11490         * reflection.c (mono_image_basic_init): Fix memory allocation.
11491
11492         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11493
11494         * assembly.c (mono_assembly_load_references): Make this public.
11495
11496 2003-12-19  Martin Baulig  <martin@ximian.com>
11497
11498         * class.c (mono_class_initialize_generic): Made this static, take
11499         a `MonoGenericInst *' instead of a `MonoClass *'.
11500         (mono_class_from_generic): Call mono_class_initialize_generic()
11501         unless we're already initialized or being called from
11502         do_mono_metadata_parse_generic_inst().
11503
11504         * class.h (MonoGenericInst): Added `initialized' and
11505         `init_pending' flags.
11506
11507         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
11508         `mono_class_init (gklass)' or mono_class_initialize_generic()
11509         here; set `generic_inst->init_pending' while parsing the
11510         `type_argv'.
11511
11512 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
11513
11514         * locales.c: include string.h for memxxx prototypes
11515
11516 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
11517
11518         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
11519         constructor when accessing literal fields.
11520
11521 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
11522
11523         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11524
11525         * reflection.c (assembly_add_resource_manifest): New function to fill
11526         the MANIFESTRESOURCE table.
11527
11528         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
11529
11530         * reflection.h: Update to changes in class layout.
11531
11532         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
11533         Reenable call to mono_runtime_is_shutting_down ().
11534
11535         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
11536         determine if the runtime is shutting down.
11537
11538 2003-12-16  Jackson Harper <jackson@ximian.com>
11539
11540         * icall.c: comment out call to mono_runtime_is_shutting_down to
11541         fix build.
11542         
11543 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
11544
11545         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
11546         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
11547
11548 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
11549
11550         * reflection.c: move definition of swap_with_size
11551         to before its first call
11552
11553 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
11554
11555         * appdomain.c (mono_runtime_is_shutting_down): New public function.
11556
11557         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
11558         icall.
11559
11560         * object.c: Fix warnings.
11561
11562         * icall.c (ves_icall_Type_Get...): Only consider inherited static
11563         members if FlattenHierarchy is set.
11564
11565         * reflection.c (mono_image_add_decl_security): New function to emit
11566         declarative security.
11567
11568         * reflection.h reflection.c: Add support for declarative security.
11569
11570         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11571         
11572 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
11573
11574         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11575         
11576         * appdomain.c verify.c: Moved corlib version checking into its own
11577         function in appdomain.c since it needs to create vtables etc.
11578
11579 2003-12-13  Patrik Torstensson <p@rxc.se>
11580
11581         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
11582         instead of unwrapped server.
11583
11584 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
11585
11586         * verify.c (check_corlib): Fix field index.
11587
11588 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
11589
11590         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
11591         GetGacPath icall.
11592
11593 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
11594
11595         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
11596         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
11597         cope with sizeof(size_t) != sizeof(guint32).
11598
11599 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11600
11601         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
11602         in case of failure.
11603
11604 2003-12-10  Mark Crichton <crichton@gimp.org>
11605
11606         * icall.c: removed the GetNonZeroBytes.  We now handle this case
11607         in managed code.
11608
11609         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
11610
11611 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
11612
11613         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
11614         marked as deleted.
11615
11616 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
11617
11618         * verify.c (check_corlib): Handle the case when the version field is 
11619         initialized by a static constructor.
11620
11621 2003-12-08  Patrik Torstensson  <p@rxc.se>
11622
11623     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
11624
11625 2003-12-08  Martin Baulig  <martin@ximian.com>
11626
11627         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
11628         a MonoReflectionGenericParameter, also take the parameter index
11629         and name as arguments.
11630         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
11631         (ves_icall_MonoGenericParam_initialize): New interncall.
11632         (ves_icall_Type_make_byref_type): New interncall.
11633
11634         * reflection.h (MonoReflectionGenericParam): Derive from
11635         MonoReflectionType, not just from MonoObject.  Added `refobj' and
11636         `index' fields.
11637
11638         * reflection.c (mono_reflection_define_generic_parameter): Create
11639         and return a new MonoReflectionGenericParam; don't initialize the
11640         constraints here.
11641         (mono_reflection_initialize_generic_parameter): New public method;
11642         initializes the constraints and creates the `param->pklass'.
11643
11644 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
11645
11646         * reflection.h reflection.c: Use the new fields 'num_types', 
11647         'num_fields' and 'num_methods' to track the number of types etc.
11648
11649         * verify.c (check_corlib): Check corlib version number.
11650
11651 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
11652
11653         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
11654         function works on all methods.
11655
11656 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
11657
11658         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
11659         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
11660         the custom_type_info flag of the transparent proxy.
11661         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
11662         objects that supports IRemotingTypeInfo.
11663         * object.h: Added custom_type_info field in transparent proxy.
11664
11665 2003-12-06  Martin Baulig  <martin@ximian.com>
11666
11667         * class.c (mono_class_create_from_generic): Removed.
11668         (mono_class_from_generic): Check `ginst->klass' before doing
11669         anything else.  This is important to fully support "recursive"
11670         generic types.
11671
11672         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11673         empty `generic_inst->klass' before doing anything else.
11674
11675 2003-12-06  Dick Porter  <dick@ximian.com>
11676
11677         * verify.c: 
11678         * object.h:
11679         * icall.c:
11680         * locales.c: Use C structs to access class fields.  Don't do a
11681         conversion between MonoString and UChar because both are
11682         platform-endian UTF-16.  Compare now takes startindex and count
11683         parameters.  Add a char overload for IndexOf.  Speed up the
11684         invariant string IndexOf.
11685
11686 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11687
11688         * Makefile.am (monosn_LDADD): Fix parallel build.
11689
11690 2003-12-04  Martin Baulig  <martin@ximian.com>
11691
11692         * icall.c
11693         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11694         (ves_icall_Type_make_array_type): New interncall.       
11695
11696 2003-12-04  Martin Baulig  <martin@ximian.com>
11697
11698         * locales.c: also change it in the !HAVE_ICU case.
11699
11700 2003-12-04  Dick Porter  <dick@ximian.com>
11701
11702         * icall.c:
11703         * locales.c: construct_compareinfo is now in CompareInfo, not
11704         CultureInfo.
11705
11706 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11707
11708         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11709         image->files array.
11710
11711         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11712         table as well.
11713
11714         * assembly.c (mono_assembly_load_references): Only load references
11715         once.
11716
11717         * class.c (mono_class_from_name): Avoid linear search of the 
11718         EXPORTEDTYPE table.
11719
11720         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11721
11722 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11723
11724         * image.h (MonoImage): Add 'field_cache' field.
11725
11726         * loader.c (mono_field_from_token): Cache field lookups.
11727         
11728         * reflection.c (mono_module_get_object): Fix name property.
11729
11730         * icall.c (ves_icall_get_enum_info): Update after changes to 
11731         mono_metadata_get_constant_index ().
11732
11733         * icall.c: Get rid of get_type_info icall, use a separate icall for
11734         each type property to avoid needless memory allocations. Fixes #51514.
11735
11736         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11737         to avoid needless binary searches.
11738
11739         * class.c (class_compute_field_layout): Move the initialization of
11740         field->def_value to mono_class_vtable ().
11741
11742         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11743         non-corlib types.
11744
11745         * object.c (mono_object_allocate): Make it inline.
11746
11747         * object.c (mono_object_allocate_spec): Make it inline.
11748         
11749 2003-12-02  Dick Porter  <dick@ximian.com>
11750
11751         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11752         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11753
11754 2003-12-01  Dick Porter  <dick@ximian.com>
11755
11756         * threads.c: Fix signature and call in CreateMutex and
11757         CreateEvent.
11758
11759 2003-12-01  Dick Porter  <dick@ximian.com>
11760
11761         * icall.c: 
11762         * locales.c: Implement string compares and searching
11763
11764         * object.h: Add extra Thread field
11765
11766 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11767
11768         * reflection.c (fixup_method): Add support for MonoCMethod.
11769
11770 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11771
11772         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11773
11774         * reflection.c (assembly_name_to_aname): Allow extra characters in
11775         assembly names. Fixes #51468.
11776
11777 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11778
11779         * exception.c (mono_exception_from_name_domain): New helper function.
11780
11781         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11782         exception object in the correct domain.
11783
11784         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11785         formatting + make a copy a the input data.
11786
11787         * loader.c (mono_get_method_from_token): Methods which contain
11788         native code do not have entries in the ImplMap.
11789
11790         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11791         Thanks to Gonzalo for spotting this.
11792         
11793         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11794         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11795
11796         * assembly.h (mono_assembly_load_from): Split the second part of 
11797         assembly loading into a new public function.
11798
11799         * exception.h (mono_get_exception_bad_image_format): New function.
11800
11801 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11802
11803         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11804         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11805         
11806         * icall.c: Add new icall for creating dynamic methods.
11807
11808         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11809
11810         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11811
11812         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11813         create a dynamic method.
11814
11815         * reflection.c (resolve_object): New helper function.
11816
11817         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11818         which manipulate it so they can also work on dynamic methods.
11819
11820         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11821         creating the MonoReflectionMethodAux structure if it is not needed.
11822         
11823         * reflection.h verify.c: Update after changes to object layout.
11824
11825         * reflection.c (method_builder_encode_signature): Fix compilation on
11826         gcc 2.95.x.
11827
11828 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11829
11830         * appdomain.h: Added support for context static fields. Added static_data
11831           field to MonoAppContext and renamed thread_static_fields to a more
11832           generic special_static_fields in MonoAppDomain, since it can now contain
11833           context static fields.
11834         * domain.c: Updated hashtable name.
11835         * object.c: Replaced field_is_thread_static() for a more generic
11836           field_is_special_static() which also checks for context static attribute.
11837           In mono_class_vtable(), added support for static context fields.
11838         * threads.c: Changed methods that manage thread static fields to more
11839           generic methods so they can be reused both for thread and context static
11840           data.
11841         * threads.h: Declared some new methods.
11842
11843 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
11844
11845         * reflection.h: Update after changes to the managed types.
11846
11847         * reflection.c (encode_custom_modifiers): New helper function.
11848
11849         * reflection.c (method_encode_signature): Emit custom modifiers.
11850
11851         * reflection.c (field_encode_signature): Emit custom modifiers.
11852
11853 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
11854
11855         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
11856
11857         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
11858         implementation.
11859
11860         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
11861         icall.
11862
11863         * object.c (mono_field_get_value_object): New function.
11864
11865         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
11866         specific.
11867
11868 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
11869
11870         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
11871         return a preallocated out-of-memory exception instance.
11872
11873         * object.c (out_of_memory): Use the new function.
11874
11875         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
11876         flag is before the custom modifiers. Fixes #49802.
11877
11878 2003-11-16  Martin Baulig  <martin@ximian.com>
11879
11880         * class.c (mono_class_is_open_constructed_type): Implemented the
11881         MONO_TYPE_GENERICINST case.
11882
11883 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
11884
11885         * assembly.c (mono_assembly_fill_assembly_name): New function to
11886         fill out the MonoAssemblyName structure.
11887         (mono_assembly_open): Use the new function.
11888
11889         * icall.c (fill_reflection_assembly_name): New helper function.
11890
11891         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
11892         new function.
11893
11894         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
11895
11896 2003-11-15  Martin Baulig  <martin@ximian.com>
11897
11898         * class.c (mono_class_is_open_constructed_type): New public
11899         function; checks whether a type is an open constructed type,
11900         ie. whether it still contains type parameters.
11901         (mono_class_inflate_generic_type): If we're a type parameter and
11902         the inflated type is also a MONO_TYPE_(M)VAR, return the original
11903         type.
11904
11905         * class.h (MonoGenericInst): Added `guint32 is_open'.
11906
11907         * loader.c (method_from_methodspec): Check whether we're an open
11908         or closed constructed type and set `ginst->is_open'.
11909
11910         * reflection.c (mono_reflection_bind_generic_parameters): Check
11911         whether we're an open or closed constructed type and set
11912         `ginst->is_open'.
11913         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
11914         from open constructed types.
11915
11916 2003-11-15  Martin Baulig  <martin@ximian.com>
11917
11918         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11919         a generic instance (instead of a generic type declaration) with
11920         unbound generic parameters, bind them to our actual types.
11921
11922 2003-11-14  Martin Baulig  <martin@ximian.com>
11923
11924         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
11925
11926         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11927         an interface type, populate `res->interfaces' with instantiated
11928         versions of all the interfaces we inherit.
11929
11930 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
11931
11932         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
11933         when MONO_PATH is set but doesn't contain the install dir.
11934
11935 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11936
11937         * icall.c:
11938         (ves_icall_Type_GetInterfaces): don't return an interface twice when
11939         it's also implemented in base classes. Fixes bug #50927.
11940
11941 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
11942
11943         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
11944         if this method is called from a finalizer. Fixes #50913.
11945
11946 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
11947
11948         * threads.c: Implement VolatileRead/VolatileWrite
11949
11950         * icall.c: Add new icalls for VolatileRead/VolatileWrite
11951
11952 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11953
11954         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
11955         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
11956         2.95.3.
11957
11958         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
11959         from Peter Ross (pro@missioncriticalit.com).
11960         
11961 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
11962
11963         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
11964
11965 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11966
11967         * assembly.c (mono_assembly_load_references): Disable check because it
11968         triggers on older corlibs which lots of people have.
11969
11970 2003-11-12  Jackson Harper  <jackson@ximian.com>
11971
11972         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
11973         load corlib.dll if mscorlib.dll is not found.
11974         * assembly.h: Remove corlib name define.
11975         * class.c:
11976         * domain.c:
11977         * image.c: Change corlib name to mscorlib.
11978         
11979 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11980
11981         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
11982
11983 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
11984
11985         * appdomain.h: Added loader_optimization here to sync with the C#
11986         code, and add disallow_binding_redirects field.
11987
11988 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11989
11990         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
11991
11992         * reflection.c (mono_image_build_metadata): Fix crash on modules
11993         with no types.
11994
11995         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
11996
11997         * icall.c (ves_icall_get_method_info): Return callingConvention as
11998         well.
11999
12000         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
12001         namespaces from the EXPORTEDTYPE table as well.
12002
12003         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
12004         from all modules inside the assembly.
12005         
12006 2003-11-11  Martin Baulig  <martin@ximian.com>
12007
12008         * reflection.c (mono_reflection_bind_generic_parameters): Make
12009         this work for interfaces.
12010
12011 2003-11-11  Martin Baulig  <martin@ximian.com>
12012
12013         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
12014
12015 2003-11-11  Martin Baulig  <martin@ximian.com>
12016
12017         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
12018         "MonoInflatedMethod" and "MonoInflatedCtor".
12019
12020 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
12021
12022         * reflection.c (resolution_scope_from_image): Use the assembly table
12023         from the manifest module, since other modules don't have it.
12024
12025         * debug-helpers.c (mono_type_full_name): New helper function.
12026
12027         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
12028
12029         * image.c (mono_image_load_file_for_image): New public function which
12030         is a replacement for the load_file_for_image in class.c.
12031
12032         * assembly.c (mono_assembly_load_module): A wrapper for the function
12033         above which does assembly association and reference loading too.
12034
12035         * class.c (mono_class_from_name): Call mono_assembly_load_module.
12036
12037 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12038
12039         * appdomain.c: not all of the attributes for the full assembly name
12040         are required and the order doesn't matter. Fixes bug #50787.
12041
12042 2003-11-10  Dick Porter  <dick@ximian.com>
12043
12044         * locales.c: Use platform-endian UTF16
12045
12046 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
12047
12048         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
12049         
12050 2003-11-10  Martin Baulig  <martin@ximian.com>
12051
12052         * metadata.c
12053         (mono_metadata_load_generic_params): Make this actually work.
12054
12055         * reflection.c (mono_reflection_bind_generic_parameters): If our
12056         parent is a generic instance, pass all the `types' to it, no
12057         matter whether it has the same number of type parameters or not.
12058
12059 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
12060
12061         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
12062
12063         * assembly.c (mono_assembly_load_references): Move the image<->assembly
12064         assignment code to this function so it gets called recursively for all
12065         modules.
12066
12067         * image.c (load_modules): Remove the assembly assignment since it is
12068         now done by mono_assembly_load_references.
12069         
12070         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12071         Add 'module' argument.
12072         (mono_module_get_types): New helper function.
12073         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
12074
12075 2003-11-08  Martin Baulig  <martin@ximian.com>
12076
12077         * class.c (mono_class_inflate_generic_method): Interface method
12078         don't have a header.
12079
12080         * reflection.c (mono_image_get_methodspec_token): Take an
12081         additional `MonoGenericInst *' argument instead of reading it from
12082         the header; this is necessary to support interfaces.
12083         (mono_image_create_token): Pass the `MonoGenericInst *' from the
12084         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
12085         (inflated_method_get_object): Take an additional `MonoGenericInst *'
12086         argument.
12087
12088         * reflection.h (MonoReflectionInflatedMethod): Added
12089         `MonoGenericInst *ginst'.
12090
12091 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
12092
12093         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
12094
12095 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
12096
12097         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
12098
12099 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
12100
12101         * reflection.c 
12102         (reflection_methodbuilder_from_method_builder):
12103         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
12104         initialize a ReflectionMethodBuilder structure.
12105         (mono_image_get_methodbuilder_token):
12106         (mono_image_get_ctorbuilder_token): New functions to emit memberref
12107         tokens which point to types in another module inside the same assembly.
12108
12109         * reflection.c: Use the new helper functions.
12110         
12111         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
12112
12113         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
12114         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
12115
12116         * reflection.c (resolution_scope_from_image): Emit a moduleref if
12117         neccesary.
12118
12119         * reflection.c (mono_image_build_metadata): Emit metadata only for the
12120         current module. Emit the manifest only for the main module.
12121
12122         * reflection.c (mono_image_create_token): Add assertion when a 
12123         memberref needs to be created.
12124
12125         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
12126
12127         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
12128         larger buffer for the custom attribute blob. Fixes #50637.
12129         
12130 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12131
12132         * threadpool.c: notify listener on async processing handles after
12133         invoking the async callback. Thanks to Zoltan.
12134
12135 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12136
12137         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
12138         avoid code duplication.
12139
12140         * reflection.h (MonoDynamicImage): New type which is currently unused,
12141         but will be used through the ref.emit code in place of 
12142         MonoDynamicAssembly.
12143
12144         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12145         object layout.
12146
12147         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
12148         a MonoDynamicImage instead of just a MonoImage.
12149         
12150         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
12151         icalls to ModuleBuilder but keep their semantics, so they will work
12152         with moduleb->assemblyb. This will change later.
12153         
12154 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12155
12156         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12157         object layout.
12158
12159         * reflection.c (mono_image_build_metadata): Avoid creation of a default
12160         main module, since it is now done by the managed code.
12161
12162 2003-11-03  Martin Baulig  <martin@ximian.com>
12163
12164         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
12165         `ginst->klass' here.
12166         (method_encode_methodspec): Don't use the `ginst->generic_method's
12167         klass if it's a generic instance, use `ginst->klass' in this case.
12168
12169 2003-11-03  Martin Baulig  <martin@ximian.com>
12170
12171         * reflection.c (mono_image_get_generic_method_param_info):
12172         Removed, use mono_image_get_generic_param_info() instead.
12173         (mono_image_get_type_info): Write the GenericParam table before
12174         the Method table.  This is neccessary because in the GenericParam
12175         table, type parameters of the class (ie. '!0' etc.) must come
12176         before the ones from its generic methods (ie. '!!0' etc).
12177
12178 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12179
12180         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
12181
12182 2003-11-02  Martin Baulig  <martin@ximian.com>
12183
12184         * reflection.c (create_generic_typespec): Take a
12185         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
12186         the generic parameters from it.
12187
12188 2003-11-02  Martin Baulig  <martin@ximian.com>
12189
12190         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
12191         instead of a `MonoClassField *' since we just need the type.
12192         (create_generic_typespec): New static function.  Creates a
12193         TypeSpec token for a generic type declaration.
12194         (mono_image_get_generic_field_token): New static function.
12195         (mono_image_create_token): If we're a FieldBuilder in a generic
12196         type declaration, call mono_image_get_generic_field_token() to get
12197         the token.
12198
12199 2003-11-02  Martin Baulig  <martin@ximian.com>
12200
12201         * reflection.h
12202         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
12203         `MonoReflectionGenericInst *declaring_type' and
12204         `MonoReflectionGenericInst *reflected_type' fields.
12205
12206         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
12207         `MonoReflectionGenericInst *declaring_type' and a
12208         `MonoReflectionGenericInst *reflected_type' argument instead of a
12209         single `MonoReflectionGenericInst *type' one.  Set
12210         `res->declaring_type' and `res->reflected_type' from them.
12211         (mono_reflection_inflate_field): Likewise.      
12212
12213 2003-11-02  Martin Baulig  <martin@ximian.com>
12214
12215         * class.c (mono_class_setup_vtable): Don't store generic methods
12216         in the vtable.  
12217
12218 2003-11-02  Martin Baulig  <martin@ximian.com>
12219
12220         * reflection.h (MonoReflectionGenericInst): Added
12221         `MonoReflectionType *declaring_type'.
12222
12223         * reflection.c (mono_reflection_bind_generic_parameters): Use
12224         `if (tb->parent)' instead of `klass->parent'.
12225
12226 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
12227
12228         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
12229         with an empty ASSEMBLY table.
12230
12231         * reflection.c (mono_image_build_metadata): Avoid using the same loop
12232         variable in the inner and outer loops.
12233
12234 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
12235
12236         * metadata.h (mono_metadata_make_token): Put parentheses around macro
12237         argument.
12238
12239         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
12240         
12241         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
12242         icalls. Instead, do everything in managed code. This is needed since
12243         it is hard to restore the original domain etc. in unmanaged code in the
12244         presence of undeniable exceptions.
12245
12246         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
12247         New icalls to push and pop appdomain refs.
12248
12249 2003-10-31  Martin Baulig  <martin@ximian.com>
12250
12251         * class.c (inflate_generic_type): Renamed to
12252         mono_class_inflate_generic_type() and made it public.
12253
12254         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
12255         New interncall.
12256
12257         * loader.c (mono_field_from_memberref): Also set the retklass for
12258         typespecs.
12259
12260         * fielder.c (mono_image_get_inflated_field_token): New static
12261         method; creates a metadata token for an inflated field.
12262         (mono_image_create_token, fixup_method): Added support for
12263         "MonoInflatedField".
12264         (fieldbuilder_to_mono_class_field): New static function.
12265         (mono_reflection_inflate_field): New public function.
12266
12267         * reflection.h
12268         (MonoReflectionGenericInst): Added `MonoArray *fields'.
12269         (MonoReflectionInflatedField): New typedef.     
12270
12271 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
12272
12273         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
12274         for Solaris and other platforms without s6_addr16
12275
12276 2003-10-30  Martin Baulig  <martin@ximian.com>
12277
12278         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
12279         argument instead of two.
12280         (mono_class_inflate_generic_signature): Likewise.
12281         (inflate_generic_header): Likewise.
12282         (mono_class_inflate_generic_method): Likewise.  In addition, if
12283         `ginst->klass' is set, it becomes the new `method->klass'.
12284
12285         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
12286         field.
12287
12288         * reflection.c (encode_generic_method_sig): Write a 0xa as the
12289         first byte. [FIXME]
12290         (method_encode_methodspec): If we have generic parameters, create
12291         a MethodSpec instead of a MethodRef.
12292         (fixup_method): Added support for "MonoInflatedMethod" and
12293         "MonoInflatedCtor".
12294         (mono_image_create_token): Added support for "MonoInflatedMethod"
12295         and "MonoInflatedCtor".
12296         (inflated_method_get_object): New static function; returns a
12297         managed "System.Reflection.MonoInflatedMethod" object.
12298         (mono_reflection_bind_generic_method_parameters): Return a
12299         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
12300         (mono_reflection_inflate_method_or_ctor): Likewise.
12301         (mono_image_get_generic_method_param_info): Initialize unused
12302         fields to zero.
12303         (mono_image_get_generic_param_info): Likewise.
12304
12305         * reflection.h (MonoReflectionInflatedMethod): New public
12306         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
12307         "S.R.MonoInflatedCtor" classes.
12308
12309         * loader.c (method_from_memberref): If we're a TypeSpec and it
12310         resolves to a generic instance, inflate the method.
12311
12312 2003-10-28  Dick Porter  <dick@ximian.com>
12313
12314         * object.c (mono_runtime_run_main): Convert command-line arguments
12315         into utf8, falling back to the user's locale encoding to do so.
12316
12317 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
12318
12319         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
12320         at this time.
12321
12322         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
12323
12324         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
12325         up icalls at method definition time. Partially fixes #33569.
12326
12327 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
12328
12329         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
12330         marshalling of arrays. Fixes #50116.
12331
12332         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
12333
12334         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
12335         points to a vtable in the dying appdomain.
12336
12337         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
12338         listeners into unmanaged code inside the lock.
12339
12340         * object.c (mono_class_vtable): Turn off typed allocation in non-root
12341         domains and add some comments.
12342
12343 2003-10-25  Martin Baulig  <martin@ximian.com>
12344
12345         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
12346
12347         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
12348
12349         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
12350         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
12351         currently parsing.  Create the generic class and store it in
12352         `generic_inst->klass' before parsing the type arguments.  This is
12353         required to support "recursive" definitions; see mcs/tests/gen-23.cs
12354         for an example.
12355         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
12356         to support recursive typespec entries.
12357
12358         * class.c (mono_class_setup_parent): If our parent is a generic
12359         instance, we may get called before it has its name set.
12360         (mono_class_from_generic): Splitted into
12361         mono_class_create_from_generic() and mono_class_initialize_generic().
12362
12363 2003-10-25  Martin Baulig  <martin@ximian.com>
12364
12365         * icall.c (ves_icall_Type_BindGenericParameters): Return a
12366         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
12367         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
12368         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
12369
12370         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
12371         (create_typespec): Likewise.
12372         (mono_reflection_bind_generic_parameters): Return a
12373         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
12374         (mono_reflection_inflate_method_or_ctor): New public function.
12375
12376         * reflection.h (MonoReflectionGenericInst): New typedef.        
12377
12378 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
12379
12380         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
12381         inside the domain lock. Fixes #49993.
12382         
12383         * object.c (mono_class_vtable): When typed allocation is used, 
12384         allocate vtables in the GC heap instead of in the mempool, since the
12385         vtables contain GC descriptors which are used by the collector even
12386         after the domain owning the mempool is unloaded.
12387
12388         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
12389
12390         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
12391         reflect what it does. Also invalidate mempools instead of freeing
12392         them if a define is set.
12393
12394         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
12395         of the appdomain.
12396         
12397         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
12398         hold the finalizable objects in this domain.
12399
12400         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
12401         appdomain.
12402
12403         * appdomain.c (mono_domain_set): New function to set the current
12404         appdomain, but only if it is not being unloaded.
12405
12406         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
12407         appdomain which is being unloaded.
12408         
12409         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
12410         unloading of the root appdomain.
12411
12412         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
12413         icall to execute a method in another appdomain. Intended as a 
12414         replacement for InternalSetDomain, which can confuse the code 
12415         generation in the JIT.
12416
12417         * appdomain.c (mono_domain_is_unloading): New function to determine
12418         whenever an appdomain is unloading.
12419
12420         * appdomain.c (mono_domain_unload): New function to correctly unload
12421         an appdomain.
12422
12423         * assembly.c (mono_assembly_load_references): Check that an assembly
12424         does not references itself.
12425
12426         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
12427         domain manually, it asks the finalizer thread to do it, then waits for
12428         the result. Also added a timeout.
12429
12430         * icall.c: Register the new icalls.
12431
12432         * threads.h threads.c: Export the mono_gc_stop_world and 
12433         mono_gc_start_world functions.
12434         
12435         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
12436         function to fill out the mempool with 0x2a.
12437
12438 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
12439
12440         * reflection.h (MonoReflectionMethodAux): New structure to store
12441         information which is rarely used, thus is not in the MonoMethod
12442         structure.
12443
12444         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
12445         store the aux info.
12446
12447         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
12448         and marshalling info into the aux structure.
12449
12450         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
12451         from the aux structure.
12452
12453         * loader.c (mono_method_get_param_names): Retrieve the param names from
12454         the aux structure.
12455         
12456 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
12457
12458         * exception.h exception.c: Add AppDomainUnloadedException && fix 
12459         warning.
12460
12461 2003-10-21  Dick Porter  <dick@ximian.com>
12462
12463         * socket-io.c
12464         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
12465         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
12466
12467 2003-10-21  Martin Baulig  <martin@ximian.com>
12468
12469         * reflection.c (mono_reflection_bind_generic_parameters):
12470         `klass->parent' is NULL for interfaces.
12471
12472 2003-10-21  Martin Baulig  <martin@ximian.com>
12473
12474         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12475
12476 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
12477
12478         * exception.c (mono_exception_from_name_msg): New helper function for
12479         creating exceptions and initializing their message field.
12480
12481         * exception.c: Simplify functions using the new helper.
12482
12483         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
12484         New function.
12485
12486         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
12487         mono_raise_exception, since otherwise gcc doesn't generate the function
12488         epilog for raise_exception, confusing the stack unwinding in the JIT.
12489         Fixes #45043.
12490
12491         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
12492         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
12493         Fixes #49499.
12494
12495 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12496
12497         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
12498         utf8.
12499
12500 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
12501
12502         * icall.c: Removed GetUninitializedObject method because
12503           AllocateUninitializedClassInstance does the same.
12504
12505 2003-10-18  Martin Baulig  <martin@ximian.com>
12506
12507         * class.c (inflate_generic_signature): Renamed to
12508         mono_class_inflate_generic_signature() and made it public.
12509         (my_mono_class_from_generic_parameter): New static function; if we
12510         don't already have the generic parameter's MonoClass, create a
12511         very simple one which is just used internally in the runtime and
12512         not passed back to managed code.
12513
12514         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
12515
12516         * metadata.h (MonoMethodSignature): Moved the
12517         `MonoGenericParam *gen_params' to the MonoMethodHeader.
12518         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
12519
12520         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
12521         ves_icall_MonoMethod_GetGenericArguments(); this is now an
12522         interncall on the MonoMethod class, not on MethodInfo.
12523         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
12524         calling mono_reflection_bind_generic_method_parameters() directly.
12525
12526         * loader.c (mono_method_get_signature): If this is a MethodSpec;
12527         return the already computed `method->signature'.
12528         (method_from_methodspec): New static function to load a method
12529         from a MethodSpec entry.
12530         (mono_get_method_from_token): Call the new method_from_methodspec()
12531         for MethodSpec tokens.  
12532         (mono_get_method_from_token): If we're a generic method, load the
12533         type parameters.
12534
12535         * reflection.c (mono_image_get_memberref_token): Allow
12536         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
12537         table.
12538         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
12539         (mono_image_create_token): First check whether it's a generic
12540         method (so we'd need to create a MethodSpec), then do the other
12541         two alternatives.
12542         (mono_reflection_bind_generic_method_parameters): Return a
12543         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
12544         called directly from the interncall.
12545
12546 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
12547
12548         * reflection.c (load_public_key): Move loading of the public key
12549         into managed code.
12550
12551         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
12552
12553         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
12554         fields.
12555
12556         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
12557         culture, hash_alg and public_key. Fixes #49555.
12558
12559 2003-10-17  Martin Baulig  <martin@ximian.com>
12560
12561         * class.h (MonoGenericInst): Moved this declaration here and added
12562         `MonoMethod *generic_method'.
12563
12564         * icall.c
12565         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
12566         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
12567
12568         * metadata.c (mono_metadata_type_equal): Two types of
12569         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
12570         index; ie. don't compare the address of the `MonoGenericParam'
12571         structure.
12572         (mono_metadata_load_generic_params): Removed the `MonoMethod
12573         *method' argument.
12574
12575         * metadata.h (MonoGenericInst): Moved declaration to class.h.
12576         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
12577
12578         * reflection.c (method_encode_signature): Encode the number of
12579         generic parameters.
12580         (encode_generic_method_sig): New static function.
12581         (method_encode_methodspec): New static function; creates an entry
12582         in the MethodSpec table for a generic method.
12583         (mono_image_get_methodspec_token): New static function.
12584         (mono_image_create_token): Call mono_image_get_methodspec_token()
12585         for generic methods.
12586         (mono_reflection_bind_generic_method_parameters): New public
12587         function.  Instantiates a generic method.
12588
12589 2003-10-16  Martin Baulig  <martin@ximian.com>
12590
12591         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
12592         *gen_params' here from MonoMethodHeader.
12593
12594         * metadata.c (mono_metadata_parse_method_signature): If we have
12595         generic parameters, initialize `method->gen_params' and then set
12596         the correct `type->data.generic_param' in all the parameters.
12597
12598 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
12599
12600         * threads.c (mono_threads_get_default_stacksize): New function to 
12601         return the default stacksize.
12602
12603         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
12604         termination of the finalizer thread, since the previous method had
12605         race conditions. Fixes #49628.
12606
12607         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
12608         as for the other managed threads.
12609
12610 2003-10-16  Martin Baulig  <martin@ximian.com>
12611
12612         * class.c (inflate_generic_signature): Copy `generic_param_count'
12613         and `gen_params'.
12614
12615         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
12616         New interncall.
12617
12618         * metadata.c (mono_metadata_parse_method_signature): Actually set
12619         the `method->generic_param_count' here.
12620         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
12621
12622 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
12623
12624         * object.h: Add a new field to TypedRef to simplify the implementation
12625         of the REFANY opcodes in the JIT.
12626
12627         * icall.c: Make use of the new field.
12628
12629         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
12630         dynamically.
12631
12632 2003-10-15  Martin Baulig  <martin@ximian.com>
12633
12634         * class.c (mono_class_from_gen_param): Renamed to
12635         mono_class_from_generic_parameter() and moved most of the
12636         functionality from mono_reflection_define_generic_parameter()
12637         here; ie. we create a "real" class here.
12638         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
12639         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
12640         previously been called.
12641
12642         * class.h (MonoGenericParam): Moved the declaration of this struct
12643         here from metadata.h and added `MonoMethod *method'.
12644
12645         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
12646         interncall.
12647
12648         * loader.c (mono_get_method_from_token): If we have any generic
12649         parameters, call mono_metadata_load_generic_params() to read them
12650         from the MONO_TABLE_GENERICPAR.
12651
12652         * metadata.c (mono_metadata_load_generic_params): Added
12653         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
12654
12655         * metadata.h (MonoMethodSignature): Replaced
12656         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
12657         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
12658
12659         * reflection.c (mono_reflection_define_generic_parameter): Moved
12660         most of the functionality into the new
12661         mono_class_from_generic_parameter(); set the `method' field if
12662         we're a method parameter.       
12663
12664 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12665
12666         * marshal.c (emit_struct_conv): if native size is 0
12667         emit no code.
12668
12669 2003-10-14  Martin Baulig  <martin@ximian.com>
12670
12671         * icall.c: The generics API has changed in the spec since it was
12672         added to System.Type; these modifications make it match the spec
12673         again.
12674         (ves_icall_Type_GetGenericParameters): Renamed to
12675         `ves_icall_Type_GetGenericArguments'.
12676         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12677         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12678         `ves_icall_MonoType_get_HasGenericArguments'.
12679         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12680         `ves_icall_MonoType_get_IsGenericParameter'.
12681         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12682         this is no interncall anymore.
12683         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12684         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12685
12686 2003-10-14  Martin Baulig  <martin@ximian.com>
12687
12688         * reflection.c (mono_reflection_bind_generic_parameters): Also
12689         inflate generic methods if we're reading the class from IL.
12690
12691 2003-10-13  Martin Baulig  <martin@ximian.com>
12692
12693         * reflection.c (mono_reflection_define_generic_parameter): This
12694         method isn't called directly from the icall anymore; take a
12695         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12696         method generic parameters.
12697         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12698         (method_builder_encode_signature): Encode generic parameters.
12699         (mono_image_get_method_info): Write generic params to the
12700         MONO_TABLE_GENERICPARAM table.
12701
12702         * reflection.h (MonoReflectionMethodBuilder): Added
12703         `MonoArray *generic_params'.
12704
12705         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12706
12707         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12708         wrapper for mono_reflection_define_generic_parameter().
12709         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12710
12711 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12712
12713         * marshal.h: Add missing function to fix build.
12714
12715         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12716         the SetLastError pinvoke attribute.
12717
12718         * marshal.c (mono_marshal_set_last_error): New helper function called
12719         by the generated code.
12720         
12721         * marshal.c (mono_mb_emit_branch): New helper function.
12722
12723         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12724
12725         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12726         classes as parameters and return values of delegates. Fixes #29256. 
12727
12728 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12729
12730         * locales.c: use gint32 in non HAVE_ICU case
12731
12732 2003-10-11  Martin Baulig  <martin@ximian.com>
12733
12734         * mono-debug.c (mono_debug_add_method): Added a workaround for
12735         bug #48591.
12736
12737 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12738
12739         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12740         delegates passed to native code must use the STDCALL calling 
12741         convention. Fixes #35987.
12742
12743 2003-10-10  Martin Baulig  <martin@ximian.com>
12744
12745         * class.c (inflate_generic_type): If we're inflating for a generic
12746         type instance (and not for a generic method), return
12747         MONO_TYPE_MVAR unchanged.
12748
12749 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12750
12751         * string-icalls.c: Join ignores null strings in the source array.
12752         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12753         * threads.c: GetAvailableTheads is slightly more accurate.
12754
12755 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12756
12757         * threads.h threads.c : add mono_threads_set_default_stacksize
12758         and pass default to CreateThread calls.
12759
12760 2003-10-09  Dick Porter  <dick@ximian.com>
12761
12762         * icall.c:
12763         * locales.h:
12764         * locales.c: Internal calls for constructing CultureInfo and
12765         related objects from libicu (if its available.)
12766
12767 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12768
12769         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12770
12771 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12772
12773         * threadpool.c: added an argument to async_invoke_thread that is the
12774         item to process, pass the MonoAsyncResult to the thread start function
12775         when creating a new thread. This way we don't need to acquire any lock
12776         when we're creating a new thread. Readded a semaphore for faster
12777         response times (instead of that Sleep i added).
12778
12779 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12780
12781         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12782         get daylight change dates better on Windows, fix handling
12783         of platforms without tm_gmtoff.
12784
12785 2003-10-06  Martin Baulig  <martin@ximian.com>
12786
12787         * class.c (inflate_generic_method): Renamed to
12788         mono_class_inflate_generic_method() and made public.
12789         (mono_class_init): Don't inflate the generic methods here.
12790         (mono_class_from_generic): Added `gboolean inflate_methods'
12791         argument.  Inflate the methods here.
12792
12793         * loader.c (mono_method_get_param_names): Ignore instances of
12794         generic types for the moment.
12795
12796         * reflection.c (fixup_method): Added support for inflated methods.
12797         (mono_image_create_token): Use mono_image_get_methodref_token()
12798         for inflated methods.
12799         (mono_custom_attrs_from_param): Ignore instances of generic types
12800         for the moment.
12801         (mono_reflection_bind_generic_parameters): New public function.
12802         Moved all the functionality from
12803         ves_icall_Type_BindGenericParameters() here and added support for
12804         dynamic types.
12805         (mono_reflection_define_generic_parameter): Initialize
12806         `klass->methods' here.
12807
12808         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12809         functionality into mono_reflection_define_generic_parameter().
12810         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12811         TypeBuilder, return that TypeBuilder.
12812
12813 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12814
12815         * appdomain.c: removed mono_delegate_semaphore.
12816
12817         * threadpool.c:
12818         (mono_thread_pool_add): moved hash table creation inside and the thread 
12819         creation outside of the critical region.
12820         (mono_thread_pool_finish): removed obsolete code.
12821         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12822         continue or exit the thread depending on the queue.
12823
12824 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12825
12826         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12827         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12828         handle more bool marshalling options
12829
12830 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12831
12832         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12833         arrays of structs. Also add a more descriptive error message when
12834         a structure member is marshalled as LPArray.
12835
12836 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12837
12838         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12839         marshalling arrays of complex types. Fixes #29098. Also remove an
12840         usused and incomplete function.
12841
12842 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12843
12844         * gc.c: report heap_size - free_bytes as total memory allocated
12845         (bug#49362).
12846
12847 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
12848
12849         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
12850         fix timezone handling problems on Windows.
12851         
12852         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
12853         asserts when the year is outside the range handled by ms the functions.
12854
12855         * class.c (setup_interface_offsets): If the class is an interface,
12856         fill out its interface_offsets slot.
12857
12858 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12859
12860         * threadpool.c: mark threadpool threads as background.
12861
12862 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
12863
12864         * decimal.c - define DECINLINE to nothing if not using GCC
12865
12866 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
12867
12868         * assembly.c: More refcount fixes.
12869
12870 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12871
12872         * string-icalls.c: if we're not trimming, return the same string.
12873         When not splitting, don't create a new string.
12874
12875 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12876
12877         * image.c:
12878         (mono_image_open): increment the ref_count inside the critical section.
12879
12880 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
12881
12882         * image.c (mono_image_open): Fix reference counting bug.
12883
12884 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
12885
12886         * marshal.c (mono_marshal_type_size) struct alignment changed for 
12887         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
12888         64bits. Avoid leak in mono_marshal_get_native_wrapper when
12889         mono_lookup_pinvoke_call throws.        
12890
12891 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
12892
12893         * reflection.c (mono_reflection_parse_type): Fix #49114.
12894
12895         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
12896         temporary workaround for cygwin header problem.
12897
12898         * object.c (mono_object_isinst): Synchronize this with the code
12899         generated by the JIT for casts.
12900
12901 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
12902
12903         * reflection.c (encode_type): Fix #38332.
12904
12905 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
12906
12907         * marshal.c (mono_marshal_method_from_wrapper): New function to return
12908         the original method from the wrapper method.
12909
12910 2003-09-25  Martin Baulig  <martin@ximian.com>
12911
12912         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
12913         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
12914         (ves_icall_Type_get_IsGenericInstance): New interncall.
12915
12916 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
12917
12918         * object.c: fix cast warning in big endian code.
12919
12920 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
12921
12922         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
12923         
12924 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12925
12926         * assembly.c: don't call check_env from mono_assembly_load. It's
12927         already done once in mono_assemblies_init and may cause headaches when
12928         multiple threads are loading assemblies.
12929
12930 2003-09-19  Martin Baulig  <martin@ximian.com>
12931
12932         * reflection.c (mono_reflection_define_generic_parameter): Don't
12933         allocate `klass->methods', set `klass->flags' to
12934         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
12935
12936 2003-09-18  Martin Baulig  <martin@ximian.com>
12937
12938         * class.c (mono_class_init): Don't create `class->methods' if it's
12939         already initialized.
12940
12941         * metadata.c (mono_metadata_load_generic_params): Make this
12942         actually work.
12943
12944         * reflection.c (mono_reflection_define_generic_parameter): Set
12945         parent class and interfaces from the constraints.
12946
12947         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
12948         to keep this struct in sync with the declaration in TypeBuilder.cs.
12949
12950 2003-09-17  Martin Baulig  <martin@ximian.com>
12951
12952         * metadata.h (MonoType): Replaced the data's `int type_param'
12953         field with `MonoGenericParam *generic_param'.
12954         (MonoGenericParam): Added `MonoClass *klass'.
12955
12956         * class.c (mono_class_from_gen_param): Removed the
12957         `MonoImage *image' and `int type_num' arguments.
12958
12959         * metadata.c (mono_metadata_parse_generic_param): New static
12960         method; creates a MonoGenericParam which just contains the index.
12961         (do_mono_metadata_parse_type): Call
12962         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
12963         MONO_TYPE_MVAR.
12964
12965         * reflection.c (mono_image_typedef_or_ref): Generic type
12966         parameters may be in the same assembly, but never use a typedef
12967         for them.
12968         (mono_reflection_define_generic_parameter): We're now creating a
12969         "real" class for the type parameter; it's now safe to call
12970         mono_class_from_mono_type() on the class'es type, it'll do the
12971         right thing.
12972
12973 2003-09-16  Martin Baulig  <martin@ximian.com>
12974
12975         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
12976         `symfile->range_entry_size' and `symfile->class_entry_size' here;
12977         the `symfile' data structure must be fully initialized before it
12978         gets added to the table.
12979
12980 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
12981
12982         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
12983
12984         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
12985         class init trampolines.
12986
12987 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
12988
12989         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
12990         to the built-in profiler to turn off time and allocation profiling
12991         respectively.
12992
12993 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
12994
12995         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
12996         g_direct_equal.
12997
12998         * debug-helpers.c (mono_method_full_name): Print the wrapper type
12999         in human readable form.
13000
13001 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
13002
13003         * reflection.c icall.c: Fixed warnings.
13004
13005         * image.c (load_class_names): Use a temporary hash table to hold the
13006         namespaces in order to avoid doing many string comparisons.
13007
13008         * image.h: Fix typo.
13009
13010         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
13011         Pass NULL instead of g_direct_equal to the GHashTable constructor 
13012         since the NULL case is short-circuited inside g_hash_table_lookup, 
13013         leading to better performance.  
13014
13015         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
13016         obtain the first custom attribute for a given index. Depends on the
13017         CustomAttribute table being sorted by the parent field.
13018
13019         * reflection.c (mono_custom_attrs_from_index): Use the new function 
13020         for better performance.
13021
13022 2003-09-07  Martin Baulig  <martin@ximian.com>
13023
13024         * class.c (mono_class_init): If we're a generic instance, inflate
13025         all our methods instead of loading them from the image.
13026         (mono_class_from_generic): Set `class->methods = gklass->methods'.
13027
13028 2003-09-07  Martin Baulig  <martin@ximian.com>
13029
13030         * mono-debug-debugger.c: Added support for constructors.
13031
13032 2003-09-06  Martin Baulig  <martin@ximian.com>
13033
13034         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
13035         New interncall.
13036
13037         * reflection.c (mono_reflection_setup_generic_class): Call
13038         ensure_runtime_vtable() to create the vtable.
13039
13040 2003-09-05  Martin Baulig  <martin@ximian.com>
13041
13042         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
13043         MONO_TYPE_MVAR.
13044
13045 2003-09-04  Martin Baulig  <martin@ximian.com>
13046
13047         * reflection.c (mono_reflection_define_generic_parameter): Generic
13048         parameters start with zero.
13049
13050 2003-09-04  Martin Baulig  <martin@ximian.com>
13051
13052         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13053
13054         * reflection.h (MonoReflectionGenericParam): New typedef.
13055         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
13056         the generic parameters from the managed TypeBuilder.
13057
13058         * reflection.c (mono_reflection_define_generic_parameter): New function.
13059         (mono_reflection_create_runtime_class): Encode generic parameters.
13060         (mono_reflection_setup_generic_class): New function; this is
13061         called after adding adding all generic params to the TypeBuilder.
13062         (encode_type): Added MONO_TYPE_VAR.
13063
13064 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
13065
13066         * class.h class.c (mono_class_needs_cctor_run): Moved this method
13067         here from the JIT.
13068
13069         * assembly.h assembly.c: Moved the AOT loading code into an assembly
13070         load hook.
13071
13072 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
13073
13074         * reflection.h reflection.c class.h class.c: Delete duplicate 
13075         definition of mono_type_get_name () from reflection.c and export the
13076         one in class.c.
13077
13078         * class.c: Class loading fixes from Bernie Solomon 
13079         (bernard@ugsolutions.com).
13080
13081         * reflection.c: Endianness fixes from Bernie Solomon 
13082         (bernard@ugsolutions.com).
13083         
13084 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
13085
13086         * assembly.h assembly.c: Define a file format version for AOT
13087         libraries.
13088         
13089         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
13090
13091         * appdomain.h (MonoJitInfo): New field to determine whenever the
13092         code is domain neutral.
13093         
13094 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
13095
13096         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
13097
13098 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
13099
13100         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
13101         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
13102         Avoid caching the result since strings must be domain specific. Fixes
13103         #48050.
13104
13105 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
13106
13107         * marshal.c (mono_marshal_init): Make this callable multiple times
13108         since it is hard to find a correct place to call it.
13109
13110         * object.c (mono_runtime_class_init): Execute static constructors in
13111         the correct appdomain.
13112
13113         * image.c (build_guid_table): Handle the case when multiple images have
13114         the same GUID.
13115
13116 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13117
13118         * icall.c: added a couple of icalls for System.Web.
13119
13120 2003-08-28  Martin Baulig  <martin@ximian.com>
13121
13122         * icall.c (ves_icall_Type_BindGenericParameters): Use
13123         `klass->generic_inst' instead of `&klass->byval_arg' in the
13124         mono_type_get_object() call.  The returned type must be
13125         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
13126
13127 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
13128
13129         * NOTES: New file.
13130
13131         * object.c (mono_class_proxy_vtable): Make it thread safe.
13132
13133         * pedump.c: Fix warning.
13134
13135         * object.c appdomain.h: Get rid of metadata_section. 
13136         It is no longer needed and it was causing deadlocks with domain->lock.
13137
13138         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
13139
13140 2003-08-26  Martin Baulig  <martin@ximian.com>
13141
13142         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
13143
13144 2003-08-26  Martin Baulig  <martin@ximian.com>
13145
13146         * pedump.c (main): Call mono_metadata_init(),
13147         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
13148         and mono_loader_init().
13149
13150 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
13151
13152         * loader.h: Add missing include to fix build.
13153
13154         * image.h: mono_image_load_references is no more.
13155
13156         * assembly.c: Reworked assembly loading to make it really thread safe.
13157         After these changes, the assembly returned by mono_assembly_open is
13158         fully initialized, i.e. all its references assemblies are loaded.
13159
13160         * assembly.c (mono_image_load_references): Renamed to 
13161         mono_assembly_load_references, and made private, since clients no
13162         longer need to call it.
13163
13164         * class.c: Removed calls to mono_assembly_load_references, since it was
13165         a source of deadlocks.
13166
13167         * loader.h loader.c class.h class.c: Protect data structures using a 
13168         new lock, the loader lock.
13169
13170         * class.c (mono_class_setup_vtable): Create temporary hash tables and
13171         GPtrArrays only when needed.
13172
13173         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
13174         into empty structures by mcs. Fixes pinvoke7.cs.
13175         
13176         * domain.c (mono_init): Call a new initialization function.
13177
13178         * appdomain.c (mono_runtime_init): Call the new initializer function
13179         of the marshal module.
13180
13181         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
13182         inserted into empty structures by mcs. Fixes pinvoke7.cs.
13183
13184         * marshal.h marshal.c: Added locks around the wrapper caches to make
13185         this module thread safe.
13186
13187         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
13188         this argument. Fixes pinvoke1.exe.
13189
13190 2003-08-25  Lluis Sanchez <lluis@ximian.com>
13191
13192         * object.h: Added call_type field to MonoMethodMessage and the corresponding
13193         enumeration of values. Removed fields to store remote call output values in
13194         MonoAsyncResult. Not needed any more.
13195         * object.c: Initialize call_type and async_result fields in mono_message_init.
13196         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
13197         dispatching the message.
13198         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
13199         async call to finish. To do it use a message with EndInvoke call type.
13200
13201 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
13202
13203         * loader.h loader.c (mono_method_hash_marhal_info): New function which
13204         determines whenever a method has marshalling info.
13205
13206 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13207
13208         * assembly.c: fix the build on windows.
13209
13210 2003-08-22 Lluis Sanchez <lluis@ximian.com>
13211
13212         * object.cs: Fixed bug #47785.
13213
13214 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
13215
13216         * string-icalls.c (StringReplace): If their are no occurances of
13217         the old string found return a reference to the supplied
13218         string. This saves some memory and matches MS behavoir.
13219         
13220 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13221
13222         * socket-io.c: fixed compilation for systems that define AF_INET6
13223         and don't define SOL_IP/SOL_IPV6.
13224
13225 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
13226
13227         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
13228         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
13229
13230         * rawbuffer.c rawbuffer.h: Make this module thread safe.
13231
13232         * domain.c: Make this module thread safe.
13233
13234         * domain.c (mono_init): Call new initialization function.
13235
13236         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
13237         reference types too. Fixes #38812.
13238
13239         * image.c (mono_image_init): Fixed warnings.
13240
13241         * class.c (mono_class_from_typeref): Handle assembly load failure
13242         correctly.
13243
13244         * appdomain.c (add_assemblies_to_domain): Handle the case when
13245         the references of an assembly are not yet loaded.
13246
13247         * metadata.c image.c assembly.c: Moved initialization of global
13248         variables to a separate function called at startup since lazy 
13249         initialization of these variables is not thread safe.
13250         
13251         * image.c assembly.c: Made this module thread safe by adding locks in 
13252         the appropriate places.
13253
13254         * domain.c (mono_init): Call the new initialization functions of the
13255         three modules.
13256
13257 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
13258
13259         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
13260           make a direct call. It is proxy's work to make the call asynchronous.
13261           mono_delegate_end_invoke(): If the targe is a proxy, just collect
13262           the return values.
13263         * object.cs: mono_method_call_message_new(): read AsyncResult and
13264           state object from parameters list, if this info is requested.
13265         * object.h: Added fields to store remote call output values in
13266           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
13267
13268 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13269
13270         * object.h: add needed fields to MonoThread.
13271         * threads.c, threads.h: allow registering a function to cleanup data
13272         allocated per thread by the JIT.
13273
13274 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13275
13276         * loader.h: portability fix by Bernie Solomon
13277         * <bernard@ugsolutions.com>.
13278
13279 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
13280
13281         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
13282         return a MonoArray. This simplifies the code and also ensures that
13283         the cache allways contains an object reference as a value.
13284
13285         * icall.c (ves_icall_get_parameter_info): Simplified using the new
13286         function.
13287
13288 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13289
13290         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
13291         fixes a problem with byte ordering when getting the address family for
13292         a socket.
13293
13294 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
13295
13296         * .cvsignore: Added monosn.
13297
13298         * reflection.h reflection.c loader.c: Added support for parameter
13299         marshalling to dynamically created types. Fixes #47295.
13300
13301 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
13302
13303         * rand.c: remove useless warnings.
13304
13305 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13306
13307         * class.c: implemented ldtoken for methods and fieldrefs.
13308
13309 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13310
13311         * threadpool.c: when mono_async_invoke was called, no one took care of
13312         monitoring the queue. So if the method invoked took some time and we
13313         got new async invoke requests after 500 ms (the thread created waited
13314         that long in WaitForSingleObject), the new async invoke was not called
13315         until the previous one finished.
13316
13317         This is fixed now. Thanks to Totte for helping with it.
13318
13319 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13320
13321         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
13322
13323 2003-08-11  Martin Baulig  <martin@ximian.com>
13324
13325         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
13326
13327 2003-08-06  Martin Baulig  <martin@ximian.com>
13328
13329         * mono-debug-debugger.c: Added support for static fields,
13330         properties and methods.
13331
13332 2003-08-06  Martin Baulig  <martin@ximian.com>
13333
13334         * mono-debug-debugger.c: Don't store the MonoString's vtable to
13335         make this work for applications with multiple application domains.
13336
13337 2003-08-04  Martin Baulig  <martin@ximian.com>
13338
13339         * mono-debug-debugger.c: Completely reworked the type support; the
13340         most important thing is that we're now just using one single
13341         `MonoType' instance per type.
13342
13343 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
13344
13345         * mono-endian.h, mono-endian.c, icall.c: Added icall
13346         ves_icall_System_Double_AssertEndianity to assert double word endianity
13347         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
13348
13349 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13350
13351         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
13352         support, icalls and fixes.
13353
13354 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
13355
13356         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
13357         classes that are a punctuation character in .NET is not the same a
13358         g_unichar_ispunct.
13359
13360 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13361
13362         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
13363
13364 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
13365
13366         * icall.c: Add new MemCopy internalcall.
13367         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
13368         Simplified code; It is not necessary to handle all the cases here,
13369         as the C# code takes care of it.  Only handle the case of the name
13370         resource embedded into the assembly.
13371
13372         Changed signature to return the data pointer and the size of the
13373         data. 
13374
13375 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
13376
13377         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
13378         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
13379
13380 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13381
13382         * socket-io.c: ignore EINTR error in select.
13383
13384 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13385
13386         * class.h, class.c: removed unused subclasses field in MonoClass.
13387
13388 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13389
13390         * icall.c: improve fix of get_base_definition(). If the parent class
13391           doesn't have the mehod, look at the parent of the parent.
13392         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
13393           to check if a parameter is an in or out parameter
13394           (PARAM_ATTRIBUTE_IN is not set by default).
13395           mono_method_return_message_restore(): Use mono_class_value_size to
13396           get the size of a value type. mono_type_stack_size (parameterType)
13397           does not return the correct value if parameterType is byRef.
13398           mono_load_remote_field(), mono_load_remote_field_new(),
13399           mono_store_remote_field(), mono_store_remote_field_new():
13400           raise exception if the remote call returns an exception.
13401
13402 2003-07-28  Martin Baulig  <martin@ximian.com>
13403
13404         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
13405         method.  This is a wrapper around mono_runtime_invoke() which
13406         boxes the instance object if neccessary.
13407
13408 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13409
13410         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
13411         metadata.h, row-indexes.h, verify.c: first cut of generics support.
13412
13413 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13414
13415         * icall.c: disable mcs bug workaround.
13416
13417 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
13418
13419         * object.c (mono_runtime_class_init): Take the metadata_section
13420         mutex before obtaining the domain mutex.
13421
13422         * appdomain.h: Added definition of metadata_section mutex here. 
13423
13424         * object.c: define metadata_mutex here.
13425
13426 2003-07-24  Ravi Pratap  <ravi@ximian.com>
13427
13428         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
13429         fixed.
13430
13431 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
13432
13433         * reflection.c: Fix bug #46669
13434
13435 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13436
13437         * exception.c:
13438         * exception.h:
13439         * icall.c:
13440         * object.h: fill in the type name for TypeLoadException.
13441
13442 2003-07-23  Ravi Pratap  <ravi@ximian.com>
13443
13444         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
13445         relationship between TypeBuilders while compiling corlib) and bug
13446         45993 (Array types returned from the runtime while compiling
13447         corlib were from the loaded corlib).
13448
13449 2003-07-22  Martin Baulig  <martin@ximian.com>
13450
13451         * mono-debug-debugger.c: Reworked the type support a bit more;
13452         distinguish between types and classes.
13453
13454 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
13455
13456         * icall.c: add IsArrayImpl icall.
13457
13458 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
13459
13460         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
13461         initializing real_size only once. Also fix bug #46602.
13462
13463 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
13464
13465         * object.c: Renamed mono_metadata_section to metadata_section.
13466
13467 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
13468
13469         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
13470           empty array if the type is an array. Fixed.
13471           ves_icall_MonoMethod_get_base_definition: if the base method
13472           is abstract, get the MethodInfo from the list of methods of
13473           the class.
13474         * reflection.c: ParameterInfo.PositionImpl should be zero-based
13475           and it was 1-based. Fixed in mono_param_get_objects.
13476
13477 2003-07-20  Martin Baulig  <martin@ximian.com>
13478
13479         * mono-debug.h: Set version number to 31.
13480         (mono_debug_init): Added `MonoDomain *' argument.
13481
13482         * mono-debug-debugger.c: Reworked the type support; explicitly
13483         tell the debugger about builtin types; pass the `klass' address to
13484         the debugger.
13485
13486 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
13487
13488         * image.c: Allow new metadata tables to be loaded without a
13489         warning. Also update the warning message to give the new constant value.
13490                 
13491 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
13492
13493         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
13494         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
13495         array type representation changes.
13496
13497 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13498
13499         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
13500         on Environment.Exit () call.
13501
13502 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13503
13504         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
13505         requires a matching corlib.
13506
13507 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13508
13509         * Changelog: My editor decided to add a CR to each line. Sorry about that.
13510           Committed again without the CRs.
13511         
13512 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13513
13514         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
13515           getting it from the "this" socket instance. Did not work
13516           if the socket is a subclass of Socket.
13517           Also fixed bug #35371.
13518
13519 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13520
13521         * metadata.c: fixed size for TypedByRef.
13522         * loader.c: when searching for a method, consider the vararg amrker.
13523         * unicode.c, decimal.c: constify some arrays.
13524
13525 2003-07-15  Dick Porter  <dick@ximian.com>
13526
13527         * socket-io.c: Fixed compilation for gcc < 3.2.
13528
13529         Fixed compilation for machines that don't have AF_INET6 (thanks to
13530         Bernie Solomon <bernard@ugsolutions.com> for that part.)
13531
13532         Fixed compile warnings.
13533         
13534         Fixed formatting and line endings.
13535
13536 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
13537
13538         * socket-io.h:
13539         * socket-io.c: Added IPv6 support.
13540
13541 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
13542
13543         * class.c (mono_class_is_assignable_from): New function to implement
13544         the is_assignable_from logic. Used by mono_object_isinst, 
13545         Type::IsAssignableFrom () and the interpreter.
13546
13547         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
13548         Object, even interfaces.
13549         
13550         * object.c (mono_object_isinst): Implement in terms of 
13551         is_assignable_from.
13552
13553         * icall.c (ves_icall_type_is_assignable_from): New icall.
13554
13555 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
13556
13557         * domain.c (foreach_domain): fix compiler warning.
13558
13559 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
13560
13561         * image.c (load_metadata_ptrs): use g_strndup because strndup is
13562         not available on all plattforms
13563
13564 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
13565
13566         * image.h image.c: Store the metadata version string in MonoImage.
13567         * icall.c: New icall to retrieve the image version.
13568         * reflection.c (create_dynamic_image): Fill in the image version field
13569         * reflection.c (build_compressed_metadata): Use the image version
13570         from the image structure.
13571
13572 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13573
13574         * appdomain.c: modified comment.
13575         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
13576         That will be its last iteration when mono_gc_cleanup is called from
13577         mono_runtime_cleanup and before the domain is unloaded.
13578
13579         Fixes bug #45962.
13580
13581 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
13582
13583         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
13584         attributes.
13585
13586 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13587
13588         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
13589         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
13590         Bernie Solomon <bernard@ugsolutions.com>.
13591
13592 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13593
13594         * object.c, object.h: provide mono_object_new_fast() for faster
13595         allocation in some special cases.
13596
13597 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
13598
13599         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
13600         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
13601
13602 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
13603
13604         * threadpool.c: fix leaks.
13605
13606 2003-07-01  Dick Porter  <dick@ximian.com>
13607
13608         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
13609         using MonoGHashTables.  Fixes threadpool bug posted to list.
13610
13611 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13612
13613         * image.h, image.c: added support to load an assembly from a byte array.
13614         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
13615         assembly bundle support.
13616
13617 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
13618
13619         * threadpool.c (mono_thread_pool_add): keep a reference to the
13620         AsyncResult to prevent GC
13621
13622 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13623
13624         * class.c: leak fix.
13625
13626 2003-06-25  Dick Porter  <dick@ximian.com>
13627
13628         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
13629         for the async object, the WaitHandle object will close the handle.
13630         Fixes bug 45321.
13631
13632 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13633
13634         * class.c: in mono_array_class_get (), lookup from the hash with the
13635         same type we insert: this works around a bug in
13636         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
13637         lluis. The real fix will have to wait for after the release.
13638
13639 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13640
13641         * icall.c: fix memory leak when getting type members.
13642
13643 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13644
13645         * reflection.c: added more pubtoken special cases.
13646
13647 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
13648
13649         * class.c: handle field offset correctly when class size
13650         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
13651
13652 2003-06-20  Martin Baulig  <martin@ximian.com>
13653
13654         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
13655         *image' field.
13656
13657 2003-06-20  Martin Baulig  <martin@ximian.com>
13658
13659         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
13660
13661 2003-06-20  Martin Baulig  <martin@ximian.com>
13662
13663         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13664         just distinguish between variables in registers and variables at
13665         an offset relative to a register.
13666
13667 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13668
13669         * icall.c: #ifdef out latest changes until mcs is fixed.
13670
13671 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13672
13673         * icall.c: return members in metadata order.
13674
13675 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13676
13677         * icall.c: avoid infinite loop in GetTimeZoneData.
13678
13679 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13680
13681         * icall.c: added Marshal.Prelink/All icalls.
13682
13683 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13684
13685         * object.c, object.h: fix warnings and do some overflow checking
13686         when creating arrays.
13687
13688 2003-06-17  Dick Porter  <dick@ximian.com>
13689
13690         * file-io.h:
13691         * file-io.c: File attributes need to be tweaked slightly when
13692         passed from the managed to the w32 world.
13693
13694 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13695         * profiler.h profiler-private.h profiler.c: Rework last patch
13696         based on suggestion by Paolo.
13697         
13698 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13699
13700         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13701         instruction level coverage data collection.
13702         * profiler.h profiler.c (: Added new callback function which can be
13703         used by the profiler to limit which functions should have coverage
13704         instrumentation.
13705         * profiler.c (mono_profiler_load): Call g_module_build_path to
13706         generate the file name of the profiler library.
13707
13708 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13709
13710         * profiler.c, profiler.h, profiler-private.h: added basic block 
13711         coverage profiling API.
13712
13713 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13714
13715         * reflection.c (mono_reflection_create_runtime_class): Add support
13716         for events in dynamically generated code.
13717
13718         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13719         not allocated.
13720
13721 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13722
13723         * icall.c: when getting timezone info, return reasonable values if we
13724         can't get the actual data.
13725
13726 2003-06-14  Dick Porter  <dick@ximian.com>
13727
13728         * threads.c (start_wrapper): Remove the reference to the thread
13729         object in the TLS data, so the thread object can be finalized.
13730         This won't be reached if the thread threw an uncaught exception,
13731         so those thread handles will stay referenced :-( (This is due to
13732         missing support for scanning thread-specific data in the Boehm GC
13733         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13734
13735 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13736
13737         * reflection.c: ensure streams and tables are first allocated with
13738         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13739
13740 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13741
13742         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13743
13744 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13745
13746         * reflection.c (mono_reflection_create_runtime_class): Add support for
13747         properties to dynamically created classes.
13748         * reflection.c: Fix a few places where non-MonoObjects were inserted
13749         into the tokens hashtable.
13750
13751 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13752
13753         * object.c: some support to handle out of memory exceptions.
13754
13755 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13756
13757         * marshal.c (mono_marshal_get_native_wrapper): support reference
13758         return types
13759
13760 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13761
13762         * object.h, object.c: more portability stuff from Bernie Solomon.
13763         Unexport mono_object_allocate(). Added mono_object_unbox ().
13764         Set exitcode when an unhandled exception is thrown.
13765
13766 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13767
13768         * marshal.c (mono_marshal_get_native_wrapper): use custom
13769         marshaler for return types.
13770
13771 2003-06-10  Dick Porter  <dick@ximian.com>
13772
13773         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13774         ip_mreq is available
13775
13776 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13777
13778         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13779         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13780         by Bernie Solomon <bernard@ugsolutions.com>.
13781
13782 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13783
13784         * gc.c (mono_gc_init): Avoid error message on shutdown when
13785         GC_DONT_GC=1 is used.
13786
13787         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13788         New icall to return the GUID of a module.
13789
13790 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13791
13792         * class.c: ensure instance size always includes the parent's size
13793         even whem class size is set explicitly (fixes bug#44294).
13794
13795 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13796
13797         * profiler.h, profiler.c: made the simple profiler thread-safe,
13798         get more accurate timing info. Allow the loading of an
13799         externally-developed profiler module.
13800
13801 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13802
13803         * marshal.c (mono_marshal_get_native_wrapper): improved
13804         class/byref arguments.
13805         (mono_marshal_get_native_wrapper): better string marshaling support.
13806
13807 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13808
13809         * class.c: ensure .pack and .size are handled correctly and
13810         simplified layout of static fields.
13811
13812 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13813
13814         * appdomain.c
13815         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13816
13817         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13818         current directory (fix bug 44008)
13819
13820 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13821
13822         * marshal.c (mono_marshal_get_native_wrapper): started support for
13823         custom marshalers.
13824         (mono_delegate_to_ftnptr): consider marshalling specifications
13825
13826 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13827
13828         * reflection.c, reflection.h: emit custom marshal info.
13829
13830 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13831
13832         * object.c: free the GError.
13833         * icall.c: added CloseEvent_internal.
13834         * threads.[ch]:
13835         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13836         call.
13837
13838 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13839
13840         * loader.c (mono_method_get_signature): Add support for dynamic
13841         assemblies.
13842
13843 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
13844
13845         * reflection.c: fixed bug #43905.
13846
13847 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13848
13849         * class.c, domain.c, icall.c, metadata.h, object.h: support for
13850         handling TypedReference and ArgIterator.
13851         * loader.c, loader.h: added function to get signature at call site.
13852
13853 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13854
13855         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
13856         data readonly. Buglets and warning fixes. Some MethodSpec support.
13857
13858 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13859
13860         * class.h, class.c, object.c: remove relative numbering support.
13861
13862 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
13863
13864         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
13865         free the string, until we get a chance to fix Gtk#
13866
13867 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13868
13869         * marshal.c: revert last patch.
13870
13871 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
13872
13873         * icall.c: updates for new mono_class_vtable() not calling
13874         the type constructor anymore.
13875
13876 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13877
13878         * object.h, object.c: separate vtable creation from type
13879         initialization. Make running the .cctor thread safe.
13880
13881 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
13882
13883         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
13884
13885 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
13886
13887         * loader.c (mono_get_method): consider calling convention
13888
13889 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
13890
13891         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
13892         to return the invisible global type for a module.
13893
13894         * reflection.c (mono_image_build_metadata): Emit global fields too.
13895
13896 2003-05-20  Peter Williams  <peterw@ximian.com>
13897
13898         * loader.c (mono_lookup_internal_call): Add a few newlines.
13899
13900 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
13901
13902         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
13903         literal strings.
13904
13905         * appdomain.c (set_domain_search_path): Recalculate search path when
13906         AppDomainSetup.PrivateBinPath changes.
13907
13908         * object.c (mono_class_compute_gc_descriptor): It turns out some
13909         parts of the class libs (like System.Thread) holds pointers to
13910         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
13911         to treat native int a pointer type here.
13912         
13913 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
13914
13915         * appdomain.h, domain.c: add hashtable for jump target resolution.
13916
13917 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
13918
13919         * reflection.h reflection.c icall.c: Added new icalls 
13920         GetManifestResourceInfoInternal, GetModulesInternal and support
13921         infrastructure.
13922
13923 2003-05-16  Dick Porter  <dick@ximian.com>
13924
13925         * icall.c:
13926         * file-io.h:
13927         * file-io.c: Implement System.IO.MonoIO::GetTempPath
13928
13929 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
13930
13931         * object.c: mono_store_remote_field: little fix to previous patch.
13932
13933 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13934
13935         * class.c: add constructors to array classes.
13936         * icall.c: special case array construction for InternalInvoke (),
13937
13938 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
13939
13940         * class.h class.c reflection.c object.c: Added support for field
13941         defaults in dynamically generated classes.
13942
13943 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
13944
13945         * reflection.c: properly encode charset for ddlimport.
13946
13947 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
13948
13949         * threads.c: allow compiling without GC.
13950
13951 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13952
13953         * appdomain.h, object.c, object.h, threads.c, threads.h: added
13954         handling of thread static data.
13955
13956 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13957
13958         * reflection.h, reflection.c: added mono_custom_attrs_free ().
13959
13960 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
13961
13962         * class.c (mono_array_class_get): always set the serializable flags
13963         (mono_array_class_get): always set the SEALED attribute for array types
13964
13965 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
13966
13967         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
13968         attributes (fix for bug 42021).
13969
13970 2003-05-12  Dick Porter  <dick@ximian.com>
13971
13972         * gc.c: Don't run finalizers when the finalizer thread is
13973         finishing up, because the default domain has already been
13974         destroyed.
13975
13976 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
13977
13978         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
13979         value is null, we should throw an exception.   This is slightly
13980         different than the other conventions used for the constructor.
13981
13982 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13983
13984         * socket-io.c: fixed windows build.
13985
13986 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13987
13988         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
13989
13990 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
13991
13992         * object.c (mono_string_new_wrapper): Compatibility fix for MS
13993         compilers.
13994
13995 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
13996
13997         * class.c (mono_class_layout_fields): Add experimental GC aware
13998         auto layout facility. Requires class library changes to work correctly.
13999
14000         (mono_class_setup_vtable): Avoid overriding explicit interface
14001         method implementations. Fixes iface3.exe test.
14002
14003         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
14004         object reference.
14005         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
14006         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
14007
14008         * metadata.h: Add new type classification macro which determines
14009         whenever the type holds an object reference.
14010
14011 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
14012
14013         * marshal.c (mono_marshal_get_native_wrapper): cleanups
14014
14015 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
14016
14017         * gc.c (finalizer_thread): Work around a GC bug.
14018
14019 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
14020
14021         * marshal.c (emit_struct_conv): allow unions
14022
14023         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
14024
14025 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
14026
14027         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
14028
14029 2003-05-06  Martin Baulig  <martin@ximian.com>
14030
14031         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
14032
14033 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14034
14035         * socket-io.c:
14036         (Select_internal): allow NULLs, don't create arrays if not needed.
14037         Coupled with Socket.cs changes.
14038
14039         * threadpool.c:
14040         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
14041         register a finalizer for it that will close the semaphore handle. This
14042         fixes the leak and make Lupus' test run with > 4080 loops.
14043
14044 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
14045
14046         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
14047         Jerome Laban (bug #42287)
14048
14049 2003-05-02  Martin Baulig  <martin@ximian.com>
14050
14051         * debug-mono-symfile.h
14052         (MonoSymbolFile): Moved declaration into mono-debug.h.
14053         (MonoDebugMethodJitInfo): Likewise.
14054         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
14055         argument.
14056         (_mono_debug_address_from_il_offset): Take a
14057         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
14058
14059         * mono-debug.h
14060         (MonoDebugDomainData): New struct.
14061         (mono_debug_get_domain_data): New function.
14062         (mono_debug_add_method): Take an additional `MonoDomain *'
14063         argument.
14064         (mono_debug_source_location_from_address): Likewise.
14065         (mono_debug_il_offset_from_address): Likewise.
14066         (mono_debug_address_from_il_offset): Likewise.
14067
14068 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
14069
14070         * reflection.c: one more check for null type in custom attrs.
14071
14072 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14073
14074         * reflection.c: avoid warning (comparison is always false due to limited
14075         range of data type).
14076
14077 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14078
14079         * icall.c: throw an exception in Type.GetField if the argument 'name'
14080         is NULL.
14081
14082 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
14083
14084         * reflection.c: fixed handling of enums in named arguments to custom
14085         attributes (bug #42123).
14086
14087 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
14088
14089         * reflection.c: use the right array element type and handle
14090         a null for a Type argument, too.
14091
14092 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
14093
14094         * reflection.c: handle arrays as arguments to custom attributes.
14095
14096 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14097
14098         * reflection.c: handle a string value in a custom attr
14099         ctor that takes an object.
14100
14101 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
14102
14103         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
14104         (fix bug #42063)
14105
14106 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
14107
14108         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
14109
14110 2003-04-27  Martin Baulig  <martin@ximian.com>
14111
14112         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
14113         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
14114         MONO_DEBUGGER_EVENT_BREAKPOINT.
14115         (mono_breakpoint_trampoline_code): Removed.
14116         (mono_debugger_event_handler): The last argument is now a
14117         `guint32'.
14118         (mono_debugger_insert_breakpoint_full): Removed the
14119         `use_trampoline' argument.
14120         (mono_debugger_method_has_breakpoint): Likewise.
14121         (mono_debugger_trampoline_breakpoint_callback): Renamed to
14122         mono_debugger_breakpoint_callback(); take the method and
14123         breakpoint number as arguments.
14124
14125 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
14126
14127         * metadata.c: fix off by one when loading parameters attributes.
14128
14129 2003-04-24  Martin Baulig  <martin@ximian.com>
14130
14131         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
14132
14133 2003-04-24  Martin Baulig  <martin@ximian.com>
14134
14135         * mono-debug-debugger.c: Moved all code which interacts with the
14136         Mono Debugger here.
14137
14138         * debug-mono-symfile.c: This code now just deals with the symbol
14139         file itself, the debugger code is now in mono-debug-debugger.c.
14140
14141 2003-04-23  Martin Baulig  <martin@ximian.com>
14142
14143         * mono-debug.c (mono_debug_source_location_from_il_offset):
14144         New method; like mono_debug_source_location_from_address(), but
14145         takes an IL offset instead of a machine address.
14146
14147 2003-04-23  Martin Baulig  <martin@ximian.com>
14148
14149         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
14150         `line' field; this is now computed by the debugger.
14151
14152 2003-04-23  Martin Baulig  <martin@ximian.com>
14153
14154         * mono-debug.[ch]: New files.  This is the new debugging interface.
14155
14156         * mono-debug-debugger.[ch]: New files.  Moved all code which
14157         interacts with the Mono Debugger here.
14158
14159 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
14160
14161         * domain.c (mono_init): initialize mono_defaults.monitor_class
14162
14163 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
14164
14165         * reflection.c (method_encode_code): Add a spicy exception to help
14166         future compiler authors.
14167
14168 2003-04-21  Martin Baulig  <martin@ximian.com>
14169
14170         * icall.c
14171         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14172         Make this work with relative pathnames; g_filename_to_uri() needs
14173         an absolute filename.
14174
14175 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
14176
14177         * icall.c: Track name changes in Object and ValueType.
14178
14179 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
14180
14181         * metadata.c (mono_type_stack_size): size should be a multiple of
14182         sizeof (gpointer)
14183
14184 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14185
14186         * gc.c:
14187         (internal_domain_finalize): moved into mono_domain_finalize. No need
14188         to create another thread because the finalizers will be run in the
14189         finalizer thread.
14190         
14191         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
14192         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
14193         to be run (MS does this too).
14194
14195 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
14196
14197         * object.c (mono_class_compute_gc_descriptor): Update comment.
14198
14199         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
14200
14201         * image.h: Add synchronized wrapper cache.
14202
14203         * image.c (do_mono_image_open): Initialize cache.
14204
14205         * reflection.c (create_dynamic_mono_image): Initialize cache.
14206
14207 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14208
14209         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
14210         ves_icall_System_Buffer_ByteLengthInternal.
14211
14212 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14213
14214         * reflection.c: setup klass->nested_in earlier. Allow
14215         a dash in the assembly name.
14216
14217 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
14218
14219         * metadata.c (mono_type_to_unmanaged): dont access
14220         type->data.klass for MONO_TYPE_OBJECT
14221         (mono_type_to_unmanaged): consider System.Delegate class
14222
14223 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
14224
14225         * class.c: just setup supertypes in the proper place instead of
14226         initializing the full element class for arrays.
14227
14228 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14229
14230         * class.c: ensure the element class of arrays is initialized.
14231         Setup the supertype info for array classes, too.
14232
14233 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
14234
14235         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
14236
14237 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14238
14239         * Makefile.am: re-added -m option when running cygpath. This way,
14240         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
14241         separator.
14242         * mono-config.c: same codepath for locating mono config file for WIN32
14243         and the rest.
14244         * assembly.c: if mono_assembly_setrootdir is called, don't override
14245         the value set.
14246
14247 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14248
14249         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
14250         MONO_ASSEMBLIES variable.
14251
14252 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
14253
14254         * icall.c: added Assembly::GetNamespaces() icall.
14255
14256 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14257
14258         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
14259
14260 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
14261
14262         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
14263         * object.c: fixed bug in the construction of vtable for proxies
14264
14265 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
14266
14267         * object.c (mono_array_new): Mark mono_array_new as an icall.
14268
14269 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14270
14271         * class.c: fixed test for public method when overriding interfaces.
14272         Closes bug #40970.
14273
14274 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14275
14276         * appdomain.h, domain.c: added mono_domain_foreach() to
14277         be able to access the currently loaded appdomains.
14278         * object.c: make string interning work across sppdomains.
14279         Mark some functions for use as icalls.
14280
14281 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
14282
14283         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
14284
14285         * reflection.h reflection.c: Allocate long living data using 
14286         GC_MALLOC_ATOMIC so the collector does not need to scan it.
14287
14288         * reflection.c: Double the allocation size in streams instead of
14289         increasing it, to prevent unneccesary copying on large assemblies.
14290         
14291         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
14292         creation if the assembly does not have the Run flag set.
14293
14294 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
14295
14296         * class.h: avoid the C++ keywords in header files (Jerome Laban
14297         spotted and fixed this).
14298
14299 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14300
14301         * object.c:
14302         (mono_unhandled_exception): fill in the arguments for the
14303         UnhandledException event. Only trigger that event for the default
14304         domain (as MS does).
14305
14306 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
14307
14308         * object.c: Improve typed allocation stuff based on suggestions from
14309         Paolo. Also turn it on if the GC library supports it.
14310
14311 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14312
14313         * object.c object.h class.h: Added experimental typed allocation
14314         facility using the interfaces in gc_gcj.h.
14315
14316         * os/gc_wrapper.h: Added new include files.
14317         
14318 2003-04-03  Martin Baulig  <martin@ximian.com>
14319
14320         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
14321         which is not yet enabled by default.
14322
14323         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
14324         functions.
14325         (mono_gc_lock, mono_gc_unlock): New static functions.
14326
14327         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
14328         functions; stop/start the world for the garbage collector.  This
14329         is using the windows API; we need to complete the SuspendThread()/
14330         ResumeThread() implementation in the io-layer to make this work on Unix.
14331         (mono_gc_push_all_stacks): New public function; tells the garbage
14332         collector about the stack pointers from all managed threads.
14333
14334 2003-04-03  Martin Baulig  <martin@ximian.com>
14335
14336         * object.h (MonoThread): Added `gpointer stack_ptr'.
14337
14338         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
14339
14340 2003-04-03  Martin Baulig  <martin@ximian.com>
14341
14342         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
14343
14344 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14345
14346         * reflection.c (typebuilder_setup_fields): Initialize field.first and
14347         field.last.
14348
14349 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
14350
14351         * loader.c (mono_lookup_internal_call): Report the corlib that is
14352         out of sync.
14353
14354 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
14355
14356         * icall.c (ves_icall_type_GetTypeCode): fixed check for
14357         System.DBNull (it's class not valuetype).
14358
14359 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14360
14361         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
14362         if the array method was already assigned a token (fixes bug#40646).
14363
14364 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
14365
14366         * reflection.c (mono_reflection_get_type): Attempt type resolve even
14367         if no assembly is given.
14368
14369 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
14370
14371         * metadata.h: Added the new tables.
14372
14373         * row-indexes.h: Added definitions for new tables.
14374
14375         * metadata.c: Add schemas for new tables, and add support for
14376         computing the sizes of them.
14377
14378         * class.c: Update for handling the new type cases.
14379
14380 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
14381
14382         * metadata.h (MONO_TYPE_IS_VOID): new macro
14383
14384 2003-03-31  Martin Baulig  <martin@ximian.com>
14385
14386         * threads.h (MonoThreadCallbacks): Added `thread_created'.
14387
14388         * threads.c (mono_thread_new_init): Call `thread_created' in the
14389         mono_thread_callbacks.
14390
14391 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
14392
14393         * loader.h: added marshalbyrefobject_class to mono_defaults
14394         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
14395         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
14396           generation of output parameters.
14397           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
14398         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
14399           contextbound and the target object belongs to the context of the caller.
14400         * object.h: added context and unwrapped_server variables in MonoRealProxy.
14401         * object.c: Implemented support for interfaces and abstract classes
14402           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
14403           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
14404
14405 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
14406
14407         * class.h class.c (mono_class_is_subclass_of): New function.
14408         
14409         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
14410         routines for most common case (calls from ArrayList::ToArray).
14411
14412         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
14413         routine so programs which call Environment::Exit() can be profiled.
14414
14415         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
14416         Added MONO_ARCH_SAVE_REGS.
14417
14418         * icall.c (ves_icall_type_is_subtype_of): Use new function.
14419
14420 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
14421
14422         * blob.h: Add a couple of new MonoType types definitions.
14423
14424         * tabledefs.h: Add a couple of new call convs.
14425
14426 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
14427
14428         * reflection.h (MonoReflectionDynamicAssembly): track changes in
14429         the layout of the class.
14430
14431         * reflection.c (alloc_table): double the size on overflow to avoid
14432         unnecessary copying.
14433
14434         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
14435         avoid filling out metadata tables and blobs. Also set mb->ilgen to
14436         null so it can be garbage collected.
14437         
14438 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
14439
14440         * reflection.c (mono_reflection_get_type): Return the resolved type
14441         only if it is in the assembly we searched.
14442
14443         * reflection.c (ensure_runtime_vtable): Initialize method slots.
14444
14445         * class.c (mono_class_setup_vtable): Set the slot of the overriding
14446         method.
14447
14448 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14449
14450         * appdomain.c:
14451         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
14452         the right one is 'file:///blah', but MS allows it.
14453         * assembly.c:
14454         (mono_assembly_open): allow 'file://blah'
14455
14456         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
14457
14458 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
14459
14460         * socket-io.c: fixes bug #40310.
14461
14462 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
14463
14464         * reflection.c (mono_reflection_parse_type): handle deeply nested
14465         types correctly.
14466
14467         * reflection.c (mono_image_create_token): Use unique token values
14468         since they will be put into a hash table.
14469
14470         * class.c (mono_class_setup_vtable): If a method occurs in more than
14471         one place in the vtable, and it gets overriden, then change the
14472         other occurances too.
14473
14474         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14475         object as return type.
14476
14477 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14478
14479         * icall.c: Deleted "ToString" implementation for double and float
14480         because they are full implemented in managed code.
14481
14482 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14483
14484         * reflection.c, reflection.h: implemented and exported functions
14485         to retrieve info about custom attributes.
14486
14487 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14488
14489         * appdomain.c: moved Uri handling to assembly.c
14490         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
14491         work when using a file Uri in *nix and windows.
14492
14493         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
14494         GetReferencedAssemblies.
14495
14496 2003-03-18  Dick Porter  <dick@ximian.com>
14497
14498         * icall.c: Rename a couple of internal calls
14499
14500         * threads.c: Set the thread state to Stopped when a thread exits.
14501         Fixes bug 39377.
14502
14503 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
14504
14505         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
14506         New icall.
14507
14508         * object.c (mono_class_vtable): fix warning.
14509
14510 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
14511
14512         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
14513
14514         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
14515         memory.
14516         (method_encode_clauses): Create exception info structures in the right
14517         order.
14518         (mono_reflection_setup_internal_class): Initialize supertypes field.
14519
14520         * class.c object.c: Handle interfaces which implement other interfaces 
14521         correctly.
14522
14523         * class.h class.c: Move the supertypes array initialization code into 
14524         a separate function so it can be used for dynamic types too. Also call
14525         it earlier, in mono_class_init(), since it can be used before the
14526         type is initialized.
14527
14528 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14529
14530         * Makefile.am:
14531         * assembly.c:
14532         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
14533
14534         * appdomain.c:
14535         * appdomain.h:
14536         * marshal.c:
14537         * object.c: remove warnings.
14538
14539 2003-03-13  Martin Baulig  <martin@ximian.com>
14540
14541         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
14542         (MonoDebugLexicalBlockEntry): New types.
14543
14544         * debug-mono-symfile.c
14545         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
14546
14547 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14548
14549         * process.c: ret can be any non-zero value accroding to MS doc.
14550
14551 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
14552
14553         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
14554         fixing a warning for a miss-used prototype, would have cause
14555         random memory corruption.
14556
14557 2003-03-07  Martin Baulig  <martin@ximian.com>
14558
14559         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
14560         getting really annoying ....
14561
14562 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
14563
14564         * reflection.c (fixup_method): added support for array methods.
14565
14566 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
14567
14568         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
14569         (pointed out by Michael Adams).
14570
14571 2003-03-04  Dick Porter  <dick@ximian.com>
14572
14573         * icall.c: Temporarily reverted the Double and Single ToString()
14574         change, because it broke nunit.
14575
14576 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
14577
14578         * object.h, threads.h: make include files compatible with C++
14579         (patch by Jerome Laban <jlaban@wanadoo.fr>).
14580
14581 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14582
14583         * icall.c: Erased ToString helper functions for Double and Single.
14584         Now, that implementations ar all in managed code (Double and Single
14585         Formatters).
14586
14587 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
14588
14589         * appdomain.c: Added method for initializing the default context of
14590         a domain. Added internal call for getting the default context.
14591         * appdomain.h: Added context variable in MonoDomain struct.
14592         * domain.c: mono_domain_set also sets the default context of the domain
14593         * icall.c: Mapped internal method InternalGetDefaultContext.
14594         * object.c: mono_object_get_virtual_method returns always a remoting
14595         wrapper if the object is a transparent proxy.
14596         mono_runtime_invoke_array: when creating an object by calling the
14597         constructor, if the created object is a proxy, then the constructor should
14598         be called using the a remoting wrapper.
14599
14600 2003-03-03  Dick Porter  <dick@ximian.com>
14601
14602         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
14603         variable so it compiles on solaris.  Problem spotted by
14604         Christopher Taylor <ct@cs.clemson.edu>
14605
14606 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14607
14608         * appdomain.c:
14609         (get_info_from_assembly_name): don't leak value.
14610
14611         * icall.c:
14612         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
14613         result.
14614
14615 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
14616
14617         * assembly.c: export mono_image_load_references ().
14618         * class.c: handle function pointers. mono_class_from_name() now
14619         supports nested type names directly.
14620
14621 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
14622
14623         * reflection.h reflection.c: Encode already created dynamic methods 
14624         and fields correctly as a DEF instead of a REF.
14625
14626         * reflection.c: Get rid of the force_ref argument to 
14627         mono_image_typedef_or_ref since it was wrong in the first place.
14628
14629         * string-icalls.c: add error checking to string constructors according
14630         to the MSDN docs.
14631
14632         * reflection.c: Emit types in the order their TypeBuilders were 
14633         created. Previously, a new table index was assigned to each type before
14634         the tables were emitted. This was wrong because the signature blob
14635         might already refer to a type by its original table index.
14636
14637 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
14638
14639         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
14640         change.
14641         
14642 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14643
14644         * Makefile.am: make assemblies dir have \ instead of / on windows.
14645
14646 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
14647
14648         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
14649         iterate over the NESTEDCLASS table using a linear search since the
14650         table is not guaranteed to be sorted by the secondary key.
14651
14652         * class.c (mono_class_create_from_typedef): fixed up call to
14653         mono_metadata_nesting_typedef.
14654         
14655 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
14656
14657         * marshal.c (mono_string_to_byvalstr): clear the memory as
14658         suggested by Jerome Laban <jlaban@wanadoo.fr>
14659
14660 2003-02-26  Dick Porter  <dick@ximian.com>
14661
14662         * process.c: Cope with padding in .rsrc blocks
14663
14664 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14665
14666         * metadata.h: reverted the filter_len change, it breaks reflection
14667         
14668 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14669
14670         * metadata.h: added a new field to store the filter_len
14671         
14672
14673 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14674
14675         * reflection.c: handle custom attributes for types and members
14676         created with Reflection.Emit (bug#38422).
14677
14678 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14679
14680         * reflection.c: define RTSpecialName automatically for constructors for
14681         compatibility with MS.NET.
14682
14683         * reflection.c (mono_reflection_create_runtime_class): initialize
14684         nested_in field of dynamically created classes.
14685
14686 2003-02-22  Martin Baulig  <martin@ximian.com>
14687
14688         * debug-mono-symfile.h: Incremented version number.
14689
14690 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14691
14692         * object.h icall.c process.c: fix warnings.
14693
14694 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14695
14696         * appdomain.h appdomain.c:
14697         (mono_domain_try_type_resolve): split the 
14698         name_or_tb argument into a name and a tb argument.
14699         (mono_domain_has_type_resolve): new function to check whenever the
14700         application has registered a TypeResolve event handler.
14701         
14702         * icall.c reflection.h reflection.c: move the type resolve logic into
14703         mono_reflection_get_type () so it will be invoked when 
14704         Assembly::GetType () is called.
14705
14706         * reflection.c:
14707         (mono_reflection_get_type): renamed to get_type_internal.
14708         (mono_reflection_get_type): fixed type name generation so it works 
14709         for nested types too.
14710         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14711         costly type name generation if there is no resolve event handler.
14712
14713 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14714
14715         * class.c, image.c: load exported types from file references.
14716
14717 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14718
14719         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14720           used to cache the managed methods used to create proxies and make 
14721           remote invocation of methods.
14722         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14723           to be remotely created.
14724         * object.c: Modified the method mono_class_vtable(). It now initializes 
14725           the remote flag of the vtable. Modified mono_object_new_specific(), 
14726           so now it checks the remote flag.
14727         * icall.c: Added a couple of internal methods, one for enabling instance 
14728           creation interception for a type, and one for creating objects bypassing
14729           the remote check.
14730
14731 2003-02-18  Martin Baulig  <martin@ximian.com>
14732
14733         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14734         New interncall to get a method's metadata token.
14735
14736         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14737         New interncall for the debugger.
14738
14739 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14740
14741         * class.c (mono_class_setup_vtable): allocate supertype array
14742
14743 2003-02-18  Martin Baulig  <martin@ximian.com>
14744
14745         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14746
14747 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14748
14749         * reflection.c:
14750         (assembly_name_to_aname): jump over unknown properties (i've found
14751         something like: 'type, assembly, version=xxx, custom=null, public...',
14752         so now will ignore custom=null and still get the rest of the values).
14753
14754 2003-02-17  Dick Porter  <dick@ximian.com>
14755
14756         * threads.c: Have Thread.Start() wait for a semaphore to signal
14757         that the thread has set up all its local data.  This fixes bug
14758         34323, where Abort() raced the new thread's TLS data.
14759
14760         Also removes the handle_store() call from start_wrapper, because
14761         threads are now always created suspended and there is no longer a
14762         race between the parent and child threads to store the info.
14763
14764 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14765
14766         * image.c: explain the #- heap issue in a message, hopefully
14767         avoiding FAQs on mono-list.
14768
14769 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14770
14771         * icall.c:
14772         (GetEntryAssembly): if the domain has not invoked
14773         AppDomain.ExecuteAssembly yet, return the assembly of the default
14774         AppDomain.
14775
14776 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14777
14778         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14779
14780 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14781
14782         * metadata.c, reflection.c: simple speedup to type hash
14783         and equals code.
14784
14785 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14786
14787         * image.c, image.h, class.c, assembly.c: move module loading
14788         to MonoImage. When loading metadata, consider alignemnet from
14789         the start of metadata, not from the metadata address in memory.
14790
14791 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14792
14793         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14794         AssemblyBuilder objects. Factored out custom attribute creation into
14795         a separate function.
14796         (create_custom_attr): new function to create custom attributes.
14797
14798 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14799
14800         * Makefile.am: Got tired of typing the full pathname to pedump.
14801         Until there is another option, am installing this.
14802
14803 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14804
14805         * class.c (class_compute_field_layout): always set field->parent 
14806         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14807
14808 2003-02-11  Dick Porter  <dick@ximian.com>
14809
14810         * threads-types.h:
14811         * monitor.c: Rewrote Monitor, making lock much faster and
14812         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14813         creates them as needed.
14814
14815         * exception.c: Added SynchronizationLockException
14816
14817         * threads.c: Deleted old Monitor implementation.  The new one is
14818         in a new file.
14819
14820 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14821
14822         * class.c: handled TypedReference type code. Set the correct size for
14823         class data. Setup interface_offsets for interface classes, too.
14824
14825 2003-02-09  Martin Baulig  <martin@ximian.com>
14826
14827         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14828
14829 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14830
14831         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14832         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14833         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14834         * verify.c: check for code that runs after the end of the method.
14835
14836 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14837
14838         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14839         "System.Math::Round2".
14840         * sysmath.h: Added Floor, Round and Round2 definitions.
14841         * sysmath.c: Modified certain functions that were not 100% compliant
14842         with MS.NET (math precision) and added the implementation of Floor,
14843         Round and Round2.
14844
14845 2003-02-07  Martin Baulig  <martin@ximian.com>
14846
14847         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
14848
14849 2003-02-07  Martin Baulig  <martin@ximian.com>
14850
14851         * debug-mono-symfile.c: Reflected latest symwriter changes.
14852         (mono_debug_create_mono_symbol_file): Removed.
14853         (mono_debug_open_mono_symbol_file): Take an argument which
14854         specifies whether to create a dynamic symbol file.
14855
14856 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
14857
14858         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
14859
14860 2003-02-05  Martin Baulig  <martin@ximian.com>
14861
14862         * reflection.c (mono_image_build_metadata): Make this public,
14863         protect it against being called multiple times, don't create
14864         resources and don't build the compressed metadata here.
14865         (mono_image_create_pefile): Do this here.
14866
14867         * icall.c
14868         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
14869
14870 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14871
14872         * socket-io.c: fixed bug #36322.
14873
14874 2003-02-06  Piers Haken <piersh@friskit.com>
14875
14876         * appdomain.[ch]:
14877         * class.h:
14878         * debug-mono-symfile.c:
14879         * icall.c:
14880         * loader.c:
14881         * mono-config.c:
14882         * monosn.c:
14883         * reflection.c:
14884         * socket-io.c: warning cleanups
14885
14886 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
14887
14888         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
14889         function. works like remoting invoke, but does a check for the Proxy first.
14890
14891 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
14892
14893         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
14894
14895 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
14896
14897         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
14898         array of pointers.
14899         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
14900         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
14901
14902         * object.c (mono_store_remote_field_new): used by the new jit
14903         instead of mono_store_remote_field
14904         (mono_load_remote_field_new): used by the new jit
14905         instead of mono_load_remote_field
14906
14907 2003-02-05  Patrik Torstensson
14908
14909         * appdomain.c: changed unload to take the domain id instead
14910         of domain
14911         
14912         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
14913
14914
14915 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14916
14917         * appdomain.c: don't look for assemblies in ApplicationBase if
14918         PrivateBinPathProbe is set.
14919
14920 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14921
14922         * object.c: make the first argument in main_args contain the absolute
14923         path to the assembly. Fixes bug #37511.
14924
14925 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14926
14927         * icall.c: get correct UTC offset for countries not using daylight
14928         time saving. Fixes bug #30030.
14929
14930 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14931
14932         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
14933         and 1 are the family).
14934
14935 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
14936
14937         * icall.c (ves_icall_InternalExecute): removed wrong assertion
14938
14939         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
14940
14941 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
14942
14943         * reflection.c: added support for SignatureHelper tokens, which is
14944         needed by the Calli opcode.
14945
14946         * reflection.h: track changes to SignatureHelper class.
14947
14948         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
14949
14950 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14951
14952         * appdomain.c: fixed loading assemblies from PrivateBinPath.
14953
14954 2003-02-03  Patrik Torstensson
14955         * appdomain.[c|h], domain.c : 
14956          - Added support for getting a domain via domain id
14957          - Support for setting and getting domain from System.AppDomain 
14958            (used in cross appdomain channel)
14959          - Added support for get/set for a MonoAppContext on a thread 
14960            (Context class in System.Runtime.Remoting.Contexts),
14961          - Removed hack in Get/SetData and ExecuteAssembly.
14962         
14963         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
14964         the managed world to get control when a proxy is created.
14965
14966         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
14967         
14968 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
14969
14970         * icall.c
14971         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14972         Populate the codebase field as well.
14973
14974 2003-02-02  Martin Baulig  <martin@ximian.com>
14975
14976         * debug-mono-symfile.c
14977         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
14978         (mono_debug_symfile_add_method): Allow interncalls.
14979
14980 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14981
14982         * icall.c: throw parse exception if strtod fails or the string is empty.
14983
14984 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
14985
14986         * marshal.c: handle object type separately from defined
14987         class types.
14988
14989 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
14990
14991         * marshal.c: handle NATIVE_LPSTR for strings when it's
14992         explicitly specified.
14993
14994 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
14995
14996         * reflection.c, reflection.h, icall.c: setup the reflection
14997         handle cache for ModuleBuilders and AssemblyBuilders.
14998
14999 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
15000
15001         * reflection.c (reflection_methodbuilder_to_mono_method): set
15002         pinvoke flag
15003
15004 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15005
15006         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
15007
15008 2003-01-29  Dick Porter  <dick@ximian.com>
15009
15010         * threads.c: No need for the fake_thread kludge now that Thread
15011         doesn't run a class constructor
15012         
15013 2003-01-29  Dick Porter  <dick@ximian.com>
15014
15015         * threads.c: Use g_direct_hash instead of the rather bogus
15016         g_int_hash
15017
15018 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
15019
15020         * marshal.c (mono_marshal_get_native_wrapper): add check for null
15021         (fix pinvoke12.exe)
15022         (mono_marshal_get_struct_to_ptr): generate valid IL code
15023         (mono_marshal_get_ptr_to_struct): generate valid IL code
15024         (*): correctly set sig->pinvoke, we need to memdup the signature
15025         to do that
15026
15027 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15028
15029         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
15030         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
15031
15032 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
15033
15034         * profiler.c: provide more callers information.
15035
15036 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
15037
15038         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
15039
15040         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
15041
15042         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
15043
15044 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15045
15046         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
15047         exception instead of going into an infinite loop on dates which it 
15048         can't yet handle.
15049
15050         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
15051         out-of-range exception if needed.
15052
15053         * class.c (mono_class_setup_vtable): allow a virtual method to provide
15054         an implementation for an interface method and to override an inherited
15055         method at the same time. 
15056         Imagine a scenario when a virtual method is used to override a
15057         virtual abstract method in a parent class, and this same method 
15058         provides an implementation for an method inherited from an interface. 
15059         In this case, the interface resolution code will set im->slot, which 
15060         means that the virtual method override pass will skip this method 
15061         which means a pointer to the abstract method inherited from the parent
15062         will remain in the vtable of this non-abstract class.
15063
15064         * class.c: (mono_class_setup_vtable): continue search for a real 
15065         method if only an abstract method is found.     
15066
15067 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
15068
15069         * reflection.c: add size to encoding for ByValStr and ByValArray
15070         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
15071
15072 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15073
15074         * class.c (mono_class_setup_vtable): pass the override info as an
15075         argument.
15076
15077         * class.c (mono_class_setup_vtable): set the slot of overriding methods
15078         correctly.
15079         
15080         * reflection.c (ensure_runtime_vtable); add support for method 
15081         overrides.
15082         
15083 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15084
15085         * reflection.c (resolution_scope_from_image): Hack to work to work with
15086         dynamic assemblies.
15087
15088         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
15089         added a 'force_ref' argument to force this function to allways return 
15090         a TypeRef. This is needed by mono_image_get_memberref_token ().
15091         
15092 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15093
15094         * reflection.c (mono_image_get_type_info): interfaces really don't have
15095         a parent.
15096
15097         * reflection.c (mono_image_basic_init): fill out missing fields of
15098         image structure.
15099
15100         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
15101         dynamic assemblies. This is required so dynamic assemblies show up in
15102         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
15103         Type::GetType() etc. This is consistent with MS behaviour.
15104
15105         * image.c image.h reflection.c: add newly created classes to the name 
15106         cache so mono_class_get () will find them.      
15107
15108 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15109
15110         First part of changes to get IKVM.NET running under mono.
15111         
15112         * appdomain.h, appdomain.c: added new function 
15113         mono_domain_try_type_resolve() which will emit TypeResolve events. 
15114         This function will call AppDomain::DoTypeResolve to do the actual work.
15115
15116         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
15117         moved existing code dealing with dynamic tokens to a new function 
15118         called mono_reflection_lookup_dynamic_token (). This function will 
15119         raise TypeResolve events when appropriate. Since reflection.c is not 
15120         part of libmetadata, a new hook function called 
15121         mono_lookup_dynamic_token() is added to class.c which will call this.
15122
15123         * assembly.h assembly.c: make the invoke_load_hook function public,
15124         so it can be called for dynamic assemblies.
15125
15126         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
15127
15128         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
15129         type isn't found.
15130
15131         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
15132         MonoGHashTable, since it contains pointers to objects which the GC 
15133         needs to track.
15134
15135         * assembly.c (search_loaded): remove unused variable.
15136         
15137 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
15138
15139         * object.c: fixed issue exposed by gcc-generated IL programs
15140         that use RVA data for pointers.
15141
15142 2003-01-25  Martin Baulig  <martin@ximian.com>
15143
15144         * threads.c (start_wrapper): Moved the initialization of
15145         `start_func' above the mono_new_thread_init() call to which we
15146         pass it as argument.
15147
15148 2003-01-24  Martin Baulig  <martin@ximian.com>
15149
15150         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
15151         the MonoThread pointer.
15152
15153 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
15154
15155         * icall.c: Rename `PowImpl' to Pow.
15156
15157 2003-01-23  Dick Porter  <dick@ximian.com>
15158
15159         * threads.c (start_wrapper): Create a Thread object if needed, so
15160         the Main() thread can do the class initialisation in a subthread
15161         that has been set up to allow managed code execution.
15162
15163         Pass the thread ID instead of the MonoThread pointer to the thread
15164         start and attach callbacks.  This change is required, because the
15165         jit thread start callback must be called _before_ the Thread
15166         object can be created.
15167         
15168         (mono_thread_init): Removed much object creation code that is no
15169         longer needed.  No managed code is called from here now.
15170
15171         * object.c (mono_runtime_exec_managed_code): Create a subthread
15172         for Main, and call back to the runtime to use it.
15173         Set the exit code when Main exits.
15174
15175         * gc.c: Make sure domain finalisation happens in a subthread.
15176         Re-enable threaded GC, fixing bug 31333 (again).
15177
15178         * environment.c: System.Environment internall calls (so far just
15179         ExitCode is here, the others are still in icall.c)
15180
15181         * appdomain.c (mono_runtime_cleanup): All threads running managed
15182         code should have finished before mono_runtime_cleanup() is
15183         reached, so no need to clean up threads.
15184
15185 2003-01-22  Martin Baulig  <martin@ximian.com>
15186
15187         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
15188         `gpointer func' arguments.      
15189         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
15190         but added `MonoThread *thread' argument.
15191         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
15192
15193         * threads.c (mono_new_thread_init): Added `gpointer func' argument
15194         and pass it to the mono_thread_start_cb callback.
15195         (mono_install_thread_callbacks): New public function to install a
15196         set of callbacks which are set by the debugger.
15197         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
15198
15199 2003-01-22  Martin Baulig  <martin@ximian.com>
15200
15201         * Makefile.am: Install debug-mono-symfile.h.
15202
15203 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
15204
15205         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
15206
15207 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
15208
15209         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
15210         * class.c (mono_ptr_class_get): correctly set access levels of pointers
15211         (mono_array_class_get): correctly set access levels of arrays
15212
15213 2003-01-20      Patrik Torstensson
15214         * image.h (MonoAssemblyName): changed major, minor, build, revision
15215         from signed to unsigned.
15216
15217 2003-01-20  sean kasun <skasun@azstarnet.com>
15218
15219         * reflection.c (load_cattr_value): Now this handles
15220         MONO_TYPE_SZARRAY.  Fixes bug #35629
15221
15222 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
15223
15224         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
15225         integer value
15226
15227 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15228
15229         * decimal.c: fixed bug #26056.
15230
15231 2003-01-17  Martin Baulig  <martin@ximian.com>
15232
15233         * gc.c: Raise an ExecutionEngineException instead of using g_error().
15234
15235 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15236
15237         * exception.[ch]:
15238         (mono_get_exception_type_initialization): new function.
15239
15240         * object.c: throw a TypeInitializationException when an exception is
15241         thrown invoking the class constructor.
15242
15243 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15244
15245         * reflection.c: fixed attribute reading.
15246
15247 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15248
15249         * icall.c:
15250         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
15251         provided, look for the type in the calling assembly and then in
15252         mscorlib; if the assembly name is provided, only try that one.
15253
15254 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
15255
15256         * object.c: register the vtable before there is a chance it's
15257         queried again recursively.
15258
15259 2003-01-13  Duncan Mak  <duncan@ximian.com>
15260
15261         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
15262         gc-internal.h. 
15263         
15264 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
15265
15266         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
15267
15268 2003-01-11  Martin Baulig  <martin@ximian.com>
15269
15270         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
15271         this to 20 for the release.
15272
15273 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
15274
15275         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
15276
15277         * loader.c (mono_method_get_marshal_info): bug fix
15278
15279         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
15280         structures with explicit layout
15281
15282 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15283
15284         * profiler.c: made the output more readable (and sorted). 
15285         Added caller information for the allocation profiler.
15286
15287 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
15288
15289         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
15290
15291 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15292
15293         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
15294         to get value types.
15295         
15296 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
15297
15298         * object.c, profiler.h, profiler.c, profiler-private.h:
15299         Added object allocation profiler.
15300
15301 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
15302
15303         * reflection.h, reflection.c: handle global methods.
15304         Compress blob entries.
15305
15306 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
15307
15308         * marshal.c: fix compilation.
15309
15310 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
15311
15312         * loader.c (mono_method_get_marshal_info): impl.
15313
15314         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
15315
15316 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15317
15318         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
15319         for reference types.
15320
15321 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
15322
15323         * loader.c: fixed off by one error in loaded parameter names.
15324
15325 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
15326
15327         * marshal.c (mono_marshal_get_icall_wrapper): like
15328         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
15329         instead of a MonoMethod.
15330
15331 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15332
15333         * decimal.c: fixed bug #36537.
15334
15335 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
15336
15337         * marshal.c: throw a missing method exception if a
15338         P/Invoke method is not found.
15339
15340 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15341
15342         * icall.c: allow a null this for constructors.
15343
15344 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
15345
15346         * icall.c: raise the proper exceptions if the arguments to the
15347         internal Invoke are incorrect.
15348
15349 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
15350
15351         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
15352
15353 2003-01-03  Martin Baulig  <martin@ximian.com>
15354
15355         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15356
15357 2002-12-31  Martin Baulig  <martin@ximian.com>
15358
15359         * debug-mono-symfile.c: Completely rewrote the type section.
15360         Instead of using individual malloc()ed fields, we use one big
15361         continuous memory area and offsets into this area.
15362         See the comments in the source code for details.
15363
15364 2002-12-30  Martin Baulig  <martin@ximian.com>
15365
15366         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
15367
15368 2002-12-30  Martin Baulig  <martin@ximian.com>
15369
15370         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
15371         line number table in this data blob instead of using an external
15372         pointer.
15373
15374 2002-12-28  Martin Baulig  <martin@ximian.com>
15375
15376         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15377
15378 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
15379
15380         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
15381         as a boxed return type.
15382
15383 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
15384
15385         * appdomain.c
15386         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
15387         g_build_filename to properly get separators on the filename created.
15388
15389         * object.h: Small change, introduce MonoMarshalByRefObject to
15390         track the layout of that structure in the C# universe as we make
15391         changes there.
15392
15393 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
15394
15395         * object.c: removed assert to allow static fields on interfaces.
15396         * loader.c: a TypeSpec may be used for any type, not just arrays.
15397
15398 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15399
15400         * class.c, class.h: added mono_class_array_element_size ().
15401         Ignore static methods in interfaces.
15402
15403 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15404
15405         * threads.c: fixed the build under cygwin.
15406
15407 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15408
15409         * reflection.c: handle nullref constants. Allocate keys for
15410         reflection handles with the GC.
15411
15412 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15413
15414         * threads.c, threads.h: added mono_thread_get_abort_signal()
15415         to get a suitable signal for thread abort.
15416
15417 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15418
15419         * metadata.c: fix handling of ExportedType table.
15420
15421 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15422
15423         * icall.c: added WriteWindowsDebugString internal call.
15424
15425 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15426
15427         * reflection.h: added fields to match C# implementation.
15428
15429 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15430
15431         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
15432
15433 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
15434
15435         * gc.h, gc-internal.h: Rename header for GC internal calls to
15436         gc-internal.h from gc.h as to not clash with Boehm GC having its
15437         header installed as <gc.h> in outside include paths.
15438         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
15439         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
15440
15441 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15442
15443         * icall.c: assign minor, build and revision in FillName.
15444
15445 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
15446
15447         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
15448         Added support for running code generated by Reflection.Emit.
15449
15450 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15451
15452         * appdomain.c: check for NULL argument in LoadFrom.
15453
15454 2002-12-10  Dick Porter  <dick@ximian.com>
15455
15456         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
15457
15458 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15459
15460         * appdomain.c: fix buglet when building exe file name.  Handle full
15461         assembly name (needed after latest changes to AssemblyName).
15462         * image.c:
15463         (mono_image_close): free some hashtables.
15464
15465 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
15466
15467         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
15468         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
15469         on some systems (redhat 7.3) 
15470
15471 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
15472
15473         * threads.c: delete the critical section of a sync block,
15474         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
15475
15476 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
15477
15478         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
15479
15480 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15481
15482         * appdomain.[ch]: handle the assembly preload event to try loading the
15483         assemblies using the paths we have in the current domain.
15484
15485         * assembly.[ch]: created an assembly preload hook that is called to try
15486         loading the assembly by other means that the ones provided here.
15487
15488         * domain.c: initialize the domain search path.
15489
15490         From now on, assemblies (TODO: except corlib and System) are loaded
15491         according to these rules when using mono_assembly_load ():
15492
15493                 1. It tries to load the assembly from the ApplicationBase
15494                 of the current domain appending .dll and .exe (TODO: have to
15495                 try loading from name/name.dll and name/name.exe).
15496
15497                 2. It tries the search path specified in PrivateBinPath for the
15498                 current domain (if any).
15499
15500                 3. Previous behavior.
15501
15502 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
15503
15504         * icall.c: implemented GetInterfaceMap() related icall.
15505         * domain.c, loader.h: load MethodInfo in mono_defaults.
15506
15507 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15508
15509         * gc.c: disable the finalizer thread for now, untill all the issues
15510         with it are resolved.
15511
15512 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15513
15514         * string-icalls.c: handle embedded nulls in string ctor when the
15515         length is specified.
15516
15517 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15518
15519         * class.c: look for explicit interface implementation in parent
15520         classes, too.
15521
15522 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
15523
15524         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
15525
15526 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15527
15528         * gc.c: protect handles with a critical section.
15529
15530 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15531
15532         * icall.c:
15533         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
15534         parameters. If no assembly specified, try getting the type from all
15535         the assemblies in the current domain, else, load the assembly and get
15536         the type from it.
15537
15538 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15539
15540         * marshal.c: applied patch from Aleksey Demakov that fixes
15541         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
15542
15543 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15544
15545         * icall.c: fixed get_location.
15546
15547 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
15548
15549         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
15550         declarations to make it work with older gcc. 
15551
15552         * loader.c (mono_get_method): set signature->pinvoke for native calls
15553
15554 2002-11-20  Dick Porter  <dick@ximian.com>
15555
15556         * threads.c (mono_thread_init): Set the main thread's handle
15557
15558 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15559
15560         * gc.c: allow compilation without GC support. Changed to match the
15561         mono coding style.
15562
15563 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15564
15565         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
15566
15567 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
15568
15569         * reflection.c: set a public key token on the core assemblies.
15570
15571 2002-11-18  Dick Porter  <dick@ximian.com>
15572
15573         * threads.c: Split out some thread initialisation so that other
15574         files can set the start callback function.
15575
15576         * gc.c: Run finalisers in a separate thread, to avoid stack
15577         overflow.  Fixes bug 31333.
15578
15579         * appdomain.c: Set up GC finalisation thread.
15580
15581         * reflection.c: 
15582         * object.c: 
15583         * domain.c: Use gc.h macros for GC_malloc
15584         
15585 2002-11-15  Dick Porter  <dick@ximian.com>
15586
15587         * threadpool.c: 
15588         * threads.c:
15589         * appdomain.c: Removed mono_runtime_init_with_attach(),
15590         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
15591         merging the extra parameter with the existing function.  Removed
15592         unneeded code in mono_thread_attach().
15593
15594 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
15595
15596         * image.c (mono_image_loaded_by_guid): a method to get loaded
15597         images by guid. 
15598         (load_metadata_ptrs): we store the guid as string.
15599
15600 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
15601
15602         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
15603
15604         * metadata.c (mono_guid_to_string): imported method form Zoltan
15605         Varga (slightly modified)
15606
15607         * assembly.c (mono_assembly_open): load precompiled code
15608
15609         * loader.h (MonoMethod): we store the method token for use in the
15610         aot compiler. 
15611
15612 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15613
15614         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
15615         the hook function called when an assembly is loaded.
15616         
15617         * domain.c: Modified file.
15618         (mono_domain_assembly_load): removed hash table insertion of assemblies.
15619
15620         Fixes bug #33196.
15621
15622 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
15623
15624         * reflection.c: Map PEFileKind to the value expected by the WinNT
15625         image loader. 
15626
15627 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15628
15629         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
15630         Read until the buffer is filled completely.
15631
15632 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15633
15634         * icall.c: implemented MonoType.InternalGetEvent ().
15635
15636 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15637
15638         * appdomain.c: implemented InitAppDomainSetup. Delayed
15639         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
15640         the entry_assembly.
15641
15642         * assembly.c: base_dir is now an absolute path ending with
15643         G_DIR_SEPARATOR.
15644
15645         * icall.c: modified get_location according to the above changes.
15646
15647         * object.c: init AppDomain.SetupInformation for the default domain after
15648         we have the entry assembly.
15649
15650         * domain.c: when unloading a domain, setup = NULL.
15651
15652 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
15653
15654         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
15655
15656 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
15657
15658         * object.h, object.c: introduced mono_object_get_virtual_method ()
15659         to lookup the method invoked on an object when a callvirt is done on
15660         a method.
15661         * icall.c: make MethodInfo::Invoke() always do a virtual call.
15662
15663 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15664
15665         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15666         current domain when loaded an assembly and failed to load it.
15667
15668         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15669
15670 2002-10-31  Dick Porter  <dick@ximian.com>
15671
15672         * icall.c: 
15673         * file-io.h: 
15674         * file-io.c: Return the error status in a parameter, as the
15675         GetLastError() value has long since been blown away if we try and
15676         look it up in a subsequent internal call invocation.  Delete the
15677         GetLastError() internal call, because it's useless.
15678
15679 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15680
15681         * class.[ch]: added cast_class to fix bug 29517
15682
15683 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15684
15685         * marshal.c: create valid IL code in the filter clause:
15686         the new JIT is less forgiving:-)
15687
15688 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15689
15690         * icall.c: removed get_property internal call.
15691
15692 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15693
15694         * appdomain.h domain.c: Added an ID to appdomains.
15695         
15696         * threads.c threads.h icall.c: Implement icall
15697         Thread:GetDomainID(), and remove unused icall 
15698         CurrentThreadDomain_internal.
15699
15700 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15701
15702         * icall.c: Don't recurse through the base types in GetConstructor.
15703         Fixes bug #32063. 
15704
15705 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15706
15707         * mempool.h, mempool.c: added mono_mempool_empty() and
15708         mono_mempool_stats().
15709
15710 2002-10-23  Dick Porter  <dick@ximian.com>
15711
15712         * file-io.c: 
15713         * file-io.h: 
15714         * icall.c: Added MonoIO.GetFileType internal call
15715
15716 2002-10-17  Dick Porter  <dick@ximian.com>
15717
15718         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15719         delegate semaphore before waiting for all threads to finish,
15720         because new threads can also call async delegates.  Fixes bug
15721         32004.
15722
15723         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15724         of 3 seconds, in case another async job is queued.  (This part is
15725         needed because the bug fix reintroduced the 3s exit lag.)  This
15726         makes the mono_runtime_shutdown flag superfluous.
15727
15728 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15729
15730         * reflection.c: include ehader size in method section headers.
15731         Really check for suplicated modules entries.
15732
15733 2002-10-17  Martin Baulig  <martin@gnome.org>
15734
15735         * debug-mono-symfile.c: Added back support for locals.
15736
15737 2002-10-14  Martin Baulig  <martin@gnome.org>
15738
15739         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15740         MONO_TYPE_VOID.
15741
15742 2002-10-14  Martin Baulig  <martin@gnome.org>
15743
15744         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15745         mono_class_get() instead of looking in the class cache. 
15746
15747 2002-10-13  Martin Baulig  <martin@gnome.org>
15748
15749         * debug-mono-symfile.c: Set version number to 28, include the
15750         signature in method names.
15751
15752 2002-10-13  Martin Baulig  <martin@gnome.org>
15753
15754         * debug-mono-symfile.h: Set version number to 27.
15755
15756 2002-10-11  Martin Baulig  <martin@gnome.org>
15757
15758         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15759
15760 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15761
15762         * metadata.c, metadata.h: added helper function to allocate signatures.
15763
15764 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15765
15766         * icall.c: added internal call to get the location of machine.config.
15767
15768 2002-10-08  Martin Baulig  <martin@gnome.org>
15769
15770         * debug-mono-symfile.c: Ignore classes with a pending init for the
15771         moment.
15772
15773 2002-10-03  Dick Porter  <dick@ximian.com>
15774
15775         * threads.c: Freebsd pthread_t is a pointer
15776
15777 2002-10-03  Dick Porter  <dick@ximian.com>
15778
15779         * socket-io.c: Implemented GetHostName_internal
15780
15781 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15782
15783         * mono-config.c:
15784         (mono_config_parse_file): don't leak the text.
15785
15786 2002-10-02  Martin Baulig  <martin@gnome.org>
15787
15788         * debug-mono-symfile.c: Added support for methods.
15789
15790 2002-10-01  Martin Baulig  <martin@gnome.org>
15791
15792         * debug-mono-symfile.c: Don't emit methods and line numbers for
15793         the dynamic symbol file, just write the type table.  We can easily
15794         have an external helper program which creates a symbol file for an
15795         IL file.        
15796
15797 2002-10-01  Dick Porter  <dick@ximian.com>
15798
15799         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15800         Only add the handle to the cleanup array when we're about to
15801         launch the thread.  Bug 31425 deadlocked when the test was run on
15802         mono under w32.
15803
15804 2002-10-01  Martin Baulig  <martin@gnome.org>
15805
15806         * debug-mono-symfile.c: Added support for properties.
15807
15808 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15809
15810         * reflection.c: unaligned store fix from Mark Crichton
15811         <crichton@gimp.org>.
15812
15813 2002-09-27  Martin Baulig  <martin@gnome.org>
15814
15815         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15816         New interncall.
15817
15818 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15819
15820         * assembly.h, assembly.c: use a sane API to hook into the assembly
15821         loading process instead of a useless special-purpouse hack
15822         (ngen needs a hook, too, for example).
15823
15824 2002-09-27  Dick Porter  <dick@ximian.com>
15825
15826         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15827         io-layer can set up some process handle info.  Not needed on w32,
15828         but doesn't hurt either.
15829
15830         * process.c: Pass the program name in the second parameter to
15831         CreateProcess, so the path is searched.  Include the working
15832         directory. Implemented process name, process enumeration, and some
15833         process detail internal calls.
15834         
15835         * icall.c: Added internal calls for process lookup, and some
15836         process details
15837
15838 2002-09-26  Martin Baulig  <martin@gnome.org>
15839
15840         * assembly.c (mono_install_open_assembly_hook): New global
15841         function to install a function to be invoked each time a new
15842         assembly is loaded.
15843         (mono_assembly_open): Run this callback function if set.
15844
15845         * debug-mono-symfile.c: Put back line numbers for the dynamic
15846         symbol file and also record the .il file as source file.  This
15847         allows us to install the temporary symbol file as `file.dbg' just
15848         like a compiler-generated one.
15849
15850 2002-09-26  Nick Zigarovich <nick@chemlab.org>
15851
15852         * Corrected typo in gc.c (BOHEM vs BOEHM).
15853
15854 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15855
15856         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
15857         GetProperties. Also avoid calling g_slist_length in GetProperties and
15858         GetMethods.
15859
15860 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15861
15862         * reflection.c: avoid unaligned stores (bug spotted by
15863         Mark Crichton  <crichton@gimp.org>).
15864
15865 2002-09-25  Martin Baulig  <martin@gnome.org>
15866
15867         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
15868         instead of guint64 for addresses and added prologue/epilogue info.
15869
15870 2002-09-25  Martin Baulig  <martin@gnome.org>
15871
15872         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
15873         store line number info.  For the dynamic symbol file, we only need
15874         to provide the JIT generated dynamic line number info for the dynamic
15875         symbol file.
15876
15877 2002-09-25  Martin Baulig  <martin@gnome.org>
15878
15879         * debug-mono-symfile.h: Incremented version number.
15880
15881 2002-09-24  Martin Baulig  <martin@gnome.org>
15882
15883         * class.c (mono_debugger_class_init_func): New global function
15884         pointer variable.
15885         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
15886         call it.
15887
15888         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
15889         function.  This is called via the mono_debugger_class_init_func
15890         hook to add all types to the dynamic type table.
15891         (ves_icall_MonoDebugger_GetType): New interncall to get a class
15892         from its metadata token.
15893
15894         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
15895         New interncall for the debugger.
15896
15897 2002-09-24  Nick Drochak <ndrochak@gol.com>
15898
15899         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
15900         before using it in case it is null.
15901         
15902 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
15903
15904         * metadata.c: allow custom modifiers in local var signatures
15905         (bug spotted by Zoltan Varga).
15906
15907 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
15908
15909         * class.c: deal with the <Module> class that may have a NULL vtable.
15910         Eliminate warnings.
15911
15912 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15913
15914         * image.c, image.h: more strong name helpers.
15915         * monosn.c: more work: convert pem keys to cryptoapi format.
15916
15917 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
15918
15919         * string-icalls.c: speedup IndexOf.
15920
15921 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15922
15923         * icall.c: updates from Zoltan.2.Varga@nokia.com.
15924
15925 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15926
15927         * icall.c: cleanup: use mono_object_domain ().
15928
15929 2002-09-23  Martin Baulig  <martin@gnome.org>
15930
15931         * debug-mono-symfile.c: Improved type support.
15932
15933 2002-09-22  Martin Baulig  <martin@gnome.org>
15934
15935         * debug-mono-symfile.c: Added support for reference types and strings.
15936
15937 2002-09-22  Martin Baulig  <martin@gnome.org>
15938
15939         * debug-mono-symfile.c: Started to work on the type table.
15940
15941 2002-09-21  Martin Baulig  <martin@gnome.org>
15942
15943         * debug-mono-symfile.c: Largely reworked the symbol table format.
15944         The symbol table is now incrementally updated each time a new
15945         method is added.  We're now also using our own magic and version
15946         so that you don't need to recompile all your classes if the
15947         dynamic table changes.
15948         (mono_debug_update_mono_symbol_file): Removed.
15949         (mono_debug_symfile_add_method): New function to add a method.
15950
15951 2002-09-21  Martin Baulig  <martin@gnome.org>
15952
15953         * icall.c
15954         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
15955         New interncall.
15956
15957         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
15958         New interncall to get a method from its metadata token.
15959
15960 2002-09-21  Martin Baulig  <martin@gnome.org>
15961
15962         * debug-mono-symfile.c: Create type table.
15963
15964 2002-09-20  Martin Baulig  <martin@gnome.org>
15965
15966         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
15967
15968 2002-09-20  Martin Baulig  <martin@gnome.org>
15969
15970         * debug-mono-symfile.c: Provide information about params and locals.
15971
15972 2002-09-20  Martin Baulig  <martin@gnome.org>
15973
15974         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
15975         New interncall.
15976
15977         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
15978         interncall to get a method from its metadata token.
15979
15980 2002-09-20  Martin Baulig  <martin@gnome.org>
15981
15982         * debug-mono-symfile.c: Added a few checks for method->header
15983         being non-NULL.  This should never happen, but for the moment
15984         let's use a g_warning() rather than a g_assert().
15985
15986 2002-09-19  Mark Crichton  <crichton@gimp.org>
15987
15988         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
15989         even if support for it isn't present.  Added an #ifdef to fix this.
15990
15991         * socket-io.c: Added checks back for Solaris support.
15992
15993 2002-09-19  Martin Baulig  <martin@gnome.org>
15994
15995         * debug-mono-symfile.c (read_string, write_string): Reflect latest
15996         changes in the symbol file format.
15997
15998 2002-09-18  Martin Baulig  <martin@gnome.org>
15999
16000         * debug-mono-symfile.c: Set version number to 21.
16001
16002 2002-09-18  Dick Porter  <dick@ximian.com>
16003
16004         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
16005         on netbsd.  Fixes bug 30051.
16006
16007 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16008
16009         * reflection.c:
16010         (set_version_from_string): little fix.
16011
16012 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16013
16014         * monosn.c, Makefile.am: added strong name utility.
16015         * reflection.h, reflection.c: implemented delayed signing,
16016         locale, version and hash id assembly attributes.
16017
16018 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16019
16020         * loader.c, metadata.c: load param attributes in signatures.
16021
16022 2002-09-16  Martin Baulig  <martin@gnome.org>
16023
16024         * debug-mono-symfile.c: Added string table with all method names.
16025
16026 2002-09-14  Martin Baulig  <martin@gnome.org>
16027
16028         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
16029         fast method lookup.
16030
16031 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16032
16033         * reflection.c: record the public key token of referenced assemblies.
16034
16035 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16036
16037         * image.c, image.h: added functions to get the strong name and the
16038         public key of an assembly.
16039         * pedump.c: use them.
16040
16041 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
16042
16043         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
16044
16045 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
16046
16047         * marshal.c (mono_marshal_get_managed_wrapper): Added
16048         MONO_TYPE_BOOLEAN 
16049
16050 2002-09-11  Martin Baulig  <martin@gnome.org>
16051
16052         * gc.c: Call GC_unregister_disappearing_link() on all links when
16053         finalizing them, this is necessary to aviod a crash in boehm's
16054         finalize handler.
16055
16056 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16057
16058         * gc.c: handle GetTarget for finalized objects spotted and fixed by
16059         nick@chemlab.org.
16060
16061 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16062
16063         * icall.c: implemented MonoType::Module.
16064         * reflection.c, reflection.h: mono_module_get_object () from
16065         Tomi Pakarinen <tomi.pakarinen@welho.com>.
16066
16067 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
16068
16069         * icall.c: ignore overridden methods in GetMethods ().
16070         Fix for FieldInfo::SetValue().
16071         * object.c: handle float/double in runtime invoke.
16072
16073 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16074
16075         * object.c: allow a constructor to be called again on an object.
16076
16077 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16078
16079         * class.h, class.c: move field layout code to it's own function and
16080         export it. Get an interface id earlier. Move fields in MonoClass
16081         so they are more cache friendly and align the bitfields.
16082         * loader.c: temporary handle get_param_names() for a runtime method.
16083         * reflection.c, reflection.h: more code to handle runtime creation of
16084         types.
16085
16086 2002-09-09  Martin Baulig  <martin@gnome.org>
16087
16088         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
16089         signature with the pinvoke field being set for the actual call.
16090
16091 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16092
16093         * icall.c: removed some unused icalls. Start of map of glib charsets
16094         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
16095
16096 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16097
16098         * debug-helpers.c: break infinite loop (found and fixed by
16099         Holger Arnold <harnold@gmx.de>).
16100
16101 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16102
16103         * icall.c: target may be null in create_delegate.
16104
16105 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16106
16107         * marshal.c: handle a boolean return type.
16108
16109 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16110
16111         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
16112
16113 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16114
16115         * gc.c: fix weakreferences.
16116
16117 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16118
16119         * icall.c: added icall to get default codepage.
16120
16121 2002-09-03  Dick Porter  <dick@ximian.com>
16122
16123         * threads.h: 
16124         * threads.c: Use MonoThread instead of MonoObject where
16125         apropriate.
16126
16127         Store running thread objects in a hash table, so that we have all
16128         the info to hand when waiting for them to finish
16129         (means we don't need OpenThread() any more, so mingw builds should
16130         be fully functional again.)
16131
16132         * verify.c:
16133         * object.h: Added thread ID to MonoThread
16134
16135 2002-09-03  Martin Baulig  <martin@gnome.org>
16136
16137         * icall.c (System.Reflection.Assembly::get_location): New interncall.
16138
16139 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16140
16141         * icall.c: fixed leak in get_temp_path. Thanks lupus.
16142
16143 2002-09-03  Martin Baulig  <martin@gnome.org>
16144
16145         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
16146         argument to store the end address of the disassembled instruction.
16147
16148         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
16149         here from debug-symfile.h.
16150         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
16151         JIT into this struct.
16152         (MonoSymbolFile): Added `char *image_file' field.
16153         (MonoDebugGetMethodFunc): Removed.
16154         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
16155         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
16156         (mono_debug_find_method): New method.
16157
16158         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
16159         create a full symbol file.
16160         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
16161         and static symbol files.
16162         (mono_debug_find_method): The symbol file keeps an internal method hash,
16163         call this to get a MonoDebugMethodInfo from a MonoMethod.
16164
16165         * debug-symfile.[ch]: Removed.
16166
16167 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
16168
16169         * image.c (do_mono_image_open): Remove linker version check.
16170
16171 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
16172
16173         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
16174         wrappers for instance methods.
16175         
16176 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16177
16178         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
16179
16180 2002-08-28  Dick Porter  <dick@ximian.com>
16181
16182         * Makefile.am: Export HOST_CC for w32 builds
16183
16184 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16185
16186         * file-io.c process.c: MonoString are null terminated, no
16187         need for mono_string_to_utf16() anymore.
16188
16189 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16190
16191         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
16192
16193 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
16194
16195         * icall.c, reflection.h: speedup System.MonoType.
16196
16197 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16198
16199         * reflection.c: allow null as the value of a string argument in
16200         custom attributes constructors.
16201
16202 2002-08-27  Martin Baulig  <martin@gnome.org>
16203
16204         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
16205         `trampoline_address' field.
16206
16207 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
16208
16209         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
16210         check (fixes bug #29486) 
16211
16212 2002-08-27  Martin Baulig  <martin@gnome.org>
16213
16214         * debug-mono-symfile.c: Changed the file format in a way that allows us
16215         open it read-only and to use a specially malloced area for all the
16216         dynamic data.  We can now also generate a symbol file on-the-fly if we're
16217         debugging IL code and there is no MCS generated symbol file for it.
16218
16219 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16220
16221         * object.c: added a define for a good string and array
16222         creation speedup (not enabled by default because we need to deal with
16223         the synch stuff).
16224
16225 2002-08-26  Martin Baulig  <martin@gnome.org>
16226
16227         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
16228         function to create a dynamic symbol file.  This is used by the
16229         debugger to create a symbol file for IL code on-the-fly.
16230
16231 2002-08-26  Martin Baulig  <martin@gnome.org>
16232
16233         * loader.c (mono_lookup_pinvoke_call): Include the error message
16234         from g_module_error() in the error message.
16235
16236 2002-08-24  Martin Baulig  <martin@gnome.org>
16237
16238         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
16239         function to update the symbol file.  The symbol file is mmap()ed
16240         writable, but private.  This allows us to install the symbol file
16241         together with the assembly.
16242
16243 2002-08-24  Martin Baulig  <martin@gnome.org>
16244
16245         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
16246         but they can read the new symbol file format which mcs is now creating.
16247
16248         * debug-symfile.c (mono_debug_find_source_location): Moved to
16249         debug-mono-symfile.c; this is now operating on the new symbol file.
16250
16251 2002-08-23  Martin Baulig  <martin@gnome.org>
16252
16253         * debug-helpers.c (mono_method_desc_from_method): New function to get
16254         a MonoMethodDesc from a MonoMethod.
16255
16256 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16257
16258         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
16259         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
16260
16261 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16262
16263         * string-icalls.[ch]: make helper methods static.
16264
16265 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16266
16267         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
16268         types to it and to SetValueInternal.
16269
16270         * object.c: Moved handle_enum label to its proper place. This was the
16271         f... bug! ;-)
16272
16273         This time i compiled mcs and gtk-sharp and they both work.
16274
16275 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16276
16277         * icall.c: reverted partially my previous patch until 
16278         object.c:set_value handles enums correcly.
16279
16280 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16281
16282         * icall.c:
16283         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
16284         (ves_icall_System_Environment_get_MachineName): removed warning when
16285         compiling under cygwin.
16286
16287 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16288
16289         * object.c: fixed field_get_value() for reference types.
16290
16291 2002-08-22  Dick Porter  <dick@ximian.com>
16292
16293         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
16294         Don't free a buffer while it's still needed.  Patch from Jonathan
16295         Liger <Jonathan.liger@wanadoo.fr>
16296
16297 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
16298
16299         * icall.c (ves_icall_System_Environment_get_Platform): Add new
16300         internal call.
16301
16302 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
16303
16304         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
16305         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
16306
16307         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
16308         we call unmanaged code which throws exceptions.
16309
16310 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16311
16312         * appdomain.h: added per-domain entry_assembly.
16313         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
16314         arguments.
16315         * icall.c: Assembly::GetEntryAssembly icall.
16316         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
16317         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
16318
16319 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16320
16321         * appdomain.h, gc.c: added mono_domain_finalize ().
16322
16323 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16324
16325         * object.c:
16326         (mono_print_unhandled_exception): changed g_warning by g_printerr
16327         because g_log has a 1024 characters limit (yeah, i got a big stack
16328         trace). Don't print exception name, that should be in ToString 
16329         returned string.
16330
16331 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16332
16333         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
16334         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
16335
16336 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16337
16338         * object.c:
16339         (mono_print_unhandled_exception): after previous commit, i realized
16340         that MS calls ToString on the exception. I changed this function to
16341         do that. This way we get stack_trace for free.
16342
16343 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16344
16345         * object.c:
16346         (mono_print_unhandled_exception): invoke Message property instead of
16347         getting 'message' field from Exception. Don't allocate memory for
16348         'trace' and 'message' if not needed.
16349
16350 2002-08-18  Dick Porter  <dick@ximian.com>
16351
16352         * unicode.c: Fix asserts to match Encoder.cs checks
16353
16354 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16355
16356         * marshal.c: fix unaligned store issue and a few wrong
16357         opcode argument types.
16358
16359 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16360
16361         * icall.c: added GetUninitializedObjectInternal internal call.
16362
16363 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
16364
16365         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
16366         to the right domain.
16367
16368 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
16369
16370         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
16371
16372         * class.c (class_compute_field_layout): set blittable to false for Strings
16373
16374         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
16375
16376 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16377
16378         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
16379         first chunk of code to create types at runtime. Code to
16380         handle ReflectedType/DeclaringType. Make reflection handles
16381         domain specific.
16382
16383 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16384
16385         * class.c: set correct name in arrays.
16386
16387 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
16388
16389         * appdomain.c (mono_domain_transfer_object): make it work with
16390         valuetypes. bug fixes.
16391
16392 2002-08-12  Dick Porter  <dick@ximian.com>
16393
16394         * object.h: Rename some parameters to avoid c++ keywords (Patch
16395         from Joseph Wenninger <kde@jowenn.at>)
16396
16397 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
16398
16399         * icall.c: added icall to implement Assembly.GetFile*.
16400
16401 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16402
16403         * reflection.h, reflection.c: code to embed managed resources.
16404
16405 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16406
16407         * class.c: move all the type size stuff into
16408         class_compute_field_layout().
16409
16410 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16411
16412         * class.c: ensure enums have always the correct instance size.
16413         * unicode.c: remove wrong assert.
16414
16415 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16416
16417         * assembly.c: fix mem corruption issue.
16418         * image.h, image.c: added mono_image_get_resource () to access
16419         managed resources.
16420         * icall.c: implemented Assembly.EntryPoint property and some
16421         Managed Resources related internalcalls.
16422
16423
16424 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16425
16426         * image.c, image.h: impemented mono_image_get_entry_point ().
16427         * appdomain.c: use mono_image_get_entry_point.
16428
16429 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16430
16431         * reflection.c: support the object type argument when loading
16432         custom attributes.
16433
16434 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
16435
16436         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
16437         String as return type.
16438
16439 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
16440
16441         * reflection.c: fix encoding of named args for custom attrs to match
16442         the ms implementation. Read them back when instantiating custom
16443         attributes.
16444
16445 2002-08-02  Radek Doulik  <rodo@ximian.com>
16446
16447         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
16448         by Dietmar as quick fix
16449         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
16450         16 as stack size, used on more places as quick fix before Dietmar
16451         will fix it properly
16452
16453 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16454
16455         * object.h, object.c: added accessors for fields and properties.
16456
16457 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16458
16459         * class.c, class.h: made mono_class_get_field_from_name ()
16460         loop on parent types.
16461         Added mono_class_get_property_from_name ().
16462
16463 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16464
16465         * class.c, class.h: move the code to setup the type vtable in its own
16466         function so that it can be reused also for types created at runtime.
16467         Eliminate the "class" identifier from the header file.
16468         * reflection.c: setup the vtable for enums so that we can create
16469         objects for use in SetConstant ().
16470
16471 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
16472
16473         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
16474         instead of the delegate itself as this pointer (bug #28383)
16475
16476 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
16477
16478         * marshal.c (mono_marshal_get_managed_wrapper): added return type
16479         conversions.
16480
16481 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16482
16483         * loader.c: don't set the pinvoke bit on icalls.
16484
16485 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
16486
16487         * debug-helpers.c (mono_method_full_name): only print a number to
16488         indicate wrapper type (so that the output is more readable in traces).
16489
16490 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
16491
16492         * class.c (mono_class_init): include method override patch from Paolo
16493
16494 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
16495
16496         * icall.c: fixed GetTypeCode().
16497
16498 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
16499
16500         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
16501         use real delegate invoke function to make it work with multicast
16502         delegates (fix bug# 28291).
16503
16504 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16505
16506         * object.c: load constant strings.
16507
16508 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16509
16510         * reflection.c: no magic numbers.
16511         * tabledefs.h: security action enum.
16512
16513 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16514
16515         * assembly.c: fix possible memory corruption.
16516
16517 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16518
16519         * reflection.h, reflection.c: added support for linking resources.
16520         * verify.c: check we have an updated corlib.
16521
16522 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
16523
16524         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
16525         string arrays.
16526         (mono_marshal_string_array): null terminate unmanaged string arrays.
16527         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
16528
16529 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16530
16531         * icall.c: Type.GetType () can now return also types from the
16532         calling assembly.
16533
16534 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16535
16536         * loader.h, loader.c: stack walking support.
16537         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
16538         GetCallingAssembly.
16539
16540 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
16541
16542         * marshal.c: added optimisations for blittable types 
16543
16544         * class.c (mono_array_class_get): do not set blittable attribute on arrays
16545         (mono_class_setup_mono_type): set blittable attribute for single
16546         and double.
16547
16548         * marshal.c (mono_string_utf8_to_builder): impl.
16549         (mono_string_builder_to_utf8): impl.
16550         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
16551
16552 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
16553
16554         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
16555         (mono_marshal_get_managed_wrapper): impl. byref types
16556
16557 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16558
16559         * icall.c:
16560         (search_method): don't display debug message. 
16561
16562 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16563
16564         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
16565
16566 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16567
16568         * appdomain.c: set the missing filename when throwing exception.
16569
16570 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16571
16572         * metadata.c (mono_type_size): code cleanup
16573         (mono_type_stack_size): removed some test code
16574
16575 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
16576
16577         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
16578         mono_get_exception_file_not_found now.
16579
16580         * exception.c (mono_exception_from_name_two_strings): New version
16581         that will call a constructor with two string arguments. 
16582         (mono_get_exception_file_not_found): New helper routine, used to
16583         report file-not-found errors.
16584
16585 2002-07-20  Dick Porter  <dick@ximian.com>
16586
16587         * process.h:
16588         * process.c: Pass file handles to CreateProcess
16589         
16590         * icall.c:
16591         * file-io.h:
16592         * file-io.c: Implemented CreatePipe
16593
16594 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16595
16596         * metadata.c (mono_get_param_info): set alignment for value types
16597
16598 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16599
16600         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
16601         Constify mono_domain_assembly_open().
16602         * loader.c: handle null namespace in icalls.
16603
16604 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16605
16606         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
16607         (emit_str_to_ptr_conv): marshal object as structs
16608
16609         * metadata.c (mono_type_to_unmanaged): marshal object as structs
16610
16611         * marshal.c (mono_marshal_get_runtime_invoke): support value types
16612
16613 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
16614
16615         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
16616         (mono_marshal_get_native_wrapper): we an now return value types
16617
16618 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16619
16620         * verify.c: more checks implemented.
16621
16622 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
16623
16624         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
16625         (fix bug #27695)
16626         (mono_marshal_get_native_wrapper): allow byref arguments
16627         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
16628         impl. PtrToStringXXX methods
16629         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
16630         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
16631         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
16632         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
16633         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
16634
16635 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16636
16637         * reflection.c: fix buglet in parsing an assembly name.
16638
16639 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16640
16641         * marshal.c (emit_ptr_to_str_conv): first impl.
16642
16643 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16644
16645         * object.c, class.h: cache the vtable in the class as suggested by
16646         vargaz@freemail.hu (Zoltan Varga).
16647
16648 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16649
16650         * class.h, loader.c: added mono_field_from_token().
16651         * verify.c: first cut of type checking code.
16652
16653 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16654
16655         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
16656
16657 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
16658
16659         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
16660         (fix bug #27782)
16661         (mono_marshal_get_remoting_invoke): impl.
16662         (mono_delegate_begin_invoke): impl.
16663         (mono_mb_emit_save_args): impl.
16664         (mono_delegate_end_invoke): impl.
16665         (mono_marshal_get_delegate_begin_invoke):
16666         (mono_marshal_get_delegate_end_invoke):
16667         (mono_marshal_get_delegate_invoke): generate a special name for
16668         those methods (including the signature) and associate them whith
16669         the delegate class. 
16670
16671 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16672
16673         * reflection.[ch]: 
16674         (mono_reflection_type_from_name): now it has a MonoImage parameter
16675         which is used as the default image to search the type in. If the image
16676         is NULL or getting the type from it fails, it defaults to corlib.
16677
16678         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16679         new parameter.
16680
16681 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16682
16683         * reflection.c: update the parameter table index.
16684
16685 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16686
16687         * domain.c: don't include the mark byte in the string hash.
16688
16689 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16690
16691         * icall.cs: icall for Type.GetTypeCode ().
16692         * verify: a couple of fixes and disabled local initialization checks.
16693
16694 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16695
16696         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16697
16698         * debug-helpers.c (mono_method_full_name): print the type of the
16699         runtime wrapper
16700
16701         * metadata.c (mono_signature_hash): a hash function for signatures
16702         (mono_signature_hash): better hash algorithm
16703
16704         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16705
16706         * debug-helpers.c (mono_method_full_name): this can now generate
16707         method names with signatures
16708
16709         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16710         method dont have this pointers.
16711
16712 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16713
16714         * reflection.c: fixup typebuilder tokens.
16715         * image.c: fix buglet.
16716         * marshal.h: remove whitespace.
16717         * metadata.h, metadata.c: reinstate code that was removed.
16718         * verify.c: handle catch directives and fix another couple of bugs.
16719
16720 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16721
16722         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16723         (mono_marshal_get_native_wrapper): make it comp. with the old code
16724         (mono_marshal_get_native_wrapper): support boolean
16725         (mono_marshal_get_managed_wrapper): support more types
16726
16727 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16728
16729         * class.c (class_compute_field_layout): compute class->blittable attribute.
16730
16731 2002-07-09  Dick Porter  <dick@ximian.com>
16732
16733         * threads.c: Make the thread cleaning up cope with threads that
16734         call ExitThread()
16735
16736 2002-07-08  Radek Doulik  <rodo@ximian.com>
16737
16738         * reflection.c (method_encode_code): use non-translated values to
16739         compute finally_start, this fixes exception handling on ppc, yay!
16740
16741         * decimal.h (struct signscale): fix endianess
16742
16743 2002-07-07  Radek Doulik  <rodo@ximian.com>
16744
16745         * reflection.c: swap box_val and not val
16746
16747 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16748
16749         * reflection.c, reflection.h: handle full assembly info in type name.
16750         Handle Type arguments when loading custom attributes.
16751         * icall.c: updated to use new mono_reflection_type_from_name () method.
16752
16753 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16754
16755         * loader.c:
16756         (method_from_memberref): also print assembly name when method not found.
16757
16758 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16759
16760         * icall.c:
16761         (ves_icall_TypeGetProperties): fixed bug #27473. 
16762
16763 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16764
16765         * reflection.c: display image name and token when cannot find the
16766         .ctor for an attribute.
16767
16768 2002-07-05  Martin Baulig  <martin@gnome.org>
16769
16770         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16771
16772 2002-07-04  Dick Porter  <dick@ximian.com>
16773
16774         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16775         compile on mingw.  This will cause mingw builds to not wait for
16776         subthreads to terminate after the main thread does.  I've lodged a
16777         bug with the mingw developers for them to wrap OpenThread().
16778
16779 2002-07-03  Dick Porter  <dick@ximian.com>
16780
16781         * threads.c: Store thread IDs instead of handles, because
16782         GetCurrentThread() returns a pseudohandle and therefore stores
16783         useless values.  mono_thread_cleanup() continues checking the
16784         array of threads until it is empty, to cope with subthreads
16785         spawning new threads after the main thread has finished.
16786
16787         * profiler.h:
16788         * profiler.c:
16789         * profiler-private.h: Pass the thread ID to thread profiler
16790         functions, instead of a handle
16791
16792 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16793
16794         * verify.c: fixes to make it more usable.
16795         * pedump.c: added --verify code to verify IL code in an assembly.
16796
16797 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16798
16799         * reflection.c: turn errors into warnings to allow compiling corlib.
16800
16801 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16802
16803         * reflection.c: add special cases to compile corlib.
16804
16805 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16806
16807         * reflection.c: handle properties with only a set method.
16808
16809 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16810
16811         * opcodes.h: add enum with opcodes in opval order.
16812
16813 2002-07-01  Dick Porter  <dick@ximian.com>
16814         
16815         * object.h:
16816         * object.c (mono_runtime_run_main): Removed unneeded argument
16817
16818 2002-06-28  Martin Baulig  <martin@gnome.org>
16819
16820         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16821
16822 2002-06-27  Dick Porter  <dick@ximian.com>
16823
16824         * threads.c: Store the handle in both the parent thread and in the
16825         subthread, to minimise the time between starting a new thread and
16826         storing its ID.
16827
16828 2002-06-26  Dick Porter  <dick@ximian.com>
16829
16830         * appdomain.c (mono_runtime_cleanup): Close the socket library
16831         after all the threads have finished, not before
16832
16833 2002-06-26  Martin Baulig  <martin@gnome.org>
16834
16835         * debug-symfile.c (mono_debug_find_source_location): Added
16836         `guint32 *line_number' argument.  If it's not NULL, store the line number
16837         there and return the file name without the line number.
16838
16839 2002-06-25  Dick Porter  <dick@ximian.com>
16840
16841         * icall.c:
16842         * process.h:
16843         * process.c: Process forking and other support functions
16844
16845 2002-06-25  Dick Porter  <dick@ximian.com>
16846
16847         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
16848         things dont happen when the image is closed.
16849         (mono_image_lookup_resource): Walk the resource section looking
16850         for a particular entry
16851
16852         * cil-coff.h: PE resource section decoding
16853
16854 2002-06-25  Dick Porter  <dick@ximian.com>
16855         
16856         * assembly.h:
16857         * assembly.c: 
16858         (mono_assembly_foreach): Accessor functions to walk the list of
16859         loaded assemblies
16860         (mono_assembly_set_main):
16861         (mono_assembly_get_main): Process methods need to know which
16862         assembly is the "main" one
16863
16864         * object.c (mono_runtime_run_main): Record the main assembly
16865
16866         * debug-helpers.c: Fix typo
16867
16868 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
16869
16870         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
16871         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
16872
16873 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16874
16875         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
16876
16877 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
16878
16879         * image.c (do_mono_image_open): Initialize reference count,
16880         otherwise we leak the MonoImage.
16881
16882 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16883
16884         * reflection.c: small tweak to handle self-hosting.
16885
16886 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16887
16888         * reflection.c: fix type name parse code.
16889
16890 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16891
16892         * reflection.c: break out of the loop.
16893         * image.c: special case corlib.
16894
16895 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16896
16897         * reflection.c: add all the custom attrs at the end to ensure the
16898         ctors have been properly initialized when the attributes are defined
16899         in the current assembly.
16900
16901 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16902
16903         * reflection.c: handle correctly multiple-nested types.
16904
16905 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16906
16907         * row-indexes.h: fix typos.
16908         * reflection.c: adjust for typos and fix method_def_or_ref
16909         encoding in MethodImpl table.
16910
16911 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16912
16913         * reflection.c: fix entry point patching (thanks Serge!).
16914
16915 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
16916
16917         * verify.c: add check for System.Exception
16918
16919 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16920
16921         * image.c, class.c: minifix for code just c&p'ed.
16922         * reflection.c: warning fix.
16923         * object.h, loader.h, domain.c: load also StringBuilder.
16924
16925 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16926
16927         * marshal.h, marshal.c: some support code to handle complex marshaling.
16928
16929 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16930
16931         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
16932         Better signatures with vtable error dump.
16933
16934 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
16935
16936         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
16937
16938 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
16939
16940         * icall.c (ves_icall_Type_GetField): impl.
16941
16942 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16943
16944         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
16945         to retrieve a marshal description blob for a field or param.
16946
16947 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16948
16949         * reflection.h, reflection.c: change order of nested type emission
16950         to avoid table corruption. The NestedTypes table is sorted.
16951         * icall.c: change order of GetConstructor results to workaround mcs bug.
16952
16953 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16954
16955         * reflection.h, reflection.c: handle field and param marshal
16956         information.
16957
16958 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16959
16960         * icall.c, marshal.c marshal.h: more Marshal class implementation.
16961
16962 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16963
16964         * reflection.c: fix call convention.
16965
16966 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16967
16968         * reflection.h, reflection.c: mono_image_get_memberref_token()
16969         takes a type instead of a class, now. Added
16970         mono_image_get_array_token() to create tokens for the special
16971         multi-dim array methods.
16972
16973 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16974
16975         * assembly.c: handle modules (no assembly table). Split
16976         loading references in its own function.
16977         * class.c: handle moduleref resolution scope.
16978         * image.c, image.h: cache module name in image.
16979
16980 2002-06-07  Martin Baulig  <martin@gnome.org>
16981
16982         * reflection.c (mono_image_get_type_info): Only add a class layout entry
16983         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
16984
16985 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16986
16987         * icall.c: more signature fixes that used uint instead of int.
16988
16989 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16990
16991         * reflection.c: fixed signature of field refs.
16992
16993 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16994
16995         * class.c, reflection.c: handle typerefs of nested types
16996         (both on read and when writing files).
16997
16998 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16999
17000         * icall.c: fix method signatures that tried to workaround the previous
17001         typo, d'oh!
17002
17003 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17004
17005         * debug-helpers.c: fix typo.
17006
17007 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17008
17009         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
17010         rewrote the PE/COFF writing code (our programs are understood by the
17011         ms runtime, now).
17012
17013 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17014
17015         * gc.c, gc.h, icall.c: weakreference support.
17016
17017 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17018
17019         * Makefile.am, mono-config.c: use $(sysconfdir).
17020
17021 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17022
17023         * icall.c: changed default precision of Double.ToString() to 15.
17024         Fixed memory leak. Unified with Single.ToString.
17025
17026 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17027
17028         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
17029
17030 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17031
17032         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
17033         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
17034         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
17035         and myself.
17036
17037 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17038
17039         * debug-symfile.c, sysmath.c: yet more compilation fixes.
17040
17041 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17042
17043         * reflection.c, socket-io.c: more compilation fixes.
17044
17045 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17046
17047         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
17048         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
17049         unicode.c: warning and compiler compatibility fixes.
17050
17051 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17052
17053         * class.h, metadata.c: fixed warnings/compilation errors.
17054
17055 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17056
17057         * Makefile.am, mono-config.c, mono-config.h: configuration file
17058         support routines.
17059         * loader.c, loader.h: make Dll mapping configurable at runtime in the
17060         config file. Export methods to insert and lookup mappings.
17061
17062 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17063
17064         * reflection.c: handle types and boxed objects in custom attr
17065         constructors.
17066
17067 2002-05-30  Martin Baulig  <martin@gnome.org>
17068
17069         * debug-symfile.c
17070         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
17071
17072 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
17073
17074         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
17075         to lookup the implmap row for a P/Invoke method.
17076         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
17077         P/Invoke method from the runtime on an as needed basis.
17078
17079 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
17080
17081         * metadata.c (mono_metadata_parse_signature): impl.
17082
17083 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17084
17085         * class.c: handle .pack directive.
17086
17087 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17088
17089         * object.c: initialize static fields with RVA data.
17090
17091 2002-05-25  Martin Baulig  <martin@gnome.org>
17092
17093         * debug-symfile.c
17094         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
17095
17096 2002-05-24  Martin Baulig  <martin@gnome.org>
17097
17098         * debug-symfile.c
17099         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
17100         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
17101         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
17102
17103 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17104
17105         * object.c: special case string ctros in invoke.
17106         * gc.c: silly whitespace changes.
17107
17108 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
17109
17110         * threadpool.[ch]: impl. a threadpool that can
17111         be used by mint and mono.
17112
17113 2002-05-22  Martin Baulig  <martin@gnome.org>
17114
17115         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
17116         The first argument is now a `MonoReflectionModuleBuilder *', the return
17117         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
17118         `methods' field to get the method builder.  The `token' argument is the
17119         unfixed token.
17120
17121         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
17122         invalid characters instead of g_assert_not_reached()ing.  This seems
17123         to be the behaviour of mscorlib.
17124
17125 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
17126
17127         * object.c (mono_runtime_invoke_array): applied patch from Rachel
17128         Hestilow to fix bug #25104
17129
17130 2002-05-21  Martin Baulig  <martin@gnome.org>
17131
17132         * debug-symfile.c (mono_debug_find_source_location): New function.
17133         Looks up an IL offset in the line number table and returns the source
17134         location as a string.
17135
17136 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17137
17138         * icall.c:
17139         (mono_double_ToStringImpl): changed %f by %g until we have something
17140         better.
17141
17142 2002-05-21  Nick Drochak  <ndrochak@gol.com>
17143
17144         * icall.c : Use different name for Math.Pow's icall.  Needed to check
17145         parameters first in C#.
17146
17147 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17148
17149         * icall.c, reflection.h: added icall to get info about an event.
17150
17151 2002-05-20  Radek Doulik  <rodo@ximian.com>
17152
17153         * object.c (mono_value_box): don't use memcpy for boxing on BIG
17154         endian
17155         (mono_value_box): don't use memcpy for small sizes on
17156         architectures with unaligned access
17157
17158 2002-05-20  Martin Baulig  <martin@gnome.org>
17159
17160         * reflection.c (mono_reflection_setup_internal_class): Don't crash
17161         if `tb->parent == NULL'.
17162         (mono_reflection_create_internal_class): New function.  This is
17163         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
17164         for enum types.
17165
17166         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
17167         New interncall.
17168
17169 2002-05-19  Martin Baulig  <martin@gnome.org>
17170
17171         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
17172         argument to get the length, don't default to the array length.
17173
17174 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
17175
17176         * assembly.c (mono_assembly_setrootdir): New function used to
17177         override the MONO_ASSEMBLIES directory.
17178
17179 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17180
17181         * icall.c: ValueType_GetHashCode() initialize local var.
17182
17183 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17184
17185         * reflection.c: sort custom attributes table.
17186
17187 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17188
17189         * reflection.c: support named args in custom attributes (write support).
17190
17191 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17192
17193         * reflection.c: fix finally position calculation.
17194
17195 2002-05-15  Radek Doulik  <rodo@ximian.com>
17196
17197         * reflection.c: fixed endianess at many places
17198
17199         * icall.c (ves_icall_InitializeArray): comment out debug msg
17200
17201 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
17202
17203         * object.c (mono_unhandled_exception): new function to handle
17204         unhandled exceptions.
17205         (mono_unhandled_exception): call the UnhandledException event.
17206         (mono_runtime_delegate_invoke): impl.
17207
17208 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
17209
17210         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
17211         returns the RVA, not the direct pointer to the data. Handle the case
17212         when the class size is fixed.
17213
17214 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17215
17216         * reflection.c: fix some endianess issues.
17217
17218 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
17219
17220         * object.c (mono_runtime_invoke): is now able to catch exceptions.
17221
17222         * threads.c (mono_thread_init): added a callback which is invoked
17223         at thread start.
17224
17225 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17226         
17227         * icall.c: make GetHashCode return non-negative values.
17228
17229 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17230
17231         * object.c, icall.c, gc.c: revert to address-based hashcode.
17232
17233 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
17234
17235         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
17236
17237 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17238
17239         * icall.c, class.c: special case <Module>.
17240
17241 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
17242
17243         * icall.c: fix bug in GetNow().
17244
17245 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
17246
17247         * object.c (mono_runtime_class_init): make sure that we call all
17248         static class constructors.
17249
17250 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17251
17252         * reflection.c: sort methodsemantics table.
17253
17254 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17255
17256         * reflection.h, reflection.c: honour init locals setting.
17257
17258 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
17259
17260         * icall.c: copied Double ToStringImpl for Single ToStringImpl
17261
17262 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17263
17264         * reflection.c: support ContructorBuilders in attribute blob creation.
17265
17266 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17267
17268         * reflection.c: some changes to build a binary that can be run
17269         directly in windows.
17270
17271 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17272
17273         * loader.c: print a big message when an icall can't be found.
17274
17275 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17276
17277         * string-icalls.c: fix bug 24248.
17278
17279 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17280
17281         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
17282         icall.c, reflection.h: separate assembly loading by pathname and by
17283         assembly name. Use the MONO_PATH env var to search for assemblies.
17284
17285 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17286
17287         * assembly.c, image.h: add some support for assemblies
17288         with multiple modules.
17289         * class.c, class.h: export mono_class_from_typeref().
17290         * loader.c: remove duplicated code and use mono_class_from_typeref(),
17291         instead.
17292
17293 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17294
17295         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
17296         documentation says (the ECMA one is correct).
17297
17298 2002-05-02  Dick Porter  <dick@ximian.com>
17299
17300         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
17301         Don't name the synchronisation mutex.
17302
17303 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
17304
17305         * rand.c
17306         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
17307         Make the prototypes match.
17308         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
17309         Same.
17310
17311         * icall.c
17312         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
17313         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
17314         all systems have tm.tm_zone, so use strftime() with %Z to print
17315         the timezone abreviation into a temp string.
17316
17317         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
17318         rather than mono_array_addr() on a MonoString on Big Endian
17319         machines.
17320
17321 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
17322
17323         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
17324         fix bug 24041
17325
17326 2002-04-30  Dick Porter  <dick@ximian.com>
17327
17328         * socket-io.c: Cope with SOCKET being an integer rather than a
17329         pointer now.
17330
17331         * threads.c: Added Thread_free_internal, to deal with thread
17332         handle cleanup.  Moved calls to handle_store() and handle_remove()
17333         to start_wrapper(), so each can only be called once.  Allocate
17334         synchronisation blocks with GC_malloc(), and use GC finalisation
17335         to close the handles.
17336
17337         * icall.c: added System.Threading.Thread::Thread_free_internal
17338
17339 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17340
17341         * icall.c: support Environment.Exit, CommandLineArgs().
17342
17343 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17344
17345         * object.c, object.h: added mono_runtime_run_main () and
17346         mono_runtime_get_main_args () for use in System.Environment.
17347
17348 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17349
17350         * gc.c: fix thinko, enable actual finalization since the jit is now
17351         fixed.
17352
17353 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17354
17355         * gc.c, object.c: take into account that an object may be offset wrt the address
17356         returned by GC_malloc().
17357
17358 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17359
17360         * image.c: handle files without entries in the assembly table (modules).
17361
17362 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
17363
17364         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
17365         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
17366         allowed to be null when it's System.Object class setup.
17367
17368 2002-04-27  Martin Baulig  <martin@gnome.org>
17369
17370         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
17371         if `tb->parent == NULL' rather than crashing.
17372
17373 2002-04-28  Nick Drochak  <ndrochak@gol.com>
17374
17375         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
17376         calling acos() where asin() should have been called.
17377
17378 2002-04-26  Martin Baulig  <martin@gnome.org>
17379
17380         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
17381         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
17382         there's a subdirectory called `System', but we don't want to read that
17383         subdirectory as an assembly.
17384
17385 2002-04-25  Martin Baulig  <martin@gnome.org>
17386
17387         * debug-symfile.c: Reflect latest MonoString changes.
17388
17389 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17390
17391         * rand.c, rand.h: instance method icalls need to have an explicit
17392         this pointer as first argument in the C implementation.
17393
17394 2002-04-25  Nick Drochak <ndrochak@gol.com>
17395
17396         * icall.c: Fix typo in map for GetNonZeroBytes
17397
17398 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17399
17400         * string-icalls.c : String does now passes unit tests without any 
17401         errors, the following changes has been made:
17402         
17403         Implemented replace methods.
17404         Renaming of methods to (try) follow the standard.
17405         Fixed compare ordinal
17406         Made all memory allocated directly to function instead of via icall function.
17407         Small performance fix in is_in_array function
17408                         
17409  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
17410
17411         c (mono_string_Internal_ctor_charp_int_int):
17412         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
17413         sindex < 0, throw ArgumentOutOfRangeException instead of
17414         ArgumentNullException.
17415
17416         Added new check for length == 0, however
17417         I need to make it return String.Empty from the C code.
17418         
17419         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
17420         that calculate the length for us here.
17421         
17422         (mono_string_Internal_ctor_sbytep_int_int): Replaced
17423         mono_string_new_utf16 with mono_string_new, since value is utf8.
17424
17425 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17426
17427         * object.c: register the object for finalization if needed.
17428         Allocate one more char in the string for the terminating 0 char.
17429
17430 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17431
17432         * class.c, class.h, image.c: check if a type implemenst a destructor.
17433         Use the proper key for array class lookups.
17434         * icall.c: register the icalls in the System.GC class.
17435         * gc.c, gc.h: GC-related functions and icalls.
17436
17437 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17438
17439         * icall.c:
17440         * socket-io.c:
17441         * unicode.c: free some strings gotten from mono_string_to_utf8 and
17442         changed a couple of free () by g_free ().
17443
17444         * decimal.c: one-liner in the comments for decimal2string ().
17445
17446 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17447
17448         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
17449
17450 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17451
17452         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
17453         * object.c (mono_runtime_invoke_array) : handle null in params
17454
17455 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17456
17457         * string-icalls.c: fixed bug in split (one off bug)
17458
17459 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17460
17461         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
17462         * icalls.c: added String::Equals as internal method
17463
17464 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17465
17466         * threads.c: fixed bug in the double interlocked functions
17467
17468 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
17469
17470         * threads.c: implemented all of the new interlocked icalls.
17471         * string-icalls.c: fix a bug in insert.
17472         * icalls.c: added the icalls for interlocked, removed old string functions.
17473         
17474 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17475
17476         * loader.c: fix off-by-one error when reading argument names.
17477
17478 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17479
17480         * profiler.c: win32 counter implementation (untested).
17481         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
17482         (the latter needs testing and more complete impl. from win32 folks).
17483
17484 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
17485
17486         * object.c: mono_array_new_full workaround mono_array_class_get
17487         problem.
17488
17489 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17490
17491         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
17492         * object.h (mono_string_chars): Changed casting type.
17493
17494 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17495
17496         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
17497                            method signatures to use gunichar2 instead of gint16.
17498
17499 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
17500
17501         * object.h, object.c: domain-specific versions of mono_object_new and
17502         mono_array_new.
17503
17504 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
17505
17506         * object.c: changed String layout
17507
17508         * string-icalls.c (mono_string_Internal_ctor_chara): added
17509         internal string constructors.
17510
17511 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
17512
17513         * threads.c: pass 'this' to the thread start routine.
17514
17515 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17516
17517         * string-icalls.c: fix IndexOf and LastIndexOf. Now
17518         InternalCompareStr don't call twice mono_string_cmp_char for the last
17519         character. Improved performance in mono_string_cmp_char.
17520
17521 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17522
17523         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
17524         code into its own library: libmonoruntime.
17525
17526 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
17527
17528         * object.h, object.c: changed array format so that szarrays do not
17529         require a bounds structure.
17530         * icall.c, appdomain.c: support for new szarray format.
17531
17532 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17533
17534         * metadata.c: compare also the retuns type when comparing signatures:
17535         we didn't do this as an optimization since really overloaded methods
17536         must differ also in the arguments, but this doesn't work with
17537         low-level IL code (or when using explicit conversion operators: see
17538         bug#23498 for an example).
17539
17540 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17541
17542         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
17543
17544 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17545
17546         * icall.c: make MonoType::GetElementType its own icall.
17547
17548 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17549
17550         * icall.c: remove MonoMethod_get_Name().
17551         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
17552         object.
17553
17554 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17555
17556         * string-icalls.c: optimized a few methods.
17557
17558 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17559
17560         * icall.c: added all new string internal calls
17561         * string-icalls.c: added, new string internal call implementation.
17562         * object.c: added mono_string_new_size for allocating a string a size
17563
17564 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
17565
17566         * object.c (mono_object_isinst): use the same code as in the
17567         optimized x86 version.
17568
17569 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17570
17571         * profiler.c: TSC-based timer code (faster and more accurate).
17572         Not hooked up in configure, yet (set USE_X86TSC to 1).
17573
17574 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
17575
17576         * profiler.c, profiler.h: track time spent compiling methods.
17577         * threads.c: track thread creation/destruction.
17578
17579 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
17580
17581         * profiler.c, profiler.h, profiler-private.h: profiling interface
17582         and sample implementation. Moved here so that it can be used also by
17583         the jit.
17584
17585 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
17586
17587         * reflection.c, reflection.h: keep types and other handles separate in
17588         the hash tables for referred tokens. Add guid for modules.
17589
17590 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17591
17592         * assembly.c: fix bugs found with valgrind.
17593         * metadata.h, metadata.c: added mono_metadata_guid_heap().
17594
17595 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
17596
17597         * threads: added icall support for getting current domain for
17598                    the thread.
17599  
17600 2002-04-13  Martin Baulig  <martin@gnome.org>
17601
17602         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
17603         (MonoDebugVarInfo): Added `index' field for register based addresses.
17604         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
17605         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
17606         `MonoDebugVarInfo *params' and `guint32 this_offset' with
17607         `MonoDebugVarInfo *this_var'.
17608
17609         * debug-symfile.c (relocate_variable): New static function to write
17610         a location description for a local variable or method parameter.
17611
17612 2002-04-12  Martin Baulig  <martin@gnome.org>
17613
17614         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
17615         stack offset and begin/end scope address of a local variable.
17616         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
17617         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
17618         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
17619
17620         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
17621         Added new relocation types for start/end scope of a local variable.
17622
17623 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17624
17625         * object.h: add mono_object_domain() macro.
17626         * reflection.c: handle typespecs.
17627         * icall.c: MonoMethod::get_Name() implementation.
17628
17629 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17630
17631         * icall.c: String::GetHashCode() icall implementation.
17632
17633 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17634
17635         * icall.c: String::IndexOfAny icall.
17636         * object.c, object.h: make array->max_length more useful.
17637         Intrduced mono_object_class() and mono_string_length() macros.
17638
17639 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17640
17641         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
17642         instead of g_unichar_isdigit.
17643
17644 2002-04-11  Nick Drochak  <ndrochak@gol.com>
17645
17646         * icall.c: Implement a simple Double.ToString().
17647
17648 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17649
17650         * appdomain.h: only io-layer.h is supposed to be included.
17651         * icall.c: explicitly import environ. Fix warning.
17652
17653 2002-04-10  Nick Drochak  <ndrochak@gol.com>
17654
17655         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
17656                 return true even if it's not Daylight Savings time.
17657                 Only return false for the case where the function isn't
17658                 implemented for a plaform (read Windows).
17659
17660 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17661
17662         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
17663         data with a mutex.
17664
17665 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17666
17667         * mempool.c (mono_mempool_alloc): only use g_malloc when
17668         absolutely necessary.
17669
17670 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17671
17672         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17673
17674         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17675         (mono_class_proxy_vtable): use domain mempool
17676
17677 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17678
17679         * appdomain.h, appdomain.c: split initialization that requires the
17680         execution engine support into mono_runtime_init().
17681
17682 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17683
17684         * class.c (mono_class_init): don't include vtable inside MonoClass
17685         to save some memory, gather some statistics.
17686         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17687
17688 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17689
17690         * icall.c: internalcall implementation for ValueType.Equals().
17691
17692 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17693
17694         * object.c (mono_message_init): moved 
17695         (mono_runtime_exec_main): new arch. independent impl.
17696         (mono_runtime_invoke_array): new method - like
17697         mono_runtime_invoke, but you can pass an array of objects.
17698         (mono_remoting_invoke): new arch. independent impl.
17699         (mono_message_invoke): new arch. independent impl.
17700         (mono_runtime_class_init): new arch. independent impl.
17701         (mono_runtime_object_init): new arch. independent impl.
17702
17703 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17704
17705         * metadata.c, object.c, reflection.c: documented the exported
17706         functions.
17707
17708 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17709
17710         * icall.c: simpler code to pass the assembly builder data to corlib.
17711         Implement GetNestedTypes() internalcall.
17712
17713 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17714
17715         * class.c: warn if a type can't be loaded.
17716
17717 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17718
17719         * image.h: typedef MonoImageOpenStatus
17720         * types.h: removed unused file
17721         
17722 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17723
17724         * icall.c: Enum_ToObject accepts enum value arguments.
17725
17726 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17727
17728         * class.c: move initialization of properties, events and nested
17729         classes, so that they happen for interfaces, too.
17730
17731 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17732
17733         * icall.c: cleanup some ugly casts in Array_SetValue*.
17734
17735 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17736
17737         * icall.c: the values array fro enums is of the correct type, now.
17738         Implement (correctly) getFullName instead of assQualifiedName for
17739         MonoType.
17740         * reflection.h, reflection.c: added mono_type_get_name ().
17741
17742 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17743
17744         * assembly.c, image.h: for each MonoImage, record from wich assembly
17745         it was loaded.
17746         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17747         Make Type.Assembly work.
17748
17749 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17750
17751         * debug-symfile.h: use char* instead of gpointer to avoid
17752         unnecessary casts.
17753
17754         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17755
17756         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17757         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17758
17759 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17760
17761         * icall.c (mono_message_init): impl. (code cleanup)
17762         (ves_icall_InternalExecute): impl. FieldGetter
17763
17764         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17765         defined we call all (non-static)methods through the vtable. 
17766
17767 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17768
17769         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17770         finalizer even though the memory is still referenced (and the chunk of
17771         memory is not freed).
17772
17773 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17774
17775         * assembly.c: fix brokeness.
17776
17777 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17778
17779         * class.c: kill some warnings. Check explicit interface method
17780         implementation also without considering the namespace.
17781         Load also literal strings in static class data.
17782
17783 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17784
17785         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17786         (default_assembly_name_resolver): Make the resolver take the
17787         "base" directory where the assembly was originally defined, so we
17788         can load DLLs that are in the same directory as the assembly that
17789         is being referenced.
17790
17791 2002-03-28  Dick Porter  <dick@ximian.com>
17792
17793         * file-io.h: 
17794         * file-io.c:
17795         * socket-io.c: 
17796         * unicode.h: 
17797         * unicode.c: Warning cleanups
17798
17799 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17800
17801         * object.h, reflection.h: use the correct type instead of MonoObject.
17802
17803 2002-03-28  Martin Baulig  <martin@gnome.org>
17804
17805         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17806         (mono_debug_update_symbol_file): Initialize classes if necessary.
17807
17808 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17809
17810         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17811         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17812
17813 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17814
17815         * assembly.h: fix function prototype.
17816         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17817         * mono-endian.h: use const cast.
17818
17819 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17820
17821         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17822
17823 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17824
17825         * loader.c: don't assert when a typeref can't be loaded, give
17826         a chance to the runtime to trow an exception instead.
17827         * loader.h: fix warning.
17828
17829 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17830
17831         * class.c (mono_class_proxy_vtable): added proxy support
17832
17833 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17834
17835         * icall.c: removed last of PAL calls, added System.Environment
17836         * file-io.h, file-io.c: MonoIO implementation
17837         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17838
17839 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17840
17841         * appdomain.c: do not use the byte marker in ldstr table lookup.
17842         * debug-helpers.c: allow two ':' to separate class and method name.
17843         * object.c: allocate arrays bounds with the GC, too.
17844         * verify: add a few more checks.
17845
17846 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
17847
17848         * reflection.c: output also literal strings. Allocate parameter data
17849         with GC_malloc() (thanks, Martin, for catching this!).
17850
17851 2002-03-26  Martin Baulig  <martin@gnome.org>
17852
17853         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
17854         include the `this' offset in the `param_offsets'.
17855
17856 2002-03-25  Martin Baulig  <martin@gnome.org>
17857
17858         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
17859         mono_debug_get_class() function to get the classes. Added new
17860         relocation types for arrays and strings.
17861         (mono_debug_get_class): New static function to search in all
17862         referenced assemblies for a metadata token.
17863
17864         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
17865
17866 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17867
17868         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
17869         hold gc-allocated objects. Make the string heap a stream like the
17870         others. Removed duplicated code when writing stream info.
17871         Added asserts to catch possible buffer overflows. Set the sorted map
17872         for tables that need sorting. Added some documentation.
17873
17874 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
17875
17876         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
17877         for interned strings and vtables.
17878
17879 2002-03-24  Martin Baulig  <martin@gnome.org>
17880
17881         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
17882         it in the array since it was created with g_slist_prepend().
17883
17884 2002-03-24  Martin Baulig  <martin@gnome.org>
17885
17886         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
17887         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
17888         (mono_debug_method_from_token): Renamed to
17889         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
17890         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
17891
17892         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
17893         relocation types.
17894
17895         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
17896
17897 2002-03-24  Martin Baulig  <martin@gnome.org>
17898
17899         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
17900         (mono_debug_method_from_token): New func.
17901
17902         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
17903         New interncall, calls mono_debug_local_type_from_signature().
17904         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
17905         calls mono_debug_method_from_token().
17906
17907 2002-03-23  Martin Baulig  <martin@gnome.org>
17908
17909         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
17910         specifies the number of bytes to be converted, not the array size.
17911         Return the number of chars, not the number of bytes.
17912         (ves_icall_iconv_get_chars): The `byteCount' argument
17913         specifies the number of bytes to be converted, not the array size.
17914
17915 2002-03-23  Martin Baulig  <martin@gnome.org>
17916
17917         * reflection.h (MonoReflectionSigHelper): New type.
17918
17919         * reflection.c (mono_reflection_sighelper_get_signature_local),
17920         (mono_reflection_sighelper_get_signature_local): New functions.
17921
17922         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
17923         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
17924         interncalls.
17925
17926 2002-03-23  Martin Baulig  <martin@gnome.org>
17927
17928         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
17929         is_writeable is set.
17930         (mono_raw_buffer_update): New function to write the modified map
17931         back to disk.
17932
17933         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
17934
17935         * debug-symfile.c (mono_debug_update_symbol_file): Call
17936         mono_raw_buffer_update() when done writing.
17937
17938 2002-03-23  Martin Baulig  <martin@gnome.org>
17939
17940         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
17941
17942         * debug-symfile.c: Added support for arguments and local variables.
17943
17944 2002-03-23  Dick Porter  <dick@ximian.com>
17945
17946         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
17947         protected by ifdefs, hence breaking the w32 build.
17948
17949 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17950
17951         * object.c: implement is_interned() the right way.
17952
17953 2002-03-21  Martin Baulig  <martin@gnome.org>
17954
17955         * debug-symfile.[ch]: New files to handle debugging information
17956         files. There's also support to dynamically update these symbol
17957         files to include machine dependent information.
17958
17959 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
17960
17961         * threads.c (mono_thread_create): new function to create thread
17962         from C
17963
17964 2002-03-20  Martin Baulig  <martin@gnome.org>
17965
17966         * icall.c (ves_icall_InternalInvoke): Create a new object if the
17967         method is a constructor.
17968         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
17969         points to ves_icall_InternalInvoke().
17970
17971 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
17972
17973         * file-io.c: Flush shouldn't throw exceptions.
17974
17975 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
17976
17977         * file-io.c: FileStream flush support; FileSetLength now
17978         restores file pointer.
17979
17980 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
17981
17982         * class.c: set image for pointer classes.
17983
17984 2002/03/19  Nick Drochak <ndrochak@gol.com>
17985
17986         * sysmath.c: Forgot one.
17987
17988 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
17989
17990         * sysmath.c: Avoid redefining existing names.
17991
17992 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
17993
17994         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
17995         handled by runtime as icall rather than dllimport from libm.so
17996         * file-io.c, file-io.h: fixed handle argument type.
17997
17998 2002-03-18  Dick Porter  <dick@ximian.com>
17999
18000         * reflection.c (mono_image_get_type_info): rename interface to
18001         iface, because of "#define interface struct" on windows.
18002
18003 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
18004
18005         * class.c, class.h: rename and export mono_ptr_class_get().
18006         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
18007         * reflection.c, reflection.h, icall.c: better/saner type name
18008         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
18009         method signatures.
18010
18011 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
18012
18013         * class.c (mono_class_init): removed hardcoded GHC_SLOT
18014
18015         * icall.c (ves_icall_InternalInvoke): impl.
18016
18017 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18018
18019         * reflection.c: output the interface map table, too.
18020
18021 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
18022
18023         * class.c (class_compute_field_layout): separate computation of 
18024         static field layout
18025
18026 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
18027
18028         * icall.c: added System.Buffer support.
18029         * file-io.c: moved file icalls from PAL to FileStream.
18030
18031 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
18032
18033         * icall.c (ves_icall_System_Object_GetHashCode): impl.
18034
18035 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
18036
18037         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
18038
18039 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18040
18041         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
18042
18043 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18044
18045         * debug-helpers.{c,h}: moved here from monograph some useful functions
18046         to locate a method by name/signature in a class or image. Included
18047         also a small and flexible IL disassembler.
18048
18049 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18050
18051         * reflection.c: fixup tokens in methods with small header size, too.
18052
18053 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
18054
18055         * object.c (mono_string_to_utf8): remove assert(!error), instead
18056         print a warning. 
18057
18058 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
18059
18060         * icall.c: update to the new mono_Array_class_get interface.
18061
18062 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
18063
18064         * appdomain.c, object.c: Boehm-GC enable.
18065         * icall.c: make get_data_chunk() support split data requests.
18066         Ensure a class is initialized in more cases. Return only the first
18067         property found in GetProperties() or the compiler gets confused. 
18068         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
18069         * reflection.h, reflection.c: add fixup mechanism for field and method
18070         tokens. Initialize assembly->typeref in a single place. Output
18071         properties after events. Support custom attributes for events, too.
18072         Typo fix for paramter custom attrs.
18073
18074 2002-03-07  Martin Baulig  <martin@gnome.org>
18075
18076         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
18077
18078 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
18079
18080         * class.c (mono_array_class_get): fix. for multi. dim. arrays
18081
18082 2002-03-06  Martin Baulig  <martin@gnome.org>
18083
18084         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
18085         non-zero lower bounds. See testcases #F10-#F13.
18086
18087 2002-03-05  Martin Baulig  <martin@gnome.org>
18088
18089         * exception.c (mono_get_exception_argument_out_of_range): New exception.
18090
18091         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
18092         ves_icall_System_Array_GetValue(), only calculate the absolute array position
18093         here.
18094         (ves_icall_System_Array_SetValue): Likewise.
18095         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
18096         as argument and does the actual work. This function is used when copying a
18097         multi-dimensional array.
18098         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
18099         now do all the widening conversions of value types.
18100         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
18101
18102 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18103
18104         * class.c: remove some magic numbers and use the smbolic names,
18105         instead. Added init_events() to load event info at class init time.
18106         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
18107         and mono_metadata_methods_from_event().
18108         * reflection.h, reflection.c: added support for writing out the evnets
18109         related information.
18110
18111 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
18112
18113         * reflection.h, icall.c: use a different method (GetInterfaces)
18114         to gather interface info and add isbyref, isprimitive and
18115         ispointer to the ves_icall_get_type_info() return value.
18116
18117 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
18118
18119         * class.h: stared adding support for events.
18120         * icall.c: split find_members implementation. Added debug icall to get
18121         the address of an object.
18122         * reflection.c: handle TypeBuilders in mono_type_get_object().
18123
18124 2002-03-01  Martin Baulig  <martin@gnome.org>
18125
18126         * icall.c (ves_icall_System_Array_GetLength): This must throw an
18127         ArgumentOutOfRangeException(), not an ArgumentException().
18128         (ves_icall_System_Array_GetLowerBound): Likewise.
18129         (ves_icall_System_Array_GetValue): Improved argument checking.
18130         (ves_icall_System_Array_SetValue): Improved argument checking.
18131
18132 2002-03-01  Martin Baulig  <martin@gnome.org>
18133
18134         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
18135         called with invalid arguments rather than just dying with g_assert().
18136         (ves_icall_System_Array_SetValue): Likewise.
18137         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
18138         raise a NotImplementedException instead.
18139         (ves_icall_System_Array_GetLength): Added argument checking.
18140         (ves_icall_System_Array_GetLowerBound): Added argument checking.
18141
18142 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
18143
18144         * object.h (mono_assert): new macros mono_assert and
18145         mono_assert_not_reached
18146
18147 2002-02-28  Martin Baulig  <martin@gnome.org>
18148
18149         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
18150         and "System::String::IsInterned" to "System::String::_IsInterned".
18151
18152 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
18153
18154         * icall.c: remove hacks for typebuilder. Added icall to create a
18155         modified type from a tybebuilder.
18156         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
18157         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
18158         to create a backing MonoClass for a TypeBuilder.
18159
18160 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18161
18162         * class.c, class.h: more refactoring of class init.
18163         Export mono_class_setup_mono_type() and mono_class_setup_parent().
18164
18165 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
18166
18167         * marshal.c, marshal.h: start of marshaling interface.
18168
18169 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18170
18171         * icall.c: fix order in assembly qualified name icall.
18172
18173 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18174
18175         * class.c: do not free str, since we store it in the hash table.
18176         * reflection.h: add label field to MonoILExceptionInfo.
18177         * reflection.c: handle references to more than one assembly. Handle
18178         case when there isn't a module created in the assembly.
18179
18180 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18181
18182         * class.c: Fix typo. Start refactoring of class init code.
18183
18184 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18185
18186         * appdomain.c: exit with 1 on error.
18187         * class.c: we already have the name in MonoClassField.
18188         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
18189         MonoStreamHeader instead of an offset of image->raw_metadata.
18190
18191 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
18192
18193         * appdomain.c (mono_init): Be even more descriptive about the error.
18194
18195 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
18196
18197         * appdomain.c: give the user an informative message when corlib can't
18198         be loaded.
18199
18200 2002-02-26  Martin Baulig  <martin@gnome.org>
18201
18202         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18203         New icall to get the time zone data.
18204
18205 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18206
18207         * reflection.c: set virtual and raw size of section correctly.
18208         * threads.c: transfer domain information to newly created threads.
18209
18210 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18211
18212         * class.c: when instancing a class in a domain, load the default
18213         vaules for static fields from the constant table. Fix System.Enum to
18214         not be an enum.
18215         * icall.c: implement Object::GetType() internalcall. Implemented
18216         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
18217         Fixed checking of binding flags in find_members().
18218         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
18219         * reflection.c: handle enumerations when writing to the constant
18220         table. Use a different object cache for types.
18221
18222
18223 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
18224
18225         * object.c (mono_object_isinst): fix for arrays
18226
18227         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
18228
18229 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18230
18231         * object.c: don't use mprotect ()  and fix intern pool hash table
18232         lookup for big endian systems.
18233
18234 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18235
18236         * icall.c: change type_is_subtype_of () signature.
18237
18238 2002-02-21  Mark Crichton  <crichton@gimp.org>
18239
18240         * rand.c, rand.h: Added random number generator for
18241         System.Security.Cryptography classes.
18242
18243         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
18244
18245         * icall.c: Added System.Security.Cryptography calls.
18246
18247 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18248
18249         * class.c, icall.c, metadata.c: better support for pointer types.
18250         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
18251         * reflection.c: Add support for getting custom attrs for properties
18252         and simplify some code.
18253
18254 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18255
18256         * icall.c: change getToken () and add custom attribute GetBlob()helper
18257         method.
18258         * reflection.h: add custom attrs array to the reflection builder structures.
18259         * reflection.c: encode and emit custom attributes for all the relevant
18260         reflection objects. Cache fieldref and methodref tokens. Change
18261         mono_image_create_token() interface to take a MonoDynamicAssembly.
18262         More complete custom attributes decoder. Load custom attributes for
18263         Assembly, Field, Method and Constructor objects, too. Make the
18264         returned array an Attribute[] one, not object[]. Added
18265         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
18266         custom attribute constructor.
18267
18268 2002-02-20  Dick Porter  <dick@ximian.com>
18269
18270         * icall.c:
18271         * rawbuffer.c:
18272         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
18273         problem code out for now).
18274
18275 2002-02-19  Radek Doulik  <rodo@ximian.com>
18276
18277         * object.c (mono_ldstr): use hash table to avoid multiple swapping
18278
18279 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
18280
18281         * icall.c: register the GetCustomAttributes method.
18282         * object.c, object.h: add mono_string_new_len ().
18283         * reflection.h, reflection.c: added mono_runtime_invoke(),
18284         mono_install_runtime_invoke(). Added
18285         mono_reflection_get_custom_attrs () to load custom attributes and
18286         create the attribute objects.
18287
18288 2002-02-19  Dick Porter  <dick@ximian.com>
18289         * threads-dummy-types.c:
18290         * threads-dummy-types.h:
18291         * threads-dummy.c:
18292         * threads-dummy.h:
18293         * threads-pthread-types.c:
18294         * threads-pthread-types.h:
18295         * threads-pthread.c:
18296         * threads-pthread.h:  Deleted obsolete files
18297
18298 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
18299
18300         * class.c (mono_class_vtable): runtime init the class when we
18301         allocate static class data.
18302
18303         * icall.c (ves_icall_System_Array_SetValue): check for null values.
18304
18305         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
18306         and String - but we will need generic marshalling support in the
18307         future. 
18308         (mono_init): set the domain name in a ms compatible way
18309
18310         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
18311         String[].
18312
18313 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
18314
18315         * object.c (mono_array_clone): use alloca() instead of g_malloc  
18316         for sizes
18317
18318         * appdomain.c (mono_domain_unload): impl.
18319
18320 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18321
18322         * appdomain.c, object.c: fix intern pool implementation.
18323         * class.c: fix alignment code.
18324
18325 2002-02-16  Radek Doulik  <rodo@ximian.com>
18326
18327         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
18328         and s2 > s1, just copy lower bytes to be compatible with little
18329         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
18330         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
18331
18332         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
18333         force big_endian to be 1 for big endian machines 
18334         (ves_icall_iconv_new_decoder): ditto
18335
18336 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
18337
18338         * socket-io.c (convert_sockopt_level_and_name): If the system
18339         doesn't define SOL_IP or SOL_TCP, get them by hand using
18340         getprotobyname() and caching the values (because this could be a
18341         slow operation).
18342         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
18343         Use the appropriate struct when the system does support it. Ie,
18344         not all systems have struct ip_mreqn so use struct ip_mreq when
18345         appropriate.
18346
18347 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
18348
18349         * reflection.c: handle finally clauses.
18350
18351 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
18352
18353         * socket-io.c: use g_snprintf() instead of snprintf.
18354
18355 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18356
18357         * reflection.c (mono_param_get_objects): Cast second argument to
18358         mono_method_get_param_names to a const char** to silence the
18359         compiler warning.
18360
18361         * appdomain.c (mono_domain_assembly_open): Put parens around the
18362         truth statement in the for-loop.
18363
18364         * unicode.c (iconv_convert): Got rid of a compiler warning about
18365         int i being unused when the system has a new iconv.
18366         (iconv_get_length): Same.
18367
18368         * image.c (load_class_names): Cast the second argument to
18369         g_hash_table_insert() to char* to hush compiler warnings about the
18370         arg being a const.
18371         (mono_image_open): Same here.
18372
18373         * socket-io.c: Don't conditionally include sys/filio.h or
18374         sys/sockio.h here anymore since we now get them from
18375         io-layer/io-layer.h
18376         (inet_pton): If the system doesn't support inet_aton, implement
18377         using inet_addr and also #define INADDR_NONE if it isn't defined
18378         by the system.
18379
18380 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18381
18382         * metadata.c, metadata.h: added function to get packing and size info
18383         of a typedef.
18384         * reflection.h, reflection.c: handle field RVA data. Save info about
18385         the table layout if needed. Assign typedef indexes to all the types
18386         before dumping the info about them to avoid forward reference problems.
18387
18388 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
18389
18390         * socket-io.c (convert_sockopt_level_and_name): ifdef
18391         SO_ACCEPTCONN because it is not defined on my system (old debian)
18392
18393 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18394
18395         * opcode.c: use stddef.h to get NULL.
18396
18397 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18398
18399         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
18400         for FIONBIO, FIONREAD and SIOCATMARK.
18401         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
18402         define INADDR_NONE and besides, inet_addr() is deprecated and
18403         should not be used. Use inet_pton() instead - it also has the
18404         added bonus that it can easily handle IPv6 addresses as well.
18405         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
18406
18407 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18408
18409         * decimal.c: remove _MSC_VER conditional.
18410
18411 2002-02-13  Dick Porter  <dick@ximian.com>
18412
18413         * socket-io.c: 
18414         * icall.c: Internal calls for Blocking, Select, Shutdown,
18415         GetSocketOption and SetSocketOption
18416
18417 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18418
18419         * assembly.cs: better resolver: use it instead of some kludgy
18420         code.
18421
18422 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
18423
18424         * reflection.c: the best way to speed-up the compiler is to avoid
18425         infinite loops.
18426
18427 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
18428
18429         * class.c (mono_class_vtable): changed the object layout
18430         (obj->vtable->class). 
18431         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
18432
18433 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18434
18435         * assembly.c: look for assemblies in the assembly dir, too.
18436
18437 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18438
18439         * class.c: fix thinko in mono_class_from_type().
18440
18441 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18442
18443         * exception.h, exception.c: added TypeLoadException.
18444         * object.h, object.c: added mono_array_clone ().
18445         * icall.c: handle throwOnError in AssemblyGetType().
18446         Added Array.Clone().
18447         * opcode.h, opcode.c: use a single value for the opcode val.
18448         Compile fix for non-gcc compilers.
18449
18450 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
18451
18452         * opcodes.c, opcodes.h: export interesting info about opcodes.
18453
18454 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
18455
18456         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
18457         icalls. 
18458
18459         * class.c (class_compute_field_layout): set element_class for enums
18460         (mono_class_create_from_typedef): set element_class for normal classes
18461
18462         * icall.c (ves_icall_System_Enum_get_value): impl.
18463
18464         * class.c (mono_class_create_from_typedef): do not set valuetype
18465         flag for System.ValueType and System.Enum
18466
18467 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
18468
18469         * unicode.c (iconv_convert): fix big endian problem.
18470
18471 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18472
18473         * class.c: add asserts if we are ever going to scribble over memory.
18474         * socket-io.c: not all systems have AF_IRDA defined.
18475
18476 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
18477
18478         * class.c (class_compute_field_layout): do not consider static
18479         fields to compute alignment
18480
18481 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
18482
18483         * appdomain.c (mono_appdomain_get): impl.
18484         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
18485
18486 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18487
18488         * icall.c: ignore "file://" prefix when loading an assembly.
18489
18490 2002-01-23  Dick Porter  <dick@ximian.com>
18491
18492         * socket-io.c:
18493         * icall.c:
18494         * Makefile.am: Added socket support
18495
18496 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18497
18498         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
18499         code back.  This should return the assemblies that are loaded by
18500         the runtime on behalf of an application domain. 
18501
18502         The current implementation is still broken, it just returns every
18503         assembly loaded, but until we get real applications domain this
18504         will do.
18505
18506 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
18507
18508         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
18509         AppDomain object.
18510
18511 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18512
18513         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
18514         the mono_class_from_name lookup.
18515         (ves_icall_get_parameter_info): ditto.
18516         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
18517         method.
18518         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
18519
18520 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18521
18522         * class.c: load also nested classes on class init.
18523         System.ValueType instance methods gets passed boxed
18524         values, unless methods in derived classed that get a pointer to the
18525         data.
18526         * icall.c: use better name parsing code in GetType().
18527         * image.c, image.h: add mono_image_loaded ().
18528         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
18529         * reflection.c, reflection.h: added mono_reflection_parse_type().
18530
18531 2002-01-22  Veronica De Santis <veron78@interfree.it>
18532
18533         * icall.c : Added mapping of internal calls for Manual and Auto reset events
18534         * threads.c : Added the implementation of internal calls for events
18535         * threads.h : Added prototypes of internal calls for events
18536         
18537 2002-01-21  Radek Doulik  <rodo@ximian.com>
18538
18539         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
18540
18541 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
18542
18543         * class.c (mono_class_init): set min_align to 1 (instead of 0)
18544         (mono_class_value_size): use min_align
18545
18546 2002-01-20  Dick Porter  <dick@ximian.com>
18547
18548         * threads.h:
18549         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
18550         so it compiles on w32.
18551
18552 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
18553
18554         * metadata.c (mono_type_stack_size): impl.
18555
18556         * class.c (mono_class_get_field): impl. memberref token
18557
18558 2002-01-16 Veronica De Santis <veron78@@interfree.it>
18559
18560         * icall.h : Added the internal calls mapping for CreateMutex_internal
18561                     and ReleaseMutex_internal.
18562         * threads.h : Added the prototype of mutexes internal calls.
18563         * threads.c : Added the implementations of mutexes internal calls.
18564
18565 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18566
18567         * metaparse.h: removed unused file.
18568         * reflection.c, reflection.h: added stream_data_align () function 
18569         to align data in streams and keep stream aligned. Add support for
18570         exception support in method headers.
18571
18572 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
18573
18574         * unicode.c: make iconv_convert () return the number of bytess written
18575         in the output buffer.
18576
18577 2002-01-15  Dick Porter  <dick@ximian.com>
18578         * threads.c: Make the runtime's idea of infinite timeouts coincide
18579         with the class library's
18580
18581         Fix a particularly egregious bug in mono_thread_cleanup(). That
18582         code was so utterly bogus it must have been written on a Monday.
18583
18584 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18585
18586         * reflection.h: add subtypes field to TypeBuilder.
18587         * reflection.c: encode constants for literal fields.
18588         Handle subtypes. Fix user string token (and add a zero byte)
18589         at the end.
18590         
18591 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
18592
18593         * class.c (mono_class_init): bug fix: assign slot numbers for
18594         abstract methods.
18595
18596 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18597
18598         * reflection.c: don't try to output a code RVA for abstract methods.
18599         Small fixes for method header format. Output parameter info to the
18600         ParamDef table. Save method overriding info to MethodImpl table.
18601         Fix property support. Allow typedef.extends to be a type in the
18602         building assembly.
18603         * verify.c: fix off-by-one error.
18604
18605 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
18606
18607         * class.c: fix mono_class_from_mono_type () for szarray types.
18608         Remove unused cache check in mono_class_from_type_spec().
18609         * icall.c: *type_from_name () functions handle simple arrays and byref.
18610         * reflection.c: handle byref and szarray types. Handle methods without
18611         body (gets P/Invoke compilation working). Handle types and fields in
18612         get_token ().
18613         * reflection.h: add rank to MonoTypeInfo.
18614
18615 2002-01-10  Dick Porter  <dick@ximian.com>
18616
18617         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
18618         internal calls
18619
18620 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18621
18622         * icall.c: initialize class in type_from_handle ().
18623         Loop also in parent classes for get_method ().
18624         * reflection.c: properly encode class and valuetype types.
18625         Start on encoding TypeBuilder types. Handle fieldrefs.
18626         Use correct length when registering a user string.
18627         Handle ConstructorBuilder and MonoMethod in get_token ().
18628         Make mono_type_get_object () aware of cached types.
18629         * object.c: back out change to mono_string_new ().
18630
18631 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
18632         * object.c: mono_string_new should return a NULL when the string 
18633         passed in is NULL -- not try to deference it.
18634         
18635 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18636
18637         * icall.c: hack to make IsSubType work for TypeBuilders.
18638         * reflection.c: emit constructors before methods.
18639         Retrieve param names in mono_param_get_objects().
18640
18641 2002/01/05  Nick Drochak  <ndrochak@gol.com>
18642
18643         * Makefile.am: fix list of headers and sources so automake 1.5
18644         doesn't complain. Removed \# at end of list.
18645
18646 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18647
18648         * reflection.c: get token for a method ref. Set return type of
18649         constructor to void.
18650         * loader.c: debug message.
18651         * class.c: typo fix.
18652
18653 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
18654
18655         * icall.c: fix array init with rank > 1. FindMembers
18656         loops in parent class as well.
18657         * image.c: do not insert nested types in name cache.
18658         * reflection.c: warning fix.
18659         * reflection.h: add override method (for interface impl).
18660
18661 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
18662
18663         * metadata.c: fix customattr decoding.
18664
18665 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18666
18667         * rawbuffer.cs: Added native Win32 implementation, avoids using
18668         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18669
18670 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18671
18672         * class.c: make the low-level routines handle the cache.
18673
18674 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18675
18676         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18677
18678 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18679
18680         * class.c: fix mono_array_element_size() for objects.
18681         * class.h, class.c: add properties to MonoClass and load them
18682         at init time.
18683         * icall.c: check with isinst() when assigning a value to an array
18684         instead of requiring the classes to match exactly.
18685         Implemented icall for System.Type::GetType().
18686         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18687         enums. Handle bindingflags when looking for methods and fields.
18688         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18689         and mono_metadata_methods_from_property().
18690         * reflection.h, reflection.c: added structures for propreties,
18691         parameters and enums. Implemented mono_property_get_object() and
18692         mono_param_get_objects().
18693
18694 2001-12-18  Dick Porter  <dick@ximian.com>
18695
18696         * file-io.c: Use mono_string_to_utf16() instead of
18697         mono_string_chars()
18698
18699         * object.c: Added mono_string_to_utf16(), which copies the non
18700         NULL-terminated MonoString into a new double-null-terminated
18701         buffer.
18702
18703 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18704
18705         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18706
18707 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18708
18709         * file-io.c: raise exceptions if handle is invalid.
18710
18711 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18712
18713         * assembly.c: yet another check for mscorlib.
18714         * class.c, class.h: load nesting info for classes.
18715         * icall.c: many new functions to support the Reflection classes.
18716         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18717         * reflection.h, reflection.c: mono_image_create_token(),
18718         mono_assembly_get_object(), mono_type_get_object(),
18719         mono_method_get_object(), mono_field_get_object(): methods to return
18720         objects that parallel the C representation of assemblies, types,
18721         methods, fields.
18722
18723 2001-12-11  Dick Porter  <dick@ximian.com>
18724
18725         * icall.c:
18726         * file-io.c: Internal calls for file IO.
18727
18728 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18729
18730         * tabledefs.h: missing FileAttributes.
18731         * verify.h, verify.c: use is_valid_string () to simplify and check for
18732         valid strings more correctly. Fix warnings and speeling.
18733         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18734         Check code: branches, maxstack, method calls.
18735
18736 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18737
18738         * object.c (mono_object_allocate): removed static, so that the jit
18739         can allocate value types.
18740
18741         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18742
18743 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18744
18745         * class.c: init enum types right away and register the
18746         token->MonoClass map in mono_class_create_from_typedef ().
18747         * verify.h, verify.c: first cut of the verifier.
18748         * pedump.c: add --verify switch to verify metadata tables.
18749         * tabledefs.h: add some missing enums.
18750
18751 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18752
18753         * class.c (mono_install_runtime_class_init): impl.
18754         (mono_class_init): renamed mono_class_metadata_init to
18755         mono_class_init, also removed the metadata_inited flag
18756
18757         * object.c (mono_object_isinst): use faster algorithm
18758
18759 2001-11-30  Radek Doulik  <rodo@ximian.com>
18760
18761         * mono-endian.h: reverted last change
18762         added function prototypes
18763
18764         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18765         add mono-endian.c back
18766
18767         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18768         for unaligned access, I've mistaked it with endianess. I am
18769         sorry.
18770         (mono_read16): fix reverted endianess
18771         (mono_read64): ditto
18772         (mono_read32): ditto
18773
18774 2001-11-30  Dick Porter  <dick@ximian.com>
18775
18776         * exception.c: Implement mono_exception_from_name()
18777
18778 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18779
18780         * metadata.h, metadata.c: remove params_size and locals_size and their
18781         calculation from the metadata code: they are only usefult to the
18782         interp.
18783
18784 2001-11-29  Radek Doulik  <rodo@ximian.com>
18785
18786         * object.c (mono_ldstr): swap bytes here, it's probably not the
18787         best place, but works for me now, I'll redo it once I know mono
18788         better, also note that I add PROT_WRITE and don't reset back, also
18789         note that it's only affects big endians, so x86 should be OK
18790
18791         * mono-endian.h (read16): use just glib macros for both endians
18792
18793         * mono-endian.c: removed as glib macros are used in in
18794         mono-endian.h so we don't need to care about endianess for read
18795         macros as glib does that for us already
18796
18797 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18798
18799         * class.h, class.h: take minimum alignment into consideration so
18800         that the fields of a class remain aligned also when in an array.
18801
18802 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18803
18804         * loader.h, loader.c: add mono_method_get_param_names().
18805         * class.c: 0-init class fields.
18806
18807 2001-11-26  Dick Porter  <dick@ximian.com>
18808
18809         * icall.c:
18810         * threads-types.h:
18811         * threads.c: New file that handles System.Threading on all platforms
18812
18813         * object.c: 
18814         * object.h: Remove the synchronisation struct from MonoObject,
18815         replace it with a pointer that gets initialised on demand
18816
18817         * Makefile.am: Replace all the system-specific threading code with
18818         a single file that uses the new wrapper library
18819
18820 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18821
18822         * class.c, class.h: add mono_install_trampoline() so that the runtime
18823         can register a function to create a trampoline: removes the ugly
18824         requirement that a runtime needed to export arch_create_jit_trampoline.
18825         * object.h, object.c: added mono_install_handler() so that the runtime
18826         can install an handler for exceptions generated in C code (with
18827         mono_raise_exception()). Added C struct for System.Delegate.
18828         * pedump.c: removed arch_create_jit_trampoline.
18829         * reflection.c: some cleanups to allow registering user strings and
18830         later getting a token for methodrefs and fieldrefs before the assembly
18831         is built.
18832         * row-indexes.h: updates and fixes from the new ECMA specs.
18833
18834 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18835
18836         * class.h, class.c: add enum_basetype field to MonoClass.
18837         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18838         to get index in the constant table reated to a field, param or
18839         property.
18840         * reflection.h, reflection.c: handle constructors. Set public-key and
18841         version number of the built assembly to 0.
18842         * row-indexes.h: update from new ECMA spec.
18843
18844 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18845
18846         * class.h, class.c: add a max_interface_id to MonoClass.
18847         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
18848         since it's used to do that. Added mono_type_type_from_obj().
18849         Make GetType() return NULL instead of segfaulting if the type was not
18850         found. Handle simple arrays in assQualifiedName.
18851         * object.h: add a struct to represent an Exception.
18852         * reflection.c: output call convention in method signature.
18853         Add code to support P/Invoke methods and fixed offsets for fields.
18854
18855 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
18856
18857         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
18858         the value.
18859         * icall.c: use mono_array_addr instead of array->vector: fixes the
18860         reflection image writing.
18861         * reflection.c: init call convention byte to 0 in method signature.
18862         Encode the property signature. Don't output property-related methods
18863         twice. Really process the properties for a type (don't cast a field to
18864         a property, my mom always told me that).
18865         Fix 64 bit issues in pointer alignment in a different and more
18866         readable way.
18867
18868 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
18869
18870         * loader.h: Removed type class from MonoDefaults, added monotype
18871
18872         * loader.c: Loaded MonoType, removed loading of Type
18873
18874         * icall.c (my_mono_new_object): Now returns a System.MonoType,
18875         and fills in System.Type._impl with a RuntimeTypeHandle rather
18876         than the actual MonoClass *
18877
18878         (ves_icall_type_from_handle): change from type_class to
18879         monotype_class
18880
18881         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
18882         implemented
18883
18884         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
18885         implemented
18886
18887         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
18888
18889         (ves_icall_System_Reflection_Assembly_GetType): implemented
18890
18891         (ves_icall_System_MonoType_assQualifiedName): implemented
18892
18893         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
18894
18895 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
18896
18897         * assembly.c (mono_assembly_open): Implement a cache for the
18898         assemblies. 
18899
18900         (mono_assembly_close): only destroy the assembly when the last
18901         reference is gone.
18902         
18903 2001-11-09  Dick Porter  <dick@ximian.com>
18904
18905         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
18906
18907 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
18908
18909         * class.c (mono_class_metadata_init): bug fix: compute the right slot
18910
18911 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18912
18913         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
18914         from Martin Weindel.
18915         * object.h: add mono_string_chars ().
18916
18917 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
18918
18919         * reflection.c (build_compressed_metadata): Eliminates warnings
18920         and uses 64-bit clean code.
18921
18922         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
18923         (mono_type_equal): Change signature to eliminate warnings.
18924
18925 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18926
18927         * icall.c, loader.c: remove the internalcall array constructors.
18928         Changes to match the new MonoArray structure.
18929         * object.h, object.c: an array object doesn't allocate an extra
18930         vector. Add mono_array_new_full () to create jagged arrays easily.
18931
18932 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18933
18934         * metadata.h, metadata.c: add mono_metadata_field_info () to
18935         retreive all the info about a field from vairous tables.
18936         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
18937         * class.h, class.c: augment MonoClassField with more info.
18938         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
18939         policy and load a field's RVA if needed.
18940
18941 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
18942
18943         * class.c (mono_class_metadata_init): create a trampoline for all
18944         virtual functions instead of actually compiling them.
18945
18946 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
18947
18948         * class.h, class.c: include name in MonoClassField.
18949         * class.c: fix fundamental type of System.Object and System.String.
18950         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
18951         tokens in ldtoken.
18952         * icall.c: remove internalcalls for the Reflection stuff that is now
18953         done in C# code.
18954         * loader.c: mono_field_from_memberref () implementation.
18955         * mono-endian.c: thinko (s/struct/union/g).
18956         * object.c, object.h: make the mono_string_* prototypes actually use
18957         MonoString instead of MonoObject.
18958         * reflection.c, reflection.h: updates for changes in the reflection
18959         code in corlib: we use C structures that map to the actual C# classes.
18960         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
18961         fat method header if needed and use the info from the ILGenerator for
18962         methods. Handle fields in types. Misc fixes.
18963
18964 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
18965
18966         * class.c (mono_class_metadata_init): bug fix: always allocate
18967         space for static class data
18968
18969 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
18970
18971         * class.c (mono_compute_relative_numbering): use relative
18972         numbering to support fast runtime type checks.
18973
18974 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
18975
18976         * class.c (mono_class_create_from_typeref): added debugging output
18977         to print class name when MonoDummy is returned instead of real class
18978
18979 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
18980
18981         * class.c (mono_class_metadata_init): interface offset table now
18982         contains pointers into the vtable - this is more efficient for the jit
18983
18984 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
18985
18986         * class.c (mono_class_metadata_init): use a temporary vtable (the
18987         old algorithm only worked for the interpreter, but not for the jit)
18988
18989 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
18990
18991         * loader.c (method_from_memberref): use mono_class_get to get the
18992         class of an array instead of using System.Array directly.
18993         (mono_get_method): also add MEMBERREF methods to the method cache
18994         which usefull for arrays.
18995
18996 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
18997
18998         * pedump.c (arch_compile_method): added to compute vtable entry
18999
19000         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
19001         number of interfaces.
19002         
19003         * class.h: merged MonoArrayClass into MonoClass
19004
19005         * class.c (mono_class_create_from_typedef): compute the vtable size and
19006         allocate space to include the vtable inside MonoClass
19007         (mono_class_metadata_init): initialize the vtable
19008
19009 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
19010
19011         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
19012         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
19013         * image.c: endian fixes by Laurent Rioux.
19014         * object.h, object.c: rename MonoStringObject to MonoString and
19015         MonoArrayObject to MonoArray. Change some function names to conform to
19016         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
19017         guint16* as first argument, so don't use char*.
19018         Provide macros to do the interesting things on arrays in a portable way.
19019         * threads-pthread.c: updates for the API changes and #include <sched.h>
19020         (required for sched_yield()).
19021         * icall.c: updates for the API changes above.
19022         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
19023         platforms that need them.
19024
19025 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19026
19027         * class.c: set the correct type for all the fundamental
19028         type when loading the class.
19029
19030 2001-10-05  Dick Porter  <dick@ximian.com>
19031
19032         * threads-pthread.c (pthread_mutex_timedlock): Simple
19033         compatibility version for C libraries that lack this call.
19034
19035 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19036
19037         * class.c: MonoTypes stored in MonoClass are stored as
19038         fundamental MonoTypes when the class represents a
19039         fundamental type (System.Int32, ...).
19040         The TypeHandle return by ldtoken is a MonoType*.
19041         * icall.c: ves_icall_get_data_chunk () write out all the
19042         PE/COFF stuff. Implement ves_icall_define_method (),
19043         ves_icall_set_method_body (), ves_icall_type_from_handle ().
19044         * image.c: properly skip unknown streams.
19045         * loader.h, loader.c: add type_class to mono_defaults.
19046         * metadata.c, metadata.h: export compute_size () as
19047         mono_metadata_compute_size () with a better interface.
19048         Typo and C&P fixes.
19049         * pedump.c: don't try to print the entry point RVA if there is no entry point.
19050         * reflection.c, reflection.h: many cleanups, fixes, output method
19051         signatures and headers, typedef and typeref info, compress the metadata
19052         tables, output all the heap streams, cli header etc.
19053         * row-indexes.h: typo fixes.
19054
19055 2001-10-04  Dick Porter  <dick@ximian.com>
19056
19057         * object.h: Add a synchronisation mutex struct to MonoObject
19058
19059         * object.c (mono_new_object): Initialise the object
19060         synchronisation mutexes
19061
19062         * icall.c: System.Threading.Monitor internal calls
19063         
19064         * threads-pthread.h:
19065         * threads-pthread.c: System.Threading.Monitor internal calls
19066
19067         * threads-types.h: New file, includes the system-specific thread
19068         structures
19069         
19070         * threads-pthread-types.h:
19071         * threads-pthread-types.c: New files, handle pthread-specific
19072         synchronisation types
19073
19074         * threads-dummy-types.h: 
19075         * threads-dummy-types.c: New files of dummy support for
19076         thread-specific types
19077
19078         * metadata.c:
19079         * image.c:
19080         * pedump.c: include mono-endian.h not endian.h
19081         
19082         * Makefile.am: More threads files.
19083         Name mono-endian.h not endian.h
19084
19085 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
19086
19087         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
19088         stuff and implement a few more bits.
19089         * icall.c: a field needs to be dereferenced twice. Do not use the same
19090         name for two variables in the same scope.
19091         * image.c, image.h: cleanups.
19092
19093 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
19094
19095         * class.c (mono_class_metadata_init): bug fix: compute the right size
19096
19097 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
19098
19099         * icall.c: implemented some of the Reflection internalcalls.
19100         * image.c, image.h: start writing out the PE/COFF image.
19101         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
19102         that does the reverse than decode_blob_size ().
19103         * object.c: use mono_metadata_encode_value (). Move here
19104         temporary implementation of mono_string_to_utf8 ().
19105         * rawbuffer.c: make malloc_map static.
19106
19107 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19108
19109         * metadata.c: fix type comparison for arrays.
19110         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
19111         Added a couple of new classes to monodefaults.
19112         * icall.c: added a couple of Reflection-related internalcalls.
19113         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
19114         Added a byval_arg MonoType to MonoClass.
19115
19116 2001-09-28  Dick Porter  <dick@ximian.com>
19117
19118         * icall.c:
19119         * threads-pthread.h: 
19120         * threads-pthread.c: Implemented internal calls for
19121         LocalDataStoreSlot operations.  Applied mutexes around all shared
19122         data.  Reworked the thread creation and Start() operations to
19123         avoid a race condition.
19124         
19125         * threads-dummy.h:
19126         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
19127
19128 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
19129
19130         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
19131
19132 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
19133
19134         * class.c, loader.c: warn and return NULL instead of erroring out.
19135         * icall.c: added System.AppDomain::getCurDomain().
19136         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
19137
19138 2001-09-25  Dick Porter  <dick@ximian.com>
19139
19140         * threads-pthread.h:
19141         * threads-pthread.c: Implemented timed thread joining and added
19142         System.Threading.Thread::Join_internal internal call
19143
19144         * icall.c: Added System.Threading.Thread::Join_internal internal call
19145
19146         * threads-dummy.h:
19147         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
19148
19149 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
19150
19151         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
19152         mono_string_intern () to implement the semantics of the ldstr opcode
19153         and the interning of System.Strings.
19154         * icall.c: provide hooks to make String::IsIntern and String::Intern
19155         internalcalls.
19156
19157 2001-09-23  Dick Porter  <dick@ximian.com>
19158
19159         * threads-dummy.c: 
19160         * threads-dummy.h: New files of dummy threading routines
19161
19162         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
19163         support code based on system specifics
19164
19165         Rename PTHREAD_LIBS to THREAD_LIBS
19166         
19167 2001-09-23  Dick Porter  <dick@ximian.com>
19168
19169         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
19170         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
19171         internal calls.
19172         (mono_thread_init): Set up a Thread object instance to return when
19173         the main thread calls Thread.CurrentThread
19174         (mono_thread_cleanup): Wait for all subthreads to exit
19175
19176         * icall.c: New internal calls for System.Threading.Thread::Sleep
19177         (including Schedule) and CurrentThread
19178
19179         * threads.h: New file, to insulate thread-specific stuff from the
19180         rest of the code
19181
19182 2001-09-21  Dick Porter  <dick@ximian.com>
19183
19184         * threads-pthread.h: 
19185         * threads-pthread.c: New file, for handling pthreads-style
19186         threading support.  Start() now starts a new thread and executes
19187         the ThreadStart delegate instance.
19188
19189         * icall.c: Added the internalcall for
19190         System.Threading.Thread::Start_internal
19191
19192         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
19193
19194 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
19195
19196         * loader.c: work around the different signatures for delegates
19197         constructors csc generates in compiled code vs the ones compiled in mscorlib.
19198
19199 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19200
19201         * class.h, class.c: add mono_class_get_field_from_name ().
19202         * *: Fix C comments and other ANSI C issues.
19203
19204 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
19205
19206         * endian.h, assembly.c: fix some endianness issues.
19207
19208 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
19209
19210         * loader.h, load.c: add delegate_class to mono_defaults.
19211         Handle runtime provided methods in mono_get_method ().
19212
19213 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
19214
19215         * loader.c (mono_get_method): use pinvoke for internal call
19216
19217         * icall.c: use pinvoke for internal call
19218
19219         * loader.c (method_from_memberref): set the method name
19220
19221 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
19222
19223         * metadata.c: help the compiler generate better code for
19224         mono_class_from_mono_type ().
19225
19226 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
19227
19228         * class.c (mono_class_metadata_init): delayed computing of the
19229         class size to mono_class_metadata_init ()
19230
19231 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
19232
19233         * class.c, class.h: add an interfaces member to MonoClass.
19234         * image.c, image.h: add assembly_name field to MonoImage
19235         from the assembly table.
19236         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
19237
19238 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19239
19240         * class.c: Handle Array in mono_class_from_mono_type ().
19241         * metadata.c, pedump.c: some endian fixes.
19242
19243 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19244
19245         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
19246         * metadata.c: fix small problem introduced with the latest commit.
19247
19248 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
19249
19250         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
19251         We don't need a MonoMetadata pointer anymore to compare signatures in
19252         mono_metadata_signature_equal (), update callers.
19253         Reduced memory usage an number of allocations for MonoMethodHeader and
19254         MonoMethodSignature.
19255
19256 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
19257
19258         * metadata.c: added compare for szarray.
19259
19260 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
19261
19262         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
19263         and add a couple more types to it and mono_defaults. Give an hint on
19264         classes that need implementing in our corlib and are referenced
19265         in mscorlib.
19266
19267 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
19268
19269         * class.h, class.c: keep track if a class is also an Enum.
19270         * loader.c: Implement a couple more types for use in libffi
19271         marshalling. Gives better diagnostics when failing to dlopen
19272         a library. Set method->klass for P/Invoke methods, too.
19273
19274 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
19275
19276         * class.c, class.h: add a MonoType this_arg to MonoClass that
19277         represents a pointer to an object of the class' type that
19278         can be used by the interpreter and later the type cache.
19279         Add best guess alignment info for valuetype objects.
19280
19281 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
19282
19283         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
19284         into MonoType: one less level of indirection and allocation and
19285         simplifies quite a bit of code. Added cache for MonoTypes that are
19286         used frequently, so that we don't need to allocate them all the time.
19287
19288 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
19289
19290         * class.c (mono_class_create_from_typedef): System.Enum is also a
19291         value type, although it does not derive from System.ValueType
19292         (maybe a bug in the ms compiler?)
19293
19294         * metadata.c (mono_type_size): return the right size for value types
19295
19296         * loader.c (mono_get_method): only initialize method header if not abstract
19297
19298         * class.c (mono_class_from_mono_type): use mono_default values. 
19299
19300 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
19301
19302         * *: use MonoClass pointers instead of <type_tokens>
19303         
19304         * class.h: new flag: metadata_inited.
19305
19306         * class.c (mono_class_metadata_init): impl.
19307         (mono_class_instance_size): impl.
19308         (mono_class_data_size): impl.
19309
19310 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19311
19312         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
19313         MonoClass now has the name and name_space fields. 
19314         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
19315         mono_get_method () takes and optional MonoClass as argument.
19316         Removed mono_typedef_from_name() and added mono_class_token_from_name()
19317         instead that takes advantage of a map from class names to typedef
19318         tokens in MonoImage.
19319
19320 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
19321
19322         * metadata.c: zero is not a valid alignment boundary.
19323         Merge MONO_TYPE_VOID in default decoding code.
19324
19325 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
19326
19327         * image.h: merged MonoMetadata into MonoImage
19328
19329         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
19330         identify the type of elements.
19331
19332 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
19333
19334         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
19335         * cil-coff.h: split MonoMSDOSHeader and add size info.
19336         * image.c: add some consistency checks.
19337         * metadata.c: fix row size computation: one programmer
19338         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
19339         add explanation for the locator routine.
19340         Fix decoding of size in method header.
19341         
19342 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
19343
19344         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
19345         (g_concat_dir_and_file): Bring g_concat_dir_and_file
19346         function from gnome-libs.  This uses the right path separator
19347         based on the OS, and also works around a bug in some systems where
19348         a double slash is not allowed. 
19349         (default_assembly_name_resolver): Use g_concat_dir_and_file
19350         (mono_assembly_open): ditto.
19351
19352 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
19353
19354         * metadata.c (mono_metadata_signature_equal): impl.
19355
19356         * *: void is now a realy MonoType (instead of using NULL)
19357         
19358         * metadata.c (do_mono_metadata_parse_type): use
19359         mono_metadata_parse_type to parse void value.
19360
19361 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
19362
19363         * metadata.c, metadata.h: in the signature and method header store
19364         only the space required for holding the loca vars and incoming arguments.
19365
19366 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
19367
19368         * metadata.c (do_mono_metadata_parse_type): treat void like any
19369         other type (instead of assigning NULL);
19370
19371 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
19372
19373         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
19374
19375 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
19376
19377         * image.c (do_mono_image_open): added a cache for arrays.
19378
19379 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19380
19381         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
19382         decode a single column from a row in a metadata table and changes
19383         to take advantage of it in the typedef locator (gives a nice speed up).
19384         Store offset info for function params.
19385
19386 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
19387
19388         * image.h (MONO_IMAGE_IS_CORLIB): removed 
19389
19390 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
19391
19392         * assembly.c: how could mono_assembly_close () had ever worked?
19393         * metadata.c, metadata.h: provide offset info for local vars.
19394         Implement mono_type_size () to take care of alignment as well
19395         as size (it was mono_field_type_size in cli/class.c before).
19396
19397 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
19398
19399         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
19400
19401         * assembly.h (CORLIB_NAME): set to corlib.dll
19402
19403         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
19404
19405 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19406
19407         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
19408         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
19409         tokentype.h: massive namespace cleanup.
19410
19411 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19412
19413         * metadata.h, metadata.c: decode exception clauses when parsing method header.
19414
19415 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
19416
19417         * metadata.c (mono_metadata_free_type): added check for type !=
19418         NULL (void) before calling mono_metadata_free_type()
19419
19420 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
19421
19422         * metadata.h, row_indexes.h: added header with enumerations to use
19423         to index in the columns from tables in metadata and to decode coded
19424         tokens: we should start using this instead of embedding magic numbers
19425         all over the code.
19426
19427 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
19428
19429         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
19430         Move metadata_t info from cli_image_info_t to MonoImage, where
19431         it's easily accessible. Changed all the uses accordingly.
19432         Added the method and class caches to MonoImage.
19433         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
19434         and mono_metadata_decode_value () signature to be more consistent
19435         with the other parse functions (and simplify code). Taken advantage
19436         of zero-length array allocation with GCC. Removed reduntant (and
19437         wrong) MonoFieldType struct and use MonoParam instead. Changed
19438         mono_metadata_parse_field_type () to use common code for parsing.
19439         Added mono_metadata_typedef_from_field () and
19440         mono_metadata_typedef_from_method () to lookup a typedef index from a
19441         field or method token.
19442         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
19443
19444 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
19445
19446         * metadata.c (mono_metadata_parse_field_type): Implement. 
19447         (do_mono_metadata_parse_type): Split engine from
19448         mono_metadata_parse_type, so that we can create smaller structures
19449         for things that just have one pointer to the MonoType (look at
19450         the MonoFieldType)
19451
19452 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
19453
19454         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
19455         as Jan Gray found out, it is incorrect. 
19456
19457 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
19458
19459         * assembly.c: Implement asssembly loading.  This loads an image
19460         and loads all the referenced assemblies.  Come to think of it, we
19461         could always do lazy loading of the assemblies. 
19462
19463         * image.c (mono_image_open): Keep loaded images in a hashtable.
19464
19465         * image.h (MonoImage): Add reference count.
19466
19467 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
19468
19469         * assembly.c (mono_assembly_open): Keep track of the file name in
19470         case the assembly has no ASSEMBLY table.
19471
19472         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
19473         from get.c here.
19474
19475 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
19476
19477         * metadata.c, metadata.h: decode local vars in method header
19478         parse function. Change callers accordingly.
19479
19480 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
19481
19482         * metadata.h, cil-coff.h: protect against multiple inclusion.
19483         Added some new structures to hold information decoded from metadata:
19484         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
19485         and relevant decoding/free functions.
19486         * metadata.c: implement decoding functions. Add warning for out of bounds
19487         index in mono_metadata_locate(). Implement mono_get_method () to retreive
19488         all the info about a method signature and invocation. Remove check on
19489         uninitialized local var in parse_mh() and fix memory leak.
19490
19491 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
19492
19493         * metadata.h: More macros.
19494
19495         * tokentype.h: New file.
19496
19497 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
19498
19499         * assembly.c: added a consistency check and initialize
19500         some structures with g_new0().
19501         * metadata.c: fixed a couple more bugs in table size computation
19502         and add other checks for out-of bound access to metadata.
19503
19504 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
19505
19506         * metatada.c: fix bugs computing table sizes. Spew a
19507         warning when index in string heap is out of bounds.
19508
19509 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
19510
19511         * metadata.h: Add a couple of macros to manipulate tokens. 
19512
19513 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19514
19515         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
19516         cli_section_tables).
19517
19518 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
19519
19520         * metadata.c (mono_metadata_user_string): New function, provides
19521         access to the UserString heap. 
19522
19523 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
19524
19525         * metadata.c: Add inline documentation.
19526
19527 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
19528
19529         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
19530         files. 
19531
19532 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
19533
19534         * typeattr.h: New file, TypeAttribute flags. 
19535
19536 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
19537
19538         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
19539         mono_assembly_ensure_section): Section loading code.
19540         (load_section_tables): Load the sections.
19541
19542         * mono/metadata/metadata.c (mono_metadata_locate_token,
19543         mono_metadata_locate): Functions to locate the information
19544         definition given a token or a table and an index.
19545         (mono_metadata_compute_table_bases): New.
19546         (compute_size): New function to compute the sizes of the various
19547         tables.
19548
19549         * mono/metadata/metadata.h: Finish listing the different index
19550         types. 
19551
19552         * mono/metadata/pedump.c: Improve to dump new information.
19553
19554 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
19555
19556         * mono/metadata/metadata.c: Entered all the tables matching
19557         Beta2. 
19558
19559         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
19560
19561
19562