2006-09-27 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
2
3         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
4
5         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
6         #79217.
7
8 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
9
10         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
11         could be generated from it.
12
13 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
14
15         * rand.c: fix read loop to correctly handle EINTR.
16
17 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
18
19         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
20         internal calls are defined to keep methods closer to the declaring
21         type and allow a significant reduction in runtime relocations and
22         memory usage.
23
24 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
25
26         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
27         exception message to have FileNotFoundException use the default
28         assembly load error message. Fixes bug #79426.
29         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
30
31 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
32
33         * threadpool.c: (start_thread_or_queue) use the root domain when
34         creating the thread instead of the async object one.
35
36 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
37
38         * class.c, object.c, class-internals.h, reflection.c:
39         for arrays, store element_size inside MonoClass (speedup
40         for array object creation).
41
42 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
43
44         * icall.c: fixed CodeBase to use the file name and not the module
45         name (bug #79365).
46
47 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
48
49         * mono-debug.c, mono-debug.h: export find_method as
50         mono_debug_find_method ().
51
52 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
53
54         * debug-helpers.c, class-internals.h: added a few functions useful
55         when debugging under gdb.
56
57 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
58
59         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
60         characters that need special handling.
61
62 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
63
64         * mono-config.c: make the os/cpu specification more flexible,
65         allowing lists and negation.
66
67 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
68
69         * marshal.c: COM Interop fixes. Handle case where method->klass.
70         is interface. Handle BSTR/MonoString when null. Use CDECL as 
71         calling convention on non-windows platforms. This is for
72         compatibility with XPCOM and MainWin COM.
73         
74         Code is contributed under MIT/X11 license.
75         
76
77 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
78
79         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
80         correctly. Fixes #79217.
81
82         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
83
84 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
85
86         * mono-config.c: allow both an os and cpu attribute for dllmap
87         and dllentry elemnets to enable a single config file to be used
88         for multiple architectures.
89
90 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
91
92         * loader.c: MonoLoaderError was cleared too soon on load failure.
93         Fixes bug #79424.
94
95 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
96
97         * icall.c: use the defining class vtable when accessing a
98         static field, not a pobblibly derived class.
99
100 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
101
102         * icall.c string-icalls.c: Remove references to unicode.h.
103
104         * unicode.h unicode.c Makefile.am: Remove these unused source files.
105
106         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
107
108         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
109         indicating the image where custom marshaller types should be looked up.
110         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
111         custom marshallers, instead of corlib. Fixes #79425.
112
113 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
114
115         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
116
117 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
118
119         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
120         Implement Environment.ProcessorCount.
121         
122         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
123         Implement Environment.ProcessorCount.
124         
125         * icall.c: 
126         Add Environment.ProcessorCount icall.
127         
128         Patch by Jason McFall.
129
130 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
131
132         * assembly.c: don't append .exe/.dll when the filename already contains
133         one of those extensions.
134
135 2006-09-12  Martin Baulig  <martin@ximian.com>
136
137         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
138         to array interfaces.
139
140 2006-09-11  Martin Baulig  <martin@ximian.com>
141
142         * reflection.c (mono_image_build_metadata): Create the
143         MethodImpl's after emitting all types and methods, so we don't
144         need another fixup pass for them.
145
146 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
147
148         * class.c (mono_class_from_name_case): Fix regression introduced by the last
149         change.
150
151 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
152
153         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
154         unload.
155
156 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
157
158         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
159         args is not set. Fixes #78926.
160
161 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
162
163         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
164
165         * image.c (load_class_names): Move this to class.c, and rename it to 
166         'mono_image_init_name_cache'.
167         (load_modules): Fix a warning.
168
169         * class.c icall.c image.c: Initialize image->name_cache lazily.
170
171         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
172         on its name using information in the AOT file.
173
174         * class.c (mono_class_from_name): Use the new hook function.
175
176 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
177
178         * reflection.c (mono_param_get_objects): Handle enum default parameter values
179         correctly.
180
181         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
182         Fixes #79289.
183         
184 2006-09-06  Martin Baulig  <martin@ximian.com>
185
186         * icall.c (mono_lookup_internal_call): Small fix.
187
188 2006-09-05  Raja R Harinath  <rharinath@novell.com>
189
190         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
191         double g_free.
192
193 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
194
195         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
196         when --debug is specified.
197
198 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
199
200         * class.c (setup_generic_array_ifaces): Fix a warning.
201
202 2006-09-04  Miguel de Icaza  <miguel@novell.com>
203
204         * Temporarily remove the patch to assemly.c that checks the
205         assembly versions as it breaks our gacutil.
206
207 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
208
209         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
210
211         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
212         a net 1.0 runtime.
213
214         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
215         created using the default ctor. Fixes #79152.
216         (mono_string_builder_to_utf16): Ditto.
217
218 2006-09-01  Martin Baulig  <martin@ximian.com>
219
220         Fix handling of the generic array interfaces.
221
222         * class-internals.h
223         (MonoDefaults): Removed `generic_array_class' and added
224         `generic_ilist' class.
225
226         * class.c
227         (mono_bounded_array_class_get): Add the new generic array interfaces.
228         (setup_generic_array_ifaces): New static method; create vtable
229         entries for each method in the generic array interfaces.
230
231         * metadata.c
232         (select_container): Allow "parent-less" generic methods.
233
234         * marshal.c
235         (mono_marshal_get_generic_array_helper): New public method.
236
237         * icall.c
238         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
239         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
240         moved the interncall into System.Array.
241
242 2006-09-01  Raja R Harinath  <rharinath@novell.com>
243
244         A few more cases of avoiding work on types with ->byref set.
245         Has the real fix for #79238
246         * icall.c (is_generic_parameter): New helper.
247         (ves_icall_Type_GetGenericParameterPosition): Use it.
248         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
249         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
250         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
251         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
252         reference types.
253         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
254         reference types.
255         (ves_icall_Type_get_IsGenericInstance): Likewise.
256         (ves_icall_Type_get_IsGenericType): Likewise.
257
258 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
259
260         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
261         class if possible.
262
263         * mempool.h (mono_mempool_get_allocated): New helper function.
264
265         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
266         change.
267
268         * mempool.c: Fix warnings and the calculation of stats.
269
270         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
271
272         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
273
274         * loader.c (mono_get_method_from_token): Update method_count stat.
275
276         * class-internals.h (MonoStats): Add some stats.
277
278 2006-08-31 Robert Jordan  <robertj@gmx.net>
279
280         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
281         with managed variants.
282         All code is contributed under the MIT/X11 license.
283         
284 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
285
286         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
287         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
288
289         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
290
291         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
292         with cycles in classes.
293
294         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
295
296         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
297         missing a [MarshalAs] directive. Fixes #79203.
298
299         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
300         klass->marshal_info. Fixes #79217.
301
302 2006-08-30  Martin Baulig  <martin@ximian.com>
303
304         Committing a patch from Joachim Ante <joe@otee.dk>:
305         Add support for binary data symbol stores.
306
307         * debug-mono-symfile.c
308         (mono_debug_open_mono_symbol_file): Renamed into
309         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
310         arguments.
311
312         * mono-debug.c
313         (mono_debug_open_image): Added `raw_contents' and `size' args.
314         (mono_debug_init_2_memory): New public function.
315
316 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
317
318         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
319
320 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
321
322         * appdomain.c: implement support for ShadowCopyFiles.
323
324 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
325
326         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
327         when value is NULL (and should remove CID #51).
328
329 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
330
331         * image.c: moved 2 functions to ../utils.
332
333 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
334
335         * gc.c: cope with the target object of a GC handle being NULL
336         (bug #78877).
337
338 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
339
340         * class.c: recursively check parent's explicit implementations
341         of interface methods (fixes bug #79125).
342
343 2006-08-19  Miguel de Icaza  <miguel@novell.com>
344
345         * filewatcher.c: Avoid warnings when building, do not redefine
346         constants that are defined.
347
348         Remove warnings.
349
350 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
351
352         * image.c: don't fail when the link points to an absolute path.
353
354 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
355
356         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
357         Fix CID #3.
358
359 2006-08-17  Miguel de Icaza  <miguel@novell.com>
360
361         * image.c (full_path): A new method used to obtain the actual path
362         of an assembly even in the presence of symbolic links.  
363
364         This is necessary for the case where we are running a binary that
365         has been GACed, but we are using the "published" path name
366         ($prefix/mono/1.0/blah.exe) which happens to point to the real
367         file in the GAC.
368
369         This was the source of the failure for the `xsp' command with the
370         recent AppDomain changes, as far as the runtime was concerned,
371         there were two different assemblies: $prefix/mono/1.0/blah.exe and
372         $prefix/mono/gac/blah/version/blah.exe.
373
374         (do_mono_image_open): use full path
375
376 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
377
378         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
379
380 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
381
382         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
383         domain_id is supplied. Fix CID #241 and corlib's unit tests.
384
385 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
386
387         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
388         small structures. Fixes #78990.
389
390 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
391
392         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
393
394         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
395
396 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
397
398         * appdomain.c:
399         * marshal.c: don't load all the assemblies from a domain into newly
400         created ones. The new domains might have different rules and load
401         assemblies from different locations. Fixes bug #76757.
402
403         Patch by Lluis. Conflicts resolved by Brian Crowell.
404
405 2006-08-16  Alp Toker  <alp@atoker.com>
406
407         * socket-io.c: First half of the fix for #79084.
408         Set sa_size to the length of the content, not that of the struct.
409         Don't add NULL suffix to the content, this should be done in
410         managed code if needed.
411
412 2006-08-14  Raja R Harinath  <rharinath@novell.com>
413
414         Fix part of #79012
415         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
416         mono_metadata_parse_type returns NULL.
417
418 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
419
420         * normalization-tables.h : new file for string normalization data.
421         * locales.c, locales.h, icall.c :
422           added load_normalization_resource() for string normalization,
423           and icall as well.
424         * Makefile.am : added normalization-tables.h to the sources.
425
426 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
427
428         * marshal.c: Add more helper functions to reduce code duplication and use them
429         everywhere.
430
431 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
432
433         * marshal.c: Fix non-x86 stdcall warnings.
434         
435         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
436         them everywhere.
437
438 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
439
440         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
441         type check on multi-dimensional arrays. Fixes #79000.
442
443 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
444
445         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
446         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
447         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
448         * class-internals.h: add is_com_object to class structure.
449         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
450         null checks to COM object marshalling. Fix .ctor call on RCW.
451         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
452         
453         All code is contributed under the MIT/X11 license.
454
455 2006-08-09  Dick Porter  <dick@ximian.com>
456
457         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
458         racing mono_monitor_allocator_lock() somewhere, so don't delete
459         the critical section for now.  Found by running and exiting
460         monodevelop.
461
462 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
463
464         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
465         (ves_icall_System_ComObject_FindInterface): Ditto.
466         (ves_icall_System_ComObject_CacheInterface): Ditto.
467
468         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
469         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
470
471 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
472
473         * threadpool.c: treat pipes from process asynchronous reads as sockets
474         when reading from them, so we get select/poll or epoll to wait for
475         data.
476
477 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
478
479         * loader.c: Fix a typo (CID #233) in the null check.
480
481 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
482
483         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
484         Hopefully fixes #78949.
485         
486         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
487         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
488         bytes. Fixes #78972.
489
490 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
491
492         * filewatcher.c: we need to set errno here.
493
494 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
495
496         * filewatcher.c: let Win32Exception get the error value.
497
498 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
499
500         * filewatcher.c: translate errno into win32 errors for Win32Exception
501         to know what happened.
502
503 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
504
505         * threadpool.c: Fix more warnings.
506
507         * assembly.c (search_loaded): Fix warnings.
508
509         * threadpool.c (mono_thread_pool_finish): Fix warnings.
510         (mono_async_invoke): Ditto.
511
512 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
513
514         * object.c (mono_remote_class_vtable): Need to create proxy vtable
515         entries for __ComObject type in addition to ComImport types.
516         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
517         about hash table.
518         
519         All code is contributed under the MIT/X11 license.
520
521 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
522
523         * image.c: avoid tentative loading of modulerefs that contain
524         no metadata (P/Invoke library names).
525
526 2006-07-28  Dick Porter  <dick@ximian.com>
527
528         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
529         mono_loader_lock() somewhere, so don't delete the critical section
530         for now.  Found by running and exiting monodevelop.
531
532 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
533
534         * filewatcher.c: define the inotify syscalls when we're building on
535         linux and have sys/syscall.h. The build system might not have support
536         for inotify but the target system might have it.
537
538 2006-07-26  Miguel de Icaza  <miguel@novell.com>
539
540         * domain.c: Documentation updates.
541
542         * loader.c (mono_free_method): Do not release the method
543         information if we are being profiled, as profilers will use this
544         information at shut down to present some data to the user.
545
546         This is needed so that the profiler does not crash, as the
547         profiler tends to keep MonoMethods around, and they might become
548         invalid if we free these.
549
550         (mono_get_method_constrained): Return the original CIL stream
551         method as well, so verification can be performed against it.
552
553 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
554
555         * filewatcher.[ch]: support for inotify file system watcher.
556         * icall.c: add new internal calls for the inotify file system watcher.
557
558 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
559
560         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
561         #78888.
562
563 2006-07-20  Dick Porter  <dick@ximian.com>
564
565         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
566         warning.
567
568 2006-07-20  Dick Porter  <dick@ximian.com>
569
570         * threads.c (start_wrapper): Do the thread cleanup while we still
571         hold a reference to its object.  Fixes bug 78123.
572
573 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
574
575         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
576         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
577           "managed-to-managed".
578         * icall.c: Redirect string constructors that take sbyte* to
579           ves_icall_System_String_ctor_RedirectToCreateString.
580         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
581           to CreateString () methods with matching signature.
582         * reflection.c: Use original security informations for
583           MONO_WRAPPER_MANAGED_TO_MANAGED.
584         * security-manager.c: Use original security informations for
585           MONO_WRAPPER_MANAGED_TO_MANAGED.
586         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
587           that is a placeholder and only its address should be used.
588         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
589           that is a placeholder and only its address should be used.
590
591 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
592
593         Begin implementing COM Interop.
594         * appdomain.c: Increment corlib version.
595         * class.c: Set ComImport classes' parent to __ComObject.
596         * loader.c: Mark cominterop methods as such.
597         * domain.c: Add __ComObject class to MonoDefaults structure.
598         * image.c: Add 2 hashtables to the image for COM Interop related methods
599         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
600         using the mempool allocator
601         
602         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
603         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
604         declaration for mono_metadata_type_dup_mp.
605         
606         * debug-helpers.c: Added strings for two additional wrapper types
607         * object.c: Create proxy objects for ComImport classes
608         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
609         and added __ComObject class to MonoDefaults structure.
610         
611         * object-internals.h: Finish MonoRealProxy definition, and add definition of
612         MonoComInteropProxy and MonoComObject.
613         
614         * marshal.c: Added support for COM Interop
615         (signature_cominterop): Converts managed signature to corresponding
616         unmanaged COM signature.
617         (cominterop_get_function_pointer): gets unmanaged function pointer via
618         COM object vtable
619         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
620         (cominterop_get_method_interface): returns interface type that method is defined on
621         (mono_mb_emit_cominterop_call): emits native call to function pointer
622         gotten from vtable
623         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
624         that matches signature of unmanaged function.
625         (cominterop_get_native_wrapper): wrapper around adjusted method call.
626         (cominterop_get_invoke): forwards call from proxy to __ComObject
627         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
628         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
629         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
630         
631         * marshal.h: Added Marshal icall declarations.
632         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
633         so we can access them in finalizer
634         
635 2006-07-14  Dick Porter  <dick@ximian.com>
636
637         * object.c (mono_type_initialization_cleanup): Fix a race
638         condition by temporarily commenting out the critical section
639         deletion.
640
641 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
642
643         * reflection.c (create_custom_attr): Fix some warnings.
644         (create_custom_attr_data): Ditto.
645         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
646         types. Fixes #78855.
647
648 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
649
650         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
651
652         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
653
654 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
655
656         * reflection.c (resolve_object): Add support for DynamicMethod.
657
658         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
659         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
660
661 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
662
663         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
664         don't leak GPtrArray's pdata has we have no use (nor free) for it.
665
666 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
667
668         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
669         Fixes #77888.
670
671 2006-06-30  Raja R Harinath  <rharinath@novell.com>
672
673         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
674         slightly: remove a shadow local variable.
675
676 2006-06-29  Raja R Harinath  <rharinath@novell.com>
677
678         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
679         definition that introduces the virtual function slot.
680         Also fix Coverity #105.
681
682 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
683
684         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
685         for dynamic assemblies. Fixes #78724.
686
687 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
688
689         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
690         Fixes #78722.
691
692 2006-06-21  Martin Baulig  <martin@ximian.com>
693
694         * reflection.c
695         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
696         fixes #76484.
697
698 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
699
700         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
701
702 2006-06-20  Raja R Harinath  <rharinath@novell.com>
703
704         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
705         nor TYPEREFs.
706         * class.c (mono_class_create_from_typespec): Add 'context' argument.
707         Inflate result if necessary.
708         (mono_class_get_full): Remove old version.  Rename from
709         'mono_class_get' and add 'context' argument.  Pass it to
710         ..._create_from_typespec.
711         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
712         (mono_ldtoken): Revert change below.
713
714 2006-06-20  Martin Baulig  <martin@ximian.com>
715
716         * class.c (mono_ldtoken): Don't pass the generic context to
717         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
718
719 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
720
721         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
722         and later freeing it. Fixes #78638.
723
724 2006-06-15  Miguel de Icaza  <miguel@novell.com>
725
726         * icall.c (mono_class_get_throw): Revert over-zealous error
727         throwing, the caller for mono_class_get_throw will cope with
728         errors when classes are not properly initialized already.
729
730         The code still copes with loader exceptions though.
731
732         Fixes the regression in reftype1 and reftype3 from the CAS tests.
733         
734 2006-06-14  Miguel de Icaza  <miguel@novell.com>
735
736         Fixes the `make run1' version of RuntimeAbort (to be commited,
737         source is in Bugzilla).
738         
739         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
740         FALSE on class loading failure instead of returning true.
741
742         * class.c (mono_class_create_from_typedef): It is possible for
743         mono_metadata_interfaces_from_typedef_full to fail if a class is
744         not found, cope with this.
745         
746
747 2006-06-14  Dick Porter  <dick@ximian.com>
748
749         * socket-io.c: 
750         * process.c: Fix a bunch of signed/unsigned warnings from gcc
751         4.1.1
752
753 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
754
755         * culture-info-table.h : oops, forgot to make it nsync with r61548.
756
757 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
758
759         * icall.c: Another fix for building mono in Visual Studio.
760
761 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
762
763         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
764         
765 2006-06-09  Martin Baulig  <martin@ximian.com>
766
767         * debug-mono-symfile.c: Put this back and really fix it this
768         time. Sorry for all the trouble.
769
770 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
771
772         * icall.c (mono_class_get_throw): Fix a warning.
773         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
774         ReflectionTypeLoadException if needed. Fixes #78606.
775
776         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
777         (mono_class_init): Ditto.
778
779         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
780         ref_only exceptions.
781         (mono_loader_clear_error): Make this work even if there is no error.
782
783 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
784
785         * object-internals.h marshal.c marshal.h icall.c: Implement method 
786         Marshal.GetComSlotForMethodInfo using internal call.
787
788 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
789
790         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
791         a function for signalling it.
792
793         * class.c (mono_class_from_typeref): Use the new kind of loader error when
794         a referenced assembly is not found.
795
796         * loader.c (mono_loader_error_prepare_exception): Add support for 
797         LOADER_ERROR_ASSEMBLY. Fix formatting.
798
799 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
800
801         * domain.c appdomain.c class-internals.h marshal.c: Add support 
802         for VARIANT marshalling on windows and increment corlib version
803         since Variant struct was added.
804
805 2006-06-03  Miguel de Icaza  <miguel@novell.com>
806
807         * debug-mono-symfile.c: Revert Martin's previous patch which broke
808         stack trace line information:
809
810         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
811         (Martin) when looking up B which is between A and C, return A not C.
812
813         Bug is #78573.
814
815         Thanks to Alexander Olk for tracking this down.
816
817 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
818
819         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
820         
821         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
822         avoid clobbering its value.
823         (mono_string_to_lpstr): Fix a warning on windows.
824
825 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
826
827         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
828
829         * reflection.c loader.c: Removed references to 'dummy' flag.
830
831         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
832
833         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
834         it gets GC tracking.
835
836         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
837         GC tracking.
838         
839         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
840
841         * marshal.c threadpool.c: Update callers of mono_async_result_new.
842
843         * appdomain.c: Bump corlib version.
844
845 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
846
847         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
848         CEE_STIND_REF when working with object references.
849
850 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
851
852         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
853         Fixes #78539.
854
855 2006-05-30  Miguel de Icaza  <miguel@novell.com>
856
857         * loader.c (method_from_memberref): Fix argument value for
858         mono_loader_set_error_method_load (I was passing the MonoClass
859         instead of the class name char *).
860
861 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
862
863         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
864         CEE_STIND_REF when working with object references.
865
866 2006-05-30  Martin Baulig  <martin@ximian.com>
867
868         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
869         mono_method_full_name() change and replace the ':' with a '.'
870         here.
871
872 2006-05-30  Martin Baulig  <martin@ximian.com>
873
874         * debug-mono-symfile.c
875         (mono_debug_symfile_lookup_location): Fix the algorithm:
876         when looking up B which is between A and C, return A not C.
877
878 2006-05-29  Martin Baulig  <martin@ximian.com>
879
880         * mono-debug.h
881         (MonoDebugMethodInfo): Make the typedef public.
882         (MonoDebugSourceLocation): New public struct.
883
884         * mono-debug.c
885         (mono_debug_source_location_from_address): Removed.
886         (mono_debug_source_location_from_il_offset): Removed.
887         (mono_debug_il_offset_from_address): Removed.
888         (mono_debug_address_from_il_offset): Removed.
889         (mono_debug_lookup_method): New public function.
890         (mono_debug_lookup_source_location): New public function; replaces
891         the old mono_debug_source_location_from_*() functions; see the
892         inline documentation.
893         (mono_debug_free_source_location): New public function.
894         (mono_debug_print_stack_frame): New public function; see the
895         inline documentation.
896
897         * debug-mono-symfile.c
898         (mono_debug_find_source_location): Renamed into
899         mono_debug_symfile_lookup_location(); only take a
900         `MonoDebugMethodInfo *' and an `offset' argument; added inline
901         documentation.
902         (mono_debug_find_method): Renamed into
903         mono_debug_symfile_lookup_method().
904
905 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
906
907         * assembly.c (mono_assembly_open_full): Dont overwrite the status
908         returned by mono_image_open_full ().
909
910         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
911         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
912         #78517.
913
914         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
915         #78518.
916
917 2006-05-27  Miguel de Icaza  <miguel@novell.com>
918
919         * class.c (mono_class_from_typeref): handle missing images
920         earlier, deals with bug #78418.   Refactor code; 
921
922         Fix a warning introduced in my previous commit (some stale code
923         from before I revisited my patch).
924
925         * class.c (mono_class_create_from_typedef): On failure, remove the
926         class from the MonoImage->class_cache as the class is not
927         initialized;   Fixes the leak pointed out by Paolo.
928
929 2006-05-25  Dick Porter  <dick@ximian.com>
930
931         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
932         DeleteCriticalSections until I figure out which one may still be
933         sometimes locked when mono_thread_cleanup is called.
934
935 2006-05-24  Dick Porter  <dick@ximian.com>
936
937         * threads.c (mono_thread_cleanup): Move the threading cleanup out
938         of mono_thread_manage and back into its own function, so it can be
939         called after the finalizer thread has finished.
940
941         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
942
943 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
944
945         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
946         Fixes #78495.
947
948         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
949         with non-blittable elements.
950         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
951
952 2006-05-24  Martin Baulig  <martin@ximian.com>
953
954         * mono-debug-debugger.h (MonoDebuggerEvent): Added
955         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
956
957         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
958         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
959         `mono_debugger_event_handler' to NULL.
960
961 2006-05-24  Martin Baulig  <martin@ximian.com>
962
963         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
964
965 2006-05-24  Martin Baulig  <martin@ximian.com>
966
967         * mono-debug-debugger.h
968         (mono_debugger_create_notification_function): Added
969         `MonoCodeManager *' argument.
970
971 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
972
973         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
974
975 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
976
977         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
978         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
979         implementation.
980
981 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
982
983         * icall.c: precise GC support: objects can't be stored in unmanaged
984         memory anymore, even if they are kept alive by other references: since
985         they can move the GC needs to be able to always find them.
986
987 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
988
989         * object.c: precise GC support for static fields. Support
990         for moving GCs: write barriers and pinned allocation for interned
991         strings.
992
993 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
994
995         * domain.c, domain-internals.h: precise GC support for the MonoDomain
996         structure.
997
998 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
999
1000         * class.c, gc.c: sgen and precise GC updates.
1001
1002 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
1003
1004         * marshal.h, marshal.c: added write barrier wrapper and precise type
1005         fixes.
1006
1007 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
1008
1009         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
1010         support.
1011
1012 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
1013
1014         * reflection.c: precise and sgen GC updates.
1015
1016 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
1017
1018         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
1019
1020 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
1021
1022         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
1023
1024 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
1025
1026         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
1027         MONO_TYPE_OBJECT. Fixes #78462.
1028
1029 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
1030
1031         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
1032         and blittable types.
1033
1034 2006-05-17  Miguel de Icaza  <miguel@novell.com>
1035
1036         * class.c (mono_class_get_exception_for_failure): Implement parts
1037         of a TODO: if the loader error is set (instead of the class
1038         error), we return a Loader exception that can be properly thrown
1039         elsewhere.
1040
1041         This was exposed by some Winforms 2.0 code that I tried to run
1042         (Atsushi pointed me to it).
1043
1044 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
1045
1046         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
1047         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
1048         
1049         * marshal.c (emit_marshal_vtype): Add limited support for 
1050         UnmanagedType.LPStruct. Fixes #78427.
1051
1052         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
1053         Applied a patch from kangaroo to fix #77523.
1054
1055 2006-05-17  Martin Baulig  <martin@ximian.com>
1056
1057         * threads.c
1058         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
1059         (debugger_thread_created): Removed.
1060         (debugger_thread_exited): Removed.
1061
1062 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
1063
1064         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1065
1066         * object-internals.h (MonoReflectionResource): Sync with managed version.
1067
1068 2006-05-12  Wade Berrier <wberrier@novell.com>
1069
1070         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
1071
1072 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
1073
1074         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
1075         functions try to allocate from the image mempool.
1076
1077 2006-05-12  Dick Porter  <dick@ximian.com>
1078
1079         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
1080
1081 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
1082
1083         * object.c: The FieldGetter and FieldSetter methods require the full
1084         name of the class, not only the name. Fixes bug #78277.
1085
1086 2006-05-11  Miguel de Icaza  <miguel@novell.com>
1087
1088         * loader.c (method_from_memberref): Do not pass the NULL klass to
1089         mono_loader_set_error_() methods.  Pass the non-NULL value
1090         (class). 
1091
1092 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
1093
1094         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
1095         (mono_assembly_close): Null out assembly->image->references after freeing it.
1096
1097         * image.c (mono_image_close): Free image->references.
1098         
1099         * reflection.c (mono_image_basic_init): Fix a small memory leak.
1100
1101 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1102
1103         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
1104         before checking if it's NULL (g_assert).
1105
1106 2006-05-10  Martin Baulig  <martin@ximian.com>
1107
1108         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
1109         I thought I already killed that two months ago, but now it somehow reappeared.
1110
1111 2006-05-10  Martin Baulig  <martin@ximian.com>
1112
1113         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
1114
1115 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
1116
1117         * reflection.c: Allocate memory for dynamically created methods in the image
1118         mempools.
1119
1120 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
1121
1122         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
1123         don't use the ad pointer before checking if it's NULL (g_assert).
1124
1125 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
1126
1127         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
1128         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
1129
1130         * marshal.c: Allocate all signatures from mempools.
1131
1132         * marshal.c: Allocate some more signatures from mempools.
1133
1134 2006-05-09  Miguel de Icaza  <miguel@novell.com>
1135
1136         * object.c (mono_load_remote_field): The code used to provide a
1137         temporary variable for returning results if the user did not
1138         provide a result pointer.  But our temporary variable was allocted
1139         on the satck.
1140
1141         Fix calling code to always pass a result area.   Coverity ID 103.
1142
1143 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
1144
1145         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
1146         value, not the old. Fixes #78312.
1147         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
1148
1149         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
1150         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
1151         per-image cache.
1152
1153         * assembly.c (mono_assembly_close): Free image->references.
1154
1155         * assembly.c (mono_assembly_names_equal): Fix a warning.
1156         (mono_assemblies_cleanup): Cleanup more global data.
1157
1158         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
1159
1160         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
1161         ptr_cache and image->modules.
1162
1163         * image.c (mono_image_init): Allocate array_cache lazily.
1164         
1165 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1166
1167         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
1168         behavior was changed recently and has bad side effects.
1169
1170 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
1171
1172         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
1173         
1174         * assembly.c (mono_assembly_close): Remove a debug printf.
1175
1176         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
1177
1178         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
1179         to also allow for temporary references between mono_image_open ()/close ().
1180
1181         * domain.c (get_runtimes_from_exe): Add a FIXME.        
1182
1183 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
1184
1185         * marshal.c: Fix support for dynamic methods.
1186
1187         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
1188
1189         * marshal.c (mono_marshal_cleanup): New cleanup function.
1190
1191         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
1192         image mempools.
1193
1194         * class.c (mono_class_init): Fix leaking class->nested_classes.
1195
1196         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
1197
1198         * image.c (mono_image_init): Initialize the new cashes.
1199
1200         * image.c (mono_image_close): Destroy the new cashes.
1201
1202         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
1203
1204         * mempool.c (mono_mempool_strdup): New helper function.
1205
1206         * class-internals.h: Add prototype for mono_loader_unlock ().
1207
1208         * domain.c (mono_jit_info_table_find): Fix a warning.
1209         (mono_debugger_check_runtime_version): Ditto.
1210
1211         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
1212         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
1213         functions to these modules.
1214
1215         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
1216         metadata modules.
1217         
1218         * marshal.c (mono_free_bstr): Fix a warning.
1219
1220         * assembly.c (mono_assembly_open_full): Fix another small leak.
1221
1222         * object.c: Fix some unload leaks in the remoting code.
1223
1224         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
1225         function.
1226
1227         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
1228
1229         * reflection.c: Fix some unload leaks in dynamic assemblies.
1230
1231 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
1232
1233         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
1234         * marshal.h: Add BSTR support on Win32
1235         * icall.c: Add BSTR icalls
1236         * metadata.h: Add BSTR enums
1237
1238 2006-04-28  Miguel de Icaza  <miguel@novell.com>
1239
1240         Work to catch the crash from #76795 and turn it into an
1241         exception.   As I stubbed out pieces of the VisualBasic support,
1242         I found a number of places where the code was failing and I added
1243         checks to those places. 
1244         
1245         * metadata.c (do_mono_metadata_parse_generic_class): Make this
1246         function return a status code.  If we fail to parse the signature
1247         from mono_metadata_parse_generic_inst, return FALSE.
1248
1249         * loader.c (mono_get_method_from_token): If we fail to load the
1250         method (mono_class_get) return NULL.   
1251
1252         * (method_from_memberref): Return NULL if we are unable to parse
1253         the method signature
1254
1255         (mono_loader_error_prepare_exception): Since we now use the
1256         loader_error flag internally to stop processing, and obtaining
1257         exceptions that might be thrown will walk this code path the
1258         proper way of going from a MonoLoaderError into a
1259         MonoException was convoluted.   This new routine encapsulates the
1260         process of turning the error into an exception and *clearing* the
1261         error afterwards.
1262         
1263 2006-04-27  Miguel de Icaza  <miguel@novell.com>
1264
1265         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
1266         with missing assemblies), and to cope with:
1267
1268                 * Missing fieldref from a non-existing assembly.
1269                 * Missing methodref from a non-existing assembly.
1270
1271         The first batch of work to address *some* of the issues from 76661.
1272         
1273         * object.c (mono_class_create_runtime_vtable): If we fail to
1274         initialize the class raise the exception here. 
1275
1276         * metadata.c (mono_class_get_overrides_full): If any methods fail
1277         to load return the failure to the caller.
1278
1279         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
1280         flagging assemblies that failed to load.   
1281
1282         Do not crash if we are unable to load the assembly.
1283
1284         (mono_assembly_close): Do nothing with REFERENCE_MISSING
1285         assemblies. 
1286
1287         * loader.c (mono_loader_set_error_type_load): Change the
1288         convention to always pass unallocated strings, so we make our own
1289         copies (I know our own code had duplicated strings before, but
1290         this keeps the normal conventions).
1291         (method_from_memberref): Call mono_loader_set_error_method_load
1292         for all possible failures of loading the class. 
1293         Remove assert, turn into a loader error.
1294
1295         (mono_loader_error_to_exception): Move this routine from mini
1296         (mini_loader_error_to_exception) there was no need to have that in
1297         mini. 
1298
1299         * class.c (mono_class_from_typeref): If we were not able to load
1300         the assembly with mono_assembly_load_reference, call the
1301         mono_loader_set_error_type_load to register the problem.
1302
1303         (mono_class_setup_fields): If we fail to load the type from
1304         mono_metadata_parse_type_full, call mono_class_set_failure and
1305         break from the loop.
1306
1307         If class->exception_type is set, we do not layout the fields as
1308         that might crash the runtime, and instead return (from breaking
1309         from the previous loop).
1310
1311         (mono_class_setup_vtable): This now returns a boolean indicating
1312         whether the table was properly setup.   The decision is driven by
1313         mono_class_get_overrides_full which might run into non-existing
1314         methods. 
1315         
1316         (mono_class_init): Returns TRUE on success or FALSE if there was a
1317         problem in loading the type (incorrect assemblies, missing
1318         assemblies, methods, etc).
1319
1320         When we call mono_class_setup_fields we also check for a potential
1321         error inside this call (either a class exception or a general
1322         loader exception).
1323
1324         (mono_class_create_from_typedef): If the parent fails to load
1325         (calling mono_class_get_full) return NULL.
1326         
1327         ** Important **
1328
1329         calls to mono_metadata_parse_type_full should be checked
1330         everywhere and set the mono_class_set_failure
1331         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
1332
1333         The current patch checks the places where my manually constructed
1334         tests show the errors are showing up, but we should do it
1335         everywhere. 
1336
1337         ** Important2 **
1338
1339         mono_class_init return values should be tested everywhere, like
1340         the previous case this is something that we should audit
1341         everywhere and not only on the cases exposed by the tests I
1342         created. 
1343
1344 2006-04-26  Miguel de Icaza  <miguel@novell.com>
1345
1346         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
1347         boolean parameter and instead pass the information on `options'
1348         parameter (FileOptions).
1349
1350         * icall.c: Register the new signature for MonoIO.Open.
1351
1352         * debug-helpers.c (dis_one): Trying to understand how coverity
1353         works.  Fix Run 5, item 78.
1354
1355 2006-04-26  Dick Porter  <dick@ximian.com>
1356
1357         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
1358         dereference.
1359
1360 2006-04-25  Martin Baulig  <martin@ximian.com>
1361
1362         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
1363
1364         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
1365         debugger_thread_created().
1366         (debugger_gc_push_all_stacks): Don't handle the main thread in any
1367         special way.
1368         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
1369         (mono_debugger_finalize_threads): New function; undo the effects
1370         of mono_debugger_init_threads().
1371         (mono_debugger_create_all_threads): Removed.
1372
1373 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
1374
1375         * image.c (mono_image_close): Tidy up trace messages.
1376
1377         * assembly.c (mono_assembly_close): Ditto.
1378
1379         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
1380         no longer references an already freed assembly. Fixes #78168.
1381
1382 2006-04-21  Dick Porter  <dick@ximian.com>
1383
1384         * threads.c (mono_thread_detach): Fix reference counting when
1385         detaching threads.
1386
1387 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
1388
1389         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
1390         #78155.
1391
1392 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
1393
1394         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
1395         (mono_type_to_stind): Ditto.
1396
1397         * marshal.c: Use the new helper functions to simplify code.
1398
1399         * image.c (mono_image_close): Add some code for help debug assembly unloading
1400         problems.
1401
1402         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
1403         image mempool.
1404
1405         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
1406         assembly was already loaded in another appdomain. Fixes #78083.
1407
1408 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
1409
1410         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
1411         referenced assemblies.
1412         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
1413
1414         * domain.c (mono_domain_free): Add a trace message.
1415
1416         * appdomain.c (add_assemblies_to_domain): Ditto.        
1417
1418         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
1419         field.  
1420
1421 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1422
1423         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
1424
1425 2006-04-12  Martin Baulig  <martin@ximian.com>
1426
1427         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
1428         `USE_INCLUDED_LIBGC'.   
1429
1430 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1431
1432         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
1433         the patch contains ../ and a small directory name later. Hopefully fixes
1434         #78035.
1435
1436 2006-04-10  Martin Baulig  <martin@ximian.com>
1437
1438         Clean up the debugger's thread-handling code.
1439
1440         The debugger's thread-handling code has been moved from
1441         ../mini/debug-debugger.c to threads.c.  We now iterate directly
1442         over the `threads' hash, keep track of exiting threads and also
1443         use proper locking.
1444
1445         We can now debug XSP and XSP based applications with the debugger.
1446
1447         * object-internals.h (MonoThread): Added `gpointer end_stack'.
1448
1449         * threads.h
1450         (MonoThreadCallbacks): Removed; this was only used by the debugger.
1451         (mono_install_thread_callbacks): Likewise.      
1452
1453         * threads.c (mono_thread_callbacks): Removed.
1454         (debugger_thread_created, debugger_thread_exited): New static functions.
1455         (start_wrapper): Call debugger_thread_created().
1456         (thread_cleanup): Call debugger_thread_exited().
1457         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
1458         (mono_debugger_init_threads): New public function.
1459         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
1460         iterate directly over the `threads' hash and also use proper locking.
1461
1462         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
1463
1464         * mono-debug-debugger.h
1465         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
1466
1467 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
1468
1469         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
1470         argument type=array. Fixes #78057.
1471
1472 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
1473
1474         * culture-info-table.h : regenerated. Fixed bug #69652.
1475
1476 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
1477
1478         * loader.c metadata.c: Reapply a variant r59116.
1479         
1480         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
1481
1482         * class.c (mono_class_setup_interface_offsets): New internal function.
1483
1484         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
1485         interfaces too. Fixes #77398.
1486
1487         * reflection.c (encode_cattr_value): Add support for 
1488         parameter type=object, argument type=array.
1489         (load_cattr_value): Ditto. Fixes #77916.
1490
1491         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
1492         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
1493
1494         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
1495         a byval char array and CharSet is Ansi.
1496
1497         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
1498
1499 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
1500
1501         * metadata.c: Add some locking comments.
1502         
1503         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
1504         mempool.
1505         (mono_metadata_free_method_signature): Don't free the signature itself.
1506
1507         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
1508
1509         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
1510         reference the same MonoImage.
1511         (mono_assembly_load_from_full): Add an assert.
1512
1513 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
1514
1515         * image.c (mono_image_close): Don't put the image we are about to free into the
1516         loaded_images_guid_hash.
1517
1518         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
1519         to reduce code duplication.
1520
1521         * marshal.c: Register the native functions called by this module as icalls, to
1522         somewhat centralize the creation of MonoMethodSignature's.
1523
1524         * loader.c (mono_method_signature): Add a cache for method signatures.
1525
1526         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
1527         the parameter attributes of a method.
1528         (mono_metadata_parse_method_signature_full): Refactored the computation of
1529         parameter attributes into a separate function. Also avoid one allocation in
1530         most cases.
1531
1532         * assembly.c (mono_assembly_close): Ditto.
1533
1534         * image.c (mono_image_close): Log trace messages with INFO level.
1535
1536         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
1537
1538         * image.c reflection.c: Correct reference counting of image modules.
1539         
1540         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
1541         of this function from the image mempool.
1542         
1543         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
1544         to allow more cached types to be used.
1545
1546         * mono-debug.c (mono_debug_add_method): Appled patch from
1547         David S. Miller  <davem@sunset.davemloft.net>: Access 
1548         minfo->lexical_blocks[] entry elements using read32().
1549
1550 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
1551
1552         * loader.c (mono_free_method): No longer free the method header for non-dynamic
1553         methods as it is allocated from the mempool.
1554
1555         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
1556         image mempool.
1557
1558         * metadata-internals.h: Add comments describing the reference counting scheme
1559         used for MonoImage and MonoAssembly.
1560
1561         * image.c assembly.c reflection.c: Rework reference counting of images and 
1562         assemblies so they are freed when the runtime is shut down. Free some 
1563         additional memory structures when an image is unloaded.
1564         
1565 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
1566
1567         * class.c loader.c reflection.c: Allocate more data structures in
1568         the image mempool.
1569
1570 2006-03-31  Miguel de Icaza  <miguel@novell.com>
1571
1572         * icall.c
1573         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
1574         build on pre glib 2.4 systems.
1575
1576 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
1577
1578         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
1579
1580         * icall.c: Fix some warnings.
1581
1582 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
1583
1584         * culture-info-table.h : regenerated.
1585
1586 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
1587
1588         * threads.c, object-internals.h, verify.c: changed the culture caching
1589         code to use a normal MonoArray for storage so the GC can keep track of
1590         them easily. Fixed bits of the cache logic, too and simplified the
1591         code.
1592
1593 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
1594
1595         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
1596         thread for non-Boehm GCs.
1597
1598 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1599
1600         * domain.c, object.c, domain-internals.h: reduce the amount of memory
1601         needed to keep track of the data for static fields.
1602
1603 2006-03-29  Raja R Harinath  <rharinath@novell.com>
1604
1605         Fix #75172
1606         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
1607         for interface classes.  Use 'num_methods' instead.
1608         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
1609         before using '->vtable_size' field.
1610
1611 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1612
1613         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
1614         doesn't contain managed pointers, so use a normal hashtable.
1615
1616 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1617
1618         * reflection.c, class-internals.h, domain.c: fixed handling of types
1619         used as values for objects in custom attributes (bug #77915):
1620
1621 2006-03-24  Martin Baulig  <martin@ximian.com>
1622
1623         * class.c (mono_class_setup_fields): Added support for generic
1624         instances; fixes #77580.
1625
1626 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1627
1628         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
1629
1630 2006-03-24  Dick Porter  <dick@ximian.com>
1631
1632         * file-io.c (get_file_attributes): More stat macro breakage.
1633         Fixes bug 77759.
1634
1635 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
1636
1637         * profiler.c: added the file=filename option in the default profiler
1638         to output the profile data to filename.
1639
1640 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1641
1642         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
1643         bug #77877.
1644
1645 2006-03-22  Martin Baulig  <martin@ximian.com>
1646
1647         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
1648         allocated `MonoClassField *' in `fb->handle'.
1649
1650 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1651
1652         * class.c, image.c, metadata-internals.h: implemented new mechanism to
1653         allocate interface ID to save memory and allow better ID reuse on
1654         appdomain unload. setup_generic_vtable () removal from Martin.
1655
1656 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1657
1658         * object.h, appdomain.c, domain.c, exception.c, icall.c,
1659         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
1660         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
1661         write barriers for reference stores with managed objects accessed with
1662         C structures in the runtime and in embedding programs.
1663
1664 2006-03-20  Raja R Harinath  <rharinath@novell.com>
1665
1666         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
1667         'interface_id' and 'max_interface_id' fields of MonoClasses
1668         representing open generic types.
1669
1670 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
1671
1672         * object.h, object.c, icall.c: added functions to deal with
1673         storing valuetypes that contain references in managed objects.
1674         * reflection.c, string-icalls.c, threads.c, marshal.c: small
1675         fixes and comments around uses of mono_array_addr ().
1676
1677 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
1678
1679         * object.h, icall.c, monitor.c: object.GetHashCode ()
1680         implementation that supports the moving garbage collector.
1681
1682 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
1683
1684         * icall.c, threads-types.h, threads.c: implemented finalizer for
1685         LocalDataStoreSlot.
1686
1687 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1688
1689         * metadata.c (mono_type_size): Add a fixme.
1690         (mono_type_stack_size): Ditto.
1691
1692         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
1693         'type_forwarders' field.
1694
1695         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
1696         attribute from net 2.0.
1697
1698         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
1699         from class.c.
1700
1701         * class.c (mono_class_setup_fields): Fix a warning.
1702         
1703         * class.c (mono_class_from_name): Add support for assemblyref entries
1704         in the EXPORTEDTYPE table.
1705
1706         * reflection.c: Add support for handling type forwarders under net 2.0.
1707
1708         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
1709         
1710 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
1711
1712         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
1713         overwriting entries in ModuleBuild->types, also clean up the code
1714         a little. Fixes #77774.
1715
1716 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
1717
1718         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
1719         load friend assembly info when present.
1720
1721 2006-03-14  Raja R Harinath  <rharinath@novell.com>
1722
1723         Fix crasher on gtest-158.cs.
1724         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
1725         the return value if the MonoClass we want is yet in an
1726         inconsistent state.
1727         * class.c (mono_class_create_from_typedef): Add an comment
1728         explaining an order dependency between mono_class_setup_parent and
1729         mono_class_setup_mono_type.
1730
1731 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
1732
1733         * class.c: documentation updates and events bug fix.
1734
1735 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1736
1737         * class.c: some cleanup, locking fixes.
1738
1739 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
1740
1741         * class.c: fix the generics code to setup nested
1742         type info to the instantiated type (bug #77770).
1743
1744 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1745
1746         * marshal.c: fixed a few type correctness issues.
1747
1748 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1749
1750         * loader.c: the Set/Get/Addrtess array methods should be public.
1751
1752 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
1753
1754         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
1755         
1756         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
1757         info->wrapper.
1758
1759 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
1760
1761         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
1762
1763         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
1764
1765         * mempool.c (mono_mempool_alloc): Speed this up a bit.
1766         (mono_mempool_alloc0): Ditto.
1767
1768 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1769
1770         * socket-io.c:
1771         (create_object_from_sockaddr): it was allocating 4 extra bytes
1772         for the AF_UNIX data. Fixes bug #77747.
1773
1774 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
1775
1776         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
1777
1778 2006-03-09  Dick Porter  <dick@ximian.com>
1779
1780         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
1781         Fixes bug 76966 again.
1782
1783 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
1784
1785         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
1786         names from r57532
1787         * appdomain.c: Bumped corlib version to 48 (due to r57532)
1788
1789 2006-03-07  Martin Baulig  <martin@ximian.com>
1790
1791         * object.c
1792         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
1793
1794 2006-03-07  Martin Baulig  <martin@ximian.com>
1795
1796         * class.c
1797         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
1798         regression introduced in r56970; see gtest-252.cs.
1799
1800         * loader.c (mono_get_method_constrained): Correctly handle generic
1801         methods; see gtest-253.cs.
1802
1803 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
1804
1805         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
1806
1807 2006-03-04  Martin Baulig  <martin@ximian.com>
1808
1809         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
1810         compute the parent type at runtime, just like we're already doing
1811         it for interfaces.
1812
1813         * reflection.c
1814         (mono_reflection_bind_generic_parameters): Don't compute the
1815         parent type anymore.
1816
1817         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
1818
1819 2006-03-04  Martin Baulig  <martin@ximian.com>
1820
1821         * mono-debug-debugger.h
1822         (mono_debugger_create_notification_function): Allocate memory at
1823         runtime and return a pointer to it.
1824
1825 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1826
1827         * assembly.c: Fix windows build.
1828         
1829         * assembly.c: Fix build.
1830
1831         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1832
1833         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1834         
1835 2006-03-03  Dick Porter  <dick@ximian.com>
1836
1837         * process.c
1838         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1839         Check parameters before dereferencing them.  Fixes Aaron's part of
1840         bug 77393.
1841
1842 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1843
1844         Fix performance regression.
1845         * loader.c (find_method_in_class): Add 'from_class' argument.
1846         Rename 'klass' argument to 'in_class'.  The signature is compared
1847         against the method in 'in_class', and the corresponding method is
1848         returned from 'from_class'.
1849         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1850         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1851         type definition and generic instantiation in parallel.
1852         (mono_get_method_constrained): Update to changes.
1853
1854 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1855
1856         * threads.c: make sure the domain is correct, too when doing
1857         mono_thread_attach ().
1858
1859 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1860
1861         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1862         windows. Fixes #77683.
1863
1864 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1865
1866         * object.h, *: introduced specific way to set elements of an array
1867         of references to be used as write barrier. Still need to audit the
1868         uses of mono_array_addr.
1869
1870 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1871
1872         * object-internals.h: New field to cache the assmebly name, patch
1873         from Tambet Ingo (tambet@ximian.com)
1874
1875 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1876
1877         * decimal.h, class-internals.h, metadata-internals.h,
1878         file-io.h: mark a few function declarations as internal, to
1879         reduce the number of PLT entries.
1880
1881 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1882
1883         * file-io.c: fix typo in warning message.
1884
1885 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1886
1887         * loader.c: on unix, lookup the "*A" version of a function
1888         if charset is auto as a second option before failing.
1889
1890 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1891
1892         * class.h (mono_class_inflate_generic_method): Revert to two
1893         argument version.
1894         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1895         (mono_class_inflate_generic_method_full): Add.
1896         * class.c (mono_class_inflate_generic_method_full): Rename from
1897         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1898         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1899         * loader.c, reflection.c: Update to changes.
1900
1901 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1902
1903         * icall.c: const fixes and small improvements.
1904
1905 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1906
1907         * threadpool.c: for asynchronous connect(), enable the same workaround
1908         for BSD 6 as for the Mac. Fixes bug #77637.
1909
1910 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1911
1912         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1913         formatted classes. Fixes #77524.
1914
1915 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1916
1917         * class.c (inflate_generic_type): Add a couple more
1918         micro-optimizations.
1919         (inflate_generic_context): Don't use the 'gmethod' from
1920         'inflate_with'.
1921         (mono_class_inflate_generic_method): If the method has generic
1922         parameters, but the passed-in context doesn't have a 'gmethod',
1923         create one.  Use the possibly simplified generic instantiation
1924         from the declaring class instead of the one passed in.
1925
1926 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1927
1928         Make generic method signature and method header handling lazy.
1929         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1930         (inflate_generic_header): Likewise.
1931         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1932         parameter to avoid inflating types.
1933         (mono_get_inflated_method): Empty out.
1934         * class.h (mono_class_inflate_generic_method): Update to changes.
1935         * loader.c (mono_get_method_from_token): Don't parse signature for
1936         generic methods, nor methods of generic classes.
1937         (mono_method_signature): Rename from 'mono_method_signature'.
1938         Inflate signature on demand.
1939         (mono_method_get_header): Inflate method header on demand.
1940         * reflection.c: Update to changes.
1941
1942 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1943
1944         * metadata.c (mono_metadata_inflate_generic_inst): If the
1945         instantiation is closed, don't bother expanding it in the new
1946         context.
1947         * class.c (inflate_generic_class): If the generic instantiation
1948         doesn't change after inflation, return the argument itself.
1949         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1950         Add bounds checks.
1951         (inflate_generic_context): If neither the generic class nor the
1952         generic method instantiations change, return the original context.
1953         * reflection.c (mono_method_get_object): Do
1954         'mono_get_inflated_method' before accessing the ->klass field.
1955         (inflate_mono_method): Don't create a MonoGenericMethod unless
1956         necessary.
1957         (inflate_method): Don't pass a constructed type as the declaring
1958         type of a methodbuilder.
1959
1960 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1961
1962         * object.c: fix memory overwrite.
1963
1964 2006-02-22  Dick Porter  <dick@ximian.com>
1965
1966         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1967         it doesn't work any more.
1968         (mono_threads_request_thread_dump): Fix unused variable warnings.
1969
1970 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1971
1972         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1973         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1974         the public header file.
1975
1976 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1977
1978         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1979
1980 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1981
1982         * class-internals.h, object.c: reduce the size of MonoVTable
1983         and store the interface_offsets array at negative offsets.
1984
1985 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1986
1987         * metadata.c: tweak table descriptors data structures to reduce
1988         size and runtime relocations.
1989
1990 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1991
1992         * marshal.c: fix some types and opcodes to be type-safe
1993         in marshaling wrappers.
1994
1995 2006-02-21  Ankit Jain  <jankit@novell.com>
1996
1997         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1998
1999 2006-02-21  Raja R Harinath  <rharinath@novell.com>
2000
2001         * metadata.c (get_constraints): Relax debugging checks for monodis.
2002
2003 2006-02-21  Ankit Jain  <jankit@novell.com>
2004
2005         * metadata.c (mono_metadata_load_generic_params): Move the code
2006         checking for ambiguous generic params from here to mono/dis/get.c
2007         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
2008
2009 2006-02-21  Raja R Harinath  <harinath@gmail.com>
2010
2011         Fix assertion triggered when compiling nemerle.
2012         * class.c (mono_get_shared_generic_inst): Rename from
2013         get_shared_inst and make non-static.
2014         * loader.c (mono_get_shared_generic_method): New.  Used to create
2015         the MonoGenericContext-equivalent of a MonoGenericContainer.
2016         (mono_get_method_from_token): Initialize the 'context' field of
2017         the created MonoGenericContainer.
2018         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
2019         * metadata.c (get_constraints): Add sanity check.
2020         * class-internals.h: Add new internal methods.
2021
2022         * reflection.c (verify_safe_for_managed_space): New sanity check.
2023         Currently checks that owner-less generic parameters aren't allowed
2024         in managed space.
2025         (mono_type_get_object): Use it.
2026         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
2027         that are now in mono_type_get_object.
2028         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
2029
2030 2006-02-19  Raja R Harinath  <harinath@gmail.com>
2031
2032         * metadata.c (mono_type_create_from_typespec): Rename from
2033         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
2034         argument and caching of types in the generic container.
2035         (unwrap_arrays, find_generic_param): Remove.
2036         * metadata-internals.h: Update.
2037         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
2038
2039 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
2040
2041         * class.c (mono_class_get_exception_for_failure): Fix a warning.
2042
2043         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
2044         return values. Fixes #77581.
2045
2046         * class.c (mono_fnptr_class_get): Switch name and name_space.
2047
2048         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
2049         classes and add support for [In, Out] attributes.
2050         (mono_marshal_free_asany): Ditto. Fixes #77524.
2051
2052 2006-02-18  Raja R Harinath  <harinath@gmail.com>
2053
2054         * class.c (mono_class_from_generic_parameter): Make more robust to
2055         incomplete MonoGenericContainers from monodis.
2056
2057 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2058
2059         * class-internals.h: added some more exception types.
2060         * class.c, metadata.c: added a few checks to handle missing
2061         types.
2062
2063 2006-02-17  Raja R Harinath  <rharinath@novell.com>
2064
2065         Use owner-less generic-params some more.
2066         * class.c (my_mono_class_from_generic_parameter): Remove.
2067         (mono_class_from_generic_parameter): Handle null image,
2068         param->name and param->owner.
2069         (mono_class_from_mono_type): Update.
2070         (mono_class_create_from_typespec): Remove 'container' parameter.
2071         If that parameter is non-null, the result is always inflated by
2072         'mono_class_get_full' anyway.
2073         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
2074         parameter.
2075         (mono_class_get_full): Update.
2076
2077         * class.c (inflate_generic_type) [GENERICINST]: If the generic
2078         instance is not open, don't bother inflating.
2079         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
2080         parse metadata for inflated classes.
2081         (_mono_class_get): Change GenericContext* parameter to
2082         GenericContainer*.
2083         (mono_class_create_from_typespec): Likewise.  Simplify, and
2084         implement trivially.  All the cases are handled in
2085         mono_class_from_mono_type.  Don't inflate returned class.
2086         (mono_class_get_full): Delegate GENERICINST optimization to
2087         inflate_generic_type.
2088         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
2089
2090 2006-02-16  Dick Porter  <dick@ximian.com>
2091
2092         * socket-io.c (create_object_from_sockaddr): Fix typo.
2093         (create_sockaddr_from_object): Check array lengths before
2094         potentially accessing items off the end.
2095         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
2096         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
2097         (ves_icall_System_Net_Sockets_Socket_Send_internal)
2098         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
2099         length checks to avoid wraparound overflows.
2100         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
2101         contents of the array of sockets
2102         (hostent_to_IPHostEntry2)
2103         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
2104         Check return value of inet_ntop ().
2105         (addrinfo_to_IPHostEntry): Fix typo
2106
2107 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2108
2109         Type metadata parsing doesn't use generic-instantiation information.
2110         * metadata.c (mono_metadata_parse_array_full): Change
2111         MonoGenericContext* parameter to MonoGenericContainer*.
2112         (mono_metadata_parse_type_full): Likewise.
2113         (mono_type_create_from_typespec_full): Likewise.
2114         (mono_metadata_parse_mh_full): Likewise.
2115         (mono_metadata_parse_generic_inst): Likewise.
2116         (do_mono_metadata_parse_generic_class): Likewise.
2117         (do_mono_metadata_parse_type): Likewise.
2118         * metadata-internals.h: Update to changes.
2119         * class.c (mono_class_find_enum_basetype): Likewise.
2120         (mono_class_setup_fields): Likewise.
2121         (mono_class_create_from_typespec): Likewise.
2122         * loader.c (method_from_methodspec): Likewise.
2123         (mono_get_method_from_token): Likewise.
2124         (mono_method_get_header): Likewise.
2125
2126 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
2127
2128         * marshal.c: handle additional GENERICINST case (patch from
2129         Thong Nguyen <tum@veridicus.com>).
2130         Fix a few cases where LDIND_I/STIND_I was used for references.
2131
2132 2006-02-16  Raja R Harinath  <rharinath@novell.com>
2133
2134         * reflection.c (mono_reflection_get_token): Remove unused variable.
2135
2136 2006-02-16  Martin Baulig  <martin@ximian.com>
2137
2138         * reflection.c (mono_reflection_get_token): Add support for fields
2139         in instantiated generic types.
2140
2141         * icall.c
2142         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
2143
2144 2006-02-15  Martin Baulig  <martin@ximian.com>
2145
2146         * icall.c
2147         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
2148         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
2149         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
2150         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
2151
2152 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
2153
2154         * class.c, metadata.c, metadata.h, object.c, icall.c,
2155         marshal.c: changed mono_type_get_underlying_type () to do
2156         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
2157         Fixed handling of instantiated generic valuetypes (bug #75479).
2158
2159 2006-02-15  Raja R Harinath  <rharinath@novell.com>
2160
2161         * metadata.c (mono_metadata_decode_signed_value): Simplify.
2162         Delegate to mono_metadata_decode_value, and work on the returned value.
2163
2164         * icall.c (ves_icall_MonoType_GetGenericArguments):
2165         Add consistency check here too.
2166         
2167 2006-02-15  Ankit Jain  <jankit@novell.com>
2168
2169         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
2170         char/short etc.
2171
2172 2006-02-15  Ankit Jain  <jankit@novell.com>
2173
2174         * metadata.c (mono_metadata_decode_signed_value): New function to decode
2175         signed values, used only for representing lower bounds of arrays.
2176         (mono_metadata_parse_array_full): Use new
2177         mono_metadata_decode_signed_value to decode lower bounds.
2178
2179 2006-02-14  Martin Baulig  <martin@ximian.com>
2180
2181         * reflection.c
2182         (mono_reflection_get_token): Support "MonoGenericMethod" and
2183         "MonoGenericCMethod" and allow generic instances / methods.
2184
2185 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
2186
2187         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
2188         to obtain the terminal size using an ioctl.
2189
2190         * object.c (mono_nullable_init): Revert this as nullable reference
2191         types are not valid.
2192         (mono_nullable_box): Ditto.
2193
2194 2006-02-09  Dick Porter  <dick@ximian.com>
2195
2196         * threads.c (mono_thread_detach): Drop a reference to the thread
2197         we're detaching.
2198
2199 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
2200
2201         * object.c (mono_nullable_init): Handle nullable reference types.
2202         (mono_nullable_box): Ditto. Fixes #77446.
2203
2204 2006-02-07  Martin Baulig  <martin@ximian.com>
2205
2206         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
2207
2208 2006-02-07  Ankit Jain  <jankit@novell.com>
2209
2210         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
2211         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
2212         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
2213         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
2214         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
2215         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
2216
2217 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
2218
2219         * class.c (mono_class_create_generic): Set type_token as well.
2220
2221         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
2222         compatible with MS.
2223
2224 2006-02-02  Martin Baulig  <martin@ximian.com>
2225
2226         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
2227         has never been used so far.
2228
2229 2006-02-02  Martin Baulig  <martin@ximian.com>
2230
2231         * mono-debug-debugger.h: Changed comment at the top of this file;
2232         the header is not installed, but it's safe to #include it from
2233         within the JIT.
2234
2235         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
2236         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
2237
2238 2006-02-02  Martin Baulig  <martin@ximian.com>
2239
2240         * mono-debug.h
2241         (MonoSymbolTable): Removed the `metadata_info' field.
2242
2243         * mono-debug.c
2244         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
2245
2246         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2247         (mono_debugger_add_builtin_types): Removed.
2248         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
2249         (mono_debugger_create_notification_function): We now operate on a
2250         pre-allocated area; take a `gpointer' and return `void'.
2251
2252         * mono-debug-debugger.c
2253         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
2254         (mono_debugger_add_builtin_types): Removed.
2255
2256 2006-02-02  Martin Baulig  <martin@ximian.com>
2257
2258         * threads.c (mono_debugger_create_all_threads): New public method.
2259
2260 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
2261
2262         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
2263         breaks on several platforms.
2264
2265 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
2266
2267         * assembly.c: the VS.NET build doesn't supply default values for
2268         MONO_ASSEMBLIES and MONO_CFG_DIR.
2269
2270 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
2271
2272         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
2273         helper function.
2274
2275         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
2276
2277         * loader.c (method_from_memberref): Fix a warning.
2278
2279         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
2280
2281         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
2282         with explicit layout. Fixes #77433.
2283
2284 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
2285
2286         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
2287         max_interface_id is initialized before using it. Fixes #77398.
2288         (ves_icall_Type_GetInterfaces): Ditto.
2289
2290 2006-01-30  Raja R Harinath  <rharinath@novell.com>
2291
2292         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2293         allocate memory for parameter attributes when parsing memberref
2294         signatures.
2295         * loader.c (mono_loader_set_error_method_load): Don't warn.
2296         (method_from_memberref): Ensure MissingMethodException gets thrown
2297         if method is not found.  Make warning more informative.
2298
2299 2006-01-29  Raja R Harinath  <harinath@gmail.com>
2300
2301         Fix #77397
2302         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
2303         return true if is byref.
2304         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2305         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
2306         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2307
2308 2006-01-27  Raja R Harinath  <rharinath@novell.com>
2309
2310         Fix tests/find-method.2.il
2311         * loader.c (find_method, find_method_in_class): Remove is_inflated
2312         argument.  Revert 2006-01-18 change.
2313         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
2314         is generic, search for method in its generic definition.
2315         * class.c (mono_class_setup_vtable_general): Print generic
2316         arguments of generic types in debugging printf.
2317
2318 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
2319
2320         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
2321
2322         * threads.c (mono_threads_request_thread_dump): New helper function.
2323
2324 2006-01-25  Raja R Harinath  <rharinath@novell.com>
2325
2326         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
2327
2328 2006-01-25  Ankit Jain  <jankit@novell.com>
2329
2330         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
2331         move definition to ..
2332         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
2333         
2334 2006-01-25  Ankit Jain  <jankit@novell.com>
2335             Raja R Harinath  <rharinath@novell.com>
2336
2337         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
2338         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
2339         as necessary.
2340
2341 2006-01-25  Martin Baulig  <martin@ximian.com>
2342
2343         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
2344         `MonoDebuggerThread' into debug-debugger.c.
2345
2346 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
2347
2348         * profiler.c: fix printing of data.
2349
2350 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
2351
2352         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
2353           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
2354
2355 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2356
2357         * object.c: fix deadlock related to string interning.
2358
2359 2006-01-23  Martin Baulig  <martin@ximian.com>
2360
2361         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2362
2363         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
2364
2365 2006-01-23  Martin Baulig  <martin@ximian.com>
2366
2367         * mono-debug.h: Moved the prototypes of some functions which are
2368         used by the JIT here from mono-debug-debugger.h.
2369
2370 2006-01-21  Martin Baulig  <martin@ximian.com>
2371
2372         * Makefile.am: Don't install mono-debug-debugger.h.
2373
2374 2006-01-21  Martin Baulig  <martin@ximian.com>
2375
2376         * mono-debug-debugger.h: Enforce the private status of this header
2377         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
2378         Moved some stuff from mono-debugger-jit-wrapper.h here.
2379
2380 2006-01-20  Raja R Harinath  <rharinath@novell.com>
2381
2382         * class.c (mono_class_from_typeref): Add a sanity test to help
2383         catch lack of assembly load/search hooks.
2384
2385 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
2386
2387         * marshal.c (emit_struct_conv): Relax the fields with same offset
2388         check even more. Fixes #77230.
2389
2390 2006-01-18  Martin Baulig  <martin@ximian.com>
2391
2392         * loader.c (find_method_in_class): Added `gboolean is_inflated'
2393         argument; if false, we compare the uninstantiated signatures.
2394         (method_from_memberref): Compare the uninstantiated signatures;
2395         fixes #76417.
2396
2397 2006-01-18  Robert Jordan  <robertj@gmx.net>
2398
2399         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
2400         Clear the weak link. Fixes bug #77170.
2401
2402         * gc.c (mono_gchandle_free):
2403         Reflect *-gc.c changes (tiny optimization).
2404
2405 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
2406
2407         * metadata.c (mono_metadata_signature_dup): Applied patch from
2408         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
2409         Fixes #77288.
2410
2411 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
2412
2413         * marshal.c (emit_struct_conv): Allow fields with the same offset when
2414         marshalling from native to managed code. Fixes #77230.
2415
2416 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2417
2418         * threadpool.c: fix problem (Mac only) when more than one asynchronous
2419         connect. Fixes bug #77020.
2420
2421 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2422
2423         * class.c: fixed id assignement for nested interfaces (bug #77275).
2424         Added also better info for --print-vtable debugging.
2425
2426 2006-01-12  Martin Baulig  <martin@ximian.com>
2427
2428         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
2429         interfaces on-the-fly; fixes #76625.
2430
2431         * class-internals.h
2432         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
2433         don't need that anymore.
2434
2435 2006-01-12  Miguel de Icaza  <miguel@novell.com>
2436
2437         * socket-io.c
2438         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2439         To avoid initing the nested_classes when not needed I turned the
2440         PeerCredData as a toplevel internal class, as it has to be shared
2441         anyways. 
2442
2443         Fixes the CASA issue.
2444
2445 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
2446
2447         * domain.c: Accessors for MonoJitInfo
2448
2449         * profiler-private.h: Add jitinfo to the end jit hook
2450
2451         * profiler.[ch]: Define new hooks, called after jitting which give
2452         the MonoJitInfo that was compiled
2453
2454 2006-01-10  Martin Baulig  <martin@ximian.com>
2455
2456         * class.c (mono_class_setup_events): Add support for generic
2457         classes; fixes #76440.
2458
2459 2006-01-06  Raja R Harinath  <rharinath@novell.com>
2460
2461         Fix #77160.
2462         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
2463         on passed-in method.
2464
2465 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2466
2467         * object.c (mono_runtime_invoke_array): Add Nullable support.
2468
2469         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
2470
2471 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
2472
2473         * file-io.c: Don't consider sockets as directory and avoid an endless
2474         loop. Fix bug #76966.
2475
2476 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2477
2478         * object.c (mono_nullable_init): New helper function.
2479         (mono_nullable_box): Ditto.
2480
2481         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
2482
2483         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
2484
2485         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
2486         
2487 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
2488
2489         * class.c (mono_class_is_assignable_from): Make T assignable to 
2490         Nullable<T>.
2491
2492 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
2493
2494         * appdomain.c: Bump corlib version to 46.
2495         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
2496         serialization purpose) and changed ves_icall_System_Reflection_
2497         Assembly_get_code_base signature to accept a boolean (to escape, or 
2498         not, the assembly code base).
2499
2500 2005-12-23  Dick Porter  <dick@ximian.com>
2501
2502         * icall.c: 
2503         * threads-types.h: 
2504         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
2505         CreateEvent icall now returns "created" boolean parameter.
2506
2507 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
2508
2509         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
2510         #76967.
2511
2512         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
2513         when attr_klass is an interface. Fixes #77045.
2514
2515 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
2516
2517         * marshal.c (emit_struct_conv): Fix previous patch.
2518         
2519         * marshal.c (emit_struct_conv): Add a check for fields with the same
2520         offset.
2521
2522 2005-12-20  Raja R Harinath  <rharinath@novell.com>
2523
2524         Fix regression in Mono.C5.
2525         * class.c (mono_class_create_generic): If 'klass' is an interface
2526         set up the interface offsets.
2527         (mono_class_is_assignable_from): Don't throw away generic arguments.
2528
2529 2005-12-19  Raja R Harinath  <rharinath@novell.com>
2530
2531         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
2532         type parameters.
2533
2534 2005-12-15  Raja R Harinath  <rharinath@novell.com>
2535
2536         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
2537         dead store.
2538         (do_mono_metadata_parse_generic_class): Don't pass the current
2539         generic context when parsing the type being instantiated: it
2540         cannot use it, anyway.
2541
2542         * loader.c (method_from_memberref): Don't inflate a signature if
2543         it doesn't contain any type parameters.
2544
2545 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2546
2547         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
2548
2549 2005-12-14  Martin Baulig  <martin@ximian.com>
2550
2551         * class.c
2552         (mono_type_get_name_recurse): Don't return null for type
2553         parameters and open generic classes.
2554         (mono_class_setup_methods): Don't exclude generic instances.
2555         (mono_get_unique_iid): Use different IDs for different
2556         instantiations of the same generic type.
2557         (mono_class_setup_vtable): Only use setup_generic_vtable() for
2558         open generic instances; create a normal vtable for closed generic
2559         instances.
2560         (mono_class_setup_vtable_general): We're now also called for
2561         closed generic instances.
2562
2563         * reflection.c
2564         (mono_reflection_bind_generic_parameters): Correctly use
2565         mono_metadata_lookup_generic_inst() everywhere.
2566
2567 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
2568
2569         * object.c (mono_class_create_runtime_vtable): Call 
2570         mono_class_setup_vtable ().
2571
2572         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
2573         function.
2574         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
2575         #76959.
2576
2577         * loader.c (mono_loader_set_error_type_load): Print the type load
2578         warnings to the console so they are more visible to the user.
2579         (mono_loader_set_error_method_load): Ditto.
2580
2581         * reflection.c (ensure_runtime_vtable): Revert the last change as it
2582         is still broken.
2583         
2584         * reflection.c (ensure_runtime_vtable): Fix build.
2585
2586         * reflection.c (ensure_runtime_vtable): Disable an optimization which
2587         doesn't work in all cases.
2588
2589 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
2590
2591         * object.c (mono_array_new_full): Treat a single dimensional array
2592         with 0 lower bounds as an szarray. Fixes #76973.
2593
2594         * reflection.c (custom_attr_visible): Really fix this.
2595
2596 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
2597
2598         * reflection.c (custom_attr_visible): Allow nested public attributes
2599         as well.
2600
2601         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
2602         interface check.
2603
2604 2005-12-12  Raja R Harinath  <harinath@gmail.com>
2605
2606         * class.c (set_generic_param_owner): Delete.
2607         (mono_class_create_from_typedef): Don't set ->owner field of
2608         generic parameters to "param containers" of enclosing classes.
2609         * reflection.c (mono_reflection_initialize_generic_parameter):
2610         Likewise.
2611
2612 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
2613
2614         * reflection.c (custom_attr_visible): Fix build.
2615
2616 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
2617
2618         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
2619         private attributes.
2620         
2621         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
2622         handling of null parameter defaults.
2623
2624 2005-12-09  Raja R Harinath  <rharinath@novell.com>
2625
2626         * class.c (mono_class_from_generic_parameter): Don't set
2627         klass->generic_container.
2628         (my_mono_class_from_generic_parameter): Likewise.
2629
2630 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2631
2632         * reflection.c (load_public_key): Fix a warning.
2633         (method_encode_code): Fix unaligned accesses.
2634
2635 2005-12-07  Martin Baulig  <martin@ximian.com>
2636
2637         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
2638
2639         * reflection.c
2640         (write_generic_param_entry): Encode our custom attrs.
2641
2642         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
2643
2644 2005-12-07  Martin Baulig  <martin@ximian.com>
2645
2646         * reflection.c (encode_new_constraint): Removed; we don't use the
2647         `NewConstraintAttribute' anymore.
2648
2649 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2650
2651         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
2652         not fire a TypeResolve event when Assembly.GetType () is called.
2653
2654 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2655
2656         Beginning of support for nullable types in the runtime. Parts of
2657         this patch are from Martin.
2658
2659         * appdomain.c (MONO_CORLIB_VERSION): Bump
2660
2661         * domain.c (mono_init_internal): get the nullable type
2662
2663         * class.c (mono_class_is_nullable): New method
2664         (mono_class_get_nullable_param): New mehod
2665         (mono_class_create_generic): In types T? set cast_class to T
2666
2667         * class-internals.h (MonoDefaults): new nullable default class
2668         (mono_class_get_nullable_param, mono_class_get_nullable_param):
2669         new methods.
2670
2671 2005-12-05  Raja R Harinath  <rharinath@novell.com>
2672
2673         * metadata.c (select_container): New.  Refactor code to select the
2674         appropriate GenericContainer given the type of generic parameter
2675         we are looking for.
2676         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
2677         not a MonoGenericContext.  Use select_container.  Update parameters.
2678         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
2679         and MONO_TYPE_MVAR.
2680         (unwrap_arrays): Remove duplicate tests.
2681         (find_generic_param): Rename from 'has_same_context'.  Now walks a
2682         generic instantiated class to find any arguments that are generic
2683         parameters.
2684         (mono_type_create_from_typespec_full): Use find_generic_param to
2685         avoid evicting some generic instantiations from the typespec
2686         cache.
2687
2688 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
2689
2690         * reflection.c: fixed writing of doubles on ARM FPA.
2691
2692 2005-12-02  Robert Jordan  <robertj@gmx.net>
2693
2694         * icall.c: Fixed EventInfo.ReflectedType (#76829).
2695
2696 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2697
2698         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
2699         least on SUSE 10 they are not the same (on debian, they are just the
2700         same thing).
2701
2702 2005-12-01  Raja R Harinath  <rharinath@novell.com>
2703
2704         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
2705         DeclaringType for VARs and MVARs.
2706         * class.c (set_generic_param_owner): Fix initialization of owner
2707         fields.
2708
2709 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2710
2711         * icall.c: fixed Enum.ToObject() to correctly convert the values.
2712
2713 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2714
2715         * threadpool.c: workaround for a bug that shows up on the Mac:
2716         select()+connect() on a blocking socket is not like it should
2717         be, so we proceed to connect() in that case, wasting the I/O
2718         threadpool thread until connect succeedes. Fixes bug #75436.
2719
2720 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2721
2722         * threadpool.c: fix typo when setting file descriptor states.
2723
2724 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2725
2726         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
2727         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2728         create a temporary signature container.
2729         (mono_metadata_parse_generic_param): Update to changes.
2730         (mono_type_create_from_typespec_full): Update to changes.
2731         * loader.c (method_from_memberref): Don't use a
2732         MonoGenericContainer while parsing a memberref signature.
2733         (method_from_methodspec): Remove dead-store of the 'container'
2734         variable.  It's overwritten before use.
2735
2736         * metadata.c (mono_type_create_from_typespec_full): Make debugging
2737         checks tighter.
2738         (mono_metadata_parse_generic_param): Likewise.
2739         * loader.c (find_method_in_class): Does not need a
2740         MonoGenericContainer.  Use 'mono_method_signature' rather than
2741         'mono_method_signature_full'.
2742         (find_method, mono_get_method_constrained, method_from_memberref):
2743         Update to changes.
2744
2745         * metadata.c (mono_type_create_from_typespec_full): Ensure that
2746         owner-less generic-parameters are never evicted from the typespec
2747         cache.
2748
2749         * loader.c (method_from_memberref): Don't use the current context
2750         when parsing signatures.
2751         (method_from_methodspec, mono_get_method_from_token): Update to changes.
2752
2753         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
2754         side-effects in g_assert.
2755         * loader.c (mono_get_method_from_token): Resolve klass earlier so
2756         that we don't potentially lose information.
2757
2758 2005-11-26  Dick Porter  <dick@ximian.com>
2759
2760         * icall.c:
2761         * threads.c: icalls to implement basic (ie, not named)
2762         System.Threading.Semaphore.
2763
2764 2005-11-24  Dick Porter  <dick@ximian.com>
2765
2766         * process.c
2767         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2768         Use GetProcessId() if it's available.
2769
2770 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
2771
2772         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
2773
2774 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2775             Ankit Jain  <jankit@novell.com>
2776
2777         * loader.c (mono_get_method_from_token): Initialize 'method' field
2778         of all generic parameters before parsing the signature.  Remove
2779         code that "fixed"-up MVAR references.
2780
2781 2005-11-23  Ankit Jain  <jankit@novell.com>
2782
2783         * metadata.c (mono_metadata_has_generic_params):
2784         (mono_metadata_load_generic_param_constraints):
2785         (mono_metadata_load_generic_params): Move duplicate code ...
2786         (mono_metadata_get_generic_param_row): ... here. Returns the
2787         first row-id in GenericParam table for a given owner (token).
2788         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
2789         prototype.
2790
2791 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2792             Ankit Jain  <jankit@novell.com>
2793
2794         * metadata.c (mono_metadata_class_equal): Pass signature_only when
2795         comparing VARs too.
2796         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
2797         type->data.generic_param only if the type is an MVAR.
2798         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
2799         leak owner-less VARs and MVARs into managed space.
2800
2801 2005-11-21  Martin Baulig  <martin@ximian.com>
2802
2803         * class-internals.h
2804         (MonoMethod): Moved the `generic_container' here from
2805         `MonoMethodNormal' since we now also need it for
2806         `MonoMethodPInvoke';
2807         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
2808         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
2809         an union containing both `MonoMethodNormal' and
2810         `MonoMethodPInvoke'.
2811
2812         * loader.c
2813         (mono_get_method_from_token): Allow implementing generic methods
2814         as interncalls.
2815
2816         * threads.c
2817         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
2818         icall.
2819
2820 2005-11-17  Dick Porter  <dick@ximian.com>
2821
2822         * icall.c: 
2823         * process.h: 
2824         * process.c: Split the Process Start_internal icall into
2825         ShellExecuteEx_internal and CreateProcess_internal, which are
2826         called depending on whether UseShellExecute is true.  Fixes bug
2827         76670.
2828
2829         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2830
2831 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2832
2833         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2834         'msize' parameters, use the information in 'mspec' instead.
2835         (emit_object_to_ptr_conv): Ditto.
2836
2837         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2838         fields out of order. Fixes #76733.
2839
2840 2005-11-17  Ankit Jain  <jankit@novell.com>
2841
2842         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2843
2844 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2845
2846         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2847           bug #76575.
2848
2849 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2850
2851         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2852         for types with non-auto layout. Fixes #76717.
2853
2854 2005-11-16  Ankit Jain  <jankit@novell.com>
2855
2856         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2857         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2858         if generic_context is null.
2859           (mono_metadata_generic_param_equal): param->owner can be null.
2860           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2861         null.
2862
2863 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2864
2865         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2866         the correct value.
2867
2868 2005-11-15  Martin Baulig  <martin@ximian.com>
2869
2870         * object.c (set_value): Use mono_class_from_mono_type() instead of
2871         the hack for generic instances; fixes #76136.
2872
2873 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2874
2875         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2876         fields.
2877
2878         * image.c (load_metadata_ptrs): Initialize the new fields.
2879
2880         * reflection.c (create_dynamic_mono_image): Ditto.
2881
2882         * reflection.c (build_compressed_metadata): Use the new fields.
2883
2884         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2885         icall.
2886
2887         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2888         icall.
2889         
2890 2005-11-15  Ankit Jain  <jankit@novell.com>
2891             Raja R Harinath  <harinath@gmail.com>
2892
2893         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2894         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2895         new per-generic_container cache if the cached MonoType's context matches
2896         the current context.
2897           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2898         to the expected context.
2899           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2900
2901 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2902
2903         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2904         we changed the signature of an icall.
2905         * icall.c: Modify to mono_double_ParseImpl return true/false 
2906         depending on the success, instead of throwing the exception. This will
2907         help us in Double.TryParse methods.
2908         
2909 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2910
2911         * marshal.c (emit_marshal_object): Throw an exception when
2912         marshalling 'object' instead of crashing. Fixes #76696.
2913
2914 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2915
2916         * class-internals.h: Add prototype for mono_type_get_full_name ().
2917
2918 2005-11-11  Dick Porter  <dick@ximian.com>
2919
2920         * threads.c (mono_thread_manage): Make sure the main thread has
2921         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2922
2923 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2924
2925         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2926         console about the missing type.
2927         (mono_loader_set_error_method_load): Ditto.
2928
2929 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2930
2931         * mono-config.c (mono_get_config_dir): Set the system defaults if
2932         none is specified.
2933
2934         * assembly.c (mono_set_dirs): New API entry point to set the
2935         assembly and the config directory in one call
2936
2937 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2938
2939         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2940         the ftnptr was created from a delegate in a domain other than the
2941         current domain. Fixes #75377.
2942
2943         * exception.h exception.c: Add mono_get_exception_not_supported ().
2944
2945 2005-11-08  Martin Baulig  <martin@ximian.com>
2946
2947         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2948
2949 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2950
2951         * security-manager.h: Added definitions to deal with strongname key 
2952         pairs bigger (and smaller) than 1024 bits.
2953         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2954         adjust wrt the public key length being used.
2955
2956 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2957
2958         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2959           Windows build (r51396-51397).
2960
2961 2005-11-03  Martin Baulig  <martin@ximian.com>
2962
2963         * class.c (mono_class_setup_vtable_general): Also add generic
2964         methods to the vtable; fixes #76581.
2965
2966 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2967
2968         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2969         sure that we lookup GetString method from the System.Text.Encoding
2970         class, not the derived class or we get an empty method.
2971
2972         Fixed class #76612.
2973
2974 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2975
2976         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2977         if it has been previously set (embedders). 
2978
2979         Make mono_set_rootdir available also on Unix.
2980
2981 005-10-24  Robert Jordan  <robertj@gmx.net>
2982
2983         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2984
2985 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2986
2987         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2988         only calls which are made to native code use this flag.
2989
2990         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2991
2992 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2993
2994         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2995         Add support for FieldBuilders.
2996
2997 2005-10-29  Martin Baulig  <martin@ximian.com>
2998
2999         * mono-debug.c
3000         (mono_debug_using_mono_debugger): New public method; returns
3001         whether we're running inside the debugger.
3002
3003 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
3004
3005         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
3006         for Method/Constructor/FieldBuilders.
3007
3008 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
3009
3010         * reflection.c (module_add_cattrs): Save custom attributes for global methods
3011         and fields as well.
3012
3013 2005-10-26  Martin Baulig  <martin@ximian.com>
3014
3015         * mono-debug-debugger.c
3016         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
3017
3018 2005-10-24  Raja R Harinath  <harinath@gmail.com>
3019
3020         * icall.c (base64_to_byte_array): Don't pass an out-of-range
3021         integer to isspace.
3022
3023 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
3024
3025         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
3026         when passing valuetypes byref. Fixes #76502.
3027
3028 2005-10-19  Jackson Harper  <jackson@ximian.com>
3029
3030         * profiler.c: Don't put a . in front of types that are not in a
3031         namespace.
3032
3033 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
3034
3035         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
3036
3037 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
3038
3039         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
3040         #76436.
3041         (mono_marshal_get_ldflda_wrapper): Fix a warning.
3042
3043 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3044
3045         * assembly.c metadata-internals.h icall.c: Define an additional
3046         parameter for mono_assembly_name_parse_full, so we can avoid creating
3047         S.R.AssemblyName.Version when no version info wasn't passed.
3048         
3049 2005-10-09  Miguel de Icaza  <miguel@novell.com>
3050
3051         * class.c (mono_type_get_full_name): Reimplement method that was
3052         removed. 
3053
3054         * image.c: Some docs
3055
3056 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
3057
3058         * profiler.c (output_newobj_profile): Fix printing of Total memory
3059         on x86.
3060
3061 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3062
3063         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
3064
3065 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
3066
3067         * threads.c: remove debug output.
3068
3069 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
3070
3071         * threads.c (mono_thread_manage): Fix crashes if more than 64
3072         threads need to be aborted. Hopefully fixes #75899.
3073
3074         * assembly.c (mono_stringify_assembly_name): New helper function.
3075
3076         * class.c: Use mono_stringify_assembly_name instead of the similar
3077         static function.
3078
3079         * assembly.h assembly.c: Add support for calling a postload search 
3080         hook if an assembly cannot be loaded.
3081
3082         * appdomain.c: Register new search hooks which call the AssemblyResolve
3083         events in AppDomain. Fixes #75231
3084
3085 2005-10-07  Martin Baulig  <martin@ximian.com>
3086
3087         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
3088         methods without debug info.
3089
3090 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
3091
3092         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
3093         wrappers.
3094
3095 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3096
3097         * file-io.c: now that we return symlinks, use lstat and, when the file
3098         is a symbolic link, stat, to get the file attributes. Also avoid the
3099         conversion to/from utf16/external.
3100
3101 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
3102
3103         * class.c (mono_class_layout_fields): Compute klass->has_references
3104         correctly if an embedded valuetype is not yet initialized. Fixes
3105         #76331.
3106
3107 2005-10-04  Martin Baulig  <martin@ximian.com>
3108
3109         * metadata.c
3110         (mono_metadata_load_generic_param_constraints): New public
3111         function; splitted the constraints loading out from
3112         mono_metadata_load_generic_params().
3113
3114         * class.c (mono_class_create_from_typedef): Call
3115         mono_metadata_load_generic_param_constraints() after setting up
3116         the type and creating our parent; fixes #75329.
3117
3118 2005-10-04  Martin Baulig  <martin@ximian.com>
3119
3120         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
3121         non-dynamic parent classes.
3122
3123 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
3124
3125         * file-io.c : win32 build fix (ETXTBSY seems not found).
3126
3127 2005-10-04  Martin Baulig  <martin@ximian.com>
3128
3129         * reflection.c
3130         (mono_image_get_methodspec_token): Make the cache actually work;
3131         fixes #75974.
3132
3133 2005-10-04  Martin Baulig  <martin@ximian.com>
3134
3135         * class.c (mono_class_name_from_token): Removed the unneccessary
3136         `MonoGenericContext *' argument.
3137
3138 2005-10-04  Martin Baulig  <martin@ximian.com>
3139
3140         * loader.c
3141         (method_from_methodspec): Make the caching work again; fixes the
3142         performance regression from #76262.
3143
3144 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3145
3146         * file-io.c:
3147         * file-io.h:
3148         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
3149         GetFileSystemEntries that performs the same work but without going
3150         into io-layer, locking, etc.
3151
3152 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
3153
3154         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
3155         ThreadState_Stopped as well. Fixes #76047.
3156
3157 2005-09-29  Martin Baulig  <martin@ximian.com>
3158
3159         * class.c
3160         (inflate_generic_context): If the new context has a `gmethod', set
3161         its `container' that that gmethod's `container'.
3162
3163         * metadata.c
3164         (mono_metadata_parse_generic_param): Simplify things;
3165         `generic_container = generic_context->container;' is just fine.
3166
3167         * loader.c (method_from_methodspec): Code cleanups.
3168
3169 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
3170
3171         * decimal.c: fix warning (and let gcc generate correct
3172         code on ARM with optimizations).
3173
3174 2005-09-28  Martin Baulig  <martin@ximian.com>
3175
3176         * loader.c
3177         (method_from_memberref): Added `MonoGenericContext *class_context'
3178         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
3179         (method_from_methodspec): If we're a memberref, use the enclosing
3180         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
3181
3182 2005-09-28  Martin Baulig  <martin@ximian.com>
3183
3184         * object.c (mono_runtime_invoke_array): Added support for
3185         MONO_TYPE_GENERICINST; fixes #75917.
3186
3187 2005-09-27  Martin Baulig  <martin@ximian.com>
3188
3189         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
3190         `k->byval_arg.type' to determine the actual type.
3191
3192         * loader.c (method_from_methodspec): Removed some hacks.
3193
3194 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
3195
3196         * class-internals.h (mono_field_is_deleted): Do the test for
3197         rtspecialname before we check the actual name of the field. This
3198         prevents us from dereferencing a pointer into the string table,
3199         saving us from accessing a few pages
3200
3201         * *.c: Replace the use of {Enter,Leave}CriticalSection with
3202         macros. This will allow a deadlock debugger to easily be plugged
3203         in.
3204
3205 2005-09-27  Martin Baulig  <martin@ximian.com>
3206
3207         * loader.c (method_from_methodspec): Create a "signature"
3208         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
3209
3210 2005-09-27  Martin Baulig  <martin@ximian.com>
3211
3212         * class.c
3213         (inflate_generic_class): Correctly set the new context's
3214         container.
3215
3216         * loader.c
3217         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
3218         instead of a `MonoGenericContext *'.
3219         (mono_method_signature_full): Take a `MonoGenericContainer *'
3220         instead of a `MonoGenericContext *'.
3221
3222         * metadata.c
3223         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
3224         instead of a `MonoGenericContext *'.
3225         (mono_metadata_parse_method_signature_full): Likewise.
3226
3227 2005-09-26  Martin Baulig  <martin@ximian.com>
3228
3229         * class.c
3230         (mono_class_from_generic_parameter): Set `klass->generic_container'
3231         (mono_class_from_generic_parameter): Likewise.
3232         (mono_bounded_array_class_get): We inherit the generic container
3233         from the element class.
3234
3235         * loader.c
3236         (find_method, find_method_in_class): Take a `MonoGenericContext *'
3237         argument rather than computing it here.
3238         (method_from_memberref): Correctly set the generic context before
3239         parsing the signature.  Fixes #75681.
3240
3241 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
3242
3243         * object.c (mono_class_has_special_static_fields): Fix warnings.
3244
3245 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3246
3247         * assembly.c: Add parse_public_key function, to
3248         par the public keys. Also added mono_assembly_name_parse_full,
3249         to define it the parsed key should be freed or not.
3250         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
3251         to parse a long format assembly name.
3252         * metadata-internals.h: Keep mono_assembly_name_parse_full as
3253         private, since calling it to preserve the key requires
3254         freeing it manually.
3255         
3256 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
3257
3258         * locales.c : removed HAVE_ICU part.
3259
3260 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
3261
3262         * object.c (mono_class_create_runtime_vtable): Avoid calling 
3263         field_is_special_static if the klass has no special static fields.
3264
3265         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
3266         (MonoCachedClassInfo): Likewise.
3267
3268         * object.c (mono_class_has_special_static_fields): New helper function.
3269
3270 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3271
3272         * class.c (mono_class_create_from_typedef): Don't call 
3273         interfaces_from_typedef_full for enums.
3274         (mono_class_create_from_typedef): Compute the base types of enums directly
3275         without calling mono_class_setup_fields ().
3276         (mono_class_find_enum_basetype): New helper function.
3277
3278         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
3279         one place inside the string heap.
3280         
3281 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
3282
3283         * class.c: locking fixes, code cleanups, some docs added.
3284         Allocate some data structures in the image mempool.
3285
3286 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3287
3288         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3289         the example code.
3290         
3291 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
3292
3293         * class-internals.h, class.c, reflection.c: reduce memory taken by
3294         MonoClass.
3295
3296 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
3297
3298         * metadata.c, metadata.h, loader.h: documentation updates, code and
3299         API cleanups.
3300
3301 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3302
3303         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3304         the example code.
3305
3306         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
3307         page faults caused by the runtime while reading metadata.
3308
3309 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3310
3311         * socket-io.c: the field names were changed 3 months ago and no one
3312         realized until bug #76077 got filed!
3313
3314 2005-09-20  Martin Baulig  <martin@ximian.com>
3315
3316         * icall.c (assembly_icalls): Removed some unused debugger icalls.
3317
3318 2005-09-20  Martin Baulig  <martin@ximian.com>
3319
3320         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
3321         write the rank into the class entry.
3322
3323 2005-09-20  Martin Baulig  <martin@ximian.com>
3324
3325         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
3326
3327 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
3328
3329         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3330
3331         * icall.c (custom_attrs_defined_internal): New icall.
3332
3333         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
3334         function.
3335         (mono_custom_attrs_construct_by_type): New helper function.
3336
3337 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
3338
3339         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
3340         terminate the resulting string. Fixes #76123.
3341
3342 2005-09-16  Martin Baulig  <martin@ximian.com>
3343
3344         * mono-debug.c
3345         (mono_debug_add_method): Ignore inflated methods for the moment.
3346
3347 2005-09-14  Martin Baulig  <martin@ximian.com>
3348
3349         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
3350
3351 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
3352
3353         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
3354         return a success/failure indication.
3355         (mono_metadata_interfaces_from_typedef_full): Ditto.
3356         (get_constraints): Ditto.
3357
3358 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
3359
3360         * marshal.c (emit_marshal_array): Fix handling of null arrays.
3361         
3362         * marshal.c (emit_marshal_array): Add support for returning string
3363         arrays from delegates. Fixes #76063.
3364
3365         * marshal.c: Use the emit_ldloc/stloc macros where possible.
3366
3367 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3368
3369         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
3370         icall.
3371
3372 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
3373
3374         * reflection.c icall.c: Fix after mono_get_exception_type_load
3375         signature change.
3376
3377         * assembly.c (mono_assembly_get_assemblyref): New helper function.
3378         (mono_assembly_load_reference): Use the new helper.
3379
3380         * class-internals.h (MonoLoaderError): New structure containing 
3381         information about type loading errors.
3382
3383         * class-internals.h loader.c: Add APIs to store per-thread loader
3384         error information.
3385
3386         * loader.c class.c: Set the loader error if needed.
3387
3388         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
3389
3390 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
3391
3392         * decimal.c: fixed to handle the broken ARM fp format.
3393
3394 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
3395
3396         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
3397         broken.
3398
3399 2005-09-06  Martin Baulig  <martin@ximian.com>
3400
3401         * domain.c (supported_runtimes): Added v2.0.50727.
3402
3403 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
3404
3405         * culture-info.h: reduce the size of some structures.
3406
3407 2005-09-05  Martin Baulig  <martin@ximian.com>
3408
3409         Reflect latest API changes in the August CTP.
3410
3411         * icall.c
3412         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
3413         ("MonoType.HasGenericArguments"): Removed.
3414         ("MonoMethod.BindGenericParameters"): Renamed to
3415         "MakeGenericMethod".
3416         ("MethodBuilder.BindGenericParameters"): Renamed to
3417         "MakeGenericMethod".    
3418
3419 2005-09-05  Martin Baulig  <martin@ximian.com>
3420
3421         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
3422
3423 2005-09-05  Martin Baulig  <martin@ximian.com>
3424
3425         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3426
3427         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
3428         generic_container is non-NULL.
3429
3430 2005-09-05  Martin Baulig  <martin@ximian.com>
3431
3432         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3433
3434         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
3435
3436 2005-08-29  Michal Moskal  <malekith@nemerle.org>
3437
3438         * reflection.c (encode_locals,
3439         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
3440         for large generic types.
3441
3442 2005-09-05  Martin Baulig  <martin@ximian.com>
3443
3444         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3445
3446         * class.c (mono_dup_array_type): New public method.
3447         (mono_metadata_signature_deep_dup): New public method.
3448         (dup_type): Correctly duplicate array and function types.
3449
3450 2005-09-05  Martin Baulig  <martin@ximian.com>
3451
3452         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3453
3454         * reflection.c (get_default_param_value_blobs): Handle generic types
3455         and generic methods.
3456
3457 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
3458
3459         * class.c: Fixed error reporting (method/class were inversed) for 
3460         inheritance demands.
3461         * security-manager.c|h: Added the AppDomain when calling the managed
3462         System.Security.SecurityManager.InheritanceDemand method.
3463
3464 2005-09-01  Raja R Harinath  <rharinath@novell.com>
3465
3466         * reflection.c (encode_marshal_blob): 'marshaltype' and
3467         'marshaltyperef' are alternate sources for the custom marshaler
3468         name.
3469
3470 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
3471
3472         * class.c: fix creation of array classes with rank == 1
3473         (patch by Ankit Jain <jankit@novell.com>).
3474
3475 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
3476
3477         * object.c: fix check for creating the bound data for arrays vs
3478         szarrays.
3479
3480 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3481
3482         * object.c: configuration file name is now based on the executable name,
3483         not the image name. Fixes bug #75931.
3484
3485 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
3486
3487         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
3488         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
3489
3490 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
3491
3492         * rand.c: Use wincrypt.h instead of WinCrypt.h.
3493
3494 2005-08-24  Ankit Jain  <jankit@novell.com>
3495             Raja R Harinath  <rharinath@novell.com>
3496
3497         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
3498           called by it recursively.
3499           (mono_class_init): Remove special case in pending_init handling, since it's
3500           superseded by the fix to mono_class_from_typeref.
3501
3502 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3503
3504         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
3505         BROKEN_THREAD_START stuff.
3506
3507 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
3508
3509         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
3510         trampoline.
3511
3512         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
3513         
3514         * object.c (mono_delegate_ctor): Replace the original function address with
3515         a delegate trampoline.
3516
3517 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
3518
3519         * icall.c: add boolean argument to base64_to_byte_array and 
3520         InternalFromBase64String to control whether a whitespace-only string
3521         is allowed (or should casue a FormatException to be thrown). We need
3522         this as the behavior has changed between MS.NET 1.x and 2.0, and we
3523         to match the MS behaviour in both profiles.
3524         * appdomain.c: Bump corlib version.
3525
3526 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3527
3528         This patch implements a big portion of publisher policy
3529         support, used to bind assembly versions and redirect
3530         one assembly from version A to version B.
3531
3532         * assembly.c:
3533         New GSList loaded_assembly_bindings, for storing the cached
3534         assembly bindings.
3535         (assembly_binding_maps_name): New static function for checking if a 
3536         assembly binding information maps an assembly name.
3537         (mono_assembly_binding_info_free): New function for freeing
3538         assembly binding information resources.
3539         (get_publisher_policy_info): New static function for retrieving 
3540         assembly binding information from a MonoImage.
3541         (compare_versions): New static function for comparing an assembly
3542         binding information data and the version of an assembly name.
3543         (check_policy_versions): New static function for checking if an
3544         assembly binding info mapping an assembly name is valid for it.
3545         (mono_assembly_load_publisher_policy): New static function for
3546         loading the 'policy.major.minor.MyAssembly' image for an assembly
3547         with an assembly name 'aname'.
3548         (mono_assembly_bind_version): New static function for updating
3549         assembly redirection.
3550         (mono_assembly_apply_binding): New static function for applying
3551         assembly binding.
3552         (search_binding_loaded): New static function for searching 
3553         loaded assembly binding infos in the cache domain.
3554         (mono_assembly_load_full): Don't apply assembly binding for
3555         reflection only assemblies.
3556
3557         * metadata-internals.h: Add MonoAssemblyBindingInfo,
3558         which contains information about assembly binding. Also
3559         declare signature for mono_config_parse_publisher_policy ()
3560         function, used to retrieve pub policy info.
3561         
3562         * mono-config.c:
3563         (publisher_policy_start): New static function used to parse publisher 
3564         policy config files.
3565         (publisher_policy_parser): New static MonoParseHandler containing 
3566         the functions used when parsing config files.
3567         (mono_config_parse_publisher_policy): New function for parsing
3568         publisher policy files.
3569         
3570 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3571
3572         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
3573
3574         * marshal.c (mono_delegate_free_ftnptr): Ditto.
3575
3576         * object.c (mono_get_addr_from_ftnptr): New helper function.
3577
3578         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
3579
3580         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3581
3582 2005-08-19  Dick Porter  <dick@ximian.com>
3583
3584         * threads.c, threads.h, appdomain.c, appdomain.h,
3585         profiler-private.h, monitor.c, object.c, object-internals.h,
3586         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
3587         store the thread ID, so it can hold a 64 bit value if needed.
3588
3589 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3590
3591         * reflection.c (mono_reflection_create_dynamic_method): Store the
3592         handle class into the method references as well so ldtoken works in
3593         dynamic methods.
3594
3595         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
3596         types.
3597
3598 2005-08-19  Ankit Jain <jankit@novell.com>
3599
3600         Fix #75847.
3601         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
3602           here rather than using the method signature of a arbitrary function
3603           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
3604           two arguments.
3605           Hack done with Harinath.
3606
3607 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3608
3609         * threadpool.c: disable printing stack traces when we get a exception
3610         in a threadpool thread. I need to do more testing to figure out which
3611         cases actually print this. Fixes bug #75828.
3612
3613 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3614
3615         * icall.c: there might be ignored whitespace after the last '='. This
3616         fixes length computation and bug #75840.
3617
3618 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
3619
3620         * assembly.c (mono_assembly_load_full): Consider .exe extension as
3621         well. Fixes #75809.
3622
3623         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
3624         #75784.
3625         
3626         * reflection.c (create_custom_attr_data): Ditto.
3627
3628 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
3629
3630         * locales.c, culture-info.h : removed RegionLCIDMap.
3631         * culture-info-tables.h : regenerated.
3632
3633 2005-08-16  Martin Baulig  <martin@ximian.com>
3634
3635         * class.c (mono_type_get_name_recurse): Small fix.
3636
3637 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3638
3639         * locales.c : indentation fixie.
3640
3641 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
3642
3643         * object-internals.h,
3644           locales.h,
3645           locales.c,
3646           culture-info.h,
3647           icall.c : added RegionInfo table support.
3648         * culture-info-table.h : regenerated for region support.
3649
3650 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
3651
3652         * reflection.c (resolve_object): handle all kinds of MonoMethod
3653         including generic ones
3654
3655 2005-08-12  Ankit Jain <jankit@novell.com>
3656
3657         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
3658           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
3659
3660 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
3661
3662         * process.c: Don't close a thread handle when it's NULL. This is a
3663         workaround for bug #75733.
3664
3665 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3666
3667         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
3668
3669 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
3670
3671         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
3672
3673 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3674
3675         * threadpool.c: if a work item in the thread pool has a callback that
3676         catches a exception, don't propagate it after invoking the callback.
3677         Fixes bug #75336.
3678
3679 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3680
3681         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
3682
3683         * class-internals.h (MonoCachedClassInfo): Add some new fields.
3684
3685         * class.c (mono_class_init): Load field info lazily in the AOT case.    
3686
3687         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
3688
3689 2005-08-03  Ankit Jain  <jankit@novell.com>
3690
3691         Fix #75683.
3692         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
3693           PInvoke calling convention is 0.
3694
3695 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
3696
3697         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
3698         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
3699
3700 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
3701
3702         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
3703         to handle threads not started by the GC (patch by Michael Meeks
3704         <michael.meeks@novell.com>).
3705
3706 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
3707
3708         * reflection.c: Make buffer used in emitting types larger for some
3709         big generic types (patch by Michal Moskal).
3710
3711 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3712
3713         * mono-debug.c: Fix some (not all) alignment problems.
3714
3715 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3716
3717         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
3718         Invoke mono_image_load_from_data_full passing the refonly
3719         parameter.
3720
3721         * assembly.c
3722         (mono_assembly_open_from_bundle): Add the refonly argument, 
3723         in order to pass it to other methods it calls to.
3724         (do_mono_assembly_open): Add the refonly argument, in order 
3725         to pass it to other methods it calls to.
3726         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
3727         the refonly parameter to it.
3728
3729         * image.c: Add loaded_images_refonly_hash and
3730         loaded_images_refonly_guid_hash to cache the reflection
3731         only loaded images.
3732         (mono_images_init): Initialize the hash tables used for
3733         caching the reflection only images.
3734         (load_modules): Invoke mono_image_open_full passing the refonly
3735         parameter to load the modules the correct way.
3736         (build_guid_table): Add the refonly argument, to re-build the 
3737         correct hash table.
3738         (do_mono_image_open): Added the refonly argument, in order to
3739         define it for the loaded image.
3740         (mono_image_loaded_full): New function, which receives an
3741         additional parameter to look for the image in the refonly or
3742         non-refonly section.
3743         (mono_image_loaded): Updated, using mono_image_loaded_full.
3744         (mono_image_loaded_by_guid_full): The same case that happens
3745         with mono_image_loaded_full.
3746         (mono_image_loaded_by_guid): Likewise.
3747         (register_image): Use the ref_only variable inside MonoImage
3748         to decide in which hash table store the current image.
3749         (mono_image_open_from_data_full): Rename
3750         mono_image_open_from_data to mono_image_open_from_data_full,
3751         adding the refonly argument, to define the ref_only variable 
3752         inside MonoImage.
3753         (mono_image_open_from_data): Return 
3754         mono_image_open_from_data_full.
3755         (mono_image_open_full): Rename mono_image_open to
3756         mono_image_open_full, receiving the new refonly argument,
3757         to pass it to inner methods.
3758         (mono_pe_file_open): Update this function, to open
3759         a MonoImage as a non-refonly image.
3760         (mono_image_close): Use the refonly variable inside
3761         MonoImage to remove the image from the correct caches.
3762
3763         * image.h: Add the signatures of mono_image_open_full,
3764         mono_image_open_from_data_full, mono_image_loaded_full,
3765         mono_image_loaded_by_guid_full.
3766
3767         * metadata-internals.h: Add the ref_only field to 
3768         MonoImage.
3769         
3770 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3771
3772         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
3773         Fix the last behavior, which used to load the assemblies and
3774         extract MonoReflectionAssemblyName information, instead of
3775         extract it from the metadata tables. Needed for Reflection
3776         Only assemblies.
3777         
3778 2005-07-29  Martin Baulig  <martin@ximian.com>
3779
3780         * mono-debug-debugger.c
3781         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
3782         not initialized.
3783
3784         * mono-debug.c
3785         (mono_debug_address_from_il_offset): Check whether we have
3786         debugging support before attempting to take the lock.
3787         (mono_debug_source_location_from_address): Likewise.
3788         (mono_debug_source_location_from_il_offset): Likewise.
3789         (mono_debug_il_offset_from_address): Likewise.
3790         (mono_debug_address_from_il_offset): Likewise.
3791
3792 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
3793
3794         * class.c (mono_class_from_name_case): Add support for dynamic images.
3795         Fixes #75650.
3796
3797         * object.c (mono_class_compute_gc_descriptor): Add a workaround
3798         for #75479.
3799
3800 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3801         
3802         * reflection.c (mono_method_get_object): Fix warning.
3803
3804 2005-07-28  Martin Baulig  <martin@ximian.com>
3805
3806         * mono-debug.c
3807         (mono_debug_add_wrapper): Also write the wrapper type.
3808
3809 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3810
3811         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
3812         
3813         * class.c (mono_class_init): Avoid reading nested classes if the AOT
3814         data indicates the class has none.
3815
3816 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
3817
3818         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
3819         loader lock with the debugger lock. Prevents deadlocks for beagle.
3820
3821         Beagle can now run on an smp box for a weekend without any
3822         issues. Woohoo!
3823
3824 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3825
3826         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3827         in a module. Fixes #75629.
3828
3829 2005-07-26  Martin Baulig  <martin@ximian.com>
3830
3831         * mono-debug.c (mono_debug_add_wrapper): New static method.
3832         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3833         interncall or a wrapper.
3834
3835         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3836         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3837         (MONO_DEBUGGER_VERSION): Bump to 51.
3838
3839         * mono-debug-debugger.c
3840         (mono_debugger_add_type): Removed this empty function.
3841         (mono_debugger_add_method): Likewise.
3842
3843 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3844
3845         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3846         before accessing method->slot.
3847
3848 2005-07-21  Jb Evain  <jbevain@gmail.com>
3849
3850         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3851         Fixes #75010.
3852
3853 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3854
3855         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3856         #75587.
3857
3858 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3859
3860         * image.h image.c: Add mono_image_get_guid () API function.
3861
3862 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3863
3864         There were issues when multiple threads tried to load
3865         assemblies. A deadlock was created between assemblies_mutex and
3866         mono_domain_assemblies_lock. This fixes the issue by making the
3867         assembly ref counting be lock free. See bug 75586.
3868         
3869         * image.c (mono_image_close): The add ref function here was using
3870         Interlocked operations while the unref was using a mutex and a
3871         --. I don't think this was ever a bug that would be exposed in a
3872         non-pendantic way (ie, by an embedder doing a ref on one thread
3873         and an unref on another), but for the sake of correctness, this is
3874         now Interlocked.
3875
3876         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3877         (mono_assembly_load_reference): Call mono_assembly_addref rather
3878         than touching the refcount ourselves.
3879         (mono_assembly_close): Use InterlockedDecrement to unref the
3880         assembly. Don't acquire the lock unless it is actually needed.
3881
3882 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3883
3884         * class.c (mono_class_layout_fields): Fix calculation of has_references
3885         for generic types.
3886
3887 2005-07-12  Martin Baulig  <martin@ximian.com>
3888
3889         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3890
3891         * metadata.c
3892         (mono_type_hash): Provide better hashing for generic instances.
3893         (mono_generic_inst_hash): Improve hashing.
3894         (mono_generic_class_hash): Likewise.
3895
3896         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3897         generic instances.
3898
3899 2005-07-12  Martin Baulig  <martin@ximian.com>
3900
3901         * reflection.c (mono_reflection_create_runtime_class): Remove the
3902         hack for generic type definitions and non-`Run' assemblies.
3903         (mono_reflection_bind_generic_parameters): Also use
3904         `klass->wastypebuilder' to check for TypeBuilders.
3905
3906 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3907
3908         * class.c (mono_class_layout_fields): Fix calculation of has_references
3909         for generic types.
3910
3911         * class.c (inflate_generic_class): Fix a leak.
3912         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3913         for generic types.
3914
3915 2005-07-11  Martin Baulig  <martin@ximian.com>
3916
3917         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3918         on error.
3919
3920 2005-07-11  Martin Baulig  <martin@ximian.com>
3921
3922         * loader.c (find_method): Also lookup in
3923         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3924
3925 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3926
3927         * appdomain.c (mono_domain_unload): Don't free the error message
3928         before passing it to mono_get_exception_...
3929
3930         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3931         
3932 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3933
3934         * threads.c: try to better guess an available RT signal (bug #75387).
3935
3936 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3937
3938         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3939         and CACHE_OBJECT.
3940
3941 2005-07-07  Martin Baulig  <martin@ximian.com>
3942
3943         * class.c (mono_type_get_name_full): Return NULL for
3944         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3945         fixes #75408.
3946
3947 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3948
3949         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3950         exit the appdomain as well being aborted.
3951
3952         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3953         change back to the root domain after calling managed code. This enables
3954         appdomains using threadpools to be unloaded.
3955
3956 2005-07-07  Martin Baulig  <martin@ximian.com>
3957
3958         * class-internals.h
3959         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3960         into `MonoDynamicGenericClass' since we only need it for dynamic
3961         types.
3962
3963         * reflection.c (mono_class_bind_generic_parameters): We don't need
3964         to compute the `parent' here.
3965
3966 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3967
3968         * culture-info-table.h : regenerated.
3969
3970 2005-07-06  Martin Baulig  <martin@ximian.com>
3971
3972         * icall.c
3973         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3974
3975         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3976
3977 2005-07-06  Martin Baulig  <martin@ximian.com>
3978
3979         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3980         we're doing a signature-only comparision; fixes #74945.
3981
3982 2005-07-06  Martin Baulig  <martin@ximian.com>
3983
3984         * class-internals.h (MonoGenericClass): Moved some things out into
3985         a new `MonoInflatedGenericClass' type.  
3986         (MonoInflatedGenericClass): New type; the `klass' of a
3987         `MonoGenericClass' is now computed lazyly in
3988         mono_get_inflated_generic_class().      
3989
3990         * class.c (mono_get_inflated_generic_class): New public function.
3991         (mono_class_inflate_generic_method): Removed the unused
3992         `MonoClass *' argument.
3993         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3994         all the methods.
3995         (mono_class_create_generic): Make this static and merge it with
3996         mono_class_create_generic_2(); we're now called automatically from
3997         mono_get_inflated_generic_class().
3998
3999         * loader.c (mono_method_signature): Call
4000         mono_get_inflated_method() here.
4001
4002 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
4003
4004         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
4005         type of fields with RVA.
4006
4007         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
4008         for this pseudo class.
4009         (my_mono_class_from_generic_parameter): Likewise.
4010         (mono_class_init): Allow interfaces to have cctors.
4011
4012 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
4013
4014         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
4015         lazily for AOT methods.
4016
4017 2005-07-05  Martin Baulig  <martin@ximian.com>
4018
4019         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
4020         returns FALSE for a successful match, not TRUE.
4021
4022 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
4023
4024         * loader.c (mono_method_get_index): Optimize this a bit.
4025
4026 2005-07-04  Martin Baulig  <martin@ximian.com>
4027
4028         * class.c
4029         (class_compute_field_layout): Move the check for generic type
4030         definitions into mono_class_layout_fields().  Fixes #74684.
4031         (mono_class_from_generic_parameter): Correctly compute
4032         `klass->parent'; fixes #75457.
4033
4034         * reflection.c (register_assembly, register_module): Make sure
4035         `domain->rejobject_hash' is already created.
4036
4037 2005-07-02  Martin Baulig  <martin@ximian.com>
4038
4039         * class-internals.h
4040         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
4041         `MonoDynamicGenericClass'.      
4042
4043 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
4044
4045         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
4046         returned by a field getter is null, since null is a valid value.
4047
4048 2005-07-01  Martin Baulig  <martin@ximian.com>
4049
4050         * reflection.c (mono_reflection_generic_class_initialize): Update
4051         the `dgclass->fields [i].parent' to the correct class.
4052         (mono_image_get_fieldref_token): Use the declaring type, not the
4053         reflected type.
4054
4055 2005-07-01  Martin Baulig  <martin@ximian.com>
4056
4057         * loader.c (find_method): Also look in the interfaces; fixes #75429.
4058
4059 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
4060
4061         * threads.c (thread_cleanup): assert that thread != NULL
4062         (wait_for_tids_or_state_change): We were using the wrong variable
4063         when accessing wait->threads. `i' was always out of the bounds of
4064         the array.
4065
4066 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4067
4068         * loader.c: map user32 and kernel32 to libMonoSupportW
4069
4070 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
4071
4072         * appdomain.c (unload_thread_main): Mark this as WINAPI.
4073
4074 2005-06-28  Martin Baulig  <martin@ximian.com>
4075
4076         * loader.c (method_from_methodspec): Fix #75334.
4077
4078 2005-06-28  Martin Baulig  <martin@ximian.com>
4079
4080         Fix #74953 - Arrays now implement the generic IList<T> interface
4081         on the 2.0 platform.
4082
4083         * class-internals.h (MonoDefaults): Added `generic_array_class'.
4084
4085         * reflection.c (mono_class_bind_generic_parameters): New public
4086         function; similar to mono_reflection_bind_generic_parameters(),
4087         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
4088
4089         * domain.c (mono_init_internal): Try to initialize.
4090         `mono_defaults.generic_array_class' here; this'll only succeed if
4091         we're using the 2.0 corlib.
4092
4093         * icall.c
4094         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
4095         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
4096         (mono_lookup_internal_call): Added support for nested classes.
4097
4098         * loader.c
4099         (mono_get_method_from_token): Set `result->signature->pinvoke' if
4100         we're an interncall and have generic arguments.
4101
4102         * class.c
4103         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
4104         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
4105         instance of System.Array.InternalArray<T> for arrays, so they
4106         implement the generic IList<T> interface.
4107
4108 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
4109
4110         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
4111         (chastamar@yahoo.com). Fixes #75374.    
4112
4113 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
4114
4115         * culture-info-table.h: regenerated.
4116
4117 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4118
4119         * icall.c: handle spaces correctly for base64 strings.
4120
4121 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
4122
4123         * *.c: Kill some warnings.
4124
4125 2005-06-23  Duncan Mak  <duncan@novell.com>
4126
4127         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
4128         that this builds on Solaris 10 (x86).
4129
4130 2005-06-23  Martin Baulig  <martin@ximian.com>
4131
4132         * class.c
4133         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
4134         generic type definitions.
4135
4136 2005-06-23  Martin Baulig  <martin@ximian.com>
4137
4138         Fix #75331.
4139
4140         * metadata.c (mono_class_get_overrides): Renamed to
4141         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
4142         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
4143         pass it to mono_get_method_full().
4144
4145 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
4146
4147         * reflection.c (mono_reflection_create_runtime_class): take the
4148         mono_domain_lock in this method. Prevents deadlocks
4149
4150 2005-06-22  Martin Baulig  <martin@ximian.com>
4151
4152         * loader.c (method_from_methodspec): Fix #75330.
4153
4154 2005-06-22  Martin Baulig  <martin@ximian.com>
4155
4156         * reflection.c (type_get_qualified_name): Use
4157         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
4158         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
4159         argument; use it if we don't have an assembly name.
4160
4161 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
4162
4163         * object.c: In mono_message_init, set "copy out" flag for in
4164         parameters with the [Out] flag.
4165
4166 2005-06-21  Martin Baulig  <martin@ximian.com>
4167
4168         * class.c
4169         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
4170         and MONO_TYPE_PTR.
4171
4172 2005-06-21  Martin Baulig  <martin@ximian.com>
4173
4174         * class.c (mono_class_init): Don't initialize `class->fields' for
4175         generic instances since they're initialized again in
4176         compute_field_layout(). 
4177         (compute_field_layout): Set the field's `generic_info' here; fix
4178         #75320. 
4179
4180 2005-06-21  Martin Baulig  <martin@ximian.com>
4181
4182         * class-internals.h
4183         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
4184
4185         * metadata.c (mono_metadata_generic_method_equal): Also
4186         distinguish the `generic_class'; fixes #75334.
4187
4188 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4189
4190         * domain.c:
4191         * appdomain.c:
4192         * domain-internals.h:
4193         * reflection.c: 'domain_assemblies' field is now protected by its own
4194         lock. Don't call into managed code to run the AssemblyLoad event if we
4195         now there are no registered delegates for it.
4196
4197 2005-06-20  Martin Baulig  <martin@ximian.com>
4198
4199         * class.c (mono_class_is_assignable_from): Use a custom version of
4200         mono_class_has_parent() to make things work for generic instances;
4201         fix #75300.
4202
4203 2005-06-20  Martin Baulig  <martin@ximian.com>
4204
4205         * loader.c (method_from_methodspec): Apply a patch from
4206         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
4207
4208 2005-06-20  Martin Baulig  <martin@ximian.com>
4209
4210         * class.c (mono_class_init): Reverted Zoltan's last change; it
4211         breaks generics.
4212
4213 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
4214
4215         * threads.c (wait_for_tids_or_state_change): Add missing locking.
4216
4217 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4218
4219         * socket-io.c: fix the index in the socket array for writable/error
4220         sockets. Fixes bug #75306.
4221
4222 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
4223
4224         * class.c (mono_class_init): Allow interfaces to have static ctors.
4225
4226 2005-06-17  Martin Baulig  <martin@ximian.com>
4227
4228         * loader.c (method_from_methodspec): Use `context->container' when
4229         parsing the `gmethod->inst'.
4230
4231 2005-06-17  Martin Baulig  <martin@ximian.com>
4232
4233         * class.c (mono_type_get_name_recurse): Don't add the assembly
4234         name for type arguments.
4235
4236 2005-06-15  Martin Baulig  <martin@ximian.com>
4237
4238         * reflection.c (mono_image_get_inflated_method_token): Encode
4239         correct klass; fixes #75260.
4240
4241 2005-06-13 Michal Moskal <malekith@nemerle.org>
4242
4243         * icall.c: Make GetCorrespondingMethod/Constructor take
4244         MonoReflectionMethod method not MonoMethod. Removed
4245         MonoType.GetCorrespondingField, and make
4246         MonoGenericType.GetCorrespondingField take name not
4247         MonoClassField.
4248
4249 2005-06-13  Michal Moskal <malekith@nemerle.org>
4250
4251         * reflection.c (field_encode_signature, encode_locals):
4252          Make sizes of buffers for types larger (for big generic types).
4253          (create_generic_typespec,
4254          mono_reflection_sighelper_get_signature_local,
4255          mono_reflection_sighelper_get_signature_field):
4256          Add asserts for too small buffers.
4257
4258 2005-06-15  Martin Baulig  <martin@ximian.com>
4259
4260         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
4261         if our parent is not a dynamic type.
4262
4263 2005-06-15  Martin Baulig  <martin@ximian.com>
4264
4265         * class-internals.h (MonoTypeNameFormat): New enum.
4266
4267         * class.c
4268         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
4269         (mono_type_get_full_name): Removed.
4270         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
4271         argument instead of the boolean's.
4272
4273         * icall.c (ves_icall_System_MonoType_getFullName):
4274         Added `gboolean assembly_qualified'.    
4275
4276         * reflection.h
4277         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
4278
4279         * reflection.c (mono_reflection_parse_type): Parse the new type
4280         name format.
4281
4282 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4283
4284         * icall.c: no need to convert from utf16 to utf8 and then back again
4285         after the call to GetLogicalDrives.
4286
4287 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4288
4289         * icall.c: frombase64. Fix problems exposed by new tests.
4290
4291 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4292
4293         * icall.c: added internal calls for converting char [] and strings in
4294         base64 into byte [].
4295
4296 2005-06-10  Martin Baulig  <martin@ximian.com>
4297
4298         * class.c (mono_class_create_generic_2): Read the nested classes
4299         from the metadata rather than from `gklass->nested_classes' since
4300         `gklass' might not be initialized yet.
4301
4302 2005-06-09  Duncan Mak  <duncan@novell.com>
4303
4304         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
4305         all public headers. Fixes #74919.
4306
4307 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
4308
4309         * domain.c: The key for proxy_vtable_hash is now a pointer
4310         array. Added new GHashFunc and GCompareFunc functions for this.
4311
4312         * class.h: The list of interfaces in MonoRemoteClass is known in
4313         advance and can't grow (we create a new MonoRemoteClass if needed),
4314         so now the interface array can be allocated together with
4315         MonoRemoteClass.
4316         
4317         * object.c: Added a new method create_remote_class_key.
4318         Fixed mono_remote_class so it does not depend on
4319         mono_upgrade_remote_class.
4320         Removed extend_interface_array.
4321         Added new method clone_remote_class(), which makes a copy of a remote
4322         class and adds a new interface or class to it.
4323         mono_upgrade_remote_class() now creates a new remote class (or gets
4324         it from the cache) if an vtable upgrade is needed. In this way
4325         we make sure that other objects sharing the same remote class
4326         don't get the new vtable with unwanted interfaces.
4327         
4328         * object-internals.h:
4329         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
4330         
4331         * marshal.c: Track changes in mono_upgrade_remote_class().
4332
4333 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
4334         * icall.c: Add runtime methods for obtaining members of inflated
4335         class, which were created from supplied non-inflated members. It
4336         is used in internal Get{Method,Constructor,Field} methods in
4337         System.Type
4338
4339 2005-06-09  Martin Baulig  <martin@ximian.com>
4340
4341         * reflection.c
4342         (mono_reflection_bind_generic_method_parameters): Fix #75169.
4343
4344 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4345         * reflection.c (mono_image_basic_init): Define
4346         Version in MonoDynamicAssembly. 
4347         
4348 2005-06-08  Martin Baulig  <martin@ximian.com>
4349
4350         Fix #75136.
4351
4352         * loader.c
4353         (mono_method_signature_full): New public method; takes a
4354         `MonoGenericContext *'.
4355         (find_method): Use mono_method_signature_full() and pass the
4356         klass'es context to it.
4357
4358         * class.c (mono_class_is_inflated_method): Use
4359         mono_method_signature_full() and pass the context to it.
4360
4361 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
4362
4363         * object.c: add proper locking in mono_remote_class_vtable(),
4364         fixes possible memory corruption.
4365
4366 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
4367
4368         * marshal.c (mono_remoting_marshal_init): set
4369         initialized after initialization.
4370
4371 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4372
4373         * locales.c : hush.
4374
4375 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
4376
4377         * object.c (extend_interface_array): fix really silly
4378         memory corrupting / comparison bug.
4379
4380 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4381
4382         * reflection.c: Functions added to support the creation
4383         of CustomAttributeData, which includes Attribute data
4384         used by ReflectionOnly methods.
4385
4386         * reflection.h:  mono_reflection_get_custom_attrs_data and
4387          mono_custom_attrs_data_construct added (functions exposed).
4388
4389          * icall.c: Added mono_reflection_get_custom_attrs_data
4390          as icall.
4391         
4392 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
4393
4394         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
4395         lupus's request.
4396
4397 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
4398
4399         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
4400
4401         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
4402         dynamic DllImportAttribute.
4403
4404         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
4405         dynamic DllImportAttribute.
4406
4407         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
4408         Fixes #75162.
4409
4410 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4411
4412         * threads.c: avoid segfault when an unstarted thread is aborted.
4413
4414 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
4415
4416         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
4417         Returns the name and version of the runtime for reporting.
4418
4419 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4420
4421         * appdomain.c: bump corlib version.
4422         * object-internals.h: new field in MonoReflectionAssembly.
4423
4424 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4425
4426         * object-internals.h: Carlos forgot to add this field.
4427
4428 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4429
4430         * icall.c: Added create_version to create instances
4431         of Version of MonoReflectionAssemblyName. This change helps
4432         the AssemblyName tests to keep running fine.
4433         
4434 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
4435   
4436         * object.c (mono_method_return_message_restore): A somehow less
4437         intrusive fix for #75138.
4438
4439 2005-06-03  Raja R Harinath  <rharinath@novell.com>
4440
4441         * object.c (mono_method_return_message_restore): Fix computation
4442         of expected number of out args.
4443
4444 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4445
4446         * reflection.c (mono_image_get_method_info): Fix the case when the
4447         charset is empty.
4448
4449 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
4450
4451         * object.c: Added missing null check in
4452           mono_method_return_message_restore.
4453
4454 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4455
4456         * reflection.c (mono_image_get_method_info): Handle the case when
4457         dllentry is empty.
4458
4459 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
4460
4461         * object.c: When creating the vtable for a proxy, take into account
4462         all inherited interfaces, not only the ones registered in
4463         iclass->interfaces. This fixs bug #74996.
4464         Also, in mono_method_return_message_restore, verify that the array
4465         of out args has the expected lengh.
4466
4467 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4468
4469         * socket-io.c: update the timeout in Poll when the call is interrupte.
4470
4471 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4472
4473         * socket-io.c: support abort/suspend in Select_internal after last
4474         change.
4475
4476 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4477
4478         * threadpool.c: remove warning.
4479
4480 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4481
4482         * icall.c:
4483         * socket-io.[ch]: Select_internal uses poll() now when available, thus
4484         removing the 1024 limit from select(). Runtime part of the fix for
4485         bug #71203.
4486
4487 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4488
4489         * socket-io.c: when resolving the addresses for the same
4490         host returned by gethostname(), get the local IPs from the interface
4491         list. Loopback addresses are discarded if the are interfaces up with
4492         non-loopback ones. Fixes bug #63265.
4493
4494 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
4495
4496         * appdomain.c, verify.c, object-internals.h, reflection.c:
4497         bumped corlib number to 36, and added new extra_flags field
4498         to ReflectionMethodBuilder and friends.  Fixes #75060.
4499
4500 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
4501
4502         * gc.c: register a new weak link only if the object is non-null
4503         (fixes bug#75047).
4504
4505 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4506
4507         * culture-info.h : short time pattern too.
4508
4509 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4510
4511         * culture-info.h : expand long time pattern string length.
4512
4513 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4514
4515         * culture-info-table.h : update (more French date format; #72788).
4516
4517 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
4518
4519         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
4520         the method is static. Fixes #75029.
4521
4522 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
4523
4524         * reflection.c: Update the table_idx field of method builders after
4525         saving the module, since it can change. This is a workaround for
4526         bug #74914. 
4527
4528 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4529
4530         * culture-info-table.h : update (additional French date format).
4531
4532 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4533
4534         * icall.c (ves_icall_type_Equals): Revert last change.
4535         
4536         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
4537
4538         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
4539
4540 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
4541
4542         * class-internals.h: Added executioncontext_class field to 
4543         MonoDefaults structure.
4544         * domain.c: Cache System.Threading.ExecutionContext class in 
4545         mono_defaults.
4546         * object.c: Capture the ExecutionContext for asynchroneous calls in
4547          mono_async_result_new.
4548         * object-internals.h: Added execution_context and original_context 
4549         fields to MonoAsyncResult. Added execution_context to MonoThread.
4550         * security-manager.c|.h: Added mono_get_context_capture_method to 
4551         return the capture method (if required by the security manager or by
4552         the framework version used).
4553         * threadpool.c: Apply capture (if present) ExecutionContext in 
4554         mono_async_invoke and revert to original context after it completes.
4555
4556 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
4557
4558         * culture-info-table.h : updated (real hacky solution for zh-CHT).
4559
4560 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
4561
4562         * culture-info-table.h : zh-CHT related workaround.
4563
4564 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4565
4566         * marshal.c (emit_marshal_custom): Add some error checking and call the
4567         methods in the ICustomMarshaler interface. Fixes #74875.
4568         
4569         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
4570         native->managed wrappers.
4571
4572 2005-05-12  Martin Baulig  <martin@ximian.com>
4573
4574         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
4575         here and use the loader lock.
4576
4577         * mono-debug.c: Properly lock when the debugger is not attached.
4578         (mono_debug_init): Release the initial lock if we're not running
4579         in the debugger.
4580
4581 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4582
4583         * marshal.c (emit_marshal_custom): Pass through NULL values without
4584         calling the custom marshalling routines.
4585
4586         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
4587         conversion in structures. Fixes #74882.
4588
4589 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
4590
4591         * culture-info-table.h : zh-* cultures were missing.
4592
4593 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
4594
4595         * threads.c: Added a new event background_change_event which is signaled
4596         when a thread changes its background mode.
4597         Moved here several checks previously done in managed code. The checks
4598         require the thread lock, and using the thread lock in managed code
4599         can result in deadlocks.
4600         Merged Start_internal and Thread_internal into a single method. Now 
4601         Thread_internal does all work of creating and starting a thread.
4602         Added icalls for setting and getting the state of the object. Moved from
4603         managed code to avoid locking there.
4604         Added wait_for_tids_or_state_change() which is called instad of
4605         wait_for_tids when waiting for non-backround threads to end. This method
4606         will return if one of the threads ends or the background_change_event
4607         is signaled.
4608         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
4609         the background mode. This method signals the background_change_event
4610         event.
4611         * icall.c:
4612         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
4613         removed Start_internal.
4614         
4615 2005-05-11  Martin Baulig  <martin@ximian.com>
4616
4617         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
4618         to order of some fields to get proper alignment on 64-bit machines.
4619
4620 2005-05-11  Martin Baulig  <martin@ximian.com>
4621
4622         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
4623         changes as they're broken and completely fuck up the debugger.
4624
4625         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
4626
4627 2005-05-10  Martin Baulig  <martin@ximian.com>
4628
4629         * reflection.c (mono_reflection_generic_class_initialize): Don't
4630         call mono_class_setup_parent() here.
4631
4632 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4633
4634         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
4635         send/receive timeout use an integer in milliseconds. We were using a
4636         struct timeval.
4637
4638 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4639
4640         * locales.c:
4641         (internal_get_cultures): reserve the first slot of the array for the
4642         InvariantCulture, which will be filled in managed code.
4643
4644 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
4645
4646         * reflection.c (mono_image_fill_module_table): Initialize the
4647         GENERATION field as well.
4648
4649 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4650
4651         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
4652         Monitor.Enter on the object.
4653
4654 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4655
4656         * threads.c: Enable the wait for running threads when exiting.
4657         * icall.c: Suspend all threads before exiting.
4658
4659 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4660
4661         * assembly.c (mono_assembly_load_reference): Fix warning.
4662
4663 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4664
4665         * threadpool.c: changed the default number of threads per cpu. From now
4666         on, the default will be 20 + (5 * number of cpus) instead of 50.
4667
4668 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
4669
4670         * loader.c (mono_method_get_signature_full): Add locking here.
4671
4672 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
4673
4674         * appdomain.c: Moved methods for parsing and freeing assembly
4675         names to assembly.c.
4676         * assembly.c, domain-internals.h: Created public methods for parsing
4677         assembly names. Fixed mono_assembly_load_with_partial_name:
4678         it now finds the best match, taking into account the version,
4679         token and culture specified in the partial name. Also return
4680         the latest version if no version information is specified.
4681
4682 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
4683
4684         * threadpool.c: replace check for SocketAsyncCall class.
4685
4686 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4687
4688         * threadpool-internals.h:
4689         * Makefile.am: added threadpool-internals.h
4690
4691         * threadpool.c: call mono_unhandled_exception on exceptions not handled
4692         that happen in threadpool threads (tested on MS).
4693         (mono_thread_pool_remove_socket): new function that dispatch any pending
4694         AIO call on a socket that is closing. By now only epoll really needs it,
4695         as select/poll wake up when the socket closes.
4696
4697
4698         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
4699
4700 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
4701
4702         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
4703
4704 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
4705
4706         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
4707
4708 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
4709
4710         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
4711         has an abort request, convert it into a suspend request.
4712
4713 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
4714
4715         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
4716         warning for the usage of `UnmanagedFunctionPointerAttribute' which
4717         is not supported yet.
4718
4719 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4720
4721         * image.c: register assemblies loaded from data (bundles) in the loaded
4722         assemblies hash. Fixes bug #74772.
4723
4724 2005-04-29  Martin Baulig  <martin@ximian.com>
4725
4726         * class.c (mono_type_get_name_recurse): Update to the new naming
4727         schema from the latest .NET 2.x beta2.
4728         (mono_class_setup_vtable_general): If we're a generic instance,
4729         copy the vtable from our generic type definition and inflate all
4730         the methods in it.
4731
4732         * loader.c (find_method): Update to the new naming schema from the
4733         latest .NET 2.x beta2.
4734
4735 2005-04-29  Raja R Harinath  <harinath@gmail.com>
4736
4737         * class.c (mono_class_init): Add a mono_loader_unlock to the
4738         #74734 fix.
4739
4740 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4741
4742         * icall.c (ves_icall_System_Environment_Exit): Remove the 
4743         suspend_all_other_threads () call for the time being, since it can hang.
4744
4745         * threads.c (mono_thread_manage): Similarly, disable the waiting for
4746         the background threads to exit, since it can also hang.
4747
4748         * class.c (mono_class_init): Applied patch from Ankit Jain 
4749         (radical@gmail.com). Avoid pending init errors when a field refers
4750         to a nested class using a typeref. Fixes #74734.
4751
4752         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
4753         this for dynamic modules.
4754
4755 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4756
4757         * threads.c: don't wait for threads that are in the process of aborting
4758         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
4759         and waiting for background threads to finish. This makes xsp and
4760         mod-mono-server exit without random length delays and/or hangs.
4761
4762 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4763
4764         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
4765
4766 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
4767
4768         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
4769         dynamic types to prevent infinite loops. Fixes #74727.
4770
4771         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
4772         ..._is_assignable_to.
4773
4774 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
4775
4776         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
4777
4778 2005-04-25  Martin Baulig  <martin@ximian.com>
4779
4780         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
4781
4782         * domain.c
4783         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
4784
4785         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
4786
4787         * reflection.c (build_compressed_metadata): Set metadata header
4788         version to 2.0.
4789
4790 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4791
4792         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
4793         number into an integral and a decimal part. Fixes #70473.
4794
4795         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
4796
4797 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
4798
4799         * culture-info-table.h : reflected the latest locale-builder output.
4800
4801 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4802
4803         * threadpool.c: check for SuspendRequested too when deciding if
4804         mono_thread_interruption_checkpoint should be called.
4805
4806 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4807
4808         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
4809         * threads.c: remove interruption_mutex and use Interlocked instead. When
4810         suspending all the threads, wait for all the suspended events at once.
4811         If we're shutting down and get an APC that is going to be queued,
4812         call mono_thread_execute_interruption immediately, as the thread might
4813         be sleeping on a pthread condition or mutex.
4814
4815         * icall.c: call mono_runtime_set_shutting_down before suspending the
4816         threads.
4817
4818         Fixes bug #74693. And now xsp is happier when exiting.
4819
4820 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4821
4822         * loader.c (mono_stack_walk): Fix #74690.
4823
4824 2005-04-22  Martin Baulig  <martin@ximian.com>
4825
4826         * mono-debug.h (MonoDebugMethodJitInfo): Added
4827         `MonoDebugMethodJitInfo *jit'.
4828
4829         * mono-debug.c (mono_debug_read_method): Cache the
4830         MonoDebugMethodJitInfo in `address->jit'.
4831         (mono_debug_free_method_jit_info): New public method.
4832
4833 2005-04-22  Martin Baulig  <martin@ximian.com>
4834
4835         * class.c (mono_class_is_assignable_from): Disallow
4836         type parameter -> interface.
4837
4838 2005-04-21  Dick Porter  <dick@ximian.com>
4839
4840         * threads.c (mono_thread_create): Turn an assertion into an error.
4841
4842 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4843
4844         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4845         
4846         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4847         Fix some gcc 4.0 warnings.
4848
4849 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4850
4851         * file-io.c: fix alt dir separator char on unix systems
4852         and cleanup (fixes bug #71214).
4853
4854 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4855
4856         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4857         a call to a remote domain, since the method may be an
4858         interface method in the client domain. This fixes bug #74192.
4859
4860 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4861
4862         * threadpool.c: recv/send are now performed before going back to managed
4863         code to save one transition.
4864
4865 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4866
4867         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4868
4869         * metadata/threadpool.c: removed hack to workaround the bug above.
4870
4871         Fixes bug #74618.
4872
4873 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4874
4875         * reflection.c reflection.h: Fix handling of parameter defaults in
4876         dynamic methods. Also fixes handling of parameter attributes.
4877         Fixes #74609.
4878
4879         * mono-debug.c (mono_debug_close_image): Fix warning.
4880
4881 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4882
4883         * socket-io.h: replaced old unused field with new 'blocking'.
4884         * threadpool.c: restore socket blocking state on windows(tm).
4885
4886 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4887
4888         * icall.c: don't return the codebase in the AssemblyName[] returned by
4889         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4890         * object-internals.h: Removed FIXME (fields were presents) and fixed
4891         versioncompat declaration.
4892
4893 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4894
4895         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4896         not closed, so don't cleanup when it happens.
4897
4898 2005-04-13  Chris Toshok  <toshok@ximian.com>
4899
4900         * mono-debug-debugger.h: change prototype for
4901         mono_debugger_lookup_type.
4902
4903         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4904         this function, although it should probably be named
4905         mono_debugger_init_type.
4906
4907 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4908
4909         * threadpool.c: fix non-AIO case.
4910
4911 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4912
4913         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4914         the built-in profiler to measure just JIT compilation times.
4915
4916 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4917
4918         * threadpool.c: the epollfd might be closed by another thread at
4919         any time, so ignore EBADF at treat it as a "we're closing" sign.
4920
4921 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4922
4923         * threadpool.c: release the semaphores with a count equals to the number
4924         of working threads in both IO and regular pools. Fixed typo that messed
4925         up the count of IO pool threads. Don't initialize the pipe handles if
4926         we're using epoll.
4927
4928 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4929
4930         * threadpool.c: some systems don't like a NULL when deleting the socket
4931         from epoll.
4932
4933 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4934
4935         * threadpool.c: fix semaphore allocation.
4936
4937 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4938
4939         * threadpool.c: added epoll() based implementation for asynchronous IO
4940         that is used instead of the default poll() when available.
4941         It can be disabled by setting MONO_DISABLE_AIO.
4942
4943 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4944
4945         * threadpool.c: windows needs 'closesocket' and instead of returning
4946         0 when the stream is closed while in select, it returns -1. Fixes bug
4947         #74573.
4948
4949 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4950
4951         * class.c (class_compute_field_layout): Fix the regression caused by
4952         the previous try.
4953
4954 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4955
4956         * threadpool.c: separate pool for socket async. IO.
4957         * threadpool.h: mono_max_worker_threads is not a global any more.
4958
4959 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4960
4961         * class.c (class_compute_field_layout): Fix #74549.
4962
4963 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4964
4965         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4966         use 2 connected sockets instead.
4967
4968 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4969
4970         * mono-config.c: Add new entry point for mkbundle
4971         mono_config_parse_memory. 
4972
4973 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4974
4975         * threadpool.c: removed another unused function.
4976
4977 2005-04-08  Ankit Jain  <radical@corewars.org>
4978
4979         * reflection.c (get_default_param_value_blobs): Add 'types'
4980         parameter to get the types encoded in the constant table.
4981         (mono_param_get_objects): Use the type from the constant table,
4982         not the type of the parameter, when creating default values.
4983         Handle null default values correctly.
4984
4985 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4986
4987         * file-io.c:
4988         * file-io.h:
4989         * threadpool.c:
4990         * threadpool.h:
4991         * icall.c:
4992         * socket-io.c: removed dead code for async IO.
4993
4994 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4995
4996         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4997
4998         * threadpool.c: intercept socket async. calls and pass them to a thread
4999         that is polling and dispatching the job items to the threadpool as
5000         socket become ready. Fixes bugs #71217, #71933.
5001
5002         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
5003         between char and short/ushort arrays.
5004
5005         * socket-io.c: remove dead code.
5006
5007 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
5008
5009         * locales.c,
5010           icall.c : removed InternalToUpper_Comp() and
5011           InternalToLower_Comp().
5012
5013 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
5014
5015         * char-conversions.h : The tables were incorrectly generated. Should
5016           be generated against invariant culture.
5017
5018 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
5019
5020         * object.c (mono_runtime_invoke_array): Fix return value when 
5021         passing pre-created valuetype objects to ctors.
5022
5023         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
5024         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
5025         Fixes #74338.
5026
5027 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
5028
5029         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
5030         only used with --security and hides the wrong corlib version error.
5031
5032 2005-03-30  Joshua Tauberer  <tauberer@for.net>
5033
5034         * class.c: Changed mono_class_name_from_token so that types
5035         outside of a namespace don't have an initial period.  Improved
5036         the g_warning message used in _mono_class_get when loading
5037         fails.
5038         * assembly.c: In mono_assembly_load_reference, when an assembly
5039         can't be found, "No such file or directory" is misleading and
5040         unhelpful because a few paths were checked for the presence of
5041         the assembly.  When that happens (ENOENT), display a nicer
5042         message indicating the directories that were searched.  In all
5043         cases, the warning is made easier to read for non-hackers.
5044
5045 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
5046
5047         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
5048         project/solution.
5049         * appdomain.h|domain.c: Removed inline from functions.
5050         * appdomain.c: Reduced warnings when compiling on windows.
5051         * icall.c: Fixed output_debug declaration to gunichar2*.
5052         * mono-config.c: Reduced warnings when compiling on windows.
5053         * rand.c: Added missing "windows.h". Added missing return value.
5054         * rawbuffer.c: Added missing winsock2.h for windows.
5055         * sysmath.h: Added mono-compiler.h header to allow/ease 
5056         compilation with non-GCC compilers.
5057         * threads.c: Fixed declarations to compile with VS.NET C compiler.
5058         Removed cast warnings.
5059
5060         Adapted from the work of J Lothian (for VC6).
5061
5062 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
5063
5064         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
5065         from default_path.
5066
5067 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
5068
5069         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
5070         the 2.0 profile.
5071
5072 2005-03-27  Raja R Harinath  <harinath@gmail.com>
5073
5074         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
5075         has to be in $(exec_prefix).  $(prefix) is for arch-independent
5076         stuff, and it would probably use $(prefix)/share rather than
5077         $(prefix)/lib.
5078
5079 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5080
5081         * console-io.c: added 2 includes that might be missing.
5082
5083 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
5084
5085         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
5086         profile.
5087
5088         * reflection.c (create_custom_attr): Allocate the params array using
5089         alloca so it gets GC tracking.
5090
5091 2005-03-23  Chris Toshok  <toshok@ximian.com>
5092
5093         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
5094         out some spew.
5095
5096 2005-03-24  Raja R Harinath  <rharinath@novell.com>
5097
5098         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
5099         changes to pick up any changes in prefix, etc.
5100
5101 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5102
5103         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
5104         
5105         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
5106         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
5107
5108 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
5109
5110         * class-internals.h object-internals.h class.c reflection.c: Extend the
5111         mono_lookup_dynamic_token () function to return the class of the
5112         token as well. 
5113
5114         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
5115         well. Fixes #73848.
5116
5117 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
5118
5119         * security-manager.c: Skip inheritance checks for intra-corlib
5120         class inheritance and method overrides. This skips a lot of checks
5121         and (anyway) permissions cannot work until corlib is loaded.
5122
5123 2005-03-23  Martin Baulig  <martin@ximian.com>
5124
5125         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
5126         MONO_TYPE_GENERICINST.  
5127
5128 2005-03-23  Martin Baulig  <martin@ximian.com>
5129
5130         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
5131
5132 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5133
5134         * class.c: added locking comments to some functions.
5135         Cache the interface offsets arrays (saves about 20 KB
5136         of runtime memory in a typical app).
5137         Reduce the time overhead in mono_class_setup_supertypes ().
5138
5139 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
5140
5141         * icall.c: speedup and fix leaks in GetMethodsByName and
5142         GetPropertiesByName.
5143
5144 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5145
5146         * reflection.c: some locking fixes.
5147
5148 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5149
5150         * metadata.c: added missing break in case statement.
5151
5152 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
5153
5154         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5155         typedbyref return values. Fixes #73941.
5156
5157 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
5158
5159         * security-manager.c|h: Added demandunmanaged method and 
5160         suppressunmanagedcodesecurity class to MonoSecurityManager.
5161         Renamed aptc class to allowpartiallytrustedcallers.
5162
5163 2005-03-17  Martin Baulig  <martin@ximian.com>
5164
5165         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
5166
5167 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5168
5169         * file-io.c: disabled file async. IO using aio_*. It uses the
5170         threadpool now. Workaround for bug #73718.
5171
5172 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5173
5174         * assembly.h, mono-config.c: added code to deal with bundled configs
5175         for bundled assemblies.
5176
5177 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
5178
5179         * *.c, private.h: cleanup, removing old private.h header file.
5180
5181 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
5182
5183         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
5184         and throw_on_unmappable_char attributes.
5185
5186 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
5187
5188         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
5189         _ProcessName_internal.
5190
5191 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
5192
5193         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
5194         #73631.
5195
5196         * icall.c threads.c threads-types.h: Remove slothash icalls as they
5197         are no longer used.
5198
5199 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
5200
5201         * object.c (compute_class_bitmap): Add support for generics. Fixes
5202         #73527.
5203
5204 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
5205
5206         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
5207
5208 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5209
5210         * filewatcher.c: commented out the code for windows watcher, as we don't
5211         use it (we use the managed implementation instead).
5212
5213 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
5214
5215         * object-internals.h (MonoThread): Remove 'unused1' field.
5216
5217         * appdomain.c: Bump corlib version.
5218
5219         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
5220
5221         * reflection.c (mono_reflection_create_runtime_class): Remove the
5222         AssemblyBuilder.Save optimization since it causes too many problems.
5223
5224 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
5225
5226         * exception.c|h: Added mono_get_exception_reflection_type_load to
5227         create a ReflectionTypeLoadException object.
5228         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
5229         to return NULL is a InheritanceDemand fails during reflection. Updated
5230         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
5231         ReflectionTypeLoadException if an InheritanceDemand fails during 
5232         reflection. Added icall mapping for GetLinkDemandSecurity.
5233         * security-manager.c|h: Added ves_icall_System_Security_
5234         SecurityManager_GetLinkDemandSecurity internal call to return the
5235         class and methods permissions set for a LinkDemand. Removed unused
5236         fields in MonoSecurityManager.
5237
5238 2005-03-10  Martin Baulig  <martin@ximian.com>
5239
5240         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
5241         it's a generic instance.
5242
5243 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
5244
5245         * reflection.c (mono_get_object_from_blob): Applied patch from
5246         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
5247
5248         * class.c (mono_class_is_assignable_from): Another try at fixing 
5249         #73469 without breaking anything.
5250
5251 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
5252
5253         * class.c: (mono_class_is_assignable_from): Revert the last changes
5254         since they don't work with generics.
5255         
5256         * class.c (mono_class_is_assignable_from): Fix build bustage.
5257
5258         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
5259         the managed IsAssignableFrom method. Fixes #73469.
5260
5261         * reflection.c (mono_reflection_call_is_assignable_from): New helper
5262         function.
5263
5264 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
5265
5266         * object.c (mono_load_remote_field_new): Fix returning uninitialized
5267         memory when the remoting callback does not sets the out arguments.
5268         Fixes #73007.
5269
5270         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
5271         by mistake.
5272
5273         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
5274
5275         * object-internals.h (MonoStackFrame): Sync with managed object layout.
5276
5277         * appdomain.c: Bump corlib version.
5278
5279 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
5280
5281         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
5282         function.
5283
5284         * threads.c (mono_thread_attach): Detect threads which are not started
5285         by the GC pthread wrappers.
5286
5287 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
5288
5289         * icall.c: Added new icall for RNG.
5290         * rand.c|h: Added new icall to open the RNG. This allows to share a 
5291         single handle on Linux to access /dev/urandom and fix #73183.
5292
5293 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
5294
5295         * object.c: setting the new vtable in a transparent proxy object must
5296         not change the GC descriptor.
5297
5298 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5299
5300         * object.c: fixed compilation without GCJ support.
5301         * reflection.c: for runtime-created types ensure klass->has_references
5302         is correct (bug #73215).
5303
5304 2005-03-02  Martin Baulig  <martin@ximian.com>
5305
5306         * class.c (mono_class_is_assignable_from): Make this work if
5307         `oklass' is a generic instance; fixes #72831.
5308
5309 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5310
5311         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
5312         with hasthis set.
5313         
5314         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
5315
5316         * marshal.c: Reorganize native->managed marshalling code to also use
5317         the emit_marshal_... functions.
5318
5319 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5320
5321         * object.c: typed allocs have issues with bitmap sizes > 30,
5322         so check for max_set >= 30.
5323
5324 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5325
5326         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
5327         managed code. Fixes #73012.
5328
5329         * metadata.h (MonoMarshalSpec): Add elem_mult field.
5330
5331         * metadata.c reflection.c: Load/Emit elem_mult as well.
5332         
5333         * metadata.h (MonoMarshalSpec): Add comment.
5334
5335         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
5336
5337         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
5338         num_elem to -1 if not given.
5339
5340         * object-internals.h (MonoReflectionMarshal): Add has_size field.
5341
5342         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
5343         given values.
5344
5345 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
5346
5347         * null-gc.c (mono_gc_free_fixed): Was not compilable.
5348
5349 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
5350
5351         * reflection.c (encode_marshal_blob): Encode param_num field as well.
5352
5353         * object-internals.h (MonoReflectionMarshal): Add param_num field.
5354
5355 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5356
5357         * object.c: generalized the reference bitmap creation
5358         and added hooks for the new GC.
5359         * class-internals.c: removed the gc_bitmap field from MonoClass.
5360
5361 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5362
5363         * domain.c: help the compiler to produce better code
5364         in mono_jit_info_table_find ().
5365
5366 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5367
5368         * object.c: make all allocations look typed.
5369
5370 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5371
5372         * socket-io.c: load Mono.Posix if it's not loaded already
5373         (fixes bug#73033).
5374
5375 2005-02-24  Martin Baulig  <martin@ximian.com>
5376
5377         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
5378         * reflection.c (dup_type): Likewise.
5379
5380 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
5381
5382         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
5383         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
5384
5385 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5386
5387         * domain.c, threads.c, object-internals.h: make the critical thread
5388         local vars use the fast access mode (even when we're compiled in
5389         a lib). Provide accessors to be used by the jit during codegen.
5390
5391 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5392
5393         * appdomain.c: Changed hook functios behavior to include
5394         support for the reflection only assemblies. Some icalls were changed
5395         to support the mentioned assemblies too. Signatures of static methods
5396         try_assembly_resolve and real_load now have an additional parameter:
5397         refonly.
5398
5399         * assembly.c: General changes to mono_assembly_ methods to support
5400         reflection only api. Functions mono_assembly_open, mono_assembly_load,
5401         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
5402         suffix, to support an additional gbool parameter to specify whether
5403         the assembli is reflection only or not. Created some new hook functions 
5404         to add support for reflection only assemblies. Signatures of static 
5405         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
5406         have now an additional parameter: refonly.
5407
5408         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
5409         indicating whether the assembly is reflection only or not.
5410
5411         * exception.c: Add mono_get_exception_invalid_operation.
5412
5413         * icall.c: Throw an InvalidOperationException when trying to invoke
5414         a property/method/event, or trying to set/get the value of a field.
5415         Also add an icall to retrieve the ref_only flag to the
5416         MonoReflectionAssembly.
5417
5418 2005-02-23  Chris Toshok  <toshok@ximian.com>
5419
5420         Part of fix for #72827.
5421         * mono-debug.c (mono_debug_add_method): add lexical block data to
5422         the info we write.  Kind of a hack at the moment - we copy the
5423         lexical block info from the MonoDebugMethodInfo to the
5424         MonoDebugMethodJitInfo here, before writing it.
5425         (mono_debug_read_method): read the lexical block info.
5426
5427         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
5428
5429         * debug-mono-symfile.h: add lexical block support.
5430
5431         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
5432         support.
5433
5434 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5435
5436         * loader.c (mono_lookup_pinvoke_call): Fix warning.
5437
5438         * object.c (mono_runtime_free_method): Call mono_free_method () and
5439         put the TODOs there.
5440
5441         * loader.c (mono_free_method): Free up most memory allocated for 
5442         dynamic methods.
5443
5444 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5445
5446         * reflection.c: properly flag a Type argument to a
5447         named custom attr value (bug #72248).
5448
5449 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5450
5451         * reflection.c: reduce code duplication in named custom
5452         attribute encoding.
5453
5454 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
5455
5456         * reflection.c: properly encode custom attrs of type object
5457         (bug #72649).
5458
5459 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5460
5461         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
5462
5463 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
5464
5465         * socket-io.c: load System.dll if it's not loaded already
5466         (bug #72850 and #70477).
5467
5468 2005-02-21  Martin Baulig  <martin@ximian.com>
5469
5470         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5471         generic instances.
5472
5473 2005-02-21  Martin Baulig  <martin@ximian.com>
5474
5475         * reflection.c (mono_image_build_metadata): We also need to
5476         "fixup" the MethodImpl table after we computed the final method
5477         indices.  Call fixup_methodimpl() to do that.
5478         (fixup_methodimpl): New private method.
5479
5480 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5481
5482         * assembly.c: special case mscorlib.dll (bug#72536),
5483         patch from Carlos Alberto Cortez.
5484
5485 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
5486
5487         * threads-types.h threads.c: Fix build bustage.
5488
5489         * threads.c: Use a union for long<->double conversions.
5490
5491         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
5492         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
5493
5494         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
5495         containing the checkpoint call with NOT_TAKEN.
5496         
5497         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
5498         checkpoint before pushing the arguments, so they won't have to be
5499         spilled to stack.
5500
5501 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5502
5503         * domain.c, assembly.c, domain-internals.h: make some data
5504         const and relocation-free.
5505
5506 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
5507
5508         * object.c, appdomain.c, class-internals.h: introduce the
5509         MonoClassRuntimeInfo structure to hold the info needed to
5510         use a class at runtime. Made mono_class_vtable() lock-free
5511         for all the appdomains.
5512
5513 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
5514
5515         * metadata-internals.h, image.c: introduce a per-image mempool to
5516         be used for memory that has the same lifetime as the image.
5517
5518 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
5519
5520         * domain.c: In mono_init_internal(), instead of selecting the first
5521         runtime version supported by an executable, get a list of all
5522         supported versions and select the one for which an mscorlib exists
5523         (since even if the runtime supports a given version, it doesn't mean
5524         that the framework for that version is installed).
5525         Modified get_runtimes_from_exe to support this behavior.
5526         In supported_runtimes, added information about additional system
5527         assembly versions.
5528         
5529         * assembly.c: Added support for more than one system assembly version
5530         per runtime version. Updated the assembly list.
5531         In mono_assembly_remap_version, removed the initial version check,
5532         since we don't know to which version we need to compare until we
5533         get the version set on which the assembly is based.
5534         Moved the code for loading corlib into the new method
5535         mono_assembly_load_corlib(), so it can be used by the initialization
5536         code.
5537         
5538         * domain-internals.h: Updated data structures and added declaration
5539         for mono_assembly_load_corlib.
5540
5541 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5542
5543         * reflection.c (resolve_object): Fix the creation of the signature in 
5544         the SignatureHelper case.
5545
5546         * assembly.c (mono_assembly_remap_version): Fix binary search.
5547         
5548 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
5549  
5550         * class.c: Added inheritance check when a method is overloaded (from a
5551         virtual method or when implementing an interface) and when a class is
5552         inherited. Added functions to set a failure for a class and to 
5553         retreive the exception from a failure.
5554         * class-internals.h: Added fields to MonoClass to keep the exception
5555         information status for inheritance (or other exceptions) to be thrown
5556         later (i.e. not at load time).
5557         * object.c: Throw the inheritance SecurityException when a type is to 
5558         be created with either class or method inheritance violations.
5559         * reflection.c|h: Fix when getting declsec from a class. Removed 
5560         unrequired code for class. Improved sanity in parameter naming.
5561         * security-manager.c|h: Added functions to check for class and method
5562         inheritance.
5563
5564 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5565
5566         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
5567         and has_finalize in dynamic types as well.
5568
5569 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
5570
5571         * culture-info-table.h : fixed currency format for en-GB (and so on).
5572
5573 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
5574
5575         * gc.c: ensure the GC handles never have 0 as a value.
5576
5577 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5578
5579         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
5580         a pointer to a struct to unmanaged code. Fixes #72625.
5581
5582 2005-02-16  Martin Baulig  <martin@ximian.com>
5583
5584         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
5585
5586 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5587
5588         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
5589
5590 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5591
5592         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
5593
5594         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
5595         UnmanagedFunctionPointerAttribute, use it for determining calling convention
5596         etc. Fixes #71471.
5597
5598         * reflection.c (mono_custom_attrs_get_attr): New helper function.
5599
5600         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
5601
5602 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
5603
5604         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
5605         changes to make the current context a field in MonoThread.
5606
5607 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5608
5609         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
5610         the last change.
5611         
5612         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
5613         extracted from mono_marshal_get_native_wrapper.
5614
5615         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
5616         to create wrappers around native functions.
5617
5618         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
5619         delegates for arbitrary function pointers. Fixes #71472.
5620
5621 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5622
5623         * threads.c: cleaned up the code a little.
5624
5625 2005-02-15  Martin Baulig  <martin@ximian.com>
5626
5627         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
5628         the data table.
5629
5630         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
5631         allocate larger chunks if needed.
5632
5633 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5634
5635         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
5636         in by mistake.
5637
5638 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
5639
5640         * domain.c: keep the domains in an array and ensure the domain ids
5641         are kept small, so they can be used as indexes to domain-specific data
5642         with a small memory overhead.
5643
5644 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5645
5646         * icall.c: Handle byref types in Type icalls. Fixes #72544.
5647
5648 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
5649
5650         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
5651
5652 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
5653
5654         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
5655
5656         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
5657         values.
5658
5659         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
5660         
5661 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
5662
5663         * domain-internals.h: add the hashtable here.
5664
5665         * class-internals.h: Remove `info' from MonoMethod
5666
5667         * domain.c: Add a new hashtable, jit_trampoline_hash
5668
5669 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5670
5671         * object.c: don't set the value of static fields
5672         (fixes bug#72494).
5673
5674 2005-02-11  Martin Baulig  <martin@ximian.com>
5675
5676         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
5677         (mono_debug_add_method): Silently ignore the method if it's too big.
5678         (mono_debug_add_type): Likewise.
5679
5680 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
5681
5682         * threads.c, appdomain.c: remove #ifdefs from the code.
5683
5684 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
5685
5686         * metadata-internals.h: Added flags to MonoAssembly to cache the most
5687         common security informations. This allows us to stay in unmanaged code
5688         when doing LinkDemand and it's special cases (except for the first 
5689         time for initialization). The flags a very much used with --security.
5690         * reflection.c|h: Added code to get declarative security attributes 
5691         for LinkDemand and InheritanceDemand. This required to refactor the
5692         existing code for Demand.
5693         * security-manager.c|h: Added new method fields for the special cases
5694         of LinkDemand.
5695
5696 2005-02-10  Martin Baulig  <martin@ximian.com>
5697
5698         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
5699         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
5700
5701 2005-02-10  Martin Baulig  <martin@ximian.com>
5702
5703         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
5704         debugging code; this is almost a complete rewrite.
5705
5706         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
5707
5708 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5709
5710         * domain.c, object.h: expose mono_string_equal () and 
5711         mono_string_hash ().
5712         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
5713         it's implemented in managed code.
5714
5715 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5716
5717         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
5718         lo leak objects between appdomains.
5719
5720 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5721
5722         * assembly.c: old compilers compilation fix from 
5723         robertj@gmx.net (Robert Jordan).
5724
5725 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
5726
5727         * class-internals.h: Little reminder for the future.
5728
5729         * debug-helpers.c: Fix up wrapper_type_names
5730
5731 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5732
5733         * image.c, metadata-internals.h: when loading an image from a file,
5734         mmap all of it and use the same codepaths as when using a
5735         in-memory image: the code is simpler and we use less memory
5736         (both writable and readonly).
5737
5738 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5739
5740         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
5741         API to alloc runtime data structures that need to be tracked by the
5742         GC and contain pointers.
5743         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
5744         make the code more readable and eventually use a different GC.
5745
5746 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
5747
5748         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
5749         for out arguments.
5750         
5751 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
5752
5753         * object.c: In release_type_locks(), don't release the cctor lock
5754         if it has already been released. This fixes a crash in the
5755         thread5 test.
5756
5757 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5758
5759         * gc.c, marshal.c, icall.c: register a delegate for finalization
5760         only when the native function pointer has been allocated for it.
5761
5762 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5763
5764         * object.c: cleaned up some code, allocate objects that are
5765         pointer free with the atomic malloc variant. Allocate memory
5766         for static data from the mempool if it's pointer-free.
5767         Allocate the bounds array at the end of the array data, when needed.
5768         * object-internals.h, object.h: move a private function in a private
5769         header.
5770         * class.c: handle missing case in tracking references in fields.
5771
5772 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5773
5774         * class.c, class-internals.h: keep track if a type has
5775         reference fields in either the instance or static fields.
5776
5777 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
5778
5779         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
5780         and renamed to MonoRuntimeInfo. Added fields to store the expected
5781         framework assembly version. Changed mono_get_framework_version and
5782         mono_get_runtime_version for a single mono_get_runtime_info method.
5783         
5784         * assembly.c: Added method to remap system assembly versions to the
5785         current executing runtime version. Removed old mapping code.
5786         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
5787         
5788         * icall.c, reflection.c: Track api changes.
5789
5790 2005-02-06  Miguel de Icaza  <miguel@novell.com>
5791
5792         * loader.c (method_from_memberref): Improve error reporting,
5793         produce the class name instead of the typeref/typedef index. 
5794
5795 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
5796
5797         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
5798
5799 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5800
5801         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
5802         stdcall and charset name mangling.  Reorganize the code and add
5803         some tracing stuff.
5804
5805 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5806
5807         * monodiet.c: More iters!
5808
5809         * marshal.c: Iter usage.
5810
5811         * icall.c: Iter usage.
5812
5813         * object.c: Use iters.
5814
5815         * debug-helpers.c: More iters
5816
5817 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5818
5819         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
5820         under win32.
5821
5822 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5823
5824         * mono-debug-debugger.c: use iters
5825
5826         * class.c, class-internals.h: mono_class_setup_events is static
5827         now
5828
5829         * All callers: use iters
5830
5831 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5832
5833         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5834         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5835
5836 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5837
5838         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5839
5840         * marshal.h: Add prototypes for ldfld/stfld_remote.
5841
5842         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5843         this is called during startup.
5844         
5845 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5846
5847         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5848         MonoThreadsSync struct private in monitor.c. Changed the way
5849         MonoThreadsSync is allocated so it's faster and there is no
5850         need to keep track of it with a finalizer and it uses less memory.
5851         This also finally allows us to allocate mono objects as ptrfree when
5852         there are no reference fields.
5853
5854 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5855
5856         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5857         disappearing link to the GC interface and use them to simplify
5858         the gchandles code.
5859
5860 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5861
5862         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5863         stfld_remote which call mono_load/store_field_new. This allows methods
5864         calling ldfld/stfld wrappers to be AOTed.
5865
5866         * console-io.c: Include sys/filio.h under solaris.
5867         
5868         * console-io.c: Include curses.h if needed correctly.
5869
5870 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5871         
5872         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5873         method->klass as well.
5874
5875         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5876
5877         * class.c (mono_class_init): Switch on lazy initialization of 
5878         methods.
5879
5880         * class.c (mono_class_get_finalizer): Handle the case when the 
5881         finalizer is inherited.
5882
5883 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5884
5885         * console-io.c: <curses.h> is needed by term.h on solaris.
5886
5887 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5888
5889         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5890         mono_class_setup_properties where possible. Remove this ftn from
5891         the header file, and make it static.
5892
5893 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5894
5895         * loader.c: Add missing setup_... call.
5896
5897         * class.c: Add missing setup_... calls.
5898
5899         * class.c (mono_class_init): Switch on lazy initialization of 
5900         the generic vtable.
5901         
5902         * class.c (mono_class_init): Fix generics broken by the recent changes.
5903
5904         * monodiet.c (handle_type): Add missing setup_... calls.
5905
5906         * class.c: Back out garbage in previous patch.
5907         
5908         * class.c: Add missing setup_... calls.
5909
5910         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5911         mono_class_setup_methods () if possible.
5912
5913         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5914
5915         * class-internals.h (MonoCachedClassInfo): New structure.
5916
5917         * class.c: Initialize properties and events fields of MonoClass lazily.
5918
5919         * class.c: Add infrastructure for lazily initializing the methods and
5920         vtable fields of MonoClass. Not yet used.
5921
5922         * class.c (mono_class_get_finalizer): New helper function.
5923
5924         * class.c: Add infrastructure for loading some class related data from
5925         an AOT file.
5926
5927         * object.c: Add infrastructure for initializing the vtable from data
5928         in the AOT file.
5929
5930         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5931
5932         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5933         appropriate initialization function before accessing parts of the
5934         MonoClass structure.
5935
5936         * marshal.c: Fix warnings.
5937         
5938         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5939
5940         * mono-debug-debugger.c (get_exception_message): Use 
5941         mono_class_get_method_from_name_flags ().
5942
5943 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5944
5945         * reflection.c, appdomain.c: Replace a few manual searches that
5946         Zoltan missed. (Paolo approved this part of my initial patch).
5947
5948 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5949
5950         * profiler.c: disable recording statistical events at report time.
5951
5952 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5953
5954         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5955         to byteswap arrays of enum values, too (bug #72080).
5956
5957 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5958
5959         * appdomain.c (set_domain_search_path): Allow this to be called if
5960         domain->setup is not yet set.
5961
5962         * loader.c (mono_method_get_index): New helper function.
5963
5964         * loader.c reflection.c: Use mono_method_get_index ().
5965
5966         * class.c (mono_class_get_method_from_name_flags): New helper method.
5967
5968         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5969         this.
5970
5971         * class.c (mono_class_get_cctor): New helper method.
5972
5973         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5974         mono_class_get_method () to look up methods.
5975
5976 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5977
5978         * console-io.c: Fix the build, this should work on Windows.
5979
5980 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5981
5982         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5983         be set to null to keep things valid
5984
5985 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5986
5987         * icall.c: added Console 2.0 icalls.
5988         * Makefile.am: added console-io.[ch]
5989         * console-io.[ch]: internal calls for Console 2.0 API.
5990
5991 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5992
5993         * class.c: make sure we consider all the interfaces
5994         when calculating max_interface_id (bug found by
5995         Jeroen Frijters running ikvm).
5996
5997 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5998
5999         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
6000         valuetype fields to null.
6001
6002         * object.c (set_value): Ditto. Fixes #71669.    
6003
6004 2005-01-31  Martin Baulig  <martin@ximian.com>
6005
6006         * metadata.c (mono_metadata_has_generic_params): New public
6007         function; checks whether something is a generic method.
6008
6009 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
6010
6011         * appdomain.c: fix infinite recursion when adding assemblies.
6012
6013 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
6014
6015         * object.c: Fix small typo to return all items for Environment.
6016         GetCommandLineArgs.
6017
6018 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
6019
6020         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
6021         reflection.c: more domain and assembly-unload related fixes
6022         and memory leaks plugs.
6023
6024 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
6025
6026         * 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.
6027
6028 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
6029
6030         * loader.c (mono_method_signature): Make this method lazy
6031         (mono_get_method_from_token): Don't computate the signature here.
6032
6033         Doing this saves quite a bit of memory. I got 90 kb on starting up
6034         monodoc. It should also save some disk reads on startup.
6035
6036         * *: MonoMethod->signature might be NULL now. You *MUST* use
6037         mono_method_signature.
6038
6039 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
6040
6041         * object.c (mono_runtime_get_main_args): Return an array from the
6042         current domain here. Fixes #71938.
6043
6044 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
6045
6046         * monitor.c: formatting changes to comply with the
6047         mono coding style and remove #ifdefs from the code.
6048
6049 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6050
6051         * metadata.c, private.h: remove some unneeded data
6052         and use a more compact representation for table schemas.
6053
6054 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
6055
6056         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
6057         to get a better distribution in hash tables.
6058         * *.c: use mono_aligned_addr_hash() where appropriate.
6059         * assembly.c: make var static.
6060
6061 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
6062
6063         * domain-internals.h: Put MonoJitInfo on a diet.
6064
6065         * domain.c: Fix a warning.
6066
6067 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6068
6069         * gc.c: rework the gc handles code to reuse handles
6070         when freed.
6071
6072 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
6073
6074         * domain.c: fixed long standing bug in mono_string_equal() which
6075         was brought to light with the ldstr changes.
6076
6077 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
6078
6079         * reflection.c: Remove warning by adding missing include for marshal.h
6080
6081 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
6082
6083         * domain.c, object.c: change the ldstr_table to hold
6084         MonoString* as keys: makes the runtime isinterned lookup
6085         faster and simplifies memory management.
6086
6087 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
6088  
6089         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
6090         possible to add imperative security checks before calling the icall.
6091         * reflection.c: Return security attributes on the original MonoMethod
6092         (and not the wrapped one). This fix permissions on icalls.
6093
6094 2005-01-25  Dick Porter  <dick@ximian.com>
6095
6096         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
6097         the check for mktime() support actually test the mktime() return
6098         value.  "Fixes" bug 71682, though the output is still different to
6099         MS.
6100
6101 2005-01-25  Martin Baulig  <martin@ximian.com>
6102
6103         * class.c (mono_class_is_assignable_from): Make this work for
6104         generic instances.
6105
6106 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
6107
6108         * marshal.c (mono_string_utf8_to_builder)
6109         (mono_string_builder_to_utf16): We might not have ownership of the
6110         string. In thise case, we need to create a new buffer.
6111
6112         * object-internals.h (mono_stringbuilder_capacity): sb->str might
6113         be null, in which case, use the default capacity.
6114
6115 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
6116
6117         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
6118         GC events to the profiler.
6119
6120 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
6121
6122         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
6123         if you don't want the GC to run.
6124
6125 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
6126
6127         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
6128         start providing a GC API and keeping different implementations in
6129         their own file.
6130         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
6131
6132 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
6133
6134         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
6135         mmap rather than allocating a huge buffer.
6136         (mono_debug_close_mono_symbol_file): Free the buffer allocated
6137         above.
6138
6139 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
6140
6141         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
6142         and CheckExecutionRights.
6143         * reflection.c|h: Keep the index of the declarative security to be 
6144         used, instead of the pointer, when AOT compiler is used. Also add 
6145         class initialization when requesting demands.
6146         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
6147         CheckExecutionRights. Both properties are now FALSE by default, and
6148         unmodifiable, unless the --security option is used.
6149
6150 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6151
6152         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
6153         reflection.c: properly refcount images and assemblies, many leaks fixed.
6154
6155 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6156
6157         * threadpool.c: increase the timeout for threads in the thread pool to
6158         10s.  Fixes bug #67159.
6159
6160 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
6161
6162         * class-internals.h: Sun's compiler insists on explicit
6163         signed on bit fields to handle then correctly.
6164
6165 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
6166
6167         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
6168         Make the size of the array fit only the number of invalid path
6169         chars that we have.
6170
6171         * class.c (_mono_class_get): Improve the error reporting when a
6172         class referenced is not found, to assist debugging. 
6173
6174 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
6175
6176         * threads.c: fix off-by-one error.
6177         * domain.c: free data allocated in the domain.
6178
6179 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
6180
6181         * reflection.c (mono_method_body_get_object): Fill out exception info
6182         as well.
6183
6184         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
6185         structure.
6186         
6187 2005-01-19  Martin Baulig  <martin@ximian.com>
6188
6189         * loader.c (mono_get_method_constrained): Make this work again.
6190
6191 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
6192
6193         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
6194         guint16 to match the managed side.
6195
6196         * reflection.c (mono_reflection_body_get_object): Fill out local
6197         variables array.
6198
6199         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
6200         as well.
6201
6202         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
6203         'local_var_sig_token'.
6204
6205 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
6206
6207         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
6208         System.Drawing.
6209
6210         * reflection.c (mono_method_body_get_object): Handle abstract and
6211         runtime methods.
6212
6213 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
6214
6215         * marshal.c, loader.c, class-internals.h, reflection.c:
6216         store the emthod data for a wrapper in an array instead of a list.
6217
6218 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
6219
6220         * marshal.c: change the code to allocate memory more
6221         conservatively for method wrappers.
6222
6223 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
6224
6225         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
6226         fields from MonoClass to the marshal info structure where they belong.
6227
6228 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
6229
6230         * class.c, object.c, class-internals.h, marshal.c: rearrange
6231         some fields and tweak some types to lower memory usage.
6232
6233 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
6234
6235         * threads.c (signal_thread_state_change): Handle the case when the
6236         target thread is the current thread.
6237
6238         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
6239
6240         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
6241         emit_ptr_to_object_conv. 
6242
6243         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
6244         marshalling. Fixes #71352.
6245
6246 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
6247
6248         * metadata.h, blob.h: move table enum to blob.h so it can be included
6249         in any header.
6250         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
6251         cut the size of MonoImage/MonoDynamicImage.
6252
6253 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
6254
6255         * profiler.c (mono_profiler_install_simple): Fix default arguments.
6256
6257 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
6258
6259         * reflection.c, reflection.h, icall.c: add a function to check
6260         if an attribute type is defined for a metadata object.
6261
6262 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
6263
6264         * object-internals.h: Added some needed fields from StringBuilder class.
6265         * marshal.c: Set the maxCapacity when creating a StringBuilder.
6266
6267 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
6268
6269         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
6270         threads before shutting down the runtime.
6271
6272         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
6273
6274 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
6275
6276         * object-internal.h, threads.c: implement stacksize and 
6277         parameterized thread start functionality (requires
6278         matching corlib). Marked broken code for later removal.
6279
6280 2005-01-12  Martin Baulig  <martin@ximian.com>
6281
6282         * class-internals.h (MonoGenericClass): Moved the `initialized'
6283         flag to MonoDynamicGenericClass, removed `init_pending'.
6284         (MonoGenericInst): Added `is_reference' flag.
6285
6286 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
6287
6288         * reflection.c (mono_image_create_pefile): Only set the pe_offset
6289         inside the MSDOS header. Fixes #71201.
6290
6291         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
6292         gc thread.
6293         (mono_domain_finalize): Ditto.
6294
6295 2005-01-12  Martin Baulig  <martin@ximian.com>
6296
6297         * class.c (mono_get_shared_generic_class): Use the cache for
6298         non-dynamic generic classes.
6299
6300         * class-internals.h (mono_class_create_generic_2): Removed
6301         function prototype, this function is now static inside class.c.
6302
6303         * class.c (mono_class_create_generic_2): Made this static, only
6304         call it from mono_class_init() and mono_class_setup_parent().
6305         (collect_implemented_interfaces_aux): Call mono_class_init() on
6306         the interfaces we collect.
6307         (mono_class_setup_vtable): Call mono_class_init (class->parent).
6308
6309 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6310
6311         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
6312         it a real thread handle.
6313
6314         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
6315         MonoJitExceptionInfo, since each catch clause needs its own variable.
6316         
6317 2005-01-11  Dick Porter  <dick@ximian.com>
6318
6319         * image.c (mono_pe_file_open): New variant on mono_image_open()
6320         that does not set up the CLI metadata; used for FileVersionInfo so
6321         it can get the data for windows binaries too.
6322         
6323         * process.c (process_read_string_block): Don't read off the end of
6324         the StringTable block.
6325
6326         These both fix bug 70766.
6327
6328 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
6329
6330         * gc.c: set some fields to NULL at GC cleanup time.
6331         * threads.c: if we quit the main thread, call exit ().
6332
6333 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6334
6335         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
6336
6337 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
6338
6339         * threads.h, threads.c, object.c: added accessor and settor for
6340         main_thread. Handle it specially when exiting from it: wait
6341         for other foreground threads to exit.
6342
6343 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
6344
6345         * process.c, verify.c: remove some bloat.
6346
6347 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
6348
6349         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
6350         the calling convention to cdecl under win32.
6351
6352 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
6353
6354         * object.c (mono_object_get_size): New function to get the size of
6355         an object instance.
6356
6357         * profiler.c (simple_allocation): Use above.
6358
6359 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
6360
6361         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
6362         ves_icall_System_AppDomain_getRootDomain (as it's not required to
6363         get an appdomain by it's id and we can't assume the root's id is 0).
6364         * domain-internals.h: Change the function prototype to match.
6365         * icall.c: Change the icall table for AppDomain.
6366
6367 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
6368
6369         * locales.c (string_invariant_compare_char): Only compute
6370         GUnicodeTypes in the case where we need them.  Test for ordinality
6371         first and return if so.
6372
6373         From the commit:
6374
6375                 /*
6376                  * FIXME: here we must use the information from c1type and c2type
6377                  * to find out the proper collation, even on the InvariantCulture, the
6378                  * sorting is not done by computing the unicode values, but their
6379                  * actual sort order.
6380                  */
6381
6382 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6383
6384         * loader.c: for P/Invoke methods, allow the "Internal" shared
6385         library name to refer to the calling process symbol namespace.
6386
6387 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
6388
6389         * Makefile.am: Add the security manager to the build.
6390         * security-manager.c|h: New. Initialization of the security manager.
6391
6392 2005-01-07  Dick Porter  <dick@ximian.com>
6393
6394         * threads.c: 
6395         * monitor.c: Update thread state during Monitor and WaitHandle
6396         waits.  Fixes bug 71031.
6397
6398 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
6399
6400         * reflection.c (property_encode_signature): Correctly handle when the
6401         property has no methods.
6402
6403 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
6404
6405         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
6406         
6407         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
6408         fields from mb, not rmb. Fixes #71017.
6409
6410         * marshal.c (emit_ptr_to_str_conv): Add support for 
6411         ByValTStr -> string conversion. Fixes #71015.
6412
6413         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
6414
6415         * mempool.c (mono_mempool_contains_addr): New helper function.
6416
6417 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6418
6419         * metadata.c (mono_metadata_compute_size): Fix size calculation of
6420         HasSematics encoded fields.
6421         
6422         * metadata.c (mono_type_to_unmanaged): Improve error message for 
6423         invalid string marshalling.
6424
6425         * metadata.c: Fix warnings.
6426         
6427 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6428
6429         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
6430         profiler support.
6431
6432 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6433
6434         * domain.c object.c domain-internals.h: Revert part of r38077 since the
6435         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
6436         tests.
6437
6438 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
6439
6440         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
6441         so methods containing these can be AOTed.
6442
6443 2005-01-03  Martin Baulig  <martin@ximian.com>
6444
6445         * loader.c (find_method): Removed the hack for generic instances.
6446         (method_from_memberref): If our parent is a generic instance, pass
6447         its generic type definition to find_method() and then inflate the
6448         method.
6449         (mono_get_method_constrained): Pass the generic type definition to
6450         find_method() and inflate the method later.
6451
6452         * class-internals.h (MonoStats): Added `generic_class_count'.
6453
6454         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
6455         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
6456
6457         * reflection.c (mono_custom_attrs_from_params): Don't ignore
6458         generic type definitions.
6459
6460 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
6461
6462         * loader.c icall.c: Fix warnings.
6463
6464 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
6465
6466         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
6467         blittable types. Fixes #70864.
6468
6469 2004-12-29  Martin Baulig  <martin@ximian.com>
6470
6471         * icall.c
6472         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
6473
6474         * reflection.c (mono_method_get_object): Create a
6475         "System.Reflection.MonoGenericMethod" for inflated methods; don't
6476         call mono_get_inflated_method().
6477
6478         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
6479
6480 2004-12-27  Martin Baulig  <martin@ximian.com>
6481
6482         * class-internals.h (MonoMethod): Added `is_inflated' flag.
6483         (MonoMethodInflated): Added `inflated' field.
6484
6485         * class.c (mono_class_inflate_generic_method): Don't really
6486         inflate the method here; just set the `is_inflated' flag in the
6487         MonoMethod.
6488         (mono_class_get_inflated_method): Actually inflate the method here
6489         if it's not already inflated; we use the MonoMethodInflated's new
6490         `inflated' field as a cache.
6491
6492 2004-12-26  Martin Baulig  <martin@ximian.com>
6493
6494         * class.c
6495         (inflate_generic_class): Moved some code out of inflate_generic_type().
6496         (mono_class_inflate_generic_method): If we're already inflated,
6497         inflate the context and use the declaring method; ie. make sure
6498         the declaring method of an inflated method is always the generic
6499         method definition.
6500         (mono_class_create_from_typedef): Create
6501         `class->generic_container->context->gclass'.
6502
6503 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
6504
6505         * metadata-internals.h, marshal.c, reflection.c: More
6506         MonoGHashTable->GHashTable.
6507
6508         * domain-internals.h, class.c: Change MonoGHashTable's into
6509         GHashTables for some cases where no gc stuff is used
6510
6511         All users: update apis
6512
6513 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
6514
6515         * metadata.c (builtin_types): Make this `const'. Makes this get
6516         put into the shareable section.
6517         (mono_metadata_init): Casts to make gcc happy.
6518
6519 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
6520
6521         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
6522
6523 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
6524
6525         * icall.c: Added an internal call to retrieve the position and length
6526         of assembly-level declarative security attributes (RequestMinimum, 
6527         RequestOptional and RequestRefuse). This is used by the Assembly class
6528         to re-create the corresponding permission sets.
6529
6530 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
6531
6532         * marshal.c: fix the stelemref wrapper to be type correct
6533         (and faster).
6534
6535 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
6536
6537         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
6538         to do key & 0x7fffffff. Hashtable already does this. It just
6539         results in longer code.
6540
6541 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
6542
6543         * appdomain.c: Bump corlib version.
6544         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
6545         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6546         * reflection.c|h: Add functions to get declarative security infos
6547         (blob position and length) for assemblies, classes and methods.
6548
6549 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
6550
6551         * reflection.c: sort the constant table (bug #70693).
6552
6553 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
6554
6555         * object-internals.h, threads.c, domain.c: add accessors for
6556         the MonoThread and MonoDomain tls keys.
6557
6558 2004-12-18  Martin Baulig  <martin@ximian.com>
6559
6560         * class.c (inflate_generic_type): If we're inflating a generic
6561         instance, set `ngclass->context->container = context->container';
6562         ie. the container we inflated into.
6563
6564         * metadata.c (mono_metadata_parse_generic_param): Reflect above
6565         inflate_generic_type() changes.
6566
6567 2004-12-17  Martin Baulig  <martin@ximian.com>
6568
6569         * class-internals.h
6570         (MonoGenericClass): Replaced `MonoType *generic_type' with
6571         `MonoClass *generic_class'.  Removed `dynamic_info'; if
6572         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
6573         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
6574
6575 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
6576
6577         * exception.c (mono_exception_from_token): New helper function.
6578
6579 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
6580
6581         * assembly.c (mono_assembly_load_with_partial_name): Call 
6582         mono_assembly_loaded before invoking the preload hooks. Fixes
6583         #70564.
6584
6585         * object-internals.h (MonoThread): Change culture_info and 
6586         ui_culture_info into an array.
6587
6588         * threads.c: Cache culture info objects from more than one appdomain.
6589
6590         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
6591         current UI culture.
6592
6593 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
6594
6595         * threads.h threads.c appdomain.c: Clear the culture_info field of
6596         all threads during unloading if they point to an object in the dying
6597         appdomain.
6598
6599 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
6600
6601         * culture-info.h (TextInfoEntry): New struct
6602         * object-internals.h: sync with managed
6603         * locales.c: fill the `text_info_data' field
6604         * culture-info-tables.h: update
6605
6606 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
6607
6608         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
6609         collector.
6610
6611 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
6612
6613         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
6614         (ves_icall_ModuleBuilder_getMethodToken): Ditto
6615
6616 2004-12-12  Martin Baulig  <martin@ximian.com>
6617
6618         * mono-debug-debugger.c (write_type): If we're an enum and the
6619         builtin types have already been initialized, call mono_class_init().
6620
6621 2004-12-11  Martin Baulig  <martin@ximian.com>
6622
6623         * metadata.c (mono_metadata_load_generic_params): Added
6624         `MonoGenericContainer *parent_container' argument; automatically
6625         compute `container->is_method'; pass the correct owner to
6626         get_constraints().      
6627
6628         * reflection.c (compare_genericparam): Sort the GenericParam table
6629         according to increasing owners. 
6630
6631 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
6632
6633         * profiler.c: allow disabling the default profiler.
6634
6635 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
6636
6637         * decimal.c, icall.c: allow disabling System.Decimal support.
6638
6639 2004-12-09  Marek Safar <marek.safar@seznam.cz>
6640
6641         * reflection.c: Add support for null attribute arguments.
6642
6643 2004-12-09  Martin Baulig  <martin@ximian.com>
6644
6645         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
6646         names to get rid of compiler warnings.
6647
6648 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6649
6650         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
6651         mono_marshal_load_type_info (). Fixes #69625.
6652         (mono_marshal_get_ptr_to_struct): Likewise.
6653
6654 2004-12-08  Martin Baulig  <martin@ximian.com>
6655
6656         * mono-debug.h: Bumped version number to 47.
6657
6658         * mono-debug-debugger.c
6659         (mono_debugger_event_handler, mono_debugger_event): Take two
6660         guint64 arguments insteed of a gpointer and a guint32.  
6661
6662 2004-12-08  Martin Baulig  <martin@ximian.com>
6663
6664         * debug-mono-symfile.h
6665         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
6666         `address' to `native_offset'.
6667
6668 2004-12-08  Martin Baulig  <martin@ximian.com>
6669
6670         * class.c (mono_class_create_from_typespec): Only inflate if we
6671         either have `context->gclass' or `context->gmethod'.
6672
6673 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6674
6675         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
6676
6677         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
6678
6679         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
6680
6681         * reflection.c (mono_assembly_get_object): Remove the workaround put
6682         in for the release.
6683         
6684         * appdomain.c: Use the corlib_internal field from MonoAssembly.
6685
6686         * appdomain.c: Bump corlib version.
6687
6688         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
6689         be visible in other appdomains.
6690
6691 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
6692
6693         * threads.c: Interlocked inc and dec for longs were messed up,
6694         use a KISS based impl for this. Fixes 70234
6695
6696 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
6697
6698         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
6699
6700 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6701
6702         * icall.c: fix to follow policy not to allow struct
6703         arguments in icalls.
6704
6705 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6706
6707         * process.c: make the patch that handles spaces in file paths work
6708         on mono/windows too.
6709
6710 2004-12-06  Martin Baulig  <martin@ximian.com>
6711
6712         * class.c (mono_class_create_generic): Call
6713         mono_class_setup_supertypes() if we're dynamic.
6714         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
6715
6716 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
6717
6718         * object-internals.h: Add new fields to MonoThread.
6719
6720         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6721
6722         * icall.c threads-types.h threads.c: Add new icalls.
6723
6724         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
6725
6726         * object-internals.h (MonoReflectionAssembly): Sync object layout with
6727         managed side.
6728
6729         * appdomain.c: Bump corlib version.
6730
6731         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
6732         internal assemblies. Fixes #69181.
6733
6734 2004-12-05  Martin Baulig  <martin@ximian.com>
6735
6736         * class.c (mono_class_inflate_generic_signature): Make this a
6737         no-op if `context' is NULL or we don't have any type parameters;
6738         also copy `sentinelpos'.        
6739
6740 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
6741
6742         * image.c: Add unbox_wrapper_cache.
6743
6744         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
6745
6746         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
6747         function generator.
6748         
6749         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
6750         Fixes #70173.
6751
6752         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
6753         
6754 2004-12-04  Martin Baulig  <martin@ximian.com>
6755
6756         * loader.c (mono_method_get_signature_full): New public function;
6757         like mono_method_get_signature(), but with an additional
6758         `MonoGenericContext *' argument.
6759
6760         * class.c (mono_class_inflate_generic_signature): Formerly known
6761         as inflate_generic_signature(); make this public.
6762
6763 2004-12-04  Martin Baulig  <martin@ximian.com>
6764
6765         * metadata.c
6766         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
6767         instead of a `MonoGenericContainer *'.  
6768         (mono_metadata_parse_array_full): Likewise.
6769         (mono_metadata_parse_signature_full): Likewise.
6770         (mono_metadata_parse_method_signature_full): Likewise.
6771         (mono_metadata_parse_generic_inst): Likewise.
6772         (mono_metadata_parse_generic_param): Likewise.
6773         (mono_metadata_parse_mh_full): Likewise.
6774         (mono_type_create_from_typespec_full): Likewise.
6775
6776 2004-12-03  Martin Baulig  <martin@ximian.com>
6777
6778         * class-internals.h (MonoGenericContainer): Replaced the
6779         `MonoGenericContext * pointer with a `MonoGenericContext'
6780         structure and made it the first element.
6781
6782 2004-12-03  Martin Baulig  <martin@ximian.com>
6783
6784         * class.c
6785         (inflate_generic_type): Set the `context->container' when creating
6786         a new MonoGenericContext.
6787         (mono_class_inflate_generic_method): Likewise.
6788         (mono_class_create_from_typespec): Just use `context->container'
6789         to get the container.
6790
6791         * loader.c (method_from_methodspec): Set `context->parent' from
6792         `context->container' - and if that's a method container, use its
6793         parent.  Also set the `context->container' when creating a new
6794         MonoGenericContext.
6795         (mono_get_method_from_token): Use just `context->container' to get
6796         the container.
6797
6798         * metadata.c (do_mono_metadata_parse_generic_class): Also set
6799         `gclass->context->container'.
6800
6801         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
6802         the `context->container' when creating a new MonoGenericContext.
6803
6804 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
6805
6806         * reflection.c (compare_genericparam): Sort params with identical
6807         owner by their number. Fixes gen-111 on sparc.
6808
6809 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6810
6811         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
6812         around the domain changes.
6813
6814         * appdomain.c (mono_domain_unload): Handle the case when the thread
6815         calling Unload is itself being aborted during unloading. Fixes #70022.
6816
6817         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
6818
6819         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
6820         checkpoint_func as an icall so it gets a wrapper.
6821         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
6822         in the cross-appdomain wrappers too.
6823
6824         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6825
6826         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6827
6828         * reflection.c: Fix some memory leaks.
6829         
6830 2004-12-02  Martin Baulig  <martin@ximian.com>
6831
6832         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6833
6834         * metadata.c (generic_class_cache): New static hashtable.
6835         (mono_metadata_lookup_generic_class): New public method.
6836
6837 2004-12-02  Martin Baulig  <martin@ximian.com>
6838
6839         * class.c (mono_class_create_from_typedef): Call
6840         mono_class_setup_parent() and mono_class_create_mono_type() before
6841         parsing the interfaces.
6842
6843 2004-12-02  Martin Baulig  <martin@ximian.com>
6844
6845         * metadata.c (generic_inst_cache): New static hashtable.
6846         (mono_metadata_lookup_generic_inst): New public function.
6847         (mono_metadata_inflate_generic_inst): New public function.
6848         (mono_metadata_parse_generic_inst): New public function.
6849         (do_mono_metadata_parse_generic_class): Use the new
6850         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6851         since this'll also use the cache.
6852
6853         * reflection.c (mono_reflection_bind_generic_method_parameters):
6854         Use mono_metadata_lookup_generic_inst() to use the new cache.
6855
6856         * class.c (inflate_mono_type): Use
6857         mono_metadata_inflate_generic_inst() to inflate a generic
6858         instance; this'll also use the new cache.
6859
6860         * loader.c (method_from_methodspec): Use
6861         mono_metadata_parse_generic_inst() and
6862         mono_metadata_inflate_generic_inst() rather than parsing it
6863         manually, so we can use the new cache.
6864
6865 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6866
6867         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6868         the wait times out.
6869
6870 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6871
6872         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6873         iter->args based on whether parameters are passed in registers (i.e.
6874         MONO_ARCH_REGPARMS is defined)
6875
6876 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6877
6878         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6879         the exception message. Fixes #70070.
6880         (method_from_methodspec): Fix warnings.
6881
6882 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6883
6884         * process.c: (complete_path) return the path quoted
6885
6886 2004-12-01  Martin Baulig  <martin@ximian.com>
6887
6888         * class-internals.h (MonoGenericInst): New structure.
6889         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6890         `is_open' with `MonoGenericInst *inst'.
6891         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6892         `is_open' with `MonoGenericInst *inst'.
6893
6894 2004-11-30  Martin Baulig  <martin@ximian.com>
6895
6896         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6897
6898         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6899         to `generic_class_cache'.
6900
6901         * metadata.c
6902         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6903         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6904         (mono_generic_inst_is_valuetype): Renamed to
6905         mono_generic_class_is_valuetype().
6906
6907         * class-internals.h
6908         (MonoGenericInst): Renamed to MonoGenericClass.
6909         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6910         (MonoClass): Renamed `generic_inst' to `generic_class'.
6911         (MonoGenericContext): Renamed `ginst' to `gclass'.
6912
6913         * object-internals.h
6914         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6915
6916         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6917         mono_reflection_generic_class_initialize().
6918
6919         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6920         now known as "System.Reflection.MonoGenericClass".
6921         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6922
6923 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6924
6925         * class-internals.h: Added a flag field to MonoClass to cache the
6926         declarative security attributes actions associated with the class.
6927         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6928         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6929         applicable to the JITted method.
6930         * reflection.c|h: Added functions to extract (as flags) which security
6931         actions are available (declaratively) for a method, class or assembly.
6932         * metadata.c|h: Added functions to search the declarative security
6933         table in the metadata.
6934         
6935 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6936
6937         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6938         EXPORTEDTYPES are already in the class name cache, so there is no
6939         need to add extra code here to look at them. Just removes a bit of
6940         cruft.
6941
6942         (ves_icall_System_Environment_get_TickCount): No need for #if
6943         WINDOWS. We already have the code in io-layer.
6944
6945 2004-11-28  Martin Baulig  <martin@ximian.com>
6946
6947         * loader.c
6948         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6949         Fixes gen-112.cs.
6950
6951 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6952
6953         * assembly.c (do_mono_assembly_open): Instead of having a
6954         conditional WITH_BUNDLE, incorporate support for bundles here, by
6955         having a global `bundles' variable holding a pointer to the actual
6956         bundles. 
6957
6958         (mono_register_bundled_assemblies): New API call used by the
6959         bundle code. 
6960
6961         See mkbundle.1 for details.
6962         
6963 2004-11-27  Martin Baulig  <martin@ximian.com>
6964
6965         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6966         the vtable for generic methods.
6967
6968 2004-11-26  Martin Baulig  <martin@ximian.com>
6969
6970         * metadata.c
6971         (mono_metadata_generic_method_hash): New public function.
6972         (mono_metadata_generic_method_equal): Likewise.
6973
6974         * class-internals.h
6975         (MonoGenericContainer): Added `GHashTable *method_hash'.
6976
6977         * reflection.c (ReflectionMethodBuilder): Added
6978         `MonoGenericContainer *generic_container'.
6979         (reflection_methodbuilder_to_mono_method): Don't create a new
6980         MonoGenericContainer each time we're called.
6981         (mono_reflection_bind_generic_method_parameters): Use
6982         `container->method_hash' to cache the results so we don't create a
6983         different method if we're called several times with the same
6984         arguments.
6985
6986         * loader.c (method_from_methodspec): Use the new
6987         `container->method_hash' here, too.
6988
6989 2004-11-26  Martin Baulig  <martin@ximian.com>
6990
6991         * class.c (inflate_generic_signature): Correctly compute
6992         `res->has_type_parameters'.
6993         (mono_class_vtable): Use the `has_type_parameters' flag to
6994         determine whether we're a generic method.
6995
6996         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6997
6998 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6999
7000         * object.c (mono_runtime_run_main): Fix a small memory leak.
7001
7002 2004-11-25  Martin Baulig  <martin@ximian.com>
7003
7004         * class.c (set_generic_param_owner): Fixed the loop.
7005
7006 2004-11-25  Martin Baulig  <martin@ximian.com>
7007
7008         * object.c (mono_class_vtable): Don't create any JIT wrappers for
7009         generic methods.
7010
7011 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
7012
7013         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
7014         names. Fixes #69787.
7015
7016 2004-11-24  Martin Baulig  <martin@ximian.com>
7017
7018         * class.c (mono_class_create_generic_2): If we don't have a
7019         `ginst->parent', inflate `gklass->parent' to get our parent.
7020
7021 2004-11-24  Martin Baulig  <martin@ximian.com>
7022
7023         * reflection.c (compare_genericparam): Correctly sort the
7024         GenericParam table; fixes #69779.
7025
7026 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
7027
7028         * reflection.c: When writing a PE file, don't create a huge
7029         buffer in memory. Just write the arrays we have to the file.
7030         This reduces memory usage.
7031
7032         * metadata-internals.h: MonoDynamicStream pefile is no longer used
7033         globally.
7034
7035 2004-11-17  Martin Baulig  <martin@ximian.com>
7036
7037         * class.c (mono_class_init): Don't setup `class->parent' for
7038         dynamic instances; moved this to mono_class_generic_2().
7039         (mono_class_create_generic): Also set `klass->inited' for dynamic
7040         generic instances.
7041         (mono_class_create_generic_2): Don't do anything for dynamic
7042         generic instances.  Set `klass->parent' here and also call
7043         mono_class_setup_parent() here. 
7044
7045         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
7046         `MonoType *parent' argument; set `ginst->parent' before calling
7047         mono_class_create_generic_2(), so we set the correct parent.
7048
7049 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
7050
7051         * reflection.c: allow getting attributes from ModuleBuilder
7052         (used by ikvm).
7053
7054 2004-11-17  Martin Baulig  <martin@ximian.com>
7055
7056         * class.c (mono_class_create_from_typedef): If a type parameter is
7057         inherited from an outer class, set its owner to that class.
7058
7059 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
7060
7061         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
7062           for (int*) written size. This fixes bug #69592.
7063
7064 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
7065
7066         * icall.c: Added IsAuthenticodePresnet internal call.
7067         * image.c|h: New function that check a MonoImage for an Authenticode
7068         signature in the certificate PE data directory.
7069         * security.c|h: New internal call to ask the runtime if an 
7070         Authenticode signature seems referenced in the PE header.
7071
7072 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
7073
7074         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
7075
7076         * reflection.c (mono_image_create_pefile): Free the assembly streams
7077         after writing out the assembly file.
7078
7079         * object.c (mono_runtime_run_main): Fix small memory leak.
7080
7081         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
7082         property access modifiers. Fixes #69389.
7083
7084 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
7085
7086         * domain.c, object.c, object-internals.h, domain-internals.h,
7087         object.h, marshal.c: keep dynamic code info per domain.
7088
7089 2004-11-15  Martin Baulig  <martin@ximian.com>
7090
7091         * class.c (mono_type_get_name_recurse): Put type arguments in
7092         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
7093         see bug #68387.
7094
7095 2004-11-15  Martin Baulig  <martin@ximian.com>
7096
7097         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
7098         (mono_class_setup_vtable): When computing `the_cname' for a
7099         generic instance, don't include the namespace since we'd otherwise
7100         add it twice.
7101
7102 2004-11-15  Martin Baulig  <martin@ximian.com>
7103
7104         * class.c (mono_class_create_generic): Changed return type to void.
7105         (mono_class_create_generic_2): New public function; setup
7106         `class->method', `class->field' and `class->interfaces' here
7107         instead of in mono_class_init().
7108
7109         * class.h (mono_class_create_generic): Moved to class-internals.h.
7110
7111 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
7112
7113         * reflection.c (mono_image_create_pefile): take a file HANDLE.
7114         rather than writing to memory, write to this file. Right now,
7115         we are just writting into a buffer, and copying that. However
7116         we can avoid the buffer later.
7117
7118         (mono_dynamic_stream_reset): new function
7119
7120         * icall.c, object-internals.h: update for the above.
7121
7122 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
7123
7124         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
7125         have been using gc'd memory. First it is slower, unlikely
7126         the comment in the source code said, secondly, it increases
7127         our footprint to do it in the gc.
7128
7129         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
7130         the method so that it does not have to copy to managed code.
7131
7132 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
7133
7134         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
7135
7136 2004-11-12  Martin Baulig  <martin@localhost>
7137
7138         * reflection.c (mono_image_create_token): Allow generic method
7139         definitions here, since they may appear in an `.override'; see
7140         gen-98/gen-99 for an example.
7141
7142 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
7143
7144         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
7145         #69365.
7146
7147         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
7148         descriptive.
7149
7150 2004-11-11  Martin Baulig  <martin@ximian.com>
7151
7152         * class.c (mono_class_setup_vtable): In an explicit interface
7153         implementation, the method name now includes the arity.
7154
7155 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
7156
7157         * object.c (mono_array_full_copy): Fix warning.
7158
7159 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
7160
7161         * appdomain.c: Removed look_for_method_by_name(). Use the new method
7162         mono_class_get_method_from_name() instead.
7163         
7164         * class-internals.h: Added two new types of wrappers. 
7165         Added MonoRemotingTarget enum. Added new trampoline function type, which
7166         takes an additional MonoRemotingTarget value as parameter, so it is
7167         possible to request a trampoline for a specific target.
7168         
7169         * class.c: Added new mono_class_get_method_from_name() method.
7170         
7171         * class.h: In MonoRemoteClass, we can have now to vtables, one for
7172         general remoting sinks and one specific for cross domain calls.
7173         
7174         * debug-helpers.c: Added new wrapper names.
7175         
7176         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
7177         of a remote class.
7178         
7179         * image.c: Porperly delete value objects form the remoting invoke hashtable.
7180         
7181         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
7182         with several other methods (mono_marshal_get_xappdomain_dispatch,
7183         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
7184         and others) can generate a fast remoting wrapper for cross domain calls.
7185         More information can be found in docs/remoting.
7186         Other changes: Removed mono_find_method_by_name, and used
7187         mono_class_get_method_from_name instead.
7188         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
7189         is stored in the remoting invoke hashtable.
7190         
7191         * marshal.h: published the new method for getting the xdomain wrapper,
7192         and also added a method for getting the adequate wrapper for a given
7193         method and target.
7194         
7195         * object-internals.h, object.c: Added a couple of methods for capying and
7196         cloning arrays.
7197         Modified mono_install_remoting_trampoline, which takes the new remoting
7198         trampoline that has a remoting target as parameter.
7199         mono_class_proxy_vtable now also takes a remoting target as parameter, and
7200         will return the most suitable vtable for the target.
7201         Added mono_remote_class_vtable, which returns the vtable of a remote class
7202         (which can be the normal remoting vtable or the xdomain vtable).
7203         
7204         * threads.c: the xdomain invoke and dispatch wrappers must also be
7205         protected against interruptions.
7206
7207 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7208
7209         * icall.c: use memmove in BlockCopyInternal when the source and
7210         destination arrays are the same.
7211
7212 2004-11-09  Martin Baulig  <martin@ximian.com>
7213
7214         * class-internals.h (MonoGenericContainer): Removed `method' and
7215         `signature', replaced them with `is_method' and `is_signature'
7216         flags.  Added `context'.
7217
7218         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
7219         instead of a `MonoGenericContainer *'.
7220
7221         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
7222         for dynamic type parameters.
7223         (mono_metadata_load_generic_params): Setup `container->context'.
7224
7225         * reflection.c (mono_reflection_setup_generic_class): Setup
7226         `tb->generic_container->context'.
7227         (do_mono_reflection_bind_generic_parameters): Use
7228         mono_class_inflate_generic_type() to correctly inflate types,
7229         rather than using our own hack just for MONO_TYPE_VAR.
7230
7231 2004-11-09  Martin Baulig  <martin@ximian.com>
7232
7233         * class.c (mono_class_inflate_generic_method): Small fix; don't
7234         crash here.
7235
7236         * icall.c
7237         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
7238         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
7239         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
7240         (ves_icall_Type_BindGenericParameters): Likewise.
7241         (ves_icall_Type_get_IsGenericInstance): Likewise.
7242         (ves_icall_Type_GetGenericParameterPosition): Likewise.
7243         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
7244         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
7245         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
7246
7247 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
7248
7249         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
7250         assembly versions and public key tokens. Fixes #69113.
7251
7252 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
7253
7254         * metadata.c: fix bug introduced with the type cache changes
7255         on 2004-11-06.
7256
7257 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
7258
7259         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
7260         the MonoClass pointer instead of the token in exception clauses.
7261         * reflection.c: updates for the above and make the code not depend
7262         on the structure of MonoExceptionClause.
7263
7264 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
7265
7266         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7267         Add support for dynamic assemblies. Fixes #69114.
7268
7269         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
7270
7271 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
7272
7273         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
7274         since most only those methods use it. the code member of
7275         MonoMethodPInvoke was dead, so that can be removed too. Also,
7276         remove inline_count (again, not used), and move slot so that it
7277         can share bits with some other flags. This saves 8 bytes in the
7278         structure and gives us about 50 kb back for mcs helloworld.cs
7279
7280         * *.[ch]: Do naming changes for the above.
7281
7282         * loader.c (mono_method_get_header): Lazily init the header
7283         on first access.
7284         (mono_get_method_from_token): don't init the header here
7285         (mono_free_method): the header may never be allocated
7286
7287         Overall, this saves 150 kb of unmanaged allocations
7288         for mcs helloworld.cs. That accounts for 10% of the unmanaged
7289         memory at runtime.
7290         
7291         * loader.c, loader.h (mono_method_get_header): new accessor.
7292
7293         * *.[ch]: use the above method. Prepares us to lazily load
7294         the header.
7295
7296         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
7297         three warnings, which are actual bugs (see 69206).
7298
7299         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
7300         unused. Saves a cool 4 bytes / method.
7301
7302 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
7303
7304         * metadata.c (builtin_types): Add types for System.Object here.
7305         (mono_metadata_parse_type_full): Cache MonoType*'s that are
7306         for a class or valuetype from klass->this_arg or klass->byval_arg.
7307
7308         On mcs for a hello world, this gets us down from 21836 MonoType's
7309         to 14560.
7310
7311         (mono_metadata_free_type): Account for the above change.
7312
7313 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
7314
7315         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
7316         exception instead of asserting if name is null.
7317         (ves_icall_System_AppDomain_GetData): Ditto.
7318
7319 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
7320
7321         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
7322         EnumBuilder.
7323
7324         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
7325         Return NULL when the domain does not have entry_assembly set.
7326
7327         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
7328         Add a 'resource_modules' argument.
7329         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
7330
7331         * reflection.c (mono_reflection_create_runtime_class): Move setting
7332         of wastypebuilder here, so mono_get_type_object () returns a MonoType
7333         for enums too.
7334
7335         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
7336         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
7337         Throw an ArgumentNullException if 'ptr' is null.
7338
7339         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
7340         assemblies here. Fixes #69020.
7341
7342 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
7343
7344         * reflection.c (build_compressed_metadata): Fix the previous patch for
7345         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
7346         the stack.
7347
7348 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
7349
7350         * assembly.c (mono_assembly_names_equal): Allow a match if one of
7351         the cultures is false. Fixes #69090.
7352
7353         * reflection.c (build_compressed_metadata): Fix invalid memory read 
7354         detected by valgrind.
7355         
7356         * reflection.c (mono_reflection_get_type): Avoid triggering a 
7357         TypeResolve multiple times for the same type. Fixes #65577.
7358
7359 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
7360
7361         * marshal.c: Avoid using ldftn to call managed functions. It is
7362         much slower than just a call.
7363
7364         * reflection.c (mono_module_get_object): free the basename we
7365         allocate here from glib.
7366         
7367         * reflection.c (ensure_runtime_vtable): make sure to free
7368         overrides.  Also, we were allocating an array of MonoMethod not an
7369         array of MonoMethod*.
7370
7371         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
7372
7373         * image.c (mono_image_close): free image->guid here.
7374
7375 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
7376
7377         * reflection.c: Fix some spec conformance issues with the PE file
7378         structures so mcs compiled apps run on the Net 2.0 beta.
7379
7380 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
7381
7382         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
7383         Implement this. Fixes #67264.
7384
7385         * debug-helpers.h debug-helpers.c marshal.c: Move 
7386         mono_find_method_by_name to debug-helpers.c.
7387
7388 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
7389
7390         * object.c (mono_release_type_locks): type_initialization_hash is
7391         a GHashTable.
7392
7393         * reflection.c object.c object-internals.h: Fix warnings.
7394
7395         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
7396         without accessors. Fixes #61561.
7397
7398         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
7399         application base from the root domain if not set. Fixes #65641.
7400         (mono_runtime_init): Fix warning.
7401
7402 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7403
7404         * appdomain.c: call mono_thread_pool_init.
7405         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
7406         of worker threads based on the number of CPUs and the environment
7407         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
7408         for non-windows (windows) systems.
7409
7410 2004-10-27  Chris Toshok  <toshok@ximian.com>
7411
7412         * mono-debug-debugger.c (write_class): don't call mono_class_init
7413         here, as even with the check for (!klass->init_pending), we get
7414         into a situation where we're hitting cycles in class
7415         initialization.  Fixes #68816.
7416
7417 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
7418
7419         * image.c: Avoid overwriting values in the loaded_images_hash when an
7420         assembly is loaded multiple times. Fixes #61152.
7421
7422         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
7423         so multiple satellite assemblies for the same name can be loaded.
7424         Fixes #68259.
7425
7426         * mono_domain_assembly_preload: Actually return the loaded assembly, 
7427         not NULL.
7428
7429         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
7430         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
7431
7432         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
7433         pending finalizers are not invoked after the appdomain has been 
7434         unloaded. Fixes #67862.
7435
7436 2004-10-22  Martin Baulig  <martin@ximian.com>
7437
7438         * mono-debug-debugger.c
7439         (mono_debugger_runtime_invoke): Don't box valuetypes.
7440
7441 2004-10-22  Chris Toshok  <toshok@ximian.com>
7442
7443         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
7444         don't hide private methods.
7445
7446 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
7447
7448         * icall.c: Allows the runtime to "share" (when known) the public key
7449         token of an assembly. This avoid the need to recalculate the token 
7450         (from the public key) in managed code.
7451
7452 2004-10-21  Chris Toshok  <toshok@ximian.com>
7453
7454         * debug-helpers.c (append_class_name): argh, revert last patch.
7455         
7456 2004-10-21  Chris Toshok  <toshok@ximian.com>
7457
7458         * debug-helpers.c (append_class_name): use '+' as the delimiter,
7459         not '/', so that it matches what the debugger uses to look up
7460         methods.
7461
7462 2004-10-21  Martin Baulig  <martin@ximian.com>
7463
7464         * mono-debug-debugger.c (mono_debugger_throw_exception): New
7465         public method; this is called each time an exception is thrown and
7466         allows the debugger to use exception catch points.
7467
7468 2004-10-21  Martin Baulig  <martin@ximian.com>
7469
7470         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
7471         the stack pointer and the exception object in some struct and pass
7472         that to the debugger.
7473
7474 2004-10-21  Chris Toshok  <toshok@ximian.com>
7475
7476         * mono-debug-debugger.c (do_write_class): add instance/static
7477         event support.  We don't expose "raise" or "other" yet.
7478         (event_is_static): new method.
7479
7480 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
7481
7482         * mono-debug-debugger.c
7483         (mono_debugger_handle_exception): Remove
7484         bogus return value for fussy compilers.
7485
7486 2004-10-20  Martin Baulig  <martin@ximian.com>
7487
7488         * mono-debug-debugger.c
7489         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
7490         (mono_debugger_handled_exception): Likewise.
7491
7492 2004-10-20  Martin Baulig  <martin@ximian.com>
7493
7494         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7495         MONO_DEBUGGER_EVENT_EXCEPTION.
7496
7497         * mono-debug-debugger.c (mono_debugger_handle_exception): New
7498         public function to send the debugger a notification for an
7499         exception and inform it about a catch/finally clause.
7500
7501 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
7502
7503         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
7504         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
7505         fix 2.95 build. 
7506
7507         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
7508
7509 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
7510
7511         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
7512         marshalled as [In,Out]. Fixes #58325.
7513
7514 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
7515
7516         * reflection.c (mono_method_body_get_object): Implement some fields.
7517
7518 2004-10-12  Martin Baulig  <martin@ximian.com>
7519
7520         * reflection.c (mono_reflection_bind_generic_parameters): Small
7521         fix, correctly retrieve our parent from a generic instance.
7522
7523 2004-10-12  Martin Baulig  <martin@ximian.com>
7524
7525         * metadata.c (mono_metadata_generic_param_equal): We always have
7526         an owner.
7527
7528         * class.c
7529         (mono_class_from_generic_parameter): We need to have an owner.
7530         (my_mono_class_from_generic_parameter): Likewise.
7531
7532         * reflection.c (mono_reflection_setup_generic_class): Renamed to
7533         mono_reflection_create_generic_class() and added a new
7534         mono_reflection_setup_generic_class().  
7535         (mono_reflection_initialize_generic_param): If we're a nested
7536         generic type and inherited from the containing class, set our
7537         owner to the outer class.
7538
7539 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
7540
7541         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
7542
7543         * reflection.c (mono_method_body_get_object): New function to create
7544         a MethodBody object.
7545
7546         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
7547
7548 2004-10-11  Martin Baulig  <martin@ximian.com>
7549
7550         * metadata.c (_mono_metadata_type_equal): Renamed to
7551         do_mono_metadata_type_equal() and made static.
7552
7553 2004-10-11  Martin Baulig  <martin@ximian.com>
7554
7555         * appdomain.c: Bump corlib version number to 28.
7556
7557 2004-10-10  Martin Baulig  <martin@ximian.com>
7558
7559         * class-internals.h
7560         (MonoGenericInst): Added `MonoGenericContainer *container'.
7561         (MonoGenericMethod): Likewise.
7562         (MonoGenericContext): Likewise.
7563         (MonoGenericParam): Added `MonoGenericContainer *owner'.
7564
7565         * metadata.c
7566         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
7567         (do_mono_metadata_parse_generic_inst): Likewise.
7568         (mono_metadata_parse_type_full): New public method.  This is the actual
7569         mono_metadata_parse_type() implementation - with an additional
7570         `MonoGenericContainer *' argument.
7571         (mono_metadata_parse_array_full): Likewise.
7572         (mono_metadata_parse_signature_full): Likewise.
7573         (mono_metadata_parse_method_signature_full): Likewise.
7574         (mono_metadata_parse_mh_full): Likewise.
7575         (mono_type_create_from_typespec): Likewise.
7576         (mono_metadata_interfaces_from_typedef_full): New public method;
7577         this is similar to the other _full() methods, but we take a
7578         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
7579         (mono_metadata_parse_generic_param): Take an additional
7580         `MonoGenericContainer *' argument and lookup the MonoGenericParam
7581         from that container.
7582         (mono_metadata_generic_param_equal): New static method to compare
7583         two type parameters.
7584         (_mono_metadata_type_equal): New static method; takes an
7585         additional `gboolean signature_only' argument - if true, we don't
7586         compare the owners of generic parameters.
7587         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
7588         with a TRUE argument - do a signature-only comparision.
7589
7590         * loader.c: Use the new _full() methods and pass the
7591         MonoGenericContainer to them.
7592
7593         * object-internals.h (MonoReflectionTypeBuilder): Added
7594         `MonoGenericContainer *generic_container' field.
7595         (MonoReflectionMethodBuilder): Likewise.
7596
7597 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
7598
7599         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
7600         case initial images of dynamic assemblies.
7601
7602         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
7603
7604         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
7605
7606         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
7607         length of event->other array.
7608         (typebuilder_setup_events): Ditto.
7609
7610         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
7611         'assembly_by_name' and add an 'assemblies' list.
7612
7613         * assembly.h assembly.c: Add a new search hook for determining whenever
7614         an assembly is already loaded. Use this instead of searching in the
7615         loaded_assemblies list.
7616
7617         * domain.c appdomain.c: Implement the new search hook so loaded 
7618         assemblies are now scoped by appdomain. Fixes #67727.
7619
7620 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
7621
7622         * threads.c (mono_thread_attach): Initialize synch_lock field so
7623         mono_thread_detach works again.
7624
7625         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
7626         'lib' too. Fixes #63130.
7627
7628 2004-10-06  Jackson Harper  <jackson@ximian.com>
7629
7630         * culture-info-tables.h: regenerated.
7631
7632 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
7633
7634         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
7635         implemented by other interfaces in the result. Fixes #65764.
7636         
7637         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7638         Handle unloadable modules without crashing.
7639
7640         * image.c (load_modules): Revert the previous patch since modules must
7641         have a fixed index inside the array.
7642         
7643         * image.c (load_modules): Don't include native modules in the modules
7644         array.
7645
7646 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
7647
7648         * reflection.h: Add param_defaults field.
7649
7650         * reflection.c: Add support for parameter defaults in dynamic methods.
7651         Fixes #64595.
7652
7653         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
7654         an empty string when a type has no namespace. Fixes #64230.
7655
7656 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
7657
7658         * tabledefs.h: Added "internal" security actions to support non-CAS
7659         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
7660         Note: they do not seems to be used anymore in 2.0 (new metadata format)
7661
7662 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7663
7664         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
7665         constructor of abstract class. Fixes #61689.
7666
7667 2004-10-04  Martin Baulig  <martin@ximian.com>
7668
7669         * class-internals.h (MonoGenericContainer): New type.
7670         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
7671         `MonoGenericContainer *generic_container'.
7672         (MonoClass): Replaced `gen_params' and `num_gen_params' with
7673         `MonoGenericContainer *generic_container'.
7674
7675         * metadata.c (mono_metadata_load_generic_params): Return a
7676         `MonoGenericContainer *' instead of a `MonoGenericParam *';
7677         removed the `num' argument.
7678
7679 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
7680
7681         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
7682         for dynamic images.
7683
7684         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
7685         machine fields.
7686
7687         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
7688
7689         * reflection.c: Save pe_kind and machine values into the generated
7690         image file.
7691
7692         * appdomain.c: Bump corlib version number.
7693
7694         * object-internals.h: Reorganize layout of LocalBuilder.
7695
7696         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
7697         New helper function.
7698
7699         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
7700         created MonoType for dynamic types. Fixes #66180.
7701
7702 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
7703
7704         * threadpool.c: the ares hashtable needs a critical section around it.
7705         this prevents some nasty segfaults
7706
7707 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
7708
7709         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
7710         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
7711         bug 67324).
7712         
7713 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7714
7715         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
7716         
7717 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
7718
7719         * image.c: Always canonicalize image file names, to avoid loading
7720         the same assembly twice when referenced using a relative path.
7721
7722 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7723
7724         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
7725
7726         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
7727
7728         * marshal.c: Fix warnings.
7729
7730 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
7731
7732         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
7733         attempting to marshal the delegate_trampoline as the method_addr.
7734         This patch has a static hashtable of marshalled delegates so that 
7735         we can map delegate_trampoline addresses back to delegates.  This
7736         allows a delegate passed to managed code to be passed back into native
7737         code.  Fixes #67039
7738
7739 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7740
7741         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
7742
7743         * reflection.c (method_encode_code): Align method headers properly.
7744         Fixes #66025.
7745
7746 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7747
7748         * marshal.c: In the runtime invoke wrapper, reset the abort
7749         exception if it is cached. This avoids the automatic rethrowal of 
7750         the exception after the catch of the wrapper. Also check for pending
7751         interruptions before calling the managed method. This is done using
7752         the new method emit_thread_force_interrupt_checkpoint, since the
7753         normal checkpoint method is ignored when running the invoke wrapper.
7754         * object.c: If the abort exception is rethrown, set the abort_exc
7755         field of the thread, so it will be rethrown aftere every catch.
7756         * threadpool.c: Only run an interruption checkpoint if what has been
7757         requested is a stop of the thread (aborts will be ignored).
7758         * threads.c: By default, a thread will now never be interrumped while
7759         running the runtime invoke wrapper (this ensures that runtime_invoke
7760         will always return to the caller if an exception pointer is provided).
7761         There is a new special method mono_thread_force_interruption_checkpoint()
7762         to force an interruption checkpoint even if running a protected
7763         wrapper, which is used by the same runtime invoke wrapper to do a check
7764         at a safe point.
7765
7766 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7767
7768         * object.c, object-internals.h: Implemented mono_release_type_locks,
7769         which releases the cctor locks held by a thread.
7770         * threads.c, threads.h: In thread_cleanup, release cctor locks held
7771         by a thread. Added mono_thread_exit() method to be used to safely stop
7772         a thread.
7773
7774 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7775
7776         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7777         Move null check before dereference.  Avoid indexing beyond the end
7778         of the 'modules' array.
7779
7780 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7781
7782         * metadata-internals.h (MonoImage): Add module_count field.
7783         * image.c (load_modules): Set image->module_count.
7784         (mono_image_load_file_for_image): Use image->module_count.
7785         * reflection.c (mono_image_load_module): Append to image->modules array 
7786         of dynamic assembly.
7787         (mono_module_get_object): Fix loop to actually increment index.
7788         Use image->module_count.
7789         * assembly.c (mono_assembly_load_references): Use image->module_count.
7790         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7791         Likewise.
7792
7793 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7794
7795         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
7796         Avoid assert on generic types.
7797
7798 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
7799
7800         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
7801
7802         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
7803
7804         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
7805         function to convert a MarshalSpec structure to its managed counterpart.
7806
7807         * reflection.c: Fix warnings.
7808         
7809         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
7810         field.
7811
7812         * icall.c (mono_create_icall_signature): Fix build.
7813
7814 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
7815
7816         * icall.c: Add MakePointType icall.
7817
7818         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
7819         warnings.
7820
7821 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7822
7823         * threadpool.c: reuse allocated slots in the queue.
7824
7825 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7826
7827         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7828
7829         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7830
7831         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7832         previous change.
7833
7834         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7835         ThrowOnUnmappableChar.
7836
7837         * icall.c (ves_icall_Type_GetPacking): New icall.
7838
7839 2004-09-24  Martin Baulig  <martin@ximian.com>
7840
7841         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7842
7843 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7844
7845         * appdomain.c:
7846         (mono_domain_set): allow setting a domain that is being unloaded.
7847         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7848         being unloaded.
7849
7850 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7851
7852         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7853         the GetCustomAttributes icall.
7854
7855 2004-09-23  Martin Baulig  <martin@ximian.com>
7856
7857         * object-internals.h (MonoReflectionGenericParam): Replaced
7858         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7859         with `guint32 attrs'.
7860
7861 2004-09-23  Martin Baulig  <martin@ximian.com>
7862
7863         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7864
7865 2004-09-23  Martin Baulig  <martin@ximian.com>
7866
7867         * object-internals.h (GenericParameterAttributes): New enum.
7868
7869 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7870
7871         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7872         
7873         * class.c (init_events): Fill out event->other field.
7874
7875         * class.c: Fix warnings.
7876
7877         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7878
7879 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7880
7881         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7882         walk which doesn't supply the IL offset.
7883
7884 2004-09-22  Martin Baulig  <martin@ximian.com>
7885
7886         * reflection.c (mono_reflection_setup_internal_class): If we're
7887         System.ValueType, System.Object or System.Enum, set
7888         `klass->instance_size' and create the vtable.
7889         (mono_reflection_create_internal_class): If we're an enum type,
7890         get the base class from our current corlib.
7891
7892 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7893
7894         * reflection.h (MonoResolveTokenError): New type.
7895
7896         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7897         icall.
7898
7899         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7900
7901 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7902
7903         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7904         Support also calling constructors, but only for already allocated objects.
7905
7906 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7907
7908         * reflection.c (type_get_qualified_name): If the klass is null
7909         return the typename to avoid a NullRefEx.
7910         (encode_cattr_value): Get the qualified name of the boxed type,
7911         not the underlying enumtype.  Fixes #62984.
7912
7913 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7914
7915         * marshal.c: Fix problems with previous checkin.
7916
7917 2004-09-21    <vargaz@freemail.hu>
7918
7919         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7920         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7921
7922         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7923
7924 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7925
7926         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7927         should only return a type for pointers, arrays, and passbyref types.
7928         Fixes bug #63841.
7929
7930 2004-09-21  Martin Baulig  <martin@ximian.com>
7931
7932         * domain.c (mono_debugger_check_runtime_version): New public
7933         function.
7934
7935         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7936
7937 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7938
7939         * reflection.c: Added missing sort to the declarative security 
7940         attributes table. MS implementation stops seeing the attributes if the
7941         token number regress in the table (as shown by ildasm and permview).
7942
7943 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7944
7945         * object-internals.h (MonoReflectionModule): Add 'token' field.
7946         
7947         * reflection.c (mono_reflection_get_token): Add support for Module
7948         and Assembly.
7949         (mono_module_get_object): Set 'token' field.
7950         (mono_module_file_get_object): Set 'token' field.
7951
7952         * icall.c: Add new Assembly and Module icalls.
7953
7954         * appdomain.c: Bump corlib version.
7955
7956 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7957
7958         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7959         tokens of metadata objects.
7960
7961         * reflection.h reflection.c (mono_reflection_get_token): New function
7962         to obtain the token of a metadata object.
7963
7964         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7965
7966 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7967
7968         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7969         
7970         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7971
7972 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7973
7974         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7975         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7976         AssemblyBuilder to access the permissions set in the class lib.
7977         * reflection.c: Added security attributes encoding step in 
7978         mono_image_build_metadata.
7979         * tabledefs.h: Added new security actions defined in 2.0:
7980         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7981
7982 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7983
7984         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7985         macro parameter.
7986
7987 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7988  
7989         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7990           finalized. There where random SIGSEVs at program termination, when
7991           an object being finalized was trying to do a string comparison and
7992           the current culture was already finalized.
7993  
7994 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7995
7996         * threads.c: call thread_cleanup before finishing the thread if we get
7997         there.
7998
7999 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
8000
8001         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
8002         assemblies from the parent. Fixes #65665.
8003
8004 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
8005
8006         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
8007         modifiers.
8008
8009 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
8010
8011         * reflection.h: add prototype for mono_get_dbnull_object
8012         * reflection.c: add prototypes for get_default_param_value_blobs 
8013         and mono_get_object_from_blob for fussier compilers
8014
8015 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
8016  
8017         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
8018         false deadlock checks in class initialization.
8019  
8020 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
8021
8022         * image.c (mono_image_addref): Fix comment.
8023
8024         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
8025         possible.
8026
8027 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
8028
8029         * reflection.c (mono_param_get_objects): Modified to return
8030         ParameterInfo.DefaultValue object.
8031
8032         (get_default_param_value_blobs):
8033         (mono_get_object_from_blob):
8034         (mono_get_dbnull_object): New helper routines. 
8035
8036         * object.c (mono_get_constant_value_from_blob): New helper routine
8037         carved out from get_default_field_value ()
8038
8039         * object-internals.h (mono_get_constant_value_from_blob): Added
8040         function declaration.
8041
8042 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
8043
8044         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
8045         referenced assemblies. Fixes #62135.
8046
8047         * exception.h exception.c (mono_get_exception_file_not_found2): New
8048         helper function.
8049
8050 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
8051
8052         * class.h class.c: Add mono_type_get_underlying_type ().
8053
8054 2004-09-09  Geoff Norton <gnorton@customerndna.com>
8055
8056         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
8057         Fix GetTypes() to support dynamically created assemblies.
8058
8059 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
8060
8061         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
8062         
8063         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
8064         previous patch.
8065
8066         * reflection.h reflection.c loader.c: Allow dynamic construction of
8067         pinvoke methods. Fixes #65571.
8068         
8069         * reflection.c (mono_reflection_get_type): Revert previous change since
8070         it causes regressions.
8071
8072 2004-09-08  Martin Baulig  <martin@ximian.com>
8073
8074         * class.c (class_compute_field_layout): Don't call
8075         mono_class_layout_fields() for open generic instances.
8076
8077 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
8078         * threads.c appdomain.c: fix typo in GC macro
8079
8080 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8081
8082         * threads.c: don't call mono_thread_detach() in start_wrapper(),
8083         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
8084
8085 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
8086
8087         * image.c (mono_image_close): Applied patch from 
8088         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
8089         assembly is loaded multiple times from data.
8090         
8091         * image.c (mono_image_open): Fix warning.
8092
8093 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8094
8095         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
8096         once. Fixes #58334.
8097         
8098         * reflection.c (mono_reflection_create_runtime_class): Initialize
8099         klass->nested_classes. Fixes #61224.
8100
8101 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8102
8103         * threads.c: sched_yield() on exit, to allow threads to quit.
8104
8105 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8106
8107         * object.c (mono_unhandled_exception): Remove leftover debug code.
8108
8109 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
8110
8111         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
8112
8113 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
8114
8115         * marshal.c (emit_marshal_array): Really null terminate string arrays.
8116         
8117         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
8118
8119 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8120
8121         * marshal.c (emit_marshal_array): Null terminate string arrays.
8122         
8123         * marshal.c (raise_auto_layout_exception): Fix warning.
8124
8125         * reflection.c (mono_param_get_objects): Initialize the default value
8126         with DBNull.Value, not null. Fixes #62123.
8127
8128 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
8129
8130         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
8131         throw an exception with a cute explanation.
8132
8133 2004-09-06  Dick Porter  <dick@ximian.com>
8134
8135         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
8136         Close the new process's thread handle, as we don't use it.  The
8137         handle stays around forever otherwise.
8138
8139 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8140
8141         * object.c (arith_overflow): Fix warning.
8142
8143         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
8144         calling conventions in method refs. Fixes #65352.
8145
8146         * reflection.c: Fix warnings.
8147
8148 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
8149
8150         * icall.c: Add a new icall for Array.Clear
8151
8152 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
8153
8154         * object.c: When allocating an array, we have to throw
8155         an overflow exception if any of the lengths are < 0.
8156
8157 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
8158
8159         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
8160         properly. Also move implementation of string array marshalling to 
8161         managed code. Fixes #42316.
8162
8163 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8164
8165         * assembly.c: provide more information when loading an assembly fails.
8166
8167 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8168
8169         * filewatcher.c: don't expect the development fam package to be
8170         installed.
8171
8172 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
8173
8174         * marshal.c: Make a copy of the signature cookie since it will be
8175         freed by the caller.
8176         
8177         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
8178
8179         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
8180
8181         * metadata.c (mono_metadata_free_marshal_spec): New function to free
8182         marshal specs.
8183
8184         * marshal.c: More refactoring.
8185         
8186         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
8187         smaller functions.
8188
8189 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
8190
8191         * object.c: In mono_message_invoke, fill the output parameter array after
8192           calling the managed method (it was done before the call). This fixes
8193           bug #59299.
8194
8195 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
8196
8197         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
8198         as well.
8199
8200 2004-09-02  Martin Baulig  <martin@ximian.com>
8201
8202         * class.c (mono_class_instance_size): Don't allow generic type
8203         definitions or open generic instances.
8204         (mono_class_array_element_size): If we're a value type, call
8205         mono_class_instance_size() on the original class.
8206
8207         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
8208         handle generic instances.
8209
8210         * mono-debug-debugger.c (write_type): Handle generic instances
8211         like classes.
8212
8213 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
8214
8215         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
8216         the allocation request fails. Fixes #65089.
8217
8218         * object.c (mono_runtime_free_method): Do not call mono_free_method.
8219         
8220         * object.c (mono_runtime_free_method): New function to free a dynamic
8221         method.
8222
8223         * marshal.c (mono_delegate_free_ftnptr): New function to free the
8224         delegate trampoline.
8225
8226         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
8227         with hasthis as dynamic,
8228
8229         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
8230
8231         * domain.c (mono_jit_info_table_remove): New function to remove an
8232         entry from the jit info table.
8233
8234         * class-internals.h (MonoMethod): Add 'dynamic' field.
8235
8236         * loader.c: Fix warnings.
8237
8238 2004-09-01  Martin Baulig  <martin@ximian.com>
8239
8240         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
8241         instead of mono_debugger_lock() because the latter one is a no-op
8242         unless running in the debugger.
8243
8244 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
8245
8246         * class.c (class_compute_field_layout): Classes with auto-layout or
8247         reference fields are not blittable.
8248         
8249 2004-09-01  Dick Porter  <dick@ximian.com>
8250
8251         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
8252         mono_image_get_filename() to get the assembly location.
8253
8254         * icall.c:
8255         * metadata.h: Fix compile warnings
8256
8257 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
8258
8259         * class.c (class_compute_field_layout): System.Object is blittable.
8260
8261         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
8262         as in/out. Fixes #59909.
8263
8264 2004-09-01  Martin Baulig  <martin@ximian.com>
8265
8266         * metadata.h (MONO_TYPE_ISREFERENCE): Call
8267         mono_metadata_generic_inst_is_valuetype() if we're a generic
8268         instance to check whether our underlying type is a reference type.
8269
8270 2004-09-01  Martin Baulig  <martin@ximian.com>
8271
8272         * metadata.c (mono_type_size): If we're a generic instance, call
8273         mono_class_value_size() for value types.
8274
8275 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
8276
8277         * marshal.c: Implement more custom marshalling functionality. Fixes
8278         #64915.
8279
8280 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8281
8282         * mono-debug.c, debug-mono-symfile.c: add some locking love.
8283
8284 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
8285
8286         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
8287
8288         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
8289
8290         * icall.c: Fix some warnings.
8291
8292         * threads.c (abort_appdomain_thread): Fix unref errors.
8293         (mono_thread_current): Fix THREAD_DEBUG define.
8294
8295 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
8296
8297         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
8298
8299         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
8300
8301 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
8302
8303         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
8304         string arrays.
8305
8306 2004-08-28  Martin Baulig  <martin@ximian.com>
8307
8308         * metadata.c
8309         (mono_metadata_generic_inst_is_valuetype): New public function.
8310
8311         * metadata.h (MONO_TYPE_ISSTRUCT): Call
8312         mono_metadata_generic_inst_is_valuetype() if we're a generic
8313         instance to check whether our underlying type is a valuetype.
8314
8315 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
8316
8317         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
8318         #63768.
8319
8320 2004-08-25  Martin Baulig  <martin@ximian.com>
8321
8322         * loader.c (mono_get_method_from_token): Abstract methods can also
8323         be generic and thus have type parameters.
8324
8325         * metadata-internals.h
8326         (MonoDynamicImage): Added `GPtrArray *gen_params'.
8327
8328         * reflection.c (mono_image_get_generic_param_info): Don't create a
8329         metadata row, just add an entry to the `gen_params' array.
8330         (build_compressed_metadata): Sort the `gen_params' array and then
8331         actually create the metadata.
8332
8333 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8334
8335         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
8336
8337 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
8338
8339         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
8340
8341 2004-08-24  Martin Baulig  <martin@ximian.com>
8342
8343         * class.cs (mono_class_is_subclass_of): Like an interface, a
8344         generic instance also derives from System.Object.
8345
8346 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
8347
8348         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
8349         custom modifiers to be in any order. Fixes #61990.
8350
8351 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
8352
8353         * object.c: Register mono_object_new_fast icall.
8354         
8355         * object.c (mono_class_get_allocation_ftn): Return to calling
8356         mono_object_new_fast, since it seems faster to compute the object 
8357         size in unmanaged code than passing it as a parameter.
8358
8359         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
8360
8361         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
8362         this function with Boehm as the oom handler, so we don't have to check
8363         the result of GC_malloc.
8364
8365         * object.c: Remove checks for oom.
8366
8367         * object.h object.c (mono_class_get_allocation_ftn): New function to
8368         return the icall which can be used to allocate an instance of a given
8369         class. 
8370
8371         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
8372
8373         * class-internals.h: Add 'enabled' field.
8374
8375 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
8376
8377         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
8378
8379 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
8380         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
8381         value 0x0010.
8382
8383 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
8384
8385         * appdomain.c: use the Tls function for appdomain too,
8386         at Zoltan's request. Actually return in mono_context_get
8387
8388         * appdomain.c, profiler.c, threads.c: use __thread
8389
8390 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
8391
8392         * appdomain.c threads.c: Call GC_CreateThread on windows.
8393
8394         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
8395         multiple libraries since this don't work on windows.
8396
8397 2004-08-18  Martin Baulig  <martin@ximian.com>
8398
8399         * class-internals.h
8400         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
8401         MonoMethodHeader.
8402
8403         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
8404         MonoMethodNormal since we also need it for abstract and interface
8405         methods.
8406
8407         * reflection.c
8408         (build_compressed_metadata): Sort the GenericParam table.
8409         (mono_image_create_token): Added `gboolean create_methodspec'
8410         argument; this is false when generating a MethodImpl token.
8411         (reflection_methodbuilder_to_mono_method): Abstract and interface
8412         methods may also have generic parameters.
8413
8414 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
8415
8416         * appdomain.c: thread local alloc
8417
8418 2004-08-17  Martin Baulig  <martin@ximian.com>
8419
8420         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
8421
8422         * icall.c
8423         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
8424         argument.
8425
8426         * class.c (mono_type_get_full_name): New public function.
8427         (mono_type_get_name): Don't include the type arguments.
8428
8429 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
8430
8431         * Makefile.am: Build static versions of libmetadata and libmonoruntime
8432         for inclusion into the mono executable.
8433
8434 2004-08-16  Martin Baulig  <martin@ximian.com>
8435
8436         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
8437         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
8438
8439 2004-08-14  Martin Baulig  <martin@ximian.com>
8440
8441         * class.c (dup_type): Also copy the `byref' field.
8442
8443 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
8444
8445         * reflection.c (create_dynamic_mono_image): Revert the last change 
8446         since it breaks bootstrap.
8447
8448 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
8449
8450         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
8451
8452         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
8453         not free them with g_free.
8454
8455 2004-08-11  Martin Baulig  <martin@ximian.com>
8456
8457         * reflection.c (mono_reflection_setup_internal_class): Also call
8458         mono_class_setup_mono_type() if we already have a `tb->type.type'.
8459
8460 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
8461
8462         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
8463         called during default (first) AppDomain creation. Keep track of
8464         Evidence when loading assemblies.
8465
8466 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8467
8468         * opcodes.c, opcodes.h: reduce runtime relocations.
8469
8470 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
8471
8472         * culture-info.h, locales.c: fixes and chages to sue the new
8473         optimized format of the locale data.
8474         * culture-info-tables.h: regenerated.
8475
8476 2004-08-06  Geoff Norton <gnorton@customerdna.com>
8477         
8478         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
8479
8480 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
8481
8482         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
8483         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
8484         * domain-internals.h: icall declaration.
8485         * icall.c: icall registration.
8486         * object-internals.h: New fields in MonoAssembly for CAS.
8487
8488 2004-08-05  Duncan Mak  <duncan@ximian.com>
8489
8490         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
8491         CEE_LDELEM_ANY.
8492
8493 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8494
8495         * reflection.c: fix to deal with object[] arrays in custom ctors
8496         (bug #62550).
8497
8498 2004-08-05  Martin Baulig  <martin@ximian.com>
8499
8500         * class.c (mono_class_array_element_size): Added support for
8501         generic instances and correctly handle "recursive" types.
8502
8503 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
8504
8505         * assembly.c: Fix warnings.
8506
8507 2004-08-04  Martin Baulig  <martin@ximian.com>
8508
8509         * class.c
8510         (mono_type_get_name_recurse): Added `gboolean include_arity'
8511         argument specifying whether or not we should include the generic
8512         arity in the type name.
8513         (_mono_type_get_name): New static function.
8514         (mono_class_setup_vtable): If we're a generic instance, don't
8515         include the generic arity in the names of explicit method
8516         implementations.        
8517
8518 2004-08-03  Martin Baulig  <martin@ximian.com>
8519
8520         * class.c (mono_type_get_name_recurse): Enclose the generic type
8521         arguments in `<', '>'.
8522
8523 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8524
8525         * gc.c: make GC warning messages use the trace API, they are just
8526         noise to most of the users.
8527
8528 2004-08-03  Martin Baulig  <martin@ximian.com>
8529
8530         * debug-mono-symfile.c (read_string): Correctly read the string.
8531
8532 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
8533
8534         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
8535         
8536         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
8537         icalls.
8538         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
8539
8540 2004-07-30  Martin Baulig  <martin@ximian.com>
8541
8542         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
8543         Reflect latest symbol writer changes.   
8544
8545 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8546
8547         * object.c: always create an object if null is passed
8548         to Invoke() where a valuetype is expected.
8549
8550 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
8551
8552         * marshal.c (mono_marshal_init): make managed
8553         signatures match native ones better for 64bits.
8554
8555 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8556
8557         * appdomain.c: hack to build correctly the private bin path on windows.
8558         Fixes bug #61991.
8559
8560 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
8561
8562         * assembly.c: Load mscorlib from the correct framework directory
8563           (mono/<version>/mscorlib.dll).
8564         * appdomain.h: Added prototypes for new functions.
8565         * internals.h: Added some prototypes.
8566         * domain.c: When initializing the runtime, get from the executable and
8567           the configuration files the runtime version that the app supports.
8568           Added support methods for reading app.exe.config. Added list of versions
8569           supported by the JIT. Added two new methods: mono_init_from_assembly,
8570           which initializes the runtime and determines the required version from
8571           the provided exe file, and mono_init_version, which initializes
8572           the runtime using the provided version.
8573         * icall.c: Get machine.config from version-specific directory.
8574         * reflection.c: When generating an image, embed the version number
8575           of the current runtime.
8576
8577 2004-07-28  Dick Porter  <dick@ximian.com>
8578
8579         * socket-io.c
8580         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
8581         returned sockaddr size before creating the remote address object.
8582         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
8583         61608.
8584
8585 2004-07-28  Dick Porter  <dick@ximian.com>
8586
8587         * locales.c (string_invariant_compare_char): Fix invariant char
8588         compares between upper and lower cases.  Fixes bug 61458.
8589
8590 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
8591         
8592         * marshal.c: actually cache stelem.ref wrappers.
8593         
8594 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
8595
8596         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
8597         sections and remove the mono_cli_rva_map () function.
8598
8599 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8600
8601         * debug-mono-symfile.c: fix one more endianess issue, from a patch
8602         by Geoff Norton (<gnorton@customerdna.com>).
8603
8604 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8605
8606         * class.c: fix class loads for pointer types (typeof(int) !=
8607         typeof(int*)).
8608
8609 2004-07-27  Martin Baulig  <martin@ximian.com>
8610
8611         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
8612         reading the debugging information from an external ".mdb" file.
8613
8614 2004-07-24  Martin Baulig  <martin@ximian.com>
8615
8616         * reflection.c (mono_image_get_type_info): Only write a class
8617         layout entry if we actually have a size or a packing size.
8618
8619 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8620
8621         * reflection.c (type_get_fully_qualified_name): 
8622         insert cast to get type checking of ?: with non-gcc compilers
8623
8624 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8625
8626         * rand.c: use g_getenv for both lookups of
8627         MONO_EGD_SOCKET
8628
8629 2004-07-17  Martin Baulig  <martin@ximian.com>
8630
8631         * reflection.c (mono_reflection_bind_generic_method_parameters):
8632         Set `gmethod->reflection_info'.
8633
8634 2004-07-17  Martin Baulig  <martin@ximian.com>
8635
8636         * class.c (mono_class_create_from_typedef): Insert the newly
8637         created class into the hash table before computing the interfaces
8638         since we could be called recursively.
8639
8640 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
8641
8642         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
8643         function to implement stelem.ref in managed code
8644         * class-internals.h, debug-helpers.c: a new wrapper type
8645         for the above.
8646
8647 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8648
8649         * gc.c: allow GC handles to work even when no GC is compiled in.
8650         Fix part of bug #61134 (GetAddrOfPinnedObject).
8651
8652 2004-07-13  Peter Williams  <peter@newton.cx>
8653  
8654         * process.c (complete_path): Make sure we don't attempt to execute
8655         directories.
8656  
8657 2004-07-12  Geoff Norton <gnorton@customerdna.com>
8658
8659         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
8660           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
8661           and will add/subtract the hour if needed
8662
8663 2004-07-12  Martin Baulig  <martin@ximian.com>
8664
8665         * reflection.c (mono_field_get_object): If we have
8666         `field->generic_info', take the attributes from
8667         `field->generic_info->generic_type'.    
8668
8669 2004-07-12  Martin Baulig  <martin@ximian.com>
8670
8671         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
8672         This function must be called before initializing the runtime.
8673         (mono_debug_init_1): New function; call this after initializing
8674         the runtime, but before loading the assembly.  It tells the
8675         debugger to load corlib and the builtin types.
8676
8677         * mono-debug-debugger.c: Did some larger changes in the debugging
8678         code; support recursive class declarations, make sure we actually
8679         add all classes.
8680
8681 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8682
8683         * debug-helpers.c: undo my previous patch and fixed the real issue in
8684         ../mini/exceptions-x86.c
8685
8686 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8687
8688         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
8689         when no HOME env. variable was set and a NullRef was thrown in a .cctor
8690         called from other .cctors.
8691
8692 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
8693
8694         * loader.c: Removed the mono_loader_wine_init hack now that we are
8695         doing a managed version of Windows.Forms.
8696
8697 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
8698
8699         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
8700         threadpool.c, threads.c: remove static data from rootset.
8701
8702 2004-07-09  Dick Porter  <dick@ximian.com>
8703
8704         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
8705         Don't do any more processing if the matched length was 0.  It was
8706         increasing the size of the string before.  Fixes bug 61167.
8707
8708 2004-07-09  Dick Porter  <dick@ximian.com>
8709
8710         * socket-io.h:
8711         * socket-io.c
8712         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8713         Add support for SO_PEERCRED if its available.
8714
8715 2004-07-09  Peter Bartok <pbartok@novell.com>
8716         * loader.c: winelib.exe.so error message is now only displayed if
8717         MONO_DEBUG is set. To help us avoid questions when people are trying
8718         out the new Managed.Windows.Forms.
8719
8720 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
8721
8722         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
8723         for isinst and castclass wrappers.
8724
8725         * class-internals.h icall.c: Move registration and lookup of JIT icalls
8726         to libmetadata from the JIT, so they could be used by the marshalling
8727         code and the interpreter.
8728
8729         * marshal.c: Register marshalling related JIT icalls here instead of
8730         in mini.c. Use CEE_MONO_ICALL instead of the family of 
8731         CEE_MONO_PROC<x> opcodes to call marshalling functions.
8732
8733         * metadata.h: Remove unneeded marshalling conversions.
8734
8735         * opcodes.c: Update for new opcodes.
8736         
8737 2004-07-08  Martin Baulig  <martin@ximian.com>
8738
8739         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
8740         (mono_debug_get_domain_data): Make this function static.
8741
8742 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8743
8744         * gc.c, object.h: add nice GC handle API for embedders.
8745
8746 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
8747
8748         * reflection.c: more changes for the new api
8749
8750         * object.c: When we reflect on a field w/ a constant value, it
8751         will not have a memory location, so we must access metadata. Also,
8752         allow easier reading of strings so that we can read them from
8753         the constant data.
8754
8755         * class.c (mono_class_layout_fields): no need for literal fields here.
8756
8757         * class-internals.h: api changes for const fields
8758
8759         * icall.c (ves_icall_get_enum_info): use new apis for const fields
8760
8761 2004-07-06  Martin Baulig  <martin@ximian.com>
8762
8763         * mono-debug.h: Increment version number to 44.
8764
8765         * mono-debug.c (mono_debug_add_wrapper): The second argument is
8766         now a gpointer, rewrote this whole method.
8767
8768         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
8769         function.  Add information about the wrapper in a new "misc table".
8770
8771         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
8772         for the new misc table.
8773
8774 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
8775
8776         * metadata-internals.h image.c: Add a cache for helper signatures.
8777
8778         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
8779
8780 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
8781
8782         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
8783         delegates from a delegate. Fixes #61033.
8784         
8785         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
8786         marshalling of stringbuilder arrays. Fixes #59900.
8787
8788 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
8789
8790         * icall.c: Add EnumBuilder:setup_enum_type icall.
8791
8792 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
8793
8794         * icall.c: Added a new icall for the property version of
8795         OffsetOfStringData.
8796
8797 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
8798
8799         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
8800         it has a constant size across platforms.
8801
8802         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
8803         stack trace.
8804
8805 2004-06-29  Martin Baulig  <martin@ximian.com>
8806
8807         * mono-debug.c (mono_debug_add_method): Protect the whole function
8808         in mono_debugger_lock(), not just parts of it.
8809
8810 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8811
8812         * reflection.c: make sure padding bytes in heaps are zeroed.
8813
8814 2004-06-24  David Waite  <mass@akuma.org>
8815
8816         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
8817         image.c, loader.c, locales.c, marshal.c, metadata.c,
8818         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
8819         string-icalls.c, threads.c: change to C90-style comments from C99 /
8820         C++ -style
8821
8822 2004-06-24  Dick Porter  <dick@ximian.com>
8823
8824         * threads.c
8825         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8826         return createdNew.  Fixes bug 60412.
8827
8828         * threads-types.h: 
8829         * icall.c: Add createdNew parameter to CreateMutex icall
8830
8831 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8832
8833         * reflection.c, object-internals.h: save default value in params.
8834
8835 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8836
8837         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8838         no need to build a new path combining that with the application base.
8839         Fixes bug #60442.
8840
8841 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8842
8843         * reflection.c: fixed minor standard compliance issues.
8844
8845 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8846
8847         * reflection.c: fixed issue with encoding some custom attributes
8848         (arrays in properties and fields, bug #60411).
8849
8850 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8851
8852         * reflection.c: fix start address when copying the public key token.
8853
8854 2004-06-23  Martin Baulig  <martin@ximian.com>
8855
8856         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8857         the `exc' object in a static object to put it into the GC's root set.
8858
8859 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8860
8861         * reflection.c: make mono_reflection_setup_internal_class ()
8862         callable a second time to setup a new parent class.
8863
8864 2004-06-23  Dick Porter  <dick@ximian.com>
8865
8866         * threads.c: Check for WAIT_IO_COMPLETION return values.
8867
8868 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8869
8870         * appdomain.c: Removed the g_free on the public key token. Now copy 
8871         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8872         * assembly.c: Added public key token string value when loading 
8873         assemblies. Fix bug #60439.
8874         * icall.c: Added missing informations (like public key) in 
8875         GetReferencedAssemblies. Fix #60519.
8876         * image.h: Changed definition for public key token from const char*
8877         public_tok_value to guchar public_key_token [17];
8878         * reflection.c: Updated for changes to public key token.
8879
8880 2004-06-22  Lluis Sanchez Gual
8881
8882         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8883         for the field in base classes.
8884
8885 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8886
8887         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8888         mark headers as not supported, they are installed only for use by the
8889         debugger.
8890
8891 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8892
8893         * *.c, *.h: avoid namespace pollution in public headers.
8894
8895 2004-06-21  Martin Baulig  <martin@ximian.com>
8896
8897         * exception.c (mono_get_exception_security): It's in
8898         "System.Security", not in "System".
8899
8900         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8901         the exception classes.
8902
8903 2004-06-21  Martin Baulig  <martin@ximian.com>
8904
8905         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8906         Protect the exception object from being finalized.
8907
8908 2004-06-21  Martin Baulig  <martin@ximian.com>
8909
8910         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8911         public function.
8912
8913 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8914
8915         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8916         if it was not loaded before. Fix parts of #60439.
8917
8918 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8919
8920         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8921         code that was broken since Ben's change: wrappers are now
8922         dependent on the method signature only again.
8923
8924 2004-06-21  Martin Baulig  <martin@ximian.com>
8925
8926         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8927         added interface support.
8928
8929 2004-06-21  Martin Baulig  <martin@ximian.com>
8930
8931         * class.c (mono_vtable_get_static_field_data): New public method.
8932
8933 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8934
8935         * filewatcher.c : Windows build fix to be compliant with API changes.
8936
8937 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8938
8939         * class.h, class.c: more accessors.
8940         * metadata.h, metadata.c: prepare for hiding MonoType and
8941         MonoMethodSignature: people should use the accessors from now on
8942         outside of the tree.
8943
8944 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8945
8946         * *.c, *.h: more API cleanups.
8947
8948 2004-06-18  Jackson Harper  <jackson@ximian.com>
8949
8950         * assembly.c: Trace loading assemblies.
8951         * loader.c: Trace loading native libraries.
8952         * mono-config.c: Trace loading config files.
8953         
8954 2004-06-18  Dick Porter  <dick@ximian.com>
8955
8956         * locales.c: Tell ICU the lengths of strings, it can cope with
8957         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8958
8959 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8960
8961         * image.c: swapped name/filename;
8962
8963 2004-06-18  Martin Baulig  <martin@ximian.com>
8964
8965         * mono-debug-debugger.c (write_class): Write the parent class at
8966         the end of the header.
8967
8968 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8969
8970         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8971
8972 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8973
8974         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8975         (bundle_obj): New conditional define.
8976         (BUILT_SOURCES): Remove.
8977         ($(bundle_srcs)): Make parallel-make safe.
8978         (libmonoruntime_la_LIBADD): Make unconditional.
8979         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8980         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8981
8982 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8983
8984         * culture-info-tables.h: It was inconsistent with the latest
8985           supp info files.
8986
8987 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8988
8989         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8990         be loaded.
8991
8992         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8993         with gcc 2.95.
8994
8995 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8996
8997         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8998         cleaned up public header threads.h.
8999
9000 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
9001
9002         * Makefile.am, *.c, *.h: more API cleanups.
9003
9004 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
9005
9006         * Makefile.am: removed monosn from compilation.
9007         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
9008         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
9009         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
9010         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
9011         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
9012         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
9013
9014 2004-06-15  Jackson Harper  <jackson@ximian.com>
9015
9016         * assembly.c: Make locales lower case when searching the GAC for
9017         assemblies. gacutil will always make locales lowercase when
9018         installing so this effectively makes them case insensitive.
9019         
9020 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
9021
9022         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
9023         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
9024           parameter which allows to choose whether the wait can be interrupted or 
9025           not. Also added the method mono_monitor_enter(), which locks the monitor
9026           using an infinite wait and without allowing interruption.
9027           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
9028           interrupted.
9029         * object.h: Added new fields in MonoThread. suspend_event holds the event
9030           used to susped/resume the thread. synch_lock is the lock object to use for
9031           modifying the thread state.
9032         * threads.c: Use the new synch_lock object for locking, instead of "this",
9033           which can generate deadlocks.
9034           Moved thread state change in Thread.Sleep and Thread.Join from managed
9035           to unmanaged code. This avoids a deadlock when the thread was suspended
9036           just after acquiring the thread lock.
9037           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
9038           Implemented Thread.Suspend using an event instead of ThreadSuspend,
9039           which is not fully implemented in the io-layer.
9040         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
9041
9042 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
9043
9044         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
9045         threads-types.h: more API cleanups.
9046
9047 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
9048
9049         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
9050         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
9051         threadpool.c, threads.c: first pass at the exported API cleanup.
9052
9053 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
9054
9055         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
9056
9057 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9058
9059         * icall.c: added internalGetHome.
9060
9061 2004-06-14  Dick Porter  <dick@ximian.com>
9062
9063         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
9064         possible to return successfully when '.' or '..' were the only
9065         entries in a directory, but were skipped.  The MonoIOStat was not
9066         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
9067         Fixes bug 59574.
9068
9069 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
9070
9071         * reflection.c: make binaries run on .Net 1.1 by default.
9072
9073 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9074
9075         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
9076
9077 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
9078
9079         * marshal.c: keep track of struct size with explicit layout
9080         (bug #59979).
9081
9082 2004-06-12  Martin Baulig  <martin@ximian.com>
9083
9084         * mono-debug-debugger.c: Comment out a debugging g_message().
9085
9086 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
9087
9088         * reflection.c, reflection.h: do not free custom attrs that are cached.
9089         * icall.c: use braces to make code clearer.
9090
9091 2004-06-11  Martin Baulig  <martin@ximian.com>
9092
9093         * class.h (MonoInflatedField): New type.
9094         (MonoClassField): Replaced `MonoType *generic_type' with
9095         `MonoInflatedField *generic_info'.
9096
9097         * icall.c
9098         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
9099
9100 2004-06-11  Martin Baulig  <martin@ximian.com>
9101
9102         * reflection.c (mono_image_create_method_token): Correctly encode
9103         varargs methods.
9104
9105 2004-06-11  Martin Baulig  <martin@ximian.com>
9106
9107         * metadata.c (mono_metadata_parse_method_signature): When parsing
9108         a MethodDef which has VarArgs, also set sentinelpos if we don't
9109         have any parameters.
9110
9111 2004-06-11  Martin Baulig  <martin@ximian.com>
9112
9113         * verify.c (mono_method_verify): In CEE_CALL, use
9114         mono_method_get_signature() to get the method's signature, unless
9115         we're a PInvoke method.
9116
9117 2004-06-10  Jackson Harper  <jackson@ximian.com>
9118
9119         * assembly.c: Use <path>/lib/mono/gac for the extra paths
9120         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
9121         logical name as the supplied path is just a prefix to the gac not
9122         the direct path to it.
9123         
9124 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
9125
9126         * reflection.c: make the token for a created method match
9127         the token of the MethodBuilder it was created from
9128         (IKVM requires this behaviour now).
9129
9130 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
9131
9132         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
9133         reflection.c, socket-io.c: leak fixes.
9134
9135 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
9136
9137         * icall.c: handle sentinel pos in vararg methods in position different
9138         from 0.
9139
9140 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9141
9142         * culture-info-tables.h: freshly generated.
9143
9144 2004-06-09  Martin Baulig  <martin@ximian.com>
9145
9146         * loader.c (mono_get_method_constrained): Call `mono_class_init
9147         (constrained_class)'.   
9148
9149 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
9150
9151         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
9152         any methods. Fixes #59629.
9153
9154 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9155
9156         * culture-info-tables.h: reflecting locale-builder updates.
9157
9158 2004-06-08  Dick Porter  <dick@ximian.com>
9159
9160         * object.h:
9161         * locales.c: Fixed compile warnings, including a real bug in
9162         CompareInfo_internal_compare.
9163         
9164 2004-06-08  Dick Porter  <dick@ximian.com>
9165
9166         * locales.c
9167         (ves_icall_System_Globalization_CompareInfo_internal_index):
9168         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
9169         Double-check the resuls of usearches, because ICU currently
9170         ignores most of the collator settings here.  Fixes bug 59720.
9171         
9172 2004-06-08  Dick Porter  <dick@ximian.com>
9173
9174         * locales.c
9175         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
9176         Fix memory leak and segfault-causing typo.  No idea how this one
9177         lasted so long without being noticed.
9178
9179 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
9180
9181         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
9182         any methods. Fixes #59629.
9183
9184 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9185
9186         * assembly.c:
9187         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
9188         own the critical section before). Removed dead code (that's done
9189         in the preload hook).
9190
9191         (mono_assembly_load_with_partial_name): call the preload hook.
9192
9193 2004-06-08  Martin Baulig  <martin@ximian.com>
9194
9195         * metadata.c (mono_metadata_signature_alloc): Default
9196         `sentinelpos' to -1.
9197
9198         * reflection.c (mono_image_get_array_token): Likewise.
9199
9200 2004-06-08  Martin Baulig  <martin@ximian.com>
9201
9202         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
9203
9204         * metadata.c (mono_metadata_parse_method_signature): When parsing
9205         a MethodDef which has VarArgs, set sentinelpos.
9206
9207         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
9208         `gint16' since we're using -1 for non-varargs methods.
9209
9210         * reflection.c
9211         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
9212         (method_encode_signature): Added varargs support.
9213         (method_builder_encode_signature): Likewise.
9214         (mono_image_get_varargs_method_token): New static method.
9215         (mono_image_create_method_token): New public method; this is
9216         called via an icall instead of mono_image_create_token() when
9217         calling a varargs method.       
9218
9219 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
9220
9221         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
9222
9223 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9224
9225         * culture-info-tables.h : Reflecting the latest locale-builder that
9226           fixed empty array representation ({} to {0}).
9227
9228 2004-06-07  Jackson Harper  <jackson@ximian.com>
9229
9230         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
9231         looking up extra gac paths. This allows MONO_GAC_PATH to act
9232         exactly like a prefix.
9233         
9234 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
9235
9236         * reflection.c (mono_reflection_type_from_name): Make a copy of the
9237         type name before modifying it. Fixes #59405.
9238
9239 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
9240
9241         * culture-info.h: added fields for "all datetime patterns".
9242         * locales.c: (  ves_icall_System_Globalization_CultureInfo
9243           _construct_datetime_format ()): fill xxx_patterns fields.
9244         * object.h: added fields for "all datetime patterns" to
9245           MonoDateTimeFormatInfo.
9246         * culture-info-tables.h: reflecting locale-builder updates.
9247
9248 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
9249
9250         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
9251         the event has no add and remove methods. Fixes #59629.
9252
9253 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
9254
9255         * object.c: Fixed possible integer overflow when allocating large
9256         strings.
9257
9258 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
9259
9260         * culture-info-tables.h: reflecting locale-builder updates.
9261
9262 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
9263
9264         * culture-info-tables.h: reflecting locale-builder updates.
9265
9266 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
9267
9268         * culture-info-tables.h: reflecting locale-builder updates.
9269
9270 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
9271
9272         * threads.c: Made Thread.Sleep abortable.
9273
9274 2004-06-02  Martin Baulig  <martin@ximian.com>
9275
9276         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
9277
9278         * debug-mono-symfile.h: Bumped symbol file version number to 37.
9279
9280 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
9281
9282         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
9283
9284 2004-05-30  Jackson Harper  <jackson@ximian.com>
9285
9286         * reflection.c: Do not hardcode assembly versions or public key
9287         tokens anymore. All of this except the corlib section was dead
9288         code anyways.
9289         
9290 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
9291
9292         * object.c (mono_runtime_invoke_array): Automatically create boxed
9293         objects for byref valuetypes if needed. Fixes #59300.
9294         
9295         * object.c (mono_method_return_message_restore): Handle 
9296         MONO_TYPE_OBJECT as well.
9297
9298 2004-05-28  Jackson Harper  <jackson@ximian.com>
9299
9300         * reflection.c: The modified type encoding was causing build
9301         problems. Reverted for now.
9302         
9303 2004-05-28  Jackson Harper  <jackson@ximian.com>
9304
9305         * reflection.c/h: Take an assembly ref so that we dont create
9306         fully qualified names when encoding types in the same assembly as
9307         the custom attribute being emitted.
9308         * appdomain.c: Increment version number.
9309         
9310 2004-05-26  Duncan Mak  <duncan@ximian.com>
9311
9312         * icall.c
9313         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9314         Set the full version number (major, minor, build, revision).
9315
9316 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
9317
9318         * marshal.c (emit_struct_conv): increment src/dst after blit
9319         (mono_marshal_get_managed_wrapper,
9320         mono_marshal_get_native_wrapper): make sure we have marshalling
9321         info before marshalling params (info computation affects
9322         blittable)
9323
9324         * class.c (class_compute_field_layout): correctly deal with
9325         blittable
9326         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
9327         value types (as per what windows dows by default)
9328         (mono_class_setup_mono_type): System.ValueType is blittable
9329         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
9330         blittable
9331
9332         * marshal.c (mono_marshal_load_type_info): flag types  as
9333         non-blittable if the native layout doesn't match the managed
9334         layout
9335
9336 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9337
9338         * appdomain.c: don't add stuff in the private search path that is
9339         above the application base. If application base is not set, there's
9340         no private search path.
9341
9342 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
9343
9344         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
9345         byref struct arguments in native->managed marshalling.
9346
9347 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
9348
9349         * marshal.c (mono_marshal_get_runtime_invoke): correctly
9350         cache methods using signature (special case for methods
9351         that are value type or string class)
9352         
9353         * image.c (mono_image_close): clean up allocated GSList's
9354         in runtime_invoke_cache.
9355
9356 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9357
9358         * mono-config.c: set the correct path for mono_cfg_dir on windows when
9359         there's no MONO_CFG_DIR environment variable defined.
9360
9361 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9362
9363         * threads.c: windows version must be >= 0x0500 to include OpenThread.
9364
9365 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
9366
9367         * threadpool.c: Really wait for 500ms after the async call, even if the wait
9368           is interrumped.
9369         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
9370           before waiting for it, and call CloseHandle after the wait to unref it.
9371           This will make sure that handles are not disposed too early.
9372
9373 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9374
9375         * appdomain.c:
9376         * appdomain.h:
9377         * icall.c: removed
9378         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
9379         needed now.
9380
9381         * object.c: se the application_base only for the domain that runs
9382         Main. Fixes bug #59216,
9383
9384 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9385
9386         * appdomain.c:
9387         * object.c: only the domain in which Main is run have
9388         SetupInformation.ConfigurationFile set, so moved a few lines from
9389         appdomain.c to object.c.
9390
9391 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9392
9393         * appdomain.c: we tried to load [name].(dll|exe), but according
9394         to bug #57710, we must also try [culture]/[name].(dll|exe) and
9395         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
9396         There's a test case attached to bug #58922.
9397
9398 2004-05-27  Dick Porter  <dick@ximian.com>
9399
9400         * icall.c:
9401         * file-io.c: Implemented icalls for locking and unlocking regions
9402         in a file.
9403         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
9404         FALSE on error (fixes both compiler warning and real bug.)
9405
9406 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
9407
9408         * culture-info-tables.h: reflecting locale-builder updates.
9409
9410           (Added missing ChangeLog entry for 05/26)
9411
9412 2004-05-27  Jackson Harper  <jackson@ximian.com>
9413
9414         * locales.c: Fix some cut and paste errors.
9415         
9416 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9417
9418         * mono-config.c: set the correct path for config. directory on windows.
9419
9420 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9421
9422         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
9423           on win32.
9424
9425 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9426
9427         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
9428         from pinvoke functions.
9429         
9430         * marshal.c (mono_ftnptr_to_delegate): Implement this.
9431
9432 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9433
9434         * culture-info-tables.h: reflecting locale-builder updates.
9435
9436 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9437
9438         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
9439         #59086.
9440
9441 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
9442
9443         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
9444         * icall.c: Modified icalls for RNG.
9445         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
9446         Windows (CryptoAPI).
9447
9448 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9449
9450         * locales.c: Fix build.
9451
9452 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9453
9454         * culture-info-tables.h: reflecting locale-builder updates.
9455
9456 2004-05-25  Jackson Harper  <jackson@ximian.com>
9457
9458         * locales.c: When creating the current culture use the $LANGs
9459         specific culture. So DateTimeFormat and NumberFormat entries are created.
9460         
9461 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9462
9463         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
9464         a char array as parameter.
9465
9466 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
9467
9468         * image.c: In mono_image_open(), always use an absolute path name to
9469           look for already loaded images.
9470
9471 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
9472
9473         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
9474         missing in the windows build (like older cygwin include files).
9475
9476 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
9477
9478         * icall.c: Fixed check for possible integer overflow in Buffer_
9479         BlockCopy icall. Replaced comments style // by /* */.
9480
9481 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
9482
9483         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
9484         
9485         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
9486         check after MONO_VTADDR. Fixes pinvoke2.exe.
9487
9488         * marshal.h marshal.c metadata.h: Add beginnings of support for
9489         ftnptr -> delegate marshalling.
9490
9491 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
9492
9493         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
9494         * threads.c: Fix warnings.
9495
9496 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
9497
9498         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
9499         * icall.c: Registered icalls for Suspend and Resume.
9500         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
9501           Thread.Abort.
9502         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
9503         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
9504         * process.c: Use WaitForSingleObjectEx.
9505         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
9506           checkpoints.
9507         * threads.c, threads.h: Make use of new Ex wait methods. Improved
9508           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
9509           for Suspend and Resume. Added new mono_thread_stop, used for stoping
9510           background threads. Added basic support for Abort in Windows.
9511           Start new threads using a managed delegate invoke wrapper. This wrapper
9512           has an interruption checkpoint that is needed since an interruption
9513           can be requested before the thread leaves the unmanaged code that starts 
9514           the thread.
9515         * marshal.c: Added interruption checkpoint after every native call, and
9516           also before managed calls for wrappers called from unmanaged code to
9517           go into managed code.
9518         * object.h: Added new field in MonoThread to keep track of interruption
9519           requests.
9520
9521 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
9522
9523         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
9524         calls.
9525
9526 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9527
9528         * appdomain.c:
9529         * assembly.c:
9530         * gc.c:
9531         * locales.c:
9532         * mono-config.c:
9533         * rand.c: getenv -> g_getenv (windows!)
9534
9535         * process.c: complete_path is also used on non-windows platforms.
9536
9537 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9538
9539         * icall.c: new signature for Process_Start.
9540
9541         * process.[ch]: new signature for Process_Start. If we're on windows
9542         and UseShellExecute is false, we have to search for the program by
9543         ourselves if we don't get a full path.
9544
9545 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
9546
9547         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
9548         marshalling and call CleanUpNativeData if needed. Fixes #58646.
9549
9550 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9551
9552         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
9553         Fixes bug #58373.
9554
9555 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9556
9557         * process.c: use double quotes to quote program name and arguments on
9558         windows. Fixes bug #58575.
9559
9560 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9561
9562         * file-io.c: don't return "." and ".." when using windows Find*File.
9563
9564 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
9565
9566         * marshal.c: Don't pass wrappers to message init because method 
9567         addressed used to lookup metadata. part of remoting[2|3] fix.
9568
9569 2004-05-15  Jackson Harper  <jackson@ximian.com>
9570
9571         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
9572         path is essentially the same as MONO_PATH except that it points to
9573         GACs instead of lib directories.
9574         * loader.h: The user gac is gone so we dont need function to
9575         enable/disable it.
9576         * mono-config.c: user gac option is now gone.
9577         
9578 2004-05-15  Jackson Harper  <jackson@ximian.com>
9579
9580         * culture-info.h: Make defines more consistent, add calendar data
9581         to the culture info table.
9582         * culture-info-tables.h: Add basic calendar data. Basically
9583         everyone gets default gregorian until all the data is
9584         updated.
9585         * locales.c: Use the new consistent defines. Set calendar data for
9586         culture info objects.
9587         * object.h: add a field for calendar data to CultureInfo
9588         
9589 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
9590
9591         * image.c: image->runtime_invoke_cache is keyed on signatures now.
9592         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
9593         a signature.
9594         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
9595         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
9596         an extra param that is the pointer of the method to invoke. The IL for
9597         the invoke method is no longer specific to the method, but to the
9598         signature of the method. Thus, we can share the same code for multiple
9599         methods. This reduces the number of methods that have to be compiled.
9600
9601 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
9602
9603         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
9604
9605         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9606
9607         * icall.c: Optimize Buffer.BlockCopy.
9608
9609 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9610
9611         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
9612         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
9613         quote). Changed them to "MMMM yyyy".
9614
9615 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
9616
9617         * rand.c
9618         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
9619
9620 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
9621
9622         * reflection.h: Updated after changes to managed structures.
9623
9624         * appdomain.c: Bump corlib version.
9625
9626 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9627
9628         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
9629         windows.
9630
9631 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9632
9633         * Makefile.am: link to ../os/libmonoos.la on windows.
9634
9635         * assembly.c:
9636                 -If MONO_DEBUG, warn about non-existing directories in
9637                 MONO_PATH.
9638                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
9639                 compile time variable.
9640                 -Removed init_default_path and call mono_set_rootdir from
9641                 libmonoos.a instead (windows only).
9642
9643         * assembly.h: declare mono_assembly_getrootdir().
9644
9645         * domain.c:
9646         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
9647
9648         * loader.c: s/getenv/g_getenv/
9649
9650 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
9651
9652         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
9653
9654         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
9655
9656         * metadata.h: Add new marshalling conversions.
9657
9658         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
9659         function.
9660
9661         * reflection.c (mono_reflection_get_type): Lookup the type in all
9662         modules of a multi-module assembly. Fixes #58291.
9663
9664 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
9665
9666         * threads.c: Before aborting a background, set the StopRequested
9667         state.  This avoids throwing the Abort exception.
9668         In mono_thread_manage, don't continue with the shutdown until all
9669         aborted threads have actually stopped.
9670
9671 2004-05-10  Jackson Harper  <jackson@ximian.com>
9672
9673         * locales.c: Remove the modifier from culture names.
9674         
9675 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9676
9677         * Makefile.am: monosn is not installed any more. It has been deprecated
9678         in favor of sn.
9679
9680 2004-05-07  Jackson Harper  <jackson@ximian.com>
9681
9682         * locales.c
9683         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
9684         Fix array construction, add bailout if the length is 0.
9685
9686 2004-05-07  Dick Porter  <dick@ximian.com>
9687
9688         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
9689         machine doesn't have a DNS entry.  Patch by Urs Muff
9690         (umuff@quark.com), fixes bug 57928.
9691
9692 2004-05-06  Jackson Harper  <jackson@ximian.com>
9693
9694         * reflection.c: Handle null PublicTokens properly. alloc mem for
9695         assembly names culture so we dont crash when freeing it.
9696         
9697 2004-05-06  Jackson Harper  <jackson@ximian.com>
9698
9699         * assembly.c: Check the usergac when loading with partial names.
9700         
9701 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9702
9703         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
9704         does nothing for now (not required for Linux/Windows) but the class
9705         library can call it (and a newer or modified runtime could need it).
9706         * icall.c: Registred icall.
9707
9708 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9709
9710         * loader.c: prints a message on module loading error we set MONO_DEBUG
9711         environment variable.
9712
9713 2004-05-05  Jackson Harper  <jackson@ximian.com>
9714
9715         * appdomain.c: Handle PublicKeyToken=null properly.
9716         
9717 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9718
9719         * environment.c|h: Added icall ves_icall_System_Environment_
9720         GetOSVersionString to get the current OS version as a string.
9721         * icall.c: Registred icall.
9722
9723 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
9724
9725         * object.c: in mono_object_get_virtual_method(), take into account that
9726         non-virtual methods don't have a slot in the vtable. Check needed when
9727         the object is a proxy.
9728
9729 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
9730
9731         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
9732         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
9733
9734         * object.c (mono_class_compute_gc_descriptor): Fix warning.
9735
9736         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
9737         passed when a valuetype is expected.
9738
9739         * object.c (mono_unhandled_exception): Only set the exit code if the
9740         exception happens in the main thread. Fixes thread5.exe.
9741
9742         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
9743         invalid names. Fixes #58047.
9744
9745 2004-05-03  Jackson Harper  <jackson@ximian.com>
9746
9747         * assembly.c: This line was committed accidently and is unneeded.
9748         
9749 2004-05-03  Jackson Harper  <jackson@ximian.com>
9750
9751         * icall.c: Add new icall for Assembly::LoadWithPartialName
9752         * assembly.c/.h: new function that probes the GAC to load partial
9753         assembly names by Paolo Molaro.
9754         
9755 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9756
9757         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
9758         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
9759         (type_get_fully_qualified_name): Added PublicKeyToken when building a
9760         full type name.
9761
9762 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9763
9764         * appdomain.c: fixed check for 'neutral' culture and removed warning.
9765         * reflection.c: fix bug when parsing a full type name and Version is not
9766         the last thing in the string.
9767
9768 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
9769
9770         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
9771         crashes when it is freed.
9772
9773 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9774
9775         * assembly.c: print the compat warning to stderr.
9776
9777 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
9778
9779         * assembly.c (mono_assembly_load_references): Add a compatibility
9780         hack to run old applications that might be still referencing the
9781         3300-based assemblies, only do this for System.xxx.
9782
9783 2004-05-01  Jackson Harper  <jackson@ximian.com>
9784
9785         * appdomain.c: If the culture is neutral we set it to "".
9786         
9787 2004-04-29  Jackson Harper  <jackson@ximian.com>
9788
9789         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
9790
9791 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
9792  
9793         * string-icalls.c: added low overhead function for copying chars
9794         * icall.c: added needed icall for the above function
9795  
9796 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9797
9798         * icall.c: fix return value of get_global_assembly_cache.  Implemented
9799         Environment.GetLogicalDrives.
9800
9801 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
9802
9803         * rand.c: try and talk to egd or prngd
9804         for random bytes if opening devices fail.
9805
9806 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
9807
9808         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
9809         alignment for the type using the native alignment of its members 
9810         instead of using klass->min_align.
9811
9812         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
9813
9814 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9815
9816         * file-io.c:
9817         * socket-io.c: added check for sys/aio.h.
9818
9819 2004-04-28  Dick Porter  <dick@ximian.com>
9820
9821         * threads.c: Don't abort a thread thats already aborting, when
9822         terminating everything.
9823
9824 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9825
9826         * icall.c: added 2 new async calls for Socket.
9827
9828         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9829         IO on *nix systems.
9830
9831         * threadpool.c: removed unused variable.
9832
9833 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9834
9835         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9836
9837 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9838
9839         * locales.c: put back string_invariant_tolower () and
9840         string_invariant_toupper ().
9841
9842 2004-04-26 David Waite <mass@akuma.org>
9843
9844         * file-io.h:
9845         * socket-io.h:
9846         * threads.h:
9847         * unicode.h: remove comma from end of enumeration declarations
9848
9849 2004-04-26 David Waite <mass@akuma.org>
9850
9851         * debug-mono-symfile.h:
9852         * decimal.c:
9853         * mono_debug.h:
9854         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9855
9856
9857 2004-04-26  Jackson Harper  <jackson@ximian.com>
9858
9859         * appdomain.c: Increment version number.
9860         
9861 2004-04-26  Jackson Harper  <jackson@ximian.com>
9862
9863         * appdomain.c: Set assembly references public token value when
9864         PublicKeyToken is specified, not the hash_value. Free public token
9865         values when free assembly name data. Previously the public key
9866         token was hex decoded, however we are using hex encoded public key
9867         tokens, so this is not neccasary.
9868         * assembly.c: Lookup assemblies in the gac if their public token
9869         value is set. Add function to allow enabling user gac
9870         lookups. Specify whether or not the assembly was loaded from the
9871         GAC. Compare full assembly names when checking the cache for
9872         assemblies (Temporarily disabled see comment in code). Remove
9873         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9874         specifies trace-loader they get extra info to stdout on the
9875         loading of assemblies.
9876         * image.h: Add a field for an assembly references public token
9877         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9878         whether an assembly has been loaded from the GAC.
9879         * image.c: Remove a corlib -> mscorlib name mapping.
9880         * loader.h: Add function to enable/disable the user gac.
9881         * mono-config.c: Check if the usergac is enabled in the config
9882         file.
9883         * icall.c: New icall to determine whether or not an assembly has
9884         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9885         * tabldefs.h: Add constant for assemblyref flag that specifies a
9886         full public key is used instead of a public token.
9887         * reflection.c: Remove mscorlib -> corlib mappings. Set
9888         PublicTokenValue instead of hash value. This value is a hex
9889         string so it does not need to be expanded.
9890
9891 2004-04-26  Martin Baulig  <martin@ximian.com>
9892
9893         * mono-debug-debugger.c (mono_debugger_initialize): Set
9894         `mono_debugger_initialized' before calling mono_debug_lock().
9895
9896 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9897
9898         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9899           InternalToUpper/InternalToLower.
9900         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9901           removed invariant culture shortcut.  This is now done in managed code.
9902         * locales.c: (string_invariant_toupper/tolower) removed.
9903
9904 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9905
9906         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9907         Added Poll internal call.
9908
9909         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9910         call for Poll. Select was too heavy for polling a single socket.
9911
9912         * threadpool.[ch]: added mono_threadpool_cleanup.
9913         * threads.c: use it. Don't use Thread_Abort on windows.
9914
9915 2004-04-23  Martin Baulig  <martin@ximian.com>
9916
9917         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9918
9919 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9920
9921         * icall.c: Registred new icalls for key pair protection and added an
9922         icall for Environment.GetFolderPath on Windows.
9923         * security.c|h: Added new icalls for key pair protection.
9924
9925 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9926
9927         * socket-io.c: don't display the non-supported family warning for known
9928         families. Now this is not displayed on windows when checking support
9929         for IPv4/IPv6.
9930
9931 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9932
9933         * class.c: don't display the layout warning for static fields.
9934
9935 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9936
9937         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9938         * locales.c, locales.h: Added new icalls for culture-specific
9939         Char.ToLower and Char.ToUpper.
9940
9941 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9942
9943         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9944         by David Waite.
9945
9946 2004-04-20  Martin Baulig  <martin@ximian.com>
9947
9948         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9949         of the type name before passing it to mono_reflection_type_from_name().
9950
9951 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9952
9953         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9954         encodings here. Fixes #56965.
9955
9956 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9957
9958         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9959         fix test on strstr result not that I can see anything that
9960         relies on the result.
9961
9962 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9963
9964         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9965         Fixes #57081.
9966
9967         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9968
9969         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9970         function to determine which marshalling to use for strings. Fixes
9971         #56965.
9972
9973         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9974
9975         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9976
9977 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9978
9979         * icall.c: #include mono-config.h
9980
9981 2004-04-15  Jackson Harper  <jackson@ximian.com>
9982
9983         * culture-info-tables.h: Fix date formats for en-US culture.
9984         
9985 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9986
9987         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9988         ThreadPool.SetMinThreads.
9989         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9990         ThreadPool.SetMinThreads.
9991
9992 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9993
9994         * mono-config.c: also load the .config file in the directory
9995         where the assembly was found.
9996
9997 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9998
9999         * assembly.c: load per-assembly config files.
10000         * icall.c: decrapified code to get the config dir and moved to
10001         mono-config.c.
10002         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
10003         per-assembly config files. When doing a dll map lookup give precedence
10004         to the per-assembly data.
10005
10006 2004-04-14  Martin Baulig  <martin@ximian.com>
10007
10008         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
10009         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
10010         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
10011
10012         * mono-debugger-debugger.c: While the debugger is locked, remember
10013         whether the symbol tables have changes and send one single
10014         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
10015
10016 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
10017
10018         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
10019
10020         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
10021         function.
10022
10023         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
10024         account when marshalling string arrays. Fixes #56965.
10025
10026 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
10027
10028         * icall.c: Add new icalls mapping for security.
10029         * security.c|h: Add internal calls for WindowsIdentity,
10030         WindowsImpersonationContext and WindowsPrincipal.
10031
10032 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
10033
10034         * class.c: Added comment to ensure the System.MonoDummy class
10035         is removed when no longer necessary
10036
10037 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
10038
10039         * appdomain.c: Pass arguments to the bootstraping exceptions to
10040         minimize JITed methods at boot
10041
10042         * metadata.c (mono_exception_from_name_two_strings): Allow for the
10043         second string to be null.
10044
10045         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
10046         Change the protocol to minimize the JIT methods at startup.  Now
10047         it Returns the internal codepage, if the value of "int_code_page"
10048         is 1 at entry, and we can not compute a suitable code page
10049         number, returns the code page as a string.
10050
10051 2004-04-13  Jackson Harper  <jackson@ximian.com>
10052
10053         * culture-info-tables.h: Fix number of decimal digits for all
10054         english locales.
10055
10056 2004-04-13  Jackson Harper  <jackson@ximian.com>
10057
10058         * icall.c: Clairfy out of sync error message. It is not always
10059         your corlib that is out of sync.
10060
10061 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
10062
10063         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
10064         properties when only the set accessor is overriden. Fixes #55874.
10065
10066 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
10067
10068         * assembly.c (mono_assembly_load_references): Make this thread safe.
10069         Fixes #56327.
10070
10071 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
10072
10073         * monosn.c: Add missing initialization calls.
10074
10075 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
10076
10077         * locales.c:
10078         ves_icall_System_Globalization_CultureInfo_construct_number_format
10079         Fix g_assert so it compiles on fussier compilers re int/ptr
10080         mismatch
10081
10082 2004-04-08  Dick Porter  <dick@ximian.com>
10083
10084         * socket-io.h:
10085         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
10086         53992.  Also rearrange the code so that the internal calls return
10087         an error value and exceptions are thrown from managed code.
10088
10089         * icall.c: Add type info to the socket icalls.
10090
10091 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10092
10093         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
10094         owes me a beer.
10095
10096 2004-04-07  Martin Baulig  <martin@ximian.com>
10097
10098         * class.c (mono_class_from_generic_parameter): Don't default
10099         `klass->parent' to `mono_defaults.object_type'.
10100
10101 2004-04-07  Martin Baulig  <martin@ximian.com>
10102
10103         * reflection.c (mono_reflection_initialize_generic_parameter): Set
10104         `param->pklass->reflection_info'.       
10105
10106 2004-04-07  Jackson Harper  <jackson@ximian.com>
10107
10108         * culture-info-tables.h: Fix date separator symbol.
10109         
10110 2004-04-07  Martin Baulig  <martin@ximian.com>
10111
10112         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
10113         from System.Type to System.MonoType.
10114
10115 2004-04-07  Martin Baulig  <martin@ximian.com>
10116
10117         * reflection.h
10118         (MonoReflectionGenericParam): Added `has_reference_type' and
10119         `has_value_type' fields.
10120
10121         * reflection.c (mono_image_get_generic_param_info): Encode the
10122         correct flags if we have the `class' or `struct' constraint.
10123
10124 2004-04-07  Martin Baulig  <martin@ximian.com>
10125
10126         * reflection.h
10127         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
10128
10129 2004-04-07  Jackson Harper  <jackson@ximian.com>
10130
10131         * appdomain.c: Revert extra patches, just wanted to bump the
10132         version number.
10133         
10134 2004-04-07  Jackson Harper  <jackson@ximian.com>
10135
10136         * Makefile.am: Add culture-info private headers.
10137         * icall.c: Add new icalls for contructing locales.
10138         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
10139         * locales.h: Declare new culture info construction methods.
10140         * object.h: Add new fields used to avoid the CultureMap to
10141         MonoCultureInfo.
10142         * culture-info.h: Definition of structs used in the culture info
10143         tables.
10144         * culture-info-tables.h: Autogenerated tables that contain culture
10145         info data. This file was generated with the locale-builder tool.
10146         * appdomain.c: Incement corlib version number.
10147         
10148 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
10149
10150         * appdomain.c: (mono_runtime_init) move mono_thread_init
10151         to before mono_object_new calls so critical sections
10152         are initialized before use.
10153
10154 2004-04-07  Martin Baulig  <martin@ximian.com>
10155
10156         * icall.c
10157         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
10158         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
10159         (ves_icall_MonoGenericParam_initialize): Removed.
10160         (monogenericparam_icalls): Removed.
10161         (generictypeparambuilder_icalls): Added new table for
10162         System.Reflection.Emit.GenericTypeParameterBuilder.
10163
10164         * reflection.c
10165         (mono_reflection_define_generic_parameter): Removed.
10166         (mono_reflection_initialize_generic_parameter): This is now called
10167         from GenericTypeParameterBuilder's .ctor.
10168
10169 2004-04-06  Martin Baulig  <martin@ximian.com>
10170
10171         * class.c (mono_class_init): Don't inflate nested classes in a
10172         generic instance.
10173         (mono_type_get_name_recurse): Include the generic arguments for
10174         generic instances and generic type declarations.
10175         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
10176         (_mono_class_get_instantiation_name): Removed.
10177         (mono_class_create_generic): Always use `gklass->name' as our name.
10178
10179         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
10180
10181         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
10182         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
10183         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
10184         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
10185         closed generic methods here.
10186
10187         * reflection.c
10188         (mono_reflection_generic_inst_get_nested_types): Removed.
10189         (inflate_mono_method): Copy the generic parameters from the
10190         MonoMethodHeader into out MonoGenericMethod.
10191
10192 2004-04-06  Martin Baulig  <martin@ximian.com>
10193
10194         * row-indexes.h
10195         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
10196
10197         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
10198
10199         * reflection.c (build_compressed_metadata): If we have any entries
10200         in the GenericParam, MethodSpec or GenericParamConstraint tables,
10201         set the header version to 1.1.
10202
10203 2004-04-06  Martin Baulig  <martin@ximian.com>
10204
10205         * class.c (mono_class_init): If we're a generic instance,
10206         initialize our nested classes, too.
10207         (_mono_class_get_instantiation_name): Deal with the new `!%d'
10208         suffix. 
10209
10210 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10211
10212         * process.c: quote the argument passed to the shell on windows.
10213
10214 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
10215
10216         * threads.c (mono_alloc_special_static_data): Allow this to be
10217         called during startup.
10218
10219 2004-04-02  Martin Baulig  <martin@ximian.com>
10220
10221         * icall.c
10222         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
10223
10224 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
10225
10226         * icall.c: Fix build.
10227
10228 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
10229
10230         * Makefile.am: Added security.c|h.
10231         * icall.c: Added icall for get_UserName;
10232         * security.c: New file for security related icalls. Added function
10233         get_UserName for System.Environment (fix #56144).
10234         * security.h: New. Header file for security.c
10235
10236 2004-04-02  Dick Porter  <dick@ximian.com>
10237
10238         * icall.c: Deleted the icalls that were obsoleted some time ago
10239         by the ICU string code, and which were mixed into the icall
10240         rearranging.  Fixes bug 55969.
10241
10242         * string-icalls.h: 
10243         * string-icalls.c: Deleted the code that those icalls reference.
10244
10245 2004-04-01  Martin Baulig  <martin@ximian.com>
10246
10247         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
10248
10249         * class.c (mono_class_from_generic_parameter): Don't set 
10250         TYPE_ATTRIBUTE_INTERFACE.
10251         (my_mono_class_from_generic_parameter): Likewise.
10252
10253 2004-04-01  Martin Baulig  <martin@ximian.com>
10254
10255         * loader.c (find_method): Added an optional `MonoClass *ic'
10256         argument to search in a specific interface.
10257         (mono_get_method_constrained): New public function.
10258
10259 2004-04-01  Martin Baulig  <martin@ximian.com>
10260
10261         * reflection.c (mono_image_get_generic_field_token): Use the
10262         `handleref' cache here.
10263
10264 2004-04-01  Martin Baulig  <martin@ximian.com>
10265
10266         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
10267
10268         * reflection.c (create_generic_typespec): Use the `typespec' hash
10269         here, not the `typeref' one.    
10270
10271 2004-04-01  Martin Baulig  <martin@ximian.com>
10272
10273         * class.c (mono_class_inflate_generic_type): Moved the
10274         functionality into a new static inflate_generic_type() which
10275         returns NULL if it didn't do anything.  Only increment the
10276         `mono_stats.inflated_type_count' if we actually inflated
10277         something.
10278         (mono_class_get_full): Check the classes type to see whether we
10279         need to inflate it; also inflate MONO_TYPE_(M)VAR.
10280
10281 2004-04-01  Jackson Harper  <jackson@ximian.com>
10282
10283         * reflection.c: Set culture for assembly references.
10284         
10285 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
10286
10287         * reflection.[ch], icall.[ch], Fix support for pinning variables.
10288
10289 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10290
10291         * assembly.c:
10292         (do_mono_assembly_open): the critical section also covers
10293         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
10294
10295 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10296
10297         * threads.c:
10298         (mono_manage_threads): abort the background threads when finishing.
10299         Fixes bug #47232.
10300
10301 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10302
10303         * gc.c: only close the done_event handle if there was no timeout.
10304         C-ified comments.
10305
10306 2004-03-30  Martin Baulig  <martin@ximian.com>
10307
10308         * icall.c (icall_entries): It's called "System.Activator", not
10309         "System.Activation".    
10310
10311 2004-03-30  Martin Baulig  <martin@ximian.com>
10312
10313         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
10314         (mono_class_create_from_typespec): Likewise.
10315
10316 2004-03-30  Martin Baulig  <martin@ximian.com>
10317
10318         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
10319         `has_ctor_constraint' and `initialized'.
10320
10321 2004-03-30  Martin Baulig  <martin@ximian.com>
10322
10323         * reflection.c (encode_new_constraint): New static function to add
10324         the constructor constraint attribute to a type parameter.
10325         (encode_constraints): Call encode_new_constraint() if necessary.
10326
10327         * reflection.h
10328         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
10329
10330         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
10331         
10332 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
10333
10334         * reflection.c, icall.c: add support for pinning variables. 
10335
10336 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
10337
10338         * marshal.c (mono_marshal_get_managed_wrapper):
10339         init bool local with zero rather than null.
10340
10341 2004-03-29  Martin Baulig  <martin@ximian.com>
10342
10343         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
10344         the "official" behavior here.
10345         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
10346
10347 2004-03-29  Martin Baulig  <martin@ximian.com>
10348
10349         * icall.c: Reflect latest API changes.
10350
10351 2004-03-29  Martin Baulig  <martin@ximian.com>
10352
10353         * loader.c (mono_get_method_from_token): Also call
10354         mono_metadata_load_generic_params () for abstract and interface
10355         methods; replace the type arguments in the method signature with
10356         the ones which are loaded from the metadata.
10357
10358 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
10359
10360         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
10361         of the lock is not the current thread. MS.NET don't do it, in spite of
10362         what the documentation says. See bug #56157.
10363
10364 2004-03-28  Martin Baulig  <martin@ximian.com>
10365
10366         * class.c (mono_class_init): Don't call init_properties() and
10367         init_events() for generic instances; set `prop->parent' when
10368         inflating properties.
10369
10370         * reflection.c (mono_generic_inst_get_object): Call
10371         `mono_class_init (ginst->klass)'.
10372         (mono_type_get_object): Only create a MonoGenericInst if your
10373         generic type is a TypeBuilder.
10374         (do_mono_reflection_bind_generic_parameters): Only set
10375         `ginst->is_dynamic' if our generic type is a TypeBuilder.
10376
10377 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
10378
10379         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
10380         Fixes #56091.
10381
10382 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10383
10384         * icall.c: added Kill_internal icall.
10385         * process.[ch]: added Kill_internal icall.
10386
10387 2004-03-25  Martin Baulig  <martin@ximian.com>
10388
10389         * class.h (MonoStats): Added `generic_instance_count',
10390         `inflated_method_count', `inflated_type_count' and
10391         `generics_metadata_size'.       
10392
10393 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10394
10395         * reflection.c: no warnings now.
10396
10397 2004-03-25  Martin Baulig  <martin@ximian.com>
10398
10399         * class.c (mono_class_get_full): New public function; does a
10400         mono_class_get(), but also takes a `MonoGenericContext *'.
10401
10402         * loader.c (mono_field_from_memberref): Renamed to
10403         `field_from_memberref', made static and added `MonoGenericContext *'
10404         argument.
10405         (mono_field_from_token): Added `MonoGenericInst *' argument.
10406         (method_from_memberef): Likewise.
10407         (mono_get_method_from_token): Likewise.
10408         (mono_get_method_full): New public function; does a
10409         mono_get_method(), but also takes a `MonoGenericContext *'.
10410
10411         * verify.c (mono_method_verify): Get the method's generic context
10412         and pass it to mono_field_from_token(), mono_get_method_full() and
10413         mono_class_get_full().
10414
10415 2004-03-25  Martin Baulig  <martin@ximian.com>
10416
10417         * class.c (mono_class_inflate_generic_type): Take a
10418         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
10419         `MonoGenericMethod *'.
10420
10421 2004-03-25  Martin Baulig  <martin@ximian.com>
10422
10423         * loader.h (MonoMethodInflated): Store the MonoGenericContext
10424         instead of the MonoGenericMethod here.
10425
10426 2004-03-25  Martin Baulig  <martin@ximian.com>
10427
10428         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
10429         each time we create a new MonoGenericInst, we also create a new
10430         context which points back to us.
10431
10432         * class.c (inflate_method): Use `ginst->context' instead of
10433         creating a new context.
10434
10435         * loader.c (method_from_memberref): Use
10436         `klass->generic_inst->context' instead of creating a new context.
10437
10438 2004-03-25  Martin Baulig  <martin@ximian.com>
10439
10440         * class.h (MonoGenericContext): New struct.
10441         (MonoGenericMethod): Removed `generic_inst'.
10442
10443         * class.c (mono_class_inflate_generic_method): Take a
10444         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
10445
10446 2004-03-25  Martin Baulig  <martin@ximian.com>
10447
10448         * loader.h (MonoMethodInflated): New typedef.
10449
10450         * metadata.h (MonoMethodSignature): Removed `gen_method', make
10451         `generic_param_count' consume just 30 bits, added `is_inflated'
10452         and `has_type_parameters' flags (one bit each).
10453
10454         * class.c (mono_class_inflate_generic_method): Create a
10455         MonoMethodInflated instead of a MonoMethodNormal and set
10456         `is_inflated' in the method signature.
10457
10458         * class.h (MonoGenericMethod): Removed `generic_method'.
10459
10460 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
10461
10462         * image.c: Make sure the name of a MonoImage is always an absolute path.
10463           This fixes bug #54415.
10464
10465 2004-03-24  Martin Baulig  <martin@ximian.com>
10466
10467         * class.c (mono_class_setup_vtable): If we're a generic instance,
10468         use our generic type's vtable size.
10469
10470 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
10471
10472         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
10473         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
10474         problems.
10475
10476 2004-03-23  Martin Baulig  <martin@ximian.com>
10477
10478         * class.h (MonoDynamicGenericInst): Added `int count_events' and
10479         `MonoEvent *events'.
10480
10481         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
10482         (typebuilder_icalls): Added "get_event_info"; calls
10483         mono_reflection_event_builder_get_event_info(). 
10484
10485         * reflection.c (mono_reflection_generic_inst_initialize): Added
10486         `MonoArray *events'.
10487         (mono_reflection_event_builder_get_event_info): New function.
10488
10489 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
10490
10491         * object.h: add mono_type_initialization_init
10492
10493         * object.c (mono_runtime_class_init): 
10494         implement class constructor synchronization rules
10495         to cope with threading issues.  
10496         add mono_type_initialization_init
10497
10498         * appdomain.c (mono_runtime_init): call 
10499         mono_type_initialization_init
10500
10501         * class.h: removing initializing field from MonoVTable
10502
10503 2004-03-23  Martin Baulig  <martin@ximian.com>
10504
10505         * class.c (my_mono_class_from_generic_parameter): Use
10506         `param->name' if it's not NULL. 
10507
10508 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
10509
10510         * class.c: do not insert non-virtual methods in the vtable.
10511         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
10512         that means the method is non-virtual. This never would have
10513         happened before.
10514
10515 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
10516
10517         * profiler.c: Added lock for accessing coverage_hash.
10518
10519 2004-03-22  Martin Baulig  <martin@ximian.com>
10520
10521         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
10522         `method->method->signature->generic_param_count != 0' to make it
10523         work for interface methods.
10524
10525 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10526
10527         * process.c: quote the string passed to the shell using g_shell_quote.
10528
10529 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10530
10531         * threads.c:
10532         (mono_threads_manage): don't remove the finalizer thread and self
10533         from the threads hash table so that mono_thread_manage can be called
10534         more than once.
10535
10536 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10537
10538         * process.c: quote the arguments when UseShellExecute is true. Fixes
10539         bug #55790.
10540
10541 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10542
10543         * threads.c: set mono_thread_detach as a cleanup routine for every
10544         thread. This way it's always executed upon thread termination, either
10545         aborted or finished normally. No more xsp hangs!
10546
10547 2004-03-17  Martin Baulig  <martin@ximian.com>
10548
10549         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
10550         `int count_nested' and a `MonoType **nested'.
10551
10552         * reflection.c (mono_reflection_bind_generic_parameters): Moved
10553         most of the functionality into a new static
10554         do_mono_reflection_bind_generic_parameters() and don't take a
10555         `MonoType *nested_in' argument any more.  Don't compute nested
10556         types here.
10557         (mono_reflection_generic_inst_get_nested_types): New public method
10558         to get nested types.
10559
10560         * class.c (mono_class_create_generic): Set `klass->nested_in' if
10561         we're a nested class.
10562
10563         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
10564         mono_reflection_generic_inst_get_nested_types() to compute the
10565         nested types.
10566
10567 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10568
10569         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
10570         descriptive error message under windows.
10571         
10572 2004-03-17  Martin Baulig  <martin@ximian.com>
10573
10574         * class.c (dup_type): Added `const MonoType *original' argument;
10575         copy the attrs from the original type.
10576
10577 2004-03-17  Martin Baulig  <martin@ximian.com>
10578
10579         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
10580         `m->generic_inst_cache' here.
10581
10582 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10583
10584         * exception.h exception.c: Add stack_overflow_exception.
10585
10586 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10587
10588         * threadpool.c:
10589         (overlapped_callback): call SetEvent *after* invoking the callback.
10590         No need to call CloseHandle.
10591
10592 2004-03-16  Martin Baulig  <martin@ximian.com>
10593
10594         * reflection.c (mono_image_get_fieldref_token): Take a
10595         `MonoReflectionField *' instead of a `MonoClassField *' and a
10596         `MonoClass *'; store the `MonoReflectionField *' in the hash.
10597
10598 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10599
10600         * appdomain.c: don't add the culture to the filename we're looking for
10601         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
10602
10603 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10604
10605         * locales.c: don't ignore symbols when doing case insensitive compares.
10606         Thanks Dick! Fixes bug #54046.
10607
10608         * threads.c: surround 'threads' usage with enter/leave in
10609         mono_thread_manage.
10610
10611 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
10612
10613         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
10614         implicitly marshalled as [Out]. Fixes #55450.
10615
10616         (mono_marshal_get_runtime_invoke): Zero out the result if there is
10617         an exception.
10618
10619 2004-03-16  Martin Baulig  <martin@ximian.com>
10620
10621         * class.c (mono_class_from_generic_parameter): Use the actual
10622         parameter name. 
10623
10624 2004-03-16  Martin Baulig  <martin@ximian.com>
10625
10626         * reflection.c (type_get_signature_size): New static function.
10627         Compues the size of the type in a method signature.
10628         (method_get_signature_size): New static function; calls
10629         type_get_signature_size() to compute the actual size of the
10630         method's signature.
10631         (method_encode_signature): Use method_get_signature_size() to get
10632         the signature's size rather than using `nparams * 10'.
10633
10634 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10635
10636         * file-io.h: define here WapiOverlapped on windows. I don't want the
10637         regular OVERLAPPED one.
10638
10639         * file-io.c:
10640         * threadpool.c: somehow, BindIoCompletionCallback is not found.
10641         Disabling AIO on windows.
10642
10643 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10644
10645         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
10646         bug #55385.
10647
10648 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10649
10650         * appdomain.c: upgraded corlib version.
10651
10652         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
10653         and BeginWrite. Allow opening files for asynchrnous operations.
10654
10655         * file-io.h: new struct that maps FileStreamAsyncResult.
10656         * icall.c: added new icalls.
10657         * process.[ch]: support setting child process environment variables
10658         and use the SHELL or COMSPEC when UseShellExecute is true.
10659
10660         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
10661         callback for async. IO is here and also BindHandle.
10662
10663         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
10664         from here.
10665
10666 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
10667
10668         * reflection.c (create_custom_attr): Allow len == 0.
10669
10670         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
10671         computation on big-endian machines.
10672
10673 2004-03-13  Martin Baulig  <martin@ximian.com>
10674
10675         * class.h (MonoGenericInst): Added `int count_ifaces'.
10676
10677         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
10678         `ginst->count_ifaces' instead `klass->interface_count' since we
10679         may get called before the vtable is created.
10680
10681         * loader.c (mono_method_get_param_names): If we're a generic
10682         instance, return and don't initialize the class.
10683
10684         * reflection.c (mono_reflection_setup_generic_class): Don't call
10685         ensure_runtime_vtable().
10686         (mono_reflection_bind_generic_parameters): Set
10687         `ginst->count_ifaces'.
10688
10689 2004-03-11  Jackson Harper <jackson@ximian.com>
10690
10691         * icall.c:
10692         * unicode.c:
10693         * unicode.h: Remove unused System.Char icalls.
10694         
10695 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
10696
10697         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
10698         code when we P/Invoke the first library in Windows.Forms, instead
10699         of when we first open the assembly.
10700
10701         * assembly.c: Drop the lookup from here.
10702
10703 2004-03-10  Martin Baulig  <martin@ximian.com>
10704
10705         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
10706         class for properties, fields and events.  Finally fixes #54945.
10707
10708 2004-03-10  Martin Baulig  <martin@ximian.com>
10709
10710         * metadata.c (mono_metadata_class_equal): New static function;
10711         checks whether two generic instances or two generic parameters are
10712         equal.
10713         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
10714         compare classes.        
10715
10716 2004-03-10  Martin Baulig  <martin@ximian.com>
10717
10718         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
10719
10720         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
10721         argument and write it into the `reflection_info' field.
10722
10723         * icall.c
10724         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
10725         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
10726
10727 2004-03-09  Jackson Harper  <jackson@ximian.com>
10728
10729         * char-conversions.h: use 8 bits for numeric data its all we need
10730         * icall.c: numeric data is only 8 bits now.
10731
10732 2004-03-09  Martin Baulig  <martin@ximian.com>
10733
10734         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
10735
10736         * class.c (init_properties, init_events): Initialize the new
10737         `parent' field.
10738
10739         * reflection.c (typebuilder_setup_properties): Likewise.
10740         (typebuilder_setup_events): Likewise.
10741
10742         * reflection.h (MonoEventInfo): Replaced `parent with
10743         `declaring_type' and `reflected_type'.
10744
10745         * icall.c (ves_icall_get_property_info): Distinguish between
10746         declaring and reflected type.
10747         (ves_icall_get_event_info): Likewise.
10748
10749 2004-03-09  Martin Baulig  <martin@ximian.com>
10750
10751         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
10752         (ves_icall_Type_GetField): Correctly set field->klass.
10753
10754 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
10755
10756         * loader.h: Fix warning.
10757
10758 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
10759
10760         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
10761         library routine if present.  Notice that it will still continue
10762         executing even if its missing, for those working on the Gtk#
10763         edition of Windows.Forms.
10764
10765         * assembly.c (do_mono_assembly_open): If loading the
10766         System.Windows.Forms call mono_loader_wini_init.
10767
10768 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
10769
10770         * class.h: Added MonoRemoteClass struct.
10771         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
10772         function for MonoStrings.
10773         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
10774         Added internal call for getting the proxy type.
10775         * marshal.c: Get the type of transparent proxies from its remote_class.
10776         Added methods that generate the IL for type checks and casts:
10777         mono_marshal_get_isinst, mono_marshal_get_castclass, 
10778         mono_marshal_get_proxy_cancast.
10779         * marshal.h: Declaration of the previous new methods.
10780         * object.c: Added new moethods for creating and updating MonoRemoteClass
10781         instances: mono_remote_class, mono_upgrade_remote_class, 
10782         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
10783         * verify.c: FIx transparent_proxy_fields layout.
10784         * appdomain.c: Bump corlib version.
10785
10786 2004-03-04  Jackson Harper  <jackson@ximian.com>
10787
10788         * icall.c: Add icall to access char conversion tables.
10789         * char-conversions.h: Character conversion tables.
10790         * Makefile.am: Add char-conversions.h private header file.
10791         
10792 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
10793
10794         * appdomain.c (unload_thread_main): Increase unloading timeout to
10795         10 sec as a temporary workaround for Nant problems.
10796
10797 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
10798
10799         * gc.c: Add checks for GC_enable and GC_disable.
10800
10801         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
10802         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
10803         (bug #54988).
10804         
10805 2004-02-27  Martin Baulig  <martin@ximian.com>
10806
10807         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10808         `MonoReflectionType *' instead of a `MonoType *'.
10809
10810 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
10811
10812         * gc.c (run_finalize): Avoid finalizing the object representing the
10813         finalizer thread.
10814         (finalizer_thread): Fix warning.
10815
10816 2004-02-25  Martin Baulig  <martin@ximian.com>
10817
10818         * class.c (_mono_class_get_instantiation_name): Added `int offset'
10819         argument for nested types.
10820         (mono_class_create_generic): Added support for nested generictypes.
10821
10822         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
10823         `GList *nested'.
10824
10825         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10826
10827         * reflection.c (method_encode_signature): Increase the minimum
10828         value of `size' from 10 to 11.
10829         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10830         and `MonoType **types' arguments instead of the `MonoArray
10831         *types'; added `MonoType *nested_in'.  Recursively instantiate
10832         nested classes. 
10833
10834 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10835
10836         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10837         stack_overflow_ex members which are used by exception handling.
10838
10839         * appdomain.c (mono_runtime_init): Initialize the new members.
10840
10841         * gc.c (mono_gc_enable): New helper function.
10842         * gc.c (mono_gc_disable): New helper function.
10843
10844 2004-02-23  Martin Baulig  <martin@ximian.com>
10845
10846         * icall.c: I must have been really stupid - make it actually work
10847         this time ;-)
10848
10849 2004-02-23  Martin Baulig  <martin@ximian.com>
10850
10851         * loader.c (method_from_memberref): Only inflate the method if
10852         it's in another klass.
10853
10854 2004-02-23  Martin Baulig  <martin@ximian.com>
10855
10856         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10857         (mono_class_init): If we're a generic instance and an interface,
10858         compute `class->interface_id'; also create `class->interfaces'
10859         here and inflate them.
10860
10861         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10862         `ginst->is_open'.
10863         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10864
10865         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10866
10867 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10868
10869         * reflection.c (method_encode_code): Improved the error message
10870         generated by the exception.
10871
10872 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10873
10874         * icall.c: Martin did not do what he said in the ChangeLog for
10875         2004-02-18, but put back the changes for properties and events.
10876         Commenting those changes out again and adding comment to bug #54518.
10877         
10878         * process.c: removed warning.
10879
10880 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10881
10882         * marshal.c (emit_struct_conv): Print an error message instead of
10883         asserting when a type does not have the StructLayout attribute.
10884
10885 2004-02-20  Martin Baulig  <martin@ximian.com>
10886
10887         * reflection.c (mono_type_get_object): Also use the cache for
10888         generic instances.
10889         (mono_reflection_bind_generic_parameters): Always compute
10890         `ginst->ifaces'.        
10891
10892 2004-02-20  Martin Baulig  <martin@ximian.com>
10893
10894         * class.h (MonoGenericMethod): Removed `klass'.
10895
10896         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10897         *klass' argument.
10898
10899 2004-02-20  Martin Baulig  <martin@ximian.com>
10900
10901         * reflection.c (method_encode_methodspec): Actually use the
10902         uninflated signature for the memberref.
10903
10904 2004-02-20  Martin Baulig  <martin@ximian.com>
10905
10906         * class.h (MonoGenericMethod): Removed `declaring'.
10907
10908         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10909         is NULL, compute it here.
10910
10911 2004-02-20  Martin Baulig  <martin@ximian.com>
10912
10913         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10914
10915         * metadata.c (mono_metadata_generic_inst_hash): New method.
10916         (mono_metadata_generic_inst_equal): New method.
10917
10918         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10919         `klass->image->generic_inst_cache' cache to avoid creating
10920         duplicate MonoGenericInst's.
10921
10922         * class.c (mono_class_inflate_generic_type): Use the cache.
10923
10924 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10925
10926         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10927
10928 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10929
10930         * icall.c: added Socket.WSAIoctl icall.
10931
10932         * socket-io.[ch]: implemented
10933         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10934
10935 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10936
10937         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10938
10939 2004-02-18  Urs C Muff  <umuff@quark.com>
10940
10941         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10942         this work on PPC and other big-endian architectures.
10943
10944         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10945         fields with an underscore to make sure they're only accessed by
10946         the read32() macro.
10947
10948 2004-02-18  Martin Baulig  <martin@ximian.com>
10949
10950         * icall.c: Put the klass->refclass changes back for methods and
10951         fields, but not for properties and events.  We're currently not
10952         distinguishing between DeclaringType and ReflectedType for
10953         properties and events, that's what caused the regressions.
10954
10955 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10956
10957         * object.c:
10958         (mono_async_result_new): the handle can be NULL.
10959
10960         * threadpool.c: Use an event instead of a semaphore, don't initialize
10961         it until needed. This saves quite a few semaphores from being created
10962         when using the threadpool.
10963
10964 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10965
10966         * object.c (mono_string_is_interned_lookup): Fix interning of long
10967         strings. Fixes #54473.
10968
10969         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10970
10971         * icall.c: Revert the klass->refclass changes since they introduce
10972         regressions (bug #54518).
10973
10974 2004-02-18  Martin Baulig  <martin@ximian.com>
10975
10976         * class.c (mono_class_init): If we're a generic instance and don't
10977         come from a TypeBuilder, inflate our members here.
10978         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10979         (mono_class_create_generic): New public method.
10980         (mono_class_initialize_generic): Removed.
10981         (get_instantiation_name): Renamed to
10982         _mono_class_get_instantiation_name() and made it public.
10983
10984 2004-02-18  Martin Baulig  <martin@ximian.com>
10985
10986         * class.c (mono_class_inflate_generic_type): Clear the new
10987         instance's `nginst->klass' when inflating a generic instance.
10988         (mono_class_is_subclass_of): Added (basic) support for generic
10989         instances.
10990
10991 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10992
10993         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10994         MonoMempool to hold compiled native code.
10995
10996 2004-02-17  Martin Baulig  <martin@ximian.com>
10997
10998         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10999         `properties'.
11000
11001         * reflection.c (mono_reflection_generic_inst_initialize): Added
11002         `MonoArray *properties' argument.
11003
11004         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
11005
11006 2004-02-17  Martin Baulig  <martin@ximian.com>
11007
11008         * icall.c (ves_icall_Type_GetFields): Renamed to
11009         ves_icall_Type_GetFields_internal() and added a
11010         `MonoReflectionType *rtype' argument; pass it to
11011         mono_field_get_object() to set the field's "reflected" type.
11012         (ves_icall_Type_GetConstructors): Likewise.
11013         (ves_icall_Type_GetEvents): Likewise.
11014         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
11015         argument; pass it to mono_method_get_object() to set the method's
11016         "reflected" type.       
11017
11018 2004-02-17  Martin Baulig  <martin@ximian.com>
11019
11020         * class.h (MonoDynamicGenericInst): New type.
11021         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
11022
11023         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
11024         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
11025         (ves_icall_MonoGenericInst_GetFields): New interncall.
11026
11027         * class.c (mono_class_from_generic): Don't call
11028         mono_class_initialize_generic() if this is a dynamic instance;
11029         ie. it's being created from a TypeBuilder.
11030         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
11031         `class->byval_arg.type'.
11032
11033         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
11034         to `inflate_method' and made static.
11035         (mono_reflection_inflate_field): Removed.
11036         (mono_reflection_generic_inst_initialize): New public method.
11037
11038         * reflection.h (MonoReflectionGenericInst): Removed `methods',
11039         `ctors' and `fields'; added `initialized'.
11040
11041 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
11042
11043         * debug-helpers.c (mono_method_full_name): Fix output for empty
11044         namespaces.
11045
11046 2004-02-12  Martin Baulig  <martin@ximian.com>
11047
11048         * class.h (MonoClassField): Added `MonoType *generic_type'.
11049
11050         * reflection.c (mono_image_get_fieldref_token): Added support for
11051         instantiated generic types.
11052         (field_encode_inflated_field): Removed.
11053         (mono_image_get_inflated_field_token): Removed.
11054         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
11055
11056         * reflection.h (MonoReflectionInflatedField): Removed.
11057
11058 2004-02-12  Martin Baulig  <martin@ximian.com>
11059
11060         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
11061         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
11062
11063         * reflection.c (mono_image_get_methodspec_token): Take a
11064         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
11065         (mono_image_create_token): Check whether we have a
11066         `method->signature->gen_method' and call
11067         mono_image_get_methodspec_token() if appropriate.
11068         (inflated_method_get_object): Removed.
11069         (mono_reflection_bind_generic_method_parameters): Return a
11070         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
11071         (mono_reflection_inflate_method_or_ctor): Likewise.
11072
11073         * reflection.h (MonoReflectionInflatedMethod): Removed.
11074
11075 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
11076
11077         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
11078         for custom valuetype marshalling.
11079
11080         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
11081
11082 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11083
11084         * icall.c: fixed WSAGetLastError_internal name.
11085
11086 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
11087
11088         * threads.c (mono_thread_attach): Allow this to be called multiple
11089         times for a thread.
11090         
11091         * threads.c (build_wait_tids): Do not wait for ourselves.
11092
11093         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
11094         appdomain list is empty.
11095
11096         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
11097         memory returned by mono_string_builder_to_utf16, since it points into
11098         managed memory. Thanks to Bernie Solomon for noticing this.
11099
11100         * icall.c: Add AppDomainSetup icalls.
11101
11102         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
11103
11104         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
11105         types.
11106
11107         * reflection.c (reflection_methodbuilder_to_mono_method): Save
11108         custom attributes to the method_aux struct. Also fix array indexes etc.
11109
11110         * loader.c (mono_method_get_param_names): Make dynamic case work again.
11111         
11112 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
11113
11114         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
11115         (both static and runtime) and reduce startup time.
11116
11117 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
11118
11119         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
11120         AsAny marshalling conversion instead of crashing.
11121
11122         * marshal.c: Fix warnings.
11123
11124 2004-02-09  Martin Baulig  <martin@ximian.com>
11125
11126         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
11127
11128         * reflection.h (MonoReflectionInflatedMethod): Removed the
11129         `declaring' field, it's now in the unmanaged MonoGenericMethod.
11130
11131         * reflection.c (method_encode_methodspec): Removed the `method'
11132         argument; we get it from `gmethod->declaring'.
11133         (inflated_method_get_object): Removed the `declaring' argument.
11134
11135 2004-02-09  Martin Baulig  <martin@ximian.com>
11136
11137         * class.h (MonoGenericMethod): New type.
11138         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
11139         `generic_method'.
11140
11141         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
11142         a `MonoGenericMethod *gen_method' one.
11143
11144         * class.c (mono_class_inflate_generic_type): Take an additional
11145         `MonoGenericMethod * argument.  This is only non-NULL if we're
11146         inflating types for a generic method.   
11147         (mono_class_inflate_generic_signature): Renamed to
11148         inflate_generic_signature() and made static; take a
11149         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
11150         (inflate_generic_header): Take a `MonoGenericMethod *' argument
11151         instead of a `MonoGenericInst *' one.
11152         (mono_class_inflate_generic_method): Likewise.
11153
11154         * reflection.c (encode_generic_method_sig): Take a
11155         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
11156         (method_encode_methodspec): Likewise.
11157         (inflated_method_get_object): Likewise. 
11158
11159         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
11160         field with a `MonoGenericMethod *gmethod' one.  
11161
11162 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
11163
11164         * class.h (mono_class_has_parent): add parens to expansion
11165         so you can ! this.
11166
11167 2004-02-08  Martin Baulig  <martin@ximian.com>
11168
11169         * image.h (MonoImage): Removed `generics_cache'.
11170
11171         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
11172         instead of a `MonoType *' argument; removed the `inflate_methods'
11173         argument.  Don't inflate methods here.
11174
11175         * loader.c (find_method): If it's a generic instance, call
11176         mono_class_init() on the `sclass->generic_inst->generic_type'.
11177
11178         * metadata.c (mono_type_size): Make this work on uninitialized
11179         generic instances; call it on the `ginst->generic_type's class.
11180
11181         * reflection.c (mono_reflection_bind_generic_parameters): Call
11182         mono_class_from_generic() to create the `ginst->klass'.
11183
11184 2004-02-08  Martin Baulig  <martin@ximian.com>
11185
11186         * class.h (MonoClass): Changed type of `generic_inst' from
11187         `MonoType *' to `MonoGenericInst *'.
11188
11189 2004-02-08  Martin Baulig  <martin@ximian.com>
11190
11191         * icall.c (ves_icall_Type_BindGenericParameters): Just call
11192         mono_type_get_object(), this is now creating a `MonoGenericInst'
11193         for MONO_TYPE_GENERICINST.
11194         (ves_icall_MonoGenericInst_GetParentType): Likewise.
11195         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
11196
11197         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
11198         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
11199         (inflated_method_get_object): Added `MonoClass *refclass' argument.
11200         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
11201         and reflected type.
11202
11203         * reflection.h (MonoReflectionInflatedMethod): Removed
11204         `declaring_type' and `reflected_type'.
11205
11206 2004-02-08  Martin Baulig  <martin@ximian.com>
11207
11208         * class.h (MonoGenericInst): Added `MonoType *parent' and
11209         `MonoType **ifaces'.
11210
11211         * reflection.h (MonoReflectionGenericInst): Removed `klass',
11212         `parent' and `interfaces'.
11213
11214         * reflection.c (mono_reflection_bind_generic_parameters): Take a
11215         `MonoType *' argument and return a `MonoType *'.
11216
11217         * icall.c
11218         (ves_icall_MonoGenericInst_GetParentType): New interncall.
11219         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
11220
11221 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
11222
11223         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
11224         valuetype marshalling.
11225
11226 2004-02-06  Martin Baulig  <martin@ximian.com>
11227
11228         * class.c
11229         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
11230         (my_mono_class_from_generic_parameter): Likewise.
11231
11232 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
11233
11234         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
11235         contents of the symbol files lazily.
11236
11237         * object.h (MonoThread): Add 'name' and 'name_len' fields.
11238
11239         * threads.h threads.c icall.c: New icalls for getting and setting the
11240         threads name.
11241
11242 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
11243
11244         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
11245         Raise an exception when the domain is not found.
11246
11247 2004-02-03  Martin Baulig  <martin@ximian.com>
11248
11249         * reflection.c (mono_image_get_methodspec_token): Use the
11250         uninflated signature; fixes gen-33.
11251
11252 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
11253
11254         * gc.c threads.c: Make the finalizer thread a normal managed thread so
11255         the finalizer code can use thread functionality.
11256
11257         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
11258         the finalizer thread.
11259
11260         * threads.c: Make some functions more robust.
11261
11262         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
11263
11264         * metadata.h: Add new marshalling conventions.
11265
11266         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
11267         stringbuilder marshalling. Fixes #53700.
11268
11269         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
11270
11271         * reflection.c (mono_image_get_type_info): Save declarative security
11272         info.
11273
11274         * reflection.c (mono_image_get_field_info): Handle uninitialized 
11275         unmanaged fields as well.
11276
11277         * appdomain.c: Bump corlib version.
11278
11279 2004-02-01  Martin Baulig  <martin@ximian.com>
11280
11281         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
11282         method type arguments.  
11283
11284 2004-01-30  Duncan Mak  <duncan@ximian.com>
11285
11286         * marshal.h: Add prototype for
11287         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
11288         and
11289         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
11290         fix the build.
11291
11292 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
11293
11294         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
11295         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
11296
11297 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11298
11299         * marshal.c (mono_marshal_get_native_wrapper): Add support for
11300         custom marshalling of valuetypes.
11301
11302         * marshal.c: Fix some warnings.
11303
11304 2004-01-29  Martin Baulig  <martin@ximian.com>
11305
11306         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
11307         for generic method parameters.
11308
11309         * reflection.c (method_encode_methodspec): Write the uninflated
11310         signature into the methodspec table.
11311         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
11312         is always the uninflated method.
11313         (reflection_methodbuilder_to_mono_method): Copy the generic
11314         parameters from the MethodBuilder into `header->gen_params'.
11315
11316 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11317
11318         * class.c (mono_class_from_generic_parameter): Fix warning.
11319
11320 2004-01-27  Martin Baulig  <martin@ximian.com>
11321
11322         * class.c (mono_class_from_generic_parameter): Don't create
11323         `klass->methods' here.  
11324
11325 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
11326
11327         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
11328         extension since it does not work with libraries named lib<FOO>.dll.so.
11329
11330 2004-01-25  Martin Baulig  <martin@ximian.com>
11331
11332         * class.c (mono_class_inflate_generic_type): Added support for
11333         MONO_TYPE_GENERICINST.
11334
11335         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
11336         inflate methods on open constructed types.      
11337
11338 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11339
11340         * object.c: fire ProcessExit event in the root AppDomain after running
11341         Main. Fixes bug #53299.
11342
11343 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
11344
11345         * socket-io.c: include the new socket-wrappers.h header.
11346         Use the wrappers instead of the unix socket functions to make the code
11347         more clear.
11348
11349 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
11350
11351         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
11352
11353         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11354         Fixes #22532.
11355
11356 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
11357
11358         * reflection.c (mono_image_create_pefile): Handle the case when the
11359         entry point is not a MethodBuilder.
11360
11361         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11362         field to ReflectionMethod since it is not allways a builder.
11363
11364         * reflection.c (type_get_fully_qualified_name): New helper function to
11365         return the fully qualified name of a type.
11366
11367         * reflection.c (encode_marshal_blob): Always emit the fully qualified
11368         type name for custom marshallers.
11369
11370         * reflection.c (mono_marshal_spec_from_builder): Ditto.
11371
11372         * class.c (mono_class_setup_vtable): If a parent class already 
11373         implements an interface, use the implementing methods from that class.
11374         Fixes #53148.
11375
11376 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11377
11378         * threadpool.c: just return instead of ExitThread to allow for thread
11379         clean up earlier.
11380
11381 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
11382
11383         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
11384         when closing resource modules.
11385
11386         * reflection.c (mono_image_create_pefile): Handle the case when the
11387         entry point is not a MethodBuilder.
11388
11389         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11390         field to ReflectionMethod since it is not allways a builder.
11391
11392 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11393
11394         * marshal.c (mono_marshal_get_managed_wrapper): 
11395         mono_marshal_alloc takes native int so CONV_I
11396         the arg for 64bits.
11397
11398 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
11399
11400         * reflection.c (fixup_cattrs): New function to fixup the methoddef
11401         tokens in the cattr table. Fixes #53108.
11402
11403 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11404
11405         * loader.c: don't trim ".dll" before looking up in the config file.
11406         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
11407
11408 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
11409
11410         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
11411         Return the module which contains the resource as well.
11412         (ves_icall_System_Reflection_Module_Close): New icall.
11413
11414         * appdomain.c: Bump corlib version number.
11415
11416         * image.c (mono_image_addref): New public function.
11417
11418         * assembly.c: Call mono_image_addref.
11419
11420         * reflection.c (mono_module_get_object): Increase reference count of 
11421         the image.
11422
11423         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11424         Fixes #22532.
11425
11426         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
11427         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
11428         proper exceptions on DllImport problems.
11429
11430 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
11431
11432         * class.c, metadata.c: eliminate CSIZE macro.
11433
11434 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
11435
11436         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
11437         * object.h: Added async_callback field in MonoAsyncResult.
11438         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
11439         * verify.c: Added async_callback in MonoAsyncResult layout.
11440
11441 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
11442
11443         * reflection.c (mono_reflection_get_custom_attrs): Add support
11444         for Modules.
11445
11446 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11447
11448         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
11449         marshalling.
11450         (mono_marshal_method_from_wrapper): Add null pointer check.
11451
11452 2004-01-16  Martin Baulig  <martin@ximian.com>
11453
11454         * debug-mono-symfile.h: Set version number to 36 and reflect
11455         latest symbol writer changes.
11456
11457 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11458
11459         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
11460         multi-dimensional arrays.
11461         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
11462         (mono_class_from_mono_type): Use bounded_array_class_get.
11463         
11464         * class.c (mono_bounded_array_class_get): New function which takes
11465         a 'bounded' bool argument to distinguish vectors from one dimensional
11466         arrays.
11467
11468         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
11469         bounded_array_class_get if the array has bounds.
11470
11471         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11472         Search modules loaded using AssemblyBuilder:AddModule as well.
11473
11474 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11475
11476         * appdomain.c: increased corlib version.
11477         * filewatcher.c: removed g_print.
11478         * icall.c:
11479         (get_property_info): only allocate what is actually requested.
11480         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
11481
11482 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11483
11484         * Makefile.am: added filewatcher.[ch]
11485         * filewatcher.[ch]: FileSystemWatcher runtime support.
11486         * icall.c: added new FSW icalls.
11487
11488 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
11489
11490         * string-icalls.c: fix stringbuilder regression as suggested by
11491         Iain McCoy <iain@mccoy.id.au>.
11492
11493 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
11494
11495         * process.c (process_read_stringtable_block): Recognize '007f' as
11496         a language neutral stringtable block.
11497
11498 2004-01-12  Patrik Torstensson
11499
11500         * object.h (MonoStringBuilder) : Changed layout to support our
11501         new stringbuilder class.
11502         * marshal.c: Change marshalling to support the new layout of 
11503         string builder.
11504         * appdomain.c: increased version number because new layout of
11505         string builder.
11506
11507 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
11508
11509         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
11510         assembly name as an string instead of an AssemblyName, since it is
11511         easier to extract info from it.
11512
11513         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
11514         the culture subdirectories too. Fixes #52231.
11515
11516 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11517
11518         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
11519         It takes 2 new parameters with an optional name for the method to look
11520         for and case ignoring info.
11521
11522         * threadpool.c: removed unused variable.
11523
11524 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11525
11526         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
11527         It takes 2 new parameters with an optional name for the property to look
11528         for and case ignoring info.
11529         Fixes bug #52753.
11530
11531 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
11532
11533         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
11534         Fix #52451.
11535
11536 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11537
11538         * appdomain.c:
11539         * assembly.c: escape the uri before passing it to g_filename_from_uri.
11540         Fixes bug #52630.
11541
11542 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
11543
11544         * reflection.c: Add support for more than one unmanaged resource.
11545
11546         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
11547         in field->def_value, as done in all other cases.
11548
11549         * reflection.c (mono_reflection_get_custom_attrs): Add support for
11550         TypeBuilders.
11551
11552         * reflection.c (mono_reflection_create_runtime_class): Remove 
11553         errorneous assignment to klass->element_class, since it is already
11554         done in mono_reflection_setup_internal_class.
11555
11556 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11557
11558         * gc.c: added missing LeaveCriticalSection.
11559         * icall.c: indented a couple of lines.
11560         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
11561         if we call EndInvoke inside a callback. Fixes bug #52601.
11562
11563 2004-01-07  Martin Baulig  <martin@ximian.com>
11564
11565         * mono-debug-debugger.h
11566         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
11567
11568 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
11569
11570         * appdomain.c: Use messages in NotImplementedException.
11571
11572         * exception.c (mono_get_exception_not_implemented): Now this takes
11573         a message argument.
11574
11575         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
11576         exception instead of g_asserting an aborting when something is not
11577         implemented.
11578
11579         Add some inline docs.
11580
11581 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
11582
11583         * reflection.h: Update after changes to object layout.
11584
11585         * reflection.c: Implement saving of unmanaged aka win32 resources.
11586
11587         * appdomain.c: Bump version number.
11588
11589         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
11590         Handle missing domains gracefully.
11591
11592 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
11593
11594         * file-io.c : On Windows, there are much more invalid_path_chars.
11595
11596 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
11597
11598         * class.h, object.c: prepare for GetType () speedup.
11599
11600 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
11601
11602         * profiler.c: workaround for --profile null reference exception on
11603           cygwin. Patch by Patrik Torstensson.
11604
11605 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
11606
11607         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
11608         make work for unaligned access.
11609
11610 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
11611
11612         * class.c: small cleanup (class->fields [i] -> field).
11613         * image.c: check address of metadata is valid.
11614
11615 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
11616
11617         * assembly.h assembly.c (mono_assembly_loaded): New public function to
11618         search the list of loaded assemblies.
11619
11620         * reflection.c (mono_reflection_type_from_name): Use 
11621         mono_assembly_loaded instead of mono_image_loaded.
11622
11623         * reflection.c: Fix warnings.
11624
11625 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
11626
11627         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
11628         is dynamic. This is needed since an assembly can contain both dynamic and
11629         non-dynamic images.
11630
11631         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
11632         assembly->dynamic.
11633
11634         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
11635
11636         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
11637         to store modules loaded using AddModule.
11638
11639         * reflection.c (mono_image_fill_file_table): Generalize this so it works
11640         on Modules.
11641
11642         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
11643
11644         * reflection.c (mono_image_fill_export_table_from_module): New function to
11645         fill out the EXPORTEDTYPES table from a module.
11646
11647         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
11648         into a separate function. Also handle loaded non-dynamic modules.
11649
11650         * reflection.c (mono_image_basic_init): Fix memory allocation.
11651
11652         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11653
11654         * assembly.c (mono_assembly_load_references): Make this public.
11655
11656 2003-12-19  Martin Baulig  <martin@ximian.com>
11657
11658         * class.c (mono_class_initialize_generic): Made this static, take
11659         a `MonoGenericInst *' instead of a `MonoClass *'.
11660         (mono_class_from_generic): Call mono_class_initialize_generic()
11661         unless we're already initialized or being called from
11662         do_mono_metadata_parse_generic_inst().
11663
11664         * class.h (MonoGenericInst): Added `initialized' and
11665         `init_pending' flags.
11666
11667         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
11668         `mono_class_init (gklass)' or mono_class_initialize_generic()
11669         here; set `generic_inst->init_pending' while parsing the
11670         `type_argv'.
11671
11672 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
11673
11674         * locales.c: include string.h for memxxx prototypes
11675
11676 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
11677
11678         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
11679         constructor when accessing literal fields.
11680
11681 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
11682
11683         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11684
11685         * reflection.c (assembly_add_resource_manifest): New function to fill
11686         the MANIFESTRESOURCE table.
11687
11688         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
11689
11690         * reflection.h: Update to changes in class layout.
11691
11692         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
11693         Reenable call to mono_runtime_is_shutting_down ().
11694
11695         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
11696         determine if the runtime is shutting down.
11697
11698 2003-12-16  Jackson Harper <jackson@ximian.com>
11699
11700         * icall.c: comment out call to mono_runtime_is_shutting_down to
11701         fix build.
11702         
11703 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
11704
11705         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
11706         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
11707
11708 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
11709
11710         * reflection.c: move definition of swap_with_size
11711         to before its first call
11712
11713 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
11714
11715         * appdomain.c (mono_runtime_is_shutting_down): New public function.
11716
11717         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
11718         icall.
11719
11720         * object.c: Fix warnings.
11721
11722         * icall.c (ves_icall_Type_Get...): Only consider inherited static
11723         members if FlattenHierarchy is set.
11724
11725         * reflection.c (mono_image_add_decl_security): New function to emit
11726         declarative security.
11727
11728         * reflection.h reflection.c: Add support for declarative security.
11729
11730         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11731         
11732 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
11733
11734         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11735         
11736         * appdomain.c verify.c: Moved corlib version checking into its own
11737         function in appdomain.c since it needs to create vtables etc.
11738
11739 2003-12-13  Patrik Torstensson <p@rxc.se>
11740
11741         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
11742         instead of unwrapped server.
11743
11744 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
11745
11746         * verify.c (check_corlib): Fix field index.
11747
11748 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
11749
11750         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
11751         GetGacPath icall.
11752
11753 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
11754
11755         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
11756         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
11757         cope with sizeof(size_t) != sizeof(guint32).
11758
11759 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11760
11761         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
11762         in case of failure.
11763
11764 2003-12-10  Mark Crichton <crichton@gimp.org>
11765
11766         * icall.c: removed the GetNonZeroBytes.  We now handle this case
11767         in managed code.
11768
11769         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
11770
11771 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
11772
11773         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
11774         marked as deleted.
11775
11776 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
11777
11778         * verify.c (check_corlib): Handle the case when the version field is 
11779         initialized by a static constructor.
11780
11781 2003-12-08  Patrik Torstensson  <p@rxc.se>
11782
11783     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
11784
11785 2003-12-08  Martin Baulig  <martin@ximian.com>
11786
11787         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
11788         a MonoReflectionGenericParameter, also take the parameter index
11789         and name as arguments.
11790         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
11791         (ves_icall_MonoGenericParam_initialize): New interncall.
11792         (ves_icall_Type_make_byref_type): New interncall.
11793
11794         * reflection.h (MonoReflectionGenericParam): Derive from
11795         MonoReflectionType, not just from MonoObject.  Added `refobj' and
11796         `index' fields.
11797
11798         * reflection.c (mono_reflection_define_generic_parameter): Create
11799         and return a new MonoReflectionGenericParam; don't initialize the
11800         constraints here.
11801         (mono_reflection_initialize_generic_parameter): New public method;
11802         initializes the constraints and creates the `param->pklass'.
11803
11804 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
11805
11806         * reflection.h reflection.c: Use the new fields 'num_types', 
11807         'num_fields' and 'num_methods' to track the number of types etc.
11808
11809         * verify.c (check_corlib): Check corlib version number.
11810
11811 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
11812
11813         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
11814         function works on all methods.
11815
11816 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
11817
11818         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
11819         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
11820         the custom_type_info flag of the transparent proxy.
11821         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
11822         objects that supports IRemotingTypeInfo.
11823         * object.h: Added custom_type_info field in transparent proxy.
11824
11825 2003-12-06  Martin Baulig  <martin@ximian.com>
11826
11827         * class.c (mono_class_create_from_generic): Removed.
11828         (mono_class_from_generic): Check `ginst->klass' before doing
11829         anything else.  This is important to fully support "recursive"
11830         generic types.
11831
11832         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11833         empty `generic_inst->klass' before doing anything else.
11834
11835 2003-12-06  Dick Porter  <dick@ximian.com>
11836
11837         * verify.c: 
11838         * object.h:
11839         * icall.c:
11840         * locales.c: Use C structs to access class fields.  Don't do a
11841         conversion between MonoString and UChar because both are
11842         platform-endian UTF-16.  Compare now takes startindex and count
11843         parameters.  Add a char overload for IndexOf.  Speed up the
11844         invariant string IndexOf.
11845
11846 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11847
11848         * Makefile.am (monosn_LDADD): Fix parallel build.
11849
11850 2003-12-04  Martin Baulig  <martin@ximian.com>
11851
11852         * icall.c
11853         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11854         (ves_icall_Type_make_array_type): New interncall.       
11855
11856 2003-12-04  Martin Baulig  <martin@ximian.com>
11857
11858         * locales.c: also change it in the !HAVE_ICU case.
11859
11860 2003-12-04  Dick Porter  <dick@ximian.com>
11861
11862         * icall.c:
11863         * locales.c: construct_compareinfo is now in CompareInfo, not
11864         CultureInfo.
11865
11866 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11867
11868         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11869         image->files array.
11870
11871         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11872         table as well.
11873
11874         * assembly.c (mono_assembly_load_references): Only load references
11875         once.
11876
11877         * class.c (mono_class_from_name): Avoid linear search of the 
11878         EXPORTEDTYPE table.
11879
11880         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11881
11882 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11883
11884         * image.h (MonoImage): Add 'field_cache' field.
11885
11886         * loader.c (mono_field_from_token): Cache field lookups.
11887         
11888         * reflection.c (mono_module_get_object): Fix name property.
11889
11890         * icall.c (ves_icall_get_enum_info): Update after changes to 
11891         mono_metadata_get_constant_index ().
11892
11893         * icall.c: Get rid of get_type_info icall, use a separate icall for
11894         each type property to avoid needless memory allocations. Fixes #51514.
11895
11896         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11897         to avoid needless binary searches.
11898
11899         * class.c (class_compute_field_layout): Move the initialization of
11900         field->def_value to mono_class_vtable ().
11901
11902         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11903         non-corlib types.
11904
11905         * object.c (mono_object_allocate): Make it inline.
11906
11907         * object.c (mono_object_allocate_spec): Make it inline.
11908         
11909 2003-12-02  Dick Porter  <dick@ximian.com>
11910
11911         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11912         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11913
11914 2003-12-01  Dick Porter  <dick@ximian.com>
11915
11916         * threads.c: Fix signature and call in CreateMutex and
11917         CreateEvent.
11918
11919 2003-12-01  Dick Porter  <dick@ximian.com>
11920
11921         * icall.c: 
11922         * locales.c: Implement string compares and searching
11923
11924         * object.h: Add extra Thread field
11925
11926 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11927
11928         * reflection.c (fixup_method): Add support for MonoCMethod.
11929
11930 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11931
11932         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11933
11934         * reflection.c (assembly_name_to_aname): Allow extra characters in
11935         assembly names. Fixes #51468.
11936
11937 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11938
11939         * exception.c (mono_exception_from_name_domain): New helper function.
11940
11941         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11942         exception object in the correct domain.
11943
11944         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11945         formatting + make a copy a the input data.
11946
11947         * loader.c (mono_get_method_from_token): Methods which contain
11948         native code do not have entries in the ImplMap.
11949
11950         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11951         Thanks to Gonzalo for spotting this.
11952         
11953         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11954         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11955
11956         * assembly.h (mono_assembly_load_from): Split the second part of 
11957         assembly loading into a new public function.
11958
11959         * exception.h (mono_get_exception_bad_image_format): New function.
11960
11961 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11962
11963         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11964         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11965         
11966         * icall.c: Add new icall for creating dynamic methods.
11967
11968         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11969
11970         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11971
11972         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11973         create a dynamic method.
11974
11975         * reflection.c (resolve_object): New helper function.
11976
11977         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11978         which manipulate it so they can also work on dynamic methods.
11979
11980         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11981         creating the MonoReflectionMethodAux structure if it is not needed.
11982         
11983         * reflection.h verify.c: Update after changes to object layout.
11984
11985         * reflection.c (method_builder_encode_signature): Fix compilation on
11986         gcc 2.95.x.
11987
11988 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11989
11990         * appdomain.h: Added support for context static fields. Added static_data
11991           field to MonoAppContext and renamed thread_static_fields to a more
11992           generic special_static_fields in MonoAppDomain, since it can now contain
11993           context static fields.
11994         * domain.c: Updated hashtable name.
11995         * object.c: Replaced field_is_thread_static() for a more generic
11996           field_is_special_static() which also checks for context static attribute.
11997           In mono_class_vtable(), added support for static context fields.
11998         * threads.c: Changed methods that manage thread static fields to more
11999           generic methods so they can be reused both for thread and context static
12000           data.
12001         * threads.h: Declared some new methods.
12002
12003 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
12004
12005         * reflection.h: Update after changes to the managed types.
12006
12007         * reflection.c (encode_custom_modifiers): New helper function.
12008
12009         * reflection.c (method_encode_signature): Emit custom modifiers.
12010
12011         * reflection.c (field_encode_signature): Emit custom modifiers.
12012
12013 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
12014
12015         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
12016
12017         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
12018         implementation.
12019
12020         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
12021         icall.
12022
12023         * object.c (mono_field_get_value_object): New function.
12024
12025         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
12026         specific.
12027
12028 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
12029
12030         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
12031         return a preallocated out-of-memory exception instance.
12032
12033         * object.c (out_of_memory): Use the new function.
12034
12035         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
12036         flag is before the custom modifiers. Fixes #49802.
12037
12038 2003-11-16  Martin Baulig  <martin@ximian.com>
12039
12040         * class.c (mono_class_is_open_constructed_type): Implemented the
12041         MONO_TYPE_GENERICINST case.
12042
12043 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
12044
12045         * assembly.c (mono_assembly_fill_assembly_name): New function to
12046         fill out the MonoAssemblyName structure.
12047         (mono_assembly_open): Use the new function.
12048
12049         * icall.c (fill_reflection_assembly_name): New helper function.
12050
12051         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
12052         new function.
12053
12054         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
12055
12056 2003-11-15  Martin Baulig  <martin@ximian.com>
12057
12058         * class.c (mono_class_is_open_constructed_type): New public
12059         function; checks whether a type is an open constructed type,
12060         ie. whether it still contains type parameters.
12061         (mono_class_inflate_generic_type): If we're a type parameter and
12062         the inflated type is also a MONO_TYPE_(M)VAR, return the original
12063         type.
12064
12065         * class.h (MonoGenericInst): Added `guint32 is_open'.
12066
12067         * loader.c (method_from_methodspec): Check whether we're an open
12068         or closed constructed type and set `ginst->is_open'.
12069
12070         * reflection.c (mono_reflection_bind_generic_parameters): Check
12071         whether we're an open or closed constructed type and set
12072         `ginst->is_open'.
12073         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
12074         from open constructed types.
12075
12076 2003-11-15  Martin Baulig  <martin@ximian.com>
12077
12078         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12079         a generic instance (instead of a generic type declaration) with
12080         unbound generic parameters, bind them to our actual types.
12081
12082 2003-11-14  Martin Baulig  <martin@ximian.com>
12083
12084         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
12085
12086         * reflection.c (mono_reflection_bind_generic_parameters): If we're
12087         an interface type, populate `res->interfaces' with instantiated
12088         versions of all the interfaces we inherit.
12089
12090 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
12091
12092         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
12093         when MONO_PATH is set but doesn't contain the install dir.
12094
12095 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12096
12097         * icall.c:
12098         (ves_icall_Type_GetInterfaces): don't return an interface twice when
12099         it's also implemented in base classes. Fixes bug #50927.
12100
12101 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
12102
12103         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
12104         if this method is called from a finalizer. Fixes #50913.
12105
12106 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
12107
12108         * threads.c: Implement VolatileRead/VolatileWrite
12109
12110         * icall.c: Add new icalls for VolatileRead/VolatileWrite
12111
12112 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12113
12114         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
12115         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
12116         2.95.3.
12117
12118         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
12119         from Peter Ross (pro@missioncriticalit.com).
12120         
12121 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
12122
12123         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
12124
12125 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12126
12127         * assembly.c (mono_assembly_load_references): Disable check because it
12128         triggers on older corlibs which lots of people have.
12129
12130 2003-11-12  Jackson Harper  <jackson@ximian.com>
12131
12132         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
12133         load corlib.dll if mscorlib.dll is not found.
12134         * assembly.h: Remove corlib name define.
12135         * class.c:
12136         * domain.c:
12137         * image.c: Change corlib name to mscorlib.
12138         
12139 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
12140
12141         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
12142
12143 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
12144
12145         * appdomain.h: Added loader_optimization here to sync with the C#
12146         code, and add disallow_binding_redirects field.
12147
12148 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
12149
12150         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
12151
12152         * reflection.c (mono_image_build_metadata): Fix crash on modules
12153         with no types.
12154
12155         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
12156
12157         * icall.c (ves_icall_get_method_info): Return callingConvention as
12158         well.
12159
12160         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
12161         namespaces from the EXPORTEDTYPE table as well.
12162
12163         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
12164         from all modules inside the assembly.
12165         
12166 2003-11-11  Martin Baulig  <martin@ximian.com>
12167
12168         * reflection.c (mono_reflection_bind_generic_parameters): Make
12169         this work for interfaces.
12170
12171 2003-11-11  Martin Baulig  <martin@ximian.com>
12172
12173         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
12174
12175 2003-11-11  Martin Baulig  <martin@ximian.com>
12176
12177         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
12178         "MonoInflatedMethod" and "MonoInflatedCtor".
12179
12180 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
12181
12182         * reflection.c (resolution_scope_from_image): Use the assembly table
12183         from the manifest module, since other modules don't have it.
12184
12185         * debug-helpers.c (mono_type_full_name): New helper function.
12186
12187         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
12188
12189         * image.c (mono_image_load_file_for_image): New public function which
12190         is a replacement for the load_file_for_image in class.c.
12191
12192         * assembly.c (mono_assembly_load_module): A wrapper for the function
12193         above which does assembly association and reference loading too.
12194
12195         * class.c (mono_class_from_name): Call mono_assembly_load_module.
12196
12197 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12198
12199         * appdomain.c: not all of the attributes for the full assembly name
12200         are required and the order doesn't matter. Fixes bug #50787.
12201
12202 2003-11-10  Dick Porter  <dick@ximian.com>
12203
12204         * locales.c: Use platform-endian UTF16
12205
12206 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
12207
12208         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
12209         
12210 2003-11-10  Martin Baulig  <martin@ximian.com>
12211
12212         * metadata.c
12213         (mono_metadata_load_generic_params): Make this actually work.
12214
12215         * reflection.c (mono_reflection_bind_generic_parameters): If our
12216         parent is a generic instance, pass all the `types' to it, no
12217         matter whether it has the same number of type parameters or not.
12218
12219 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
12220
12221         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
12222
12223         * assembly.c (mono_assembly_load_references): Move the image<->assembly
12224         assignment code to this function so it gets called recursively for all
12225         modules.
12226
12227         * image.c (load_modules): Remove the assembly assignment since it is
12228         now done by mono_assembly_load_references.
12229         
12230         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
12231         Add 'module' argument.
12232         (mono_module_get_types): New helper function.
12233         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
12234
12235 2003-11-08  Martin Baulig  <martin@ximian.com>
12236
12237         * class.c (mono_class_inflate_generic_method): Interface method
12238         don't have a header.
12239
12240         * reflection.c (mono_image_get_methodspec_token): Take an
12241         additional `MonoGenericInst *' argument instead of reading it from
12242         the header; this is necessary to support interfaces.
12243         (mono_image_create_token): Pass the `MonoGenericInst *' from the
12244         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
12245         (inflated_method_get_object): Take an additional `MonoGenericInst *'
12246         argument.
12247
12248         * reflection.h (MonoReflectionInflatedMethod): Added
12249         `MonoGenericInst *ginst'.
12250
12251 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
12252
12253         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
12254
12255 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
12256
12257         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
12258
12259 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
12260
12261         * reflection.c 
12262         (reflection_methodbuilder_from_method_builder):
12263         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
12264         initialize a ReflectionMethodBuilder structure.
12265         (mono_image_get_methodbuilder_token):
12266         (mono_image_get_ctorbuilder_token): New functions to emit memberref
12267         tokens which point to types in another module inside the same assembly.
12268
12269         * reflection.c: Use the new helper functions.
12270         
12271         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
12272
12273         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
12274         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
12275
12276         * reflection.c (resolution_scope_from_image): Emit a moduleref if
12277         neccesary.
12278
12279         * reflection.c (mono_image_build_metadata): Emit metadata only for the
12280         current module. Emit the manifest only for the main module.
12281
12282         * reflection.c (mono_image_create_token): Add assertion when a 
12283         memberref needs to be created.
12284
12285         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
12286
12287         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
12288         larger buffer for the custom attribute blob. Fixes #50637.
12289         
12290 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12291
12292         * threadpool.c: notify listener on async processing handles after
12293         invoking the async callback. Thanks to Zoltan.
12294
12295 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12296
12297         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
12298         avoid code duplication.
12299
12300         * reflection.h (MonoDynamicImage): New type which is currently unused,
12301         but will be used through the ref.emit code in place of 
12302         MonoDynamicAssembly.
12303
12304         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12305         object layout.
12306
12307         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
12308         a MonoDynamicImage instead of just a MonoImage.
12309         
12310         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
12311         icalls to ModuleBuilder but keep their semantics, so they will work
12312         with moduleb->assemblyb. This will change later.
12313         
12314 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12315
12316         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12317         object layout.
12318
12319         * reflection.c (mono_image_build_metadata): Avoid creation of a default
12320         main module, since it is now done by the managed code.
12321
12322 2003-11-03  Martin Baulig  <martin@ximian.com>
12323
12324         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
12325         `ginst->klass' here.
12326         (method_encode_methodspec): Don't use the `ginst->generic_method's
12327         klass if it's a generic instance, use `ginst->klass' in this case.
12328
12329 2003-11-03  Martin Baulig  <martin@ximian.com>
12330
12331         * reflection.c (mono_image_get_generic_method_param_info):
12332         Removed, use mono_image_get_generic_param_info() instead.
12333         (mono_image_get_type_info): Write the GenericParam table before
12334         the Method table.  This is neccessary because in the GenericParam
12335         table, type parameters of the class (ie. '!0' etc.) must come
12336         before the ones from its generic methods (ie. '!!0' etc).
12337
12338 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12339
12340         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
12341
12342 2003-11-02  Martin Baulig  <martin@ximian.com>
12343
12344         * reflection.c (create_generic_typespec): Take a
12345         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
12346         the generic parameters from it.
12347
12348 2003-11-02  Martin Baulig  <martin@ximian.com>
12349
12350         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
12351         instead of a `MonoClassField *' since we just need the type.
12352         (create_generic_typespec): New static function.  Creates a
12353         TypeSpec token for a generic type declaration.
12354         (mono_image_get_generic_field_token): New static function.
12355         (mono_image_create_token): If we're a FieldBuilder in a generic
12356         type declaration, call mono_image_get_generic_field_token() to get
12357         the token.
12358
12359 2003-11-02  Martin Baulig  <martin@ximian.com>
12360
12361         * reflection.h
12362         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
12363         `MonoReflectionGenericInst *declaring_type' and
12364         `MonoReflectionGenericInst *reflected_type' fields.
12365
12366         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
12367         `MonoReflectionGenericInst *declaring_type' and a
12368         `MonoReflectionGenericInst *reflected_type' argument instead of a
12369         single `MonoReflectionGenericInst *type' one.  Set
12370         `res->declaring_type' and `res->reflected_type' from them.
12371         (mono_reflection_inflate_field): Likewise.      
12372
12373 2003-11-02  Martin Baulig  <martin@ximian.com>
12374
12375         * class.c (mono_class_setup_vtable): Don't store generic methods
12376         in the vtable.  
12377
12378 2003-11-02  Martin Baulig  <martin@ximian.com>
12379
12380         * reflection.h (MonoReflectionGenericInst): Added
12381         `MonoReflectionType *declaring_type'.
12382
12383         * reflection.c (mono_reflection_bind_generic_parameters): Use
12384         `if (tb->parent)' instead of `klass->parent'.
12385
12386 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
12387
12388         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
12389         with an empty ASSEMBLY table.
12390
12391         * reflection.c (mono_image_build_metadata): Avoid using the same loop
12392         variable in the inner and outer loops.
12393
12394 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
12395
12396         * metadata.h (mono_metadata_make_token): Put parentheses around macro
12397         argument.
12398
12399         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
12400         
12401         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
12402         icalls. Instead, do everything in managed code. This is needed since
12403         it is hard to restore the original domain etc. in unmanaged code in the
12404         presence of undeniable exceptions.
12405
12406         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
12407         New icalls to push and pop appdomain refs.
12408
12409 2003-10-31  Martin Baulig  <martin@ximian.com>
12410
12411         * class.c (inflate_generic_type): Renamed to
12412         mono_class_inflate_generic_type() and made it public.
12413
12414         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
12415         New interncall.
12416
12417         * loader.c (mono_field_from_memberref): Also set the retklass for
12418         typespecs.
12419
12420         * fielder.c (mono_image_get_inflated_field_token): New static
12421         method; creates a metadata token for an inflated field.
12422         (mono_image_create_token, fixup_method): Added support for
12423         "MonoInflatedField".
12424         (fieldbuilder_to_mono_class_field): New static function.
12425         (mono_reflection_inflate_field): New public function.
12426
12427         * reflection.h
12428         (MonoReflectionGenericInst): Added `MonoArray *fields'.
12429         (MonoReflectionInflatedField): New typedef.     
12430
12431 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
12432
12433         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
12434         for Solaris and other platforms without s6_addr16
12435
12436 2003-10-30  Martin Baulig  <martin@ximian.com>
12437
12438         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
12439         argument instead of two.
12440         (mono_class_inflate_generic_signature): Likewise.
12441         (inflate_generic_header): Likewise.
12442         (mono_class_inflate_generic_method): Likewise.  In addition, if
12443         `ginst->klass' is set, it becomes the new `method->klass'.
12444
12445         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
12446         field.
12447
12448         * reflection.c (encode_generic_method_sig): Write a 0xa as the
12449         first byte. [FIXME]
12450         (method_encode_methodspec): If we have generic parameters, create
12451         a MethodSpec instead of a MethodRef.
12452         (fixup_method): Added support for "MonoInflatedMethod" and
12453         "MonoInflatedCtor".
12454         (mono_image_create_token): Added support for "MonoInflatedMethod"
12455         and "MonoInflatedCtor".
12456         (inflated_method_get_object): New static function; returns a
12457         managed "System.Reflection.MonoInflatedMethod" object.
12458         (mono_reflection_bind_generic_method_parameters): Return a
12459         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
12460         (mono_reflection_inflate_method_or_ctor): Likewise.
12461         (mono_image_get_generic_method_param_info): Initialize unused
12462         fields to zero.
12463         (mono_image_get_generic_param_info): Likewise.
12464
12465         * reflection.h (MonoReflectionInflatedMethod): New public
12466         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
12467         "S.R.MonoInflatedCtor" classes.
12468
12469         * loader.c (method_from_memberref): If we're a TypeSpec and it
12470         resolves to a generic instance, inflate the method.
12471
12472 2003-10-28  Dick Porter  <dick@ximian.com>
12473
12474         * object.c (mono_runtime_run_main): Convert command-line arguments
12475         into utf8, falling back to the user's locale encoding to do so.
12476
12477 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
12478
12479         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
12480         at this time.
12481
12482         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
12483
12484         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
12485         up icalls at method definition time. Partially fixes #33569.
12486
12487 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
12488
12489         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
12490         marshalling of arrays. Fixes #50116.
12491
12492         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
12493
12494         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
12495         points to a vtable in the dying appdomain.
12496
12497         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
12498         listeners into unmanaged code inside the lock.
12499
12500         * object.c (mono_class_vtable): Turn off typed allocation in non-root
12501         domains and add some comments.
12502
12503 2003-10-25  Martin Baulig  <martin@ximian.com>
12504
12505         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
12506
12507         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
12508
12509         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
12510         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
12511         currently parsing.  Create the generic class and store it in
12512         `generic_inst->klass' before parsing the type arguments.  This is
12513         required to support "recursive" definitions; see mcs/tests/gen-23.cs
12514         for an example.
12515         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
12516         to support recursive typespec entries.
12517
12518         * class.c (mono_class_setup_parent): If our parent is a generic
12519         instance, we may get called before it has its name set.
12520         (mono_class_from_generic): Splitted into
12521         mono_class_create_from_generic() and mono_class_initialize_generic().
12522
12523 2003-10-25  Martin Baulig  <martin@ximian.com>
12524
12525         * icall.c (ves_icall_Type_BindGenericParameters): Return a
12526         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
12527         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
12528         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
12529
12530         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
12531         (create_typespec): Likewise.
12532         (mono_reflection_bind_generic_parameters): Return a
12533         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
12534         (mono_reflection_inflate_method_or_ctor): New public function.
12535
12536         * reflection.h (MonoReflectionGenericInst): New typedef.        
12537
12538 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
12539
12540         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
12541         inside the domain lock. Fixes #49993.
12542         
12543         * object.c (mono_class_vtable): When typed allocation is used, 
12544         allocate vtables in the GC heap instead of in the mempool, since the
12545         vtables contain GC descriptors which are used by the collector even
12546         after the domain owning the mempool is unloaded.
12547
12548         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
12549
12550         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
12551         reflect what it does. Also invalidate mempools instead of freeing
12552         them if a define is set.
12553
12554         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
12555         of the appdomain.
12556         
12557         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
12558         hold the finalizable objects in this domain.
12559
12560         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
12561         appdomain.
12562
12563         * appdomain.c (mono_domain_set): New function to set the current
12564         appdomain, but only if it is not being unloaded.
12565
12566         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
12567         appdomain which is being unloaded.
12568         
12569         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
12570         unloading of the root appdomain.
12571
12572         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
12573         icall to execute a method in another appdomain. Intended as a 
12574         replacement for InternalSetDomain, which can confuse the code 
12575         generation in the JIT.
12576
12577         * appdomain.c (mono_domain_is_unloading): New function to determine
12578         whenever an appdomain is unloading.
12579
12580         * appdomain.c (mono_domain_unload): New function to correctly unload
12581         an appdomain.
12582
12583         * assembly.c (mono_assembly_load_references): Check that an assembly
12584         does not references itself.
12585
12586         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
12587         domain manually, it asks the finalizer thread to do it, then waits for
12588         the result. Also added a timeout.
12589
12590         * icall.c: Register the new icalls.
12591
12592         * threads.h threads.c: Export the mono_gc_stop_world and 
12593         mono_gc_start_world functions.
12594         
12595         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
12596         function to fill out the mempool with 0x2a.
12597
12598 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
12599
12600         * reflection.h (MonoReflectionMethodAux): New structure to store
12601         information which is rarely used, thus is not in the MonoMethod
12602         structure.
12603
12604         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
12605         store the aux info.
12606
12607         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
12608         and marshalling info into the aux structure.
12609
12610         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
12611         from the aux structure.
12612
12613         * loader.c (mono_method_get_param_names): Retrieve the param names from
12614         the aux structure.
12615         
12616 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
12617
12618         * exception.h exception.c: Add AppDomainUnloadedException && fix 
12619         warning.
12620
12621 2003-10-21  Dick Porter  <dick@ximian.com>
12622
12623         * socket-io.c
12624         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
12625         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
12626
12627 2003-10-21  Martin Baulig  <martin@ximian.com>
12628
12629         * reflection.c (mono_reflection_bind_generic_parameters):
12630         `klass->parent' is NULL for interfaces.
12631
12632 2003-10-21  Martin Baulig  <martin@ximian.com>
12633
12634         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12635
12636 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
12637
12638         * exception.c (mono_exception_from_name_msg): New helper function for
12639         creating exceptions and initializing their message field.
12640
12641         * exception.c: Simplify functions using the new helper.
12642
12643         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
12644         New function.
12645
12646         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
12647         mono_raise_exception, since otherwise gcc doesn't generate the function
12648         epilog for raise_exception, confusing the stack unwinding in the JIT.
12649         Fixes #45043.
12650
12651         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
12652         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
12653         Fixes #49499.
12654
12655 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12656
12657         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
12658         utf8.
12659
12660 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
12661
12662         * icall.c: Removed GetUninitializedObject method because
12663           AllocateUninitializedClassInstance does the same.
12664
12665 2003-10-18  Martin Baulig  <martin@ximian.com>
12666
12667         * class.c (inflate_generic_signature): Renamed to
12668         mono_class_inflate_generic_signature() and made it public.
12669         (my_mono_class_from_generic_parameter): New static function; if we
12670         don't already have the generic parameter's MonoClass, create a
12671         very simple one which is just used internally in the runtime and
12672         not passed back to managed code.
12673
12674         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
12675
12676         * metadata.h (MonoMethodSignature): Moved the
12677         `MonoGenericParam *gen_params' to the MonoMethodHeader.
12678         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
12679
12680         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
12681         ves_icall_MonoMethod_GetGenericArguments(); this is now an
12682         interncall on the MonoMethod class, not on MethodInfo.
12683         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
12684         calling mono_reflection_bind_generic_method_parameters() directly.
12685
12686         * loader.c (mono_method_get_signature): If this is a MethodSpec;
12687         return the already computed `method->signature'.
12688         (method_from_methodspec): New static function to load a method
12689         from a MethodSpec entry.
12690         (mono_get_method_from_token): Call the new method_from_methodspec()
12691         for MethodSpec tokens.  
12692         (mono_get_method_from_token): If we're a generic method, load the
12693         type parameters.
12694
12695         * reflection.c (mono_image_get_memberref_token): Allow
12696         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
12697         table.
12698         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
12699         (mono_image_create_token): First check whether it's a generic
12700         method (so we'd need to create a MethodSpec), then do the other
12701         two alternatives.
12702         (mono_reflection_bind_generic_method_parameters): Return a
12703         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
12704         called directly from the interncall.
12705
12706 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
12707
12708         * reflection.c (load_public_key): Move loading of the public key
12709         into managed code.
12710
12711         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
12712
12713         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
12714         fields.
12715
12716         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
12717         culture, hash_alg and public_key. Fixes #49555.
12718
12719 2003-10-17  Martin Baulig  <martin@ximian.com>
12720
12721         * class.h (MonoGenericInst): Moved this declaration here and added
12722         `MonoMethod *generic_method'.
12723
12724         * icall.c
12725         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
12726         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
12727
12728         * metadata.c (mono_metadata_type_equal): Two types of
12729         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
12730         index; ie. don't compare the address of the `MonoGenericParam'
12731         structure.
12732         (mono_metadata_load_generic_params): Removed the `MonoMethod
12733         *method' argument.
12734
12735         * metadata.h (MonoGenericInst): Moved declaration to class.h.
12736         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
12737
12738         * reflection.c (method_encode_signature): Encode the number of
12739         generic parameters.
12740         (encode_generic_method_sig): New static function.
12741         (method_encode_methodspec): New static function; creates an entry
12742         in the MethodSpec table for a generic method.
12743         (mono_image_get_methodspec_token): New static function.
12744         (mono_image_create_token): Call mono_image_get_methodspec_token()
12745         for generic methods.
12746         (mono_reflection_bind_generic_method_parameters): New public
12747         function.  Instantiates a generic method.
12748
12749 2003-10-16  Martin Baulig  <martin@ximian.com>
12750
12751         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
12752         *gen_params' here from MonoMethodHeader.
12753
12754         * metadata.c (mono_metadata_parse_method_signature): If we have
12755         generic parameters, initialize `method->gen_params' and then set
12756         the correct `type->data.generic_param' in all the parameters.
12757
12758 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
12759
12760         * threads.c (mono_threads_get_default_stacksize): New function to 
12761         return the default stacksize.
12762
12763         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
12764         termination of the finalizer thread, since the previous method had
12765         race conditions. Fixes #49628.
12766
12767         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
12768         as for the other managed threads.
12769
12770 2003-10-16  Martin Baulig  <martin@ximian.com>
12771
12772         * class.c (inflate_generic_signature): Copy `generic_param_count'
12773         and `gen_params'.
12774
12775         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
12776         New interncall.
12777
12778         * metadata.c (mono_metadata_parse_method_signature): Actually set
12779         the `method->generic_param_count' here.
12780         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
12781
12782 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
12783
12784         * object.h: Add a new field to TypedRef to simplify the implementation
12785         of the REFANY opcodes in the JIT.
12786
12787         * icall.c: Make use of the new field.
12788
12789         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
12790         dynamically.
12791
12792 2003-10-15  Martin Baulig  <martin@ximian.com>
12793
12794         * class.c (mono_class_from_gen_param): Renamed to
12795         mono_class_from_generic_parameter() and moved most of the
12796         functionality from mono_reflection_define_generic_parameter()
12797         here; ie. we create a "real" class here.
12798         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
12799         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
12800         previously been called.
12801
12802         * class.h (MonoGenericParam): Moved the declaration of this struct
12803         here from metadata.h and added `MonoMethod *method'.
12804
12805         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
12806         interncall.
12807
12808         * loader.c (mono_get_method_from_token): If we have any generic
12809         parameters, call mono_metadata_load_generic_params() to read them
12810         from the MONO_TABLE_GENERICPAR.
12811
12812         * metadata.c (mono_metadata_load_generic_params): Added
12813         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
12814
12815         * metadata.h (MonoMethodSignature): Replaced
12816         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
12817         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
12818
12819         * reflection.c (mono_reflection_define_generic_parameter): Moved
12820         most of the functionality into the new
12821         mono_class_from_generic_parameter(); set the `method' field if
12822         we're a method parameter.       
12823
12824 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12825
12826         * marshal.c (emit_struct_conv): if native size is 0
12827         emit no code.
12828
12829 2003-10-14  Martin Baulig  <martin@ximian.com>
12830
12831         * icall.c: The generics API has changed in the spec since it was
12832         added to System.Type; these modifications make it match the spec
12833         again.
12834         (ves_icall_Type_GetGenericParameters): Renamed to
12835         `ves_icall_Type_GetGenericArguments'.
12836         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12837         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12838         `ves_icall_MonoType_get_HasGenericArguments'.
12839         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12840         `ves_icall_MonoType_get_IsGenericParameter'.
12841         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12842         this is no interncall anymore.
12843         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12844         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12845
12846 2003-10-14  Martin Baulig  <martin@ximian.com>
12847
12848         * reflection.c (mono_reflection_bind_generic_parameters): Also
12849         inflate generic methods if we're reading the class from IL.
12850
12851 2003-10-13  Martin Baulig  <martin@ximian.com>
12852
12853         * reflection.c (mono_reflection_define_generic_parameter): This
12854         method isn't called directly from the icall anymore; take a
12855         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12856         method generic parameters.
12857         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12858         (method_builder_encode_signature): Encode generic parameters.
12859         (mono_image_get_method_info): Write generic params to the
12860         MONO_TABLE_GENERICPARAM table.
12861
12862         * reflection.h (MonoReflectionMethodBuilder): Added
12863         `MonoArray *generic_params'.
12864
12865         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12866
12867         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12868         wrapper for mono_reflection_define_generic_parameter().
12869         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12870
12871 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12872
12873         * marshal.h: Add missing function to fix build.
12874
12875         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12876         the SetLastError pinvoke attribute.
12877
12878         * marshal.c (mono_marshal_set_last_error): New helper function called
12879         by the generated code.
12880         
12881         * marshal.c (mono_mb_emit_branch): New helper function.
12882
12883         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12884
12885         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12886         classes as parameters and return values of delegates. Fixes #29256. 
12887
12888 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12889
12890         * locales.c: use gint32 in non HAVE_ICU case
12891
12892 2003-10-11  Martin Baulig  <martin@ximian.com>
12893
12894         * mono-debug.c (mono_debug_add_method): Added a workaround for
12895         bug #48591.
12896
12897 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12898
12899         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12900         delegates passed to native code must use the STDCALL calling 
12901         convention. Fixes #35987.
12902
12903 2003-10-10  Martin Baulig  <martin@ximian.com>
12904
12905         * class.c (inflate_generic_type): If we're inflating for a generic
12906         type instance (and not for a generic method), return
12907         MONO_TYPE_MVAR unchanged.
12908
12909 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12910
12911         * string-icalls.c: Join ignores null strings in the source array.
12912         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12913         * threads.c: GetAvailableTheads is slightly more accurate.
12914
12915 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12916
12917         * threads.h threads.c : add mono_threads_set_default_stacksize
12918         and pass default to CreateThread calls.
12919
12920 2003-10-09  Dick Porter  <dick@ximian.com>
12921
12922         * icall.c:
12923         * locales.h:
12924         * locales.c: Internal calls for constructing CultureInfo and
12925         related objects from libicu (if its available.)
12926
12927 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12928
12929         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12930
12931 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12932
12933         * threadpool.c: added an argument to async_invoke_thread that is the
12934         item to process, pass the MonoAsyncResult to the thread start function
12935         when creating a new thread. This way we don't need to acquire any lock
12936         when we're creating a new thread. Readded a semaphore for faster
12937         response times (instead of that Sleep i added).
12938
12939 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12940
12941         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12942         get daylight change dates better on Windows, fix handling
12943         of platforms without tm_gmtoff.
12944
12945 2003-10-06  Martin Baulig  <martin@ximian.com>
12946
12947         * class.c (inflate_generic_method): Renamed to
12948         mono_class_inflate_generic_method() and made public.
12949         (mono_class_init): Don't inflate the generic methods here.
12950         (mono_class_from_generic): Added `gboolean inflate_methods'
12951         argument.  Inflate the methods here.
12952
12953         * loader.c (mono_method_get_param_names): Ignore instances of
12954         generic types for the moment.
12955
12956         * reflection.c (fixup_method): Added support for inflated methods.
12957         (mono_image_create_token): Use mono_image_get_methodref_token()
12958         for inflated methods.
12959         (mono_custom_attrs_from_param): Ignore instances of generic types
12960         for the moment.
12961         (mono_reflection_bind_generic_parameters): New public function.
12962         Moved all the functionality from
12963         ves_icall_Type_BindGenericParameters() here and added support for
12964         dynamic types.
12965         (mono_reflection_define_generic_parameter): Initialize
12966         `klass->methods' here.
12967
12968         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12969         functionality into mono_reflection_define_generic_parameter().
12970         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12971         TypeBuilder, return that TypeBuilder.
12972
12973 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12974
12975         * appdomain.c: removed mono_delegate_semaphore.
12976
12977         * threadpool.c:
12978         (mono_thread_pool_add): moved hash table creation inside and the thread 
12979         creation outside of the critical region.
12980         (mono_thread_pool_finish): removed obsolete code.
12981         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12982         continue or exit the thread depending on the queue.
12983
12984 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12985
12986         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12987         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12988         handle more bool marshalling options
12989
12990 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12991
12992         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12993         arrays of structs. Also add a more descriptive error message when
12994         a structure member is marshalled as LPArray.
12995
12996 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12997
12998         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12999         marshalling arrays of complex types. Fixes #29098. Also remove an
13000         usused and incomplete function.
13001
13002 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13003
13004         * gc.c: report heap_size - free_bytes as total memory allocated
13005         (bug#49362).
13006
13007 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
13008
13009         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
13010         fix timezone handling problems on Windows.
13011         
13012         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
13013         asserts when the year is outside the range handled by ms the functions.
13014
13015         * class.c (setup_interface_offsets): If the class is an interface,
13016         fill out its interface_offsets slot.
13017
13018 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13019
13020         * threadpool.c: mark threadpool threads as background.
13021
13022 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
13023
13024         * decimal.c - define DECINLINE to nothing if not using GCC
13025
13026 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
13027
13028         * assembly.c: More refcount fixes.
13029
13030 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13031
13032         * string-icalls.c: if we're not trimming, return the same string.
13033         When not splitting, don't create a new string.
13034
13035 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13036
13037         * image.c:
13038         (mono_image_open): increment the ref_count inside the critical section.
13039
13040 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
13041
13042         * image.c (mono_image_open): Fix reference counting bug.
13043
13044 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
13045
13046         * marshal.c (mono_marshal_type_size) struct alignment changed for 
13047         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
13048         64bits. Avoid leak in mono_marshal_get_native_wrapper when
13049         mono_lookup_pinvoke_call throws.        
13050
13051 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
13052
13053         * reflection.c (mono_reflection_parse_type): Fix #49114.
13054
13055         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
13056         temporary workaround for cygwin header problem.
13057
13058         * object.c (mono_object_isinst): Synchronize this with the code
13059         generated by the JIT for casts.
13060
13061 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
13062
13063         * reflection.c (encode_type): Fix #38332.
13064
13065 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
13066
13067         * marshal.c (mono_marshal_method_from_wrapper): New function to return
13068         the original method from the wrapper method.
13069
13070 2003-09-25  Martin Baulig  <martin@ximian.com>
13071
13072         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
13073         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
13074         (ves_icall_Type_get_IsGenericInstance): New interncall.
13075
13076 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
13077
13078         * object.c: fix cast warning in big endian code.
13079
13080 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
13081
13082         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
13083         
13084 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13085
13086         * assembly.c: don't call check_env from mono_assembly_load. It's
13087         already done once in mono_assemblies_init and may cause headaches when
13088         multiple threads are loading assemblies.
13089
13090 2003-09-19  Martin Baulig  <martin@ximian.com>
13091
13092         * reflection.c (mono_reflection_define_generic_parameter): Don't
13093         allocate `klass->methods', set `klass->flags' to
13094         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
13095
13096 2003-09-18  Martin Baulig  <martin@ximian.com>
13097
13098         * class.c (mono_class_init): Don't create `class->methods' if it's
13099         already initialized.
13100
13101         * metadata.c (mono_metadata_load_generic_params): Make this
13102         actually work.
13103
13104         * reflection.c (mono_reflection_define_generic_parameter): Set
13105         parent class and interfaces from the constraints.
13106
13107         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
13108         to keep this struct in sync with the declaration in TypeBuilder.cs.
13109
13110 2003-09-17  Martin Baulig  <martin@ximian.com>
13111
13112         * metadata.h (MonoType): Replaced the data's `int type_param'
13113         field with `MonoGenericParam *generic_param'.
13114         (MonoGenericParam): Added `MonoClass *klass'.
13115
13116         * class.c (mono_class_from_gen_param): Removed the
13117         `MonoImage *image' and `int type_num' arguments.
13118
13119         * metadata.c (mono_metadata_parse_generic_param): New static
13120         method; creates a MonoGenericParam which just contains the index.
13121         (do_mono_metadata_parse_type): Call
13122         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
13123         MONO_TYPE_MVAR.
13124
13125         * reflection.c (mono_image_typedef_or_ref): Generic type
13126         parameters may be in the same assembly, but never use a typedef
13127         for them.
13128         (mono_reflection_define_generic_parameter): We're now creating a
13129         "real" class for the type parameter; it's now safe to call
13130         mono_class_from_mono_type() on the class'es type, it'll do the
13131         right thing.
13132
13133 2003-09-16  Martin Baulig  <martin@ximian.com>
13134
13135         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
13136         `symfile->range_entry_size' and `symfile->class_entry_size' here;
13137         the `symfile' data structure must be fully initialized before it
13138         gets added to the table.
13139
13140 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
13141
13142         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
13143
13144         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
13145         class init trampolines.
13146
13147 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
13148
13149         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
13150         to the built-in profiler to turn off time and allocation profiling
13151         respectively.
13152
13153 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
13154
13155         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
13156         g_direct_equal.
13157
13158         * debug-helpers.c (mono_method_full_name): Print the wrapper type
13159         in human readable form.
13160
13161 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
13162
13163         * reflection.c icall.c: Fixed warnings.
13164
13165         * image.c (load_class_names): Use a temporary hash table to hold the
13166         namespaces in order to avoid doing many string comparisons.
13167
13168         * image.h: Fix typo.
13169
13170         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
13171         Pass NULL instead of g_direct_equal to the GHashTable constructor 
13172         since the NULL case is short-circuited inside g_hash_table_lookup, 
13173         leading to better performance.  
13174
13175         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
13176         obtain the first custom attribute for a given index. Depends on the
13177         CustomAttribute table being sorted by the parent field.
13178
13179         * reflection.c (mono_custom_attrs_from_index): Use the new function 
13180         for better performance.
13181
13182 2003-09-07  Martin Baulig  <martin@ximian.com>
13183
13184         * class.c (mono_class_init): If we're a generic instance, inflate
13185         all our methods instead of loading them from the image.
13186         (mono_class_from_generic): Set `class->methods = gklass->methods'.
13187
13188 2003-09-07  Martin Baulig  <martin@ximian.com>
13189
13190         * mono-debug-debugger.c: Added support for constructors.
13191
13192 2003-09-06  Martin Baulig  <martin@ximian.com>
13193
13194         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
13195         New interncall.
13196
13197         * reflection.c (mono_reflection_setup_generic_class): Call
13198         ensure_runtime_vtable() to create the vtable.
13199
13200 2003-09-05  Martin Baulig  <martin@ximian.com>
13201
13202         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
13203         MONO_TYPE_MVAR.
13204
13205 2003-09-04  Martin Baulig  <martin@ximian.com>
13206
13207         * reflection.c (mono_reflection_define_generic_parameter): Generic
13208         parameters start with zero.
13209
13210 2003-09-04  Martin Baulig  <martin@ximian.com>
13211
13212         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
13213
13214         * reflection.h (MonoReflectionGenericParam): New typedef.
13215         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
13216         the generic parameters from the managed TypeBuilder.
13217
13218         * reflection.c (mono_reflection_define_generic_parameter): New function.
13219         (mono_reflection_create_runtime_class): Encode generic parameters.
13220         (mono_reflection_setup_generic_class): New function; this is
13221         called after adding adding all generic params to the TypeBuilder.
13222         (encode_type): Added MONO_TYPE_VAR.
13223
13224 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
13225
13226         * class.h class.c (mono_class_needs_cctor_run): Moved this method
13227         here from the JIT.
13228
13229         * assembly.h assembly.c: Moved the AOT loading code into an assembly
13230         load hook.
13231
13232 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
13233
13234         * reflection.h reflection.c class.h class.c: Delete duplicate 
13235         definition of mono_type_get_name () from reflection.c and export the
13236         one in class.c.
13237
13238         * class.c: Class loading fixes from Bernie Solomon 
13239         (bernard@ugsolutions.com).
13240
13241         * reflection.c: Endianness fixes from Bernie Solomon 
13242         (bernard@ugsolutions.com).
13243         
13244 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
13245
13246         * assembly.h assembly.c: Define a file format version for AOT
13247         libraries.
13248         
13249         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
13250
13251         * appdomain.h (MonoJitInfo): New field to determine whenever the
13252         code is domain neutral.
13253         
13254 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
13255
13256         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
13257
13258 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
13259
13260         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
13261         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
13262         Avoid caching the result since strings must be domain specific. Fixes
13263         #48050.
13264
13265 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
13266
13267         * marshal.c (mono_marshal_init): Make this callable multiple times
13268         since it is hard to find a correct place to call it.
13269
13270         * object.c (mono_runtime_class_init): Execute static constructors in
13271         the correct appdomain.
13272
13273         * image.c (build_guid_table): Handle the case when multiple images have
13274         the same GUID.
13275
13276 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13277
13278         * icall.c: added a couple of icalls for System.Web.
13279
13280 2003-08-28  Martin Baulig  <martin@ximian.com>
13281
13282         * icall.c (ves_icall_Type_BindGenericParameters): Use
13283         `klass->generic_inst' instead of `&klass->byval_arg' in the
13284         mono_type_get_object() call.  The returned type must be
13285         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
13286
13287 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
13288
13289         * NOTES: New file.
13290
13291         * object.c (mono_class_proxy_vtable): Make it thread safe.
13292
13293         * pedump.c: Fix warning.
13294
13295         * object.c appdomain.h: Get rid of metadata_section. 
13296         It is no longer needed and it was causing deadlocks with domain->lock.
13297
13298         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
13299
13300 2003-08-26  Martin Baulig  <martin@ximian.com>
13301
13302         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
13303
13304 2003-08-26  Martin Baulig  <martin@ximian.com>
13305
13306         * pedump.c (main): Call mono_metadata_init(),
13307         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
13308         and mono_loader_init().
13309
13310 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
13311
13312         * loader.h: Add missing include to fix build.
13313
13314         * image.h: mono_image_load_references is no more.
13315
13316         * assembly.c: Reworked assembly loading to make it really thread safe.
13317         After these changes, the assembly returned by mono_assembly_open is
13318         fully initialized, i.e. all its references assemblies are loaded.
13319
13320         * assembly.c (mono_image_load_references): Renamed to 
13321         mono_assembly_load_references, and made private, since clients no
13322         longer need to call it.
13323
13324         * class.c: Removed calls to mono_assembly_load_references, since it was
13325         a source of deadlocks.
13326
13327         * loader.h loader.c class.h class.c: Protect data structures using a 
13328         new lock, the loader lock.
13329
13330         * class.c (mono_class_setup_vtable): Create temporary hash tables and
13331         GPtrArrays only when needed.
13332
13333         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
13334         into empty structures by mcs. Fixes pinvoke7.cs.
13335         
13336         * domain.c (mono_init): Call a new initialization function.
13337
13338         * appdomain.c (mono_runtime_init): Call the new initializer function
13339         of the marshal module.
13340
13341         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
13342         inserted into empty structures by mcs. Fixes pinvoke7.cs.
13343
13344         * marshal.h marshal.c: Added locks around the wrapper caches to make
13345         this module thread safe.
13346
13347         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
13348         this argument. Fixes pinvoke1.exe.
13349
13350 2003-08-25  Lluis Sanchez <lluis@ximian.com>
13351
13352         * object.h: Added call_type field to MonoMethodMessage and the corresponding
13353         enumeration of values. Removed fields to store remote call output values in
13354         MonoAsyncResult. Not needed any more.
13355         * object.c: Initialize call_type and async_result fields in mono_message_init.
13356         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
13357         dispatching the message.
13358         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
13359         async call to finish. To do it use a message with EndInvoke call type.
13360
13361 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
13362
13363         * loader.h loader.c (mono_method_hash_marhal_info): New function which
13364         determines whenever a method has marshalling info.
13365
13366 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13367
13368         * assembly.c: fix the build on windows.
13369
13370 2003-08-22 Lluis Sanchez <lluis@ximian.com>
13371
13372         * object.cs: Fixed bug #47785.
13373
13374 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
13375
13376         * string-icalls.c (StringReplace): If their are no occurances of
13377         the old string found return a reference to the supplied
13378         string. This saves some memory and matches MS behavoir.
13379         
13380 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13381
13382         * socket-io.c: fixed compilation for systems that define AF_INET6
13383         and don't define SOL_IP/SOL_IPV6.
13384
13385 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
13386
13387         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
13388         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
13389
13390         * rawbuffer.c rawbuffer.h: Make this module thread safe.
13391
13392         * domain.c: Make this module thread safe.
13393
13394         * domain.c (mono_init): Call new initialization function.
13395
13396         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
13397         reference types too. Fixes #38812.
13398
13399         * image.c (mono_image_init): Fixed warnings.
13400
13401         * class.c (mono_class_from_typeref): Handle assembly load failure
13402         correctly.
13403
13404         * appdomain.c (add_assemblies_to_domain): Handle the case when
13405         the references of an assembly are not yet loaded.
13406
13407         * metadata.c image.c assembly.c: Moved initialization of global
13408         variables to a separate function called at startup since lazy 
13409         initialization of these variables is not thread safe.
13410         
13411         * image.c assembly.c: Made this module thread safe by adding locks in 
13412         the appropriate places.
13413
13414         * domain.c (mono_init): Call the new initialization functions of the
13415         three modules.
13416
13417 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
13418
13419         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
13420           make a direct call. It is proxy's work to make the call asynchronous.
13421           mono_delegate_end_invoke(): If the targe is a proxy, just collect
13422           the return values.
13423         * object.cs: mono_method_call_message_new(): read AsyncResult and
13424           state object from parameters list, if this info is requested.
13425         * object.h: Added fields to store remote call output values in
13426           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
13427
13428 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13429
13430         * object.h: add needed fields to MonoThread.
13431         * threads.c, threads.h: allow registering a function to cleanup data
13432         allocated per thread by the JIT.
13433
13434 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13435
13436         * loader.h: portability fix by Bernie Solomon
13437         * <bernard@ugsolutions.com>.
13438
13439 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
13440
13441         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
13442         return a MonoArray. This simplifies the code and also ensures that
13443         the cache allways contains an object reference as a value.
13444
13445         * icall.c (ves_icall_get_parameter_info): Simplified using the new
13446         function.
13447
13448 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13449
13450         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
13451         fixes a problem with byte ordering when getting the address family for
13452         a socket.
13453
13454 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
13455
13456         * .cvsignore: Added monosn.
13457
13458         * reflection.h reflection.c loader.c: Added support for parameter
13459         marshalling to dynamically created types. Fixes #47295.
13460
13461 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
13462
13463         * rand.c: remove useless warnings.
13464
13465 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13466
13467         * class.c: implemented ldtoken for methods and fieldrefs.
13468
13469 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13470
13471         * threadpool.c: when mono_async_invoke was called, no one took care of
13472         monitoring the queue. So if the method invoked took some time and we
13473         got new async invoke requests after 500 ms (the thread created waited
13474         that long in WaitForSingleObject), the new async invoke was not called
13475         until the previous one finished.
13476
13477         This is fixed now. Thanks to Totte for helping with it.
13478
13479 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13480
13481         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
13482
13483 2003-08-11  Martin Baulig  <martin@ximian.com>
13484
13485         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
13486
13487 2003-08-06  Martin Baulig  <martin@ximian.com>
13488
13489         * mono-debug-debugger.c: Added support for static fields,
13490         properties and methods.
13491
13492 2003-08-06  Martin Baulig  <martin@ximian.com>
13493
13494         * mono-debug-debugger.c: Don't store the MonoString's vtable to
13495         make this work for applications with multiple application domains.
13496
13497 2003-08-04  Martin Baulig  <martin@ximian.com>
13498
13499         * mono-debug-debugger.c: Completely reworked the type support; the
13500         most important thing is that we're now just using one single
13501         `MonoType' instance per type.
13502
13503 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
13504
13505         * mono-endian.h, mono-endian.c, icall.c: Added icall
13506         ves_icall_System_Double_AssertEndianity to assert double word endianity
13507         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
13508
13509 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13510
13511         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
13512         support, icalls and fixes.
13513
13514 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
13515
13516         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
13517         classes that are a punctuation character in .NET is not the same a
13518         g_unichar_ispunct.
13519
13520 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13521
13522         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
13523
13524 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
13525
13526         * icall.c: Add new MemCopy internalcall.
13527         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
13528         Simplified code; It is not necessary to handle all the cases here,
13529         as the C# code takes care of it.  Only handle the case of the name
13530         resource embedded into the assembly.
13531
13532         Changed signature to return the data pointer and the size of the
13533         data. 
13534
13535 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
13536
13537         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
13538         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
13539
13540 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13541
13542         * socket-io.c: ignore EINTR error in select.
13543
13544 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13545
13546         * class.h, class.c: removed unused subclasses field in MonoClass.
13547
13548 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13549
13550         * icall.c: improve fix of get_base_definition(). If the parent class
13551           doesn't have the mehod, look at the parent of the parent.
13552         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
13553           to check if a parameter is an in or out parameter
13554           (PARAM_ATTRIBUTE_IN is not set by default).
13555           mono_method_return_message_restore(): Use mono_class_value_size to
13556           get the size of a value type. mono_type_stack_size (parameterType)
13557           does not return the correct value if parameterType is byRef.
13558           mono_load_remote_field(), mono_load_remote_field_new(),
13559           mono_store_remote_field(), mono_store_remote_field_new():
13560           raise exception if the remote call returns an exception.
13561
13562 2003-07-28  Martin Baulig  <martin@ximian.com>
13563
13564         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
13565         method.  This is a wrapper around mono_runtime_invoke() which
13566         boxes the instance object if neccessary.
13567
13568 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13569
13570         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
13571         metadata.h, row-indexes.h, verify.c: first cut of generics support.
13572
13573 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13574
13575         * icall.c: disable mcs bug workaround.
13576
13577 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
13578
13579         * object.c (mono_runtime_class_init): Take the metadata_section
13580         mutex before obtaining the domain mutex.
13581
13582         * appdomain.h: Added definition of metadata_section mutex here. 
13583
13584         * object.c: define metadata_mutex here.
13585
13586 2003-07-24  Ravi Pratap  <ravi@ximian.com>
13587
13588         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
13589         fixed.
13590
13591 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
13592
13593         * reflection.c: Fix bug #46669
13594
13595 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13596
13597         * exception.c:
13598         * exception.h:
13599         * icall.c:
13600         * object.h: fill in the type name for TypeLoadException.
13601
13602 2003-07-23  Ravi Pratap  <ravi@ximian.com>
13603
13604         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
13605         relationship between TypeBuilders while compiling corlib) and bug
13606         45993 (Array types returned from the runtime while compiling
13607         corlib were from the loaded corlib).
13608
13609 2003-07-22  Martin Baulig  <martin@ximian.com>
13610
13611         * mono-debug-debugger.c: Reworked the type support a bit more;
13612         distinguish between types and classes.
13613
13614 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
13615
13616         * icall.c: add IsArrayImpl icall.
13617
13618 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
13619
13620         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
13621         initializing real_size only once. Also fix bug #46602.
13622
13623 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
13624
13625         * object.c: Renamed mono_metadata_section to metadata_section.
13626
13627 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
13628
13629         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
13630           empty array if the type is an array. Fixed.
13631           ves_icall_MonoMethod_get_base_definition: if the base method
13632           is abstract, get the MethodInfo from the list of methods of
13633           the class.
13634         * reflection.c: ParameterInfo.PositionImpl should be zero-based
13635           and it was 1-based. Fixed in mono_param_get_objects.
13636
13637 2003-07-20  Martin Baulig  <martin@ximian.com>
13638
13639         * mono-debug.h: Set version number to 31.
13640         (mono_debug_init): Added `MonoDomain *' argument.
13641
13642         * mono-debug-debugger.c: Reworked the type support; explicitly
13643         tell the debugger about builtin types; pass the `klass' address to
13644         the debugger.
13645
13646 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
13647
13648         * image.c: Allow new metadata tables to be loaded without a
13649         warning. Also update the warning message to give the new constant value.
13650                 
13651 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
13652
13653         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
13654         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
13655         array type representation changes.
13656
13657 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13658
13659         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
13660         on Environment.Exit () call.
13661
13662 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13663
13664         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
13665         requires a matching corlib.
13666
13667 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13668
13669         * Changelog: My editor decided to add a CR to each line. Sorry about that.
13670           Committed again without the CRs.
13671         
13672 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13673
13674         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
13675           getting it from the "this" socket instance. Did not work
13676           if the socket is a subclass of Socket.
13677           Also fixed bug #35371.
13678
13679 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13680
13681         * metadata.c: fixed size for TypedByRef.
13682         * loader.c: when searching for a method, consider the vararg amrker.
13683         * unicode.c, decimal.c: constify some arrays.
13684
13685 2003-07-15  Dick Porter  <dick@ximian.com>
13686
13687         * socket-io.c: Fixed compilation for gcc < 3.2.
13688
13689         Fixed compilation for machines that don't have AF_INET6 (thanks to
13690         Bernie Solomon <bernard@ugsolutions.com> for that part.)
13691
13692         Fixed compile warnings.
13693         
13694         Fixed formatting and line endings.
13695
13696 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
13697
13698         * socket-io.h:
13699         * socket-io.c: Added IPv6 support.
13700
13701 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
13702
13703         * class.c (mono_class_is_assignable_from): New function to implement
13704         the is_assignable_from logic. Used by mono_object_isinst, 
13705         Type::IsAssignableFrom () and the interpreter.
13706
13707         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
13708         Object, even interfaces.
13709         
13710         * object.c (mono_object_isinst): Implement in terms of 
13711         is_assignable_from.
13712
13713         * icall.c (ves_icall_type_is_assignable_from): New icall.
13714
13715 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
13716
13717         * domain.c (foreach_domain): fix compiler warning.
13718
13719 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
13720
13721         * image.c (load_metadata_ptrs): use g_strndup because strndup is
13722         not available on all plattforms
13723
13724 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
13725
13726         * image.h image.c: Store the metadata version string in MonoImage.
13727         * icall.c: New icall to retrieve the image version.
13728         * reflection.c (create_dynamic_image): Fill in the image version field
13729         * reflection.c (build_compressed_metadata): Use the image version
13730         from the image structure.
13731
13732 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13733
13734         * appdomain.c: modified comment.
13735         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
13736         That will be its last iteration when mono_gc_cleanup is called from
13737         mono_runtime_cleanup and before the domain is unloaded.
13738
13739         Fixes bug #45962.
13740
13741 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
13742
13743         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
13744         attributes.
13745
13746 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13747
13748         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
13749         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
13750         Bernie Solomon <bernard@ugsolutions.com>.
13751
13752 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13753
13754         * object.c, object.h: provide mono_object_new_fast() for faster
13755         allocation in some special cases.
13756
13757 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
13758
13759         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
13760         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
13761
13762 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
13763
13764         * threadpool.c: fix leaks.
13765
13766 2003-07-01  Dick Porter  <dick@ximian.com>
13767
13768         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
13769         using MonoGHashTables.  Fixes threadpool bug posted to list.
13770
13771 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13772
13773         * image.h, image.c: added support to load an assembly from a byte array.
13774         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
13775         assembly bundle support.
13776
13777 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
13778
13779         * threadpool.c (mono_thread_pool_add): keep a reference to the
13780         AsyncResult to prevent GC
13781
13782 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13783
13784         * class.c: leak fix.
13785
13786 2003-06-25  Dick Porter  <dick@ximian.com>
13787
13788         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
13789         for the async object, the WaitHandle object will close the handle.
13790         Fixes bug 45321.
13791
13792 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13793
13794         * class.c: in mono_array_class_get (), lookup from the hash with the
13795         same type we insert: this works around a bug in
13796         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
13797         lluis. The real fix will have to wait for after the release.
13798
13799 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13800
13801         * icall.c: fix memory leak when getting type members.
13802
13803 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13804
13805         * reflection.c: added more pubtoken special cases.
13806
13807 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
13808
13809         * class.c: handle field offset correctly when class size
13810         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
13811
13812 2003-06-20  Martin Baulig  <martin@ximian.com>
13813
13814         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
13815         *image' field.
13816
13817 2003-06-20  Martin Baulig  <martin@ximian.com>
13818
13819         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
13820
13821 2003-06-20  Martin Baulig  <martin@ximian.com>
13822
13823         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13824         just distinguish between variables in registers and variables at
13825         an offset relative to a register.
13826
13827 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13828
13829         * icall.c: #ifdef out latest changes until mcs is fixed.
13830
13831 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13832
13833         * icall.c: return members in metadata order.
13834
13835 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13836
13837         * icall.c: avoid infinite loop in GetTimeZoneData.
13838
13839 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13840
13841         * icall.c: added Marshal.Prelink/All icalls.
13842
13843 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13844
13845         * object.c, object.h: fix warnings and do some overflow checking
13846         when creating arrays.
13847
13848 2003-06-17  Dick Porter  <dick@ximian.com>
13849
13850         * file-io.h:
13851         * file-io.c: File attributes need to be tweaked slightly when
13852         passed from the managed to the w32 world.
13853
13854 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13855         * profiler.h profiler-private.h profiler.c: Rework last patch
13856         based on suggestion by Paolo.
13857         
13858 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13859
13860         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13861         instruction level coverage data collection.
13862         * profiler.h profiler.c (: Added new callback function which can be
13863         used by the profiler to limit which functions should have coverage
13864         instrumentation.
13865         * profiler.c (mono_profiler_load): Call g_module_build_path to
13866         generate the file name of the profiler library.
13867
13868 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13869
13870         * profiler.c, profiler.h, profiler-private.h: added basic block 
13871         coverage profiling API.
13872
13873 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13874
13875         * reflection.c (mono_reflection_create_runtime_class): Add support
13876         for events in dynamically generated code.
13877
13878         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13879         not allocated.
13880
13881 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13882
13883         * icall.c: when getting timezone info, return reasonable values if we
13884         can't get the actual data.
13885
13886 2003-06-14  Dick Porter  <dick@ximian.com>
13887
13888         * threads.c (start_wrapper): Remove the reference to the thread
13889         object in the TLS data, so the thread object can be finalized.
13890         This won't be reached if the thread threw an uncaught exception,
13891         so those thread handles will stay referenced :-( (This is due to
13892         missing support for scanning thread-specific data in the Boehm GC
13893         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13894
13895 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13896
13897         * reflection.c: ensure streams and tables are first allocated with
13898         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13899
13900 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13901
13902         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13903
13904 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13905
13906         * reflection.c (mono_reflection_create_runtime_class): Add support for
13907         properties to dynamically created classes.
13908         * reflection.c: Fix a few places where non-MonoObjects were inserted
13909         into the tokens hashtable.
13910
13911 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13912
13913         * object.c: some support to handle out of memory exceptions.
13914
13915 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13916
13917         * marshal.c (mono_marshal_get_native_wrapper): support reference
13918         return types
13919
13920 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13921
13922         * object.h, object.c: more portability stuff from Bernie Solomon.
13923         Unexport mono_object_allocate(). Added mono_object_unbox ().
13924         Set exitcode when an unhandled exception is thrown.
13925
13926 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13927
13928         * marshal.c (mono_marshal_get_native_wrapper): use custom
13929         marshaler for return types.
13930
13931 2003-06-10  Dick Porter  <dick@ximian.com>
13932
13933         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13934         ip_mreq is available
13935
13936 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13937
13938         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13939         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13940         by Bernie Solomon <bernard@ugsolutions.com>.
13941
13942 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13943
13944         * gc.c (mono_gc_init): Avoid error message on shutdown when
13945         GC_DONT_GC=1 is used.
13946
13947         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13948         New icall to return the GUID of a module.
13949
13950 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13951
13952         * class.c: ensure instance size always includes the parent's size
13953         even whem class size is set explicitly (fixes bug#44294).
13954
13955 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13956
13957         * profiler.h, profiler.c: made the simple profiler thread-safe,
13958         get more accurate timing info. Allow the loading of an
13959         externally-developed profiler module.
13960
13961 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13962
13963         * marshal.c (mono_marshal_get_native_wrapper): improved
13964         class/byref arguments.
13965         (mono_marshal_get_native_wrapper): better string marshaling support.
13966
13967 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13968
13969         * class.c: ensure .pack and .size are handled correctly and
13970         simplified layout of static fields.
13971
13972 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13973
13974         * appdomain.c
13975         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13976
13977         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13978         current directory (fix bug 44008)
13979
13980 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13981
13982         * marshal.c (mono_marshal_get_native_wrapper): started support for
13983         custom marshalers.
13984         (mono_delegate_to_ftnptr): consider marshalling specifications
13985
13986 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13987
13988         * reflection.c, reflection.h: emit custom marshal info.
13989
13990 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13991
13992         * object.c: free the GError.
13993         * icall.c: added CloseEvent_internal.
13994         * threads.[ch]:
13995         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13996         call.
13997
13998 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13999
14000         * loader.c (mono_method_get_signature): Add support for dynamic
14001         assemblies.
14002
14003 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
14004
14005         * reflection.c: fixed bug #43905.
14006
14007 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
14008
14009         * class.c, domain.c, icall.c, metadata.h, object.h: support for
14010         handling TypedReference and ArgIterator.
14011         * loader.c, loader.h: added function to get signature at call site.
14012
14013 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14014
14015         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
14016         data readonly. Buglets and warning fixes. Some MethodSpec support.
14017
14018 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
14019
14020         * class.h, class.c, object.c: remove relative numbering support.
14021
14022 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
14023
14024         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
14025         free the string, until we get a chance to fix Gtk#
14026
14027 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14028
14029         * marshal.c: revert last patch.
14030
14031 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
14032
14033         * icall.c: updates for new mono_class_vtable() not calling
14034         the type constructor anymore.
14035
14036 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14037
14038         * object.h, object.c: separate vtable creation from type
14039         initialization. Make running the .cctor thread safe.
14040
14041 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
14042
14043         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
14044
14045 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
14046
14047         * loader.c (mono_get_method): consider calling convention
14048
14049 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
14050
14051         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
14052         to return the invisible global type for a module.
14053
14054         * reflection.c (mono_image_build_metadata): Emit global fields too.
14055
14056 2003-05-20  Peter Williams  <peterw@ximian.com>
14057
14058         * loader.c (mono_lookup_internal_call): Add a few newlines.
14059
14060 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
14061
14062         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
14063         literal strings.
14064
14065         * appdomain.c (set_domain_search_path): Recalculate search path when
14066         AppDomainSetup.PrivateBinPath changes.
14067
14068         * object.c (mono_class_compute_gc_descriptor): It turns out some
14069         parts of the class libs (like System.Thread) holds pointers to
14070         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
14071         to treat native int a pointer type here.
14072         
14073 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
14074
14075         * appdomain.h, domain.c: add hashtable for jump target resolution.
14076
14077 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
14078
14079         * reflection.h reflection.c icall.c: Added new icalls 
14080         GetManifestResourceInfoInternal, GetModulesInternal and support
14081         infrastructure.
14082
14083 2003-05-16  Dick Porter  <dick@ximian.com>
14084
14085         * icall.c:
14086         * file-io.h:
14087         * file-io.c: Implement System.IO.MonoIO::GetTempPath
14088
14089 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
14090
14091         * object.c: mono_store_remote_field: little fix to previous patch.
14092
14093 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
14094
14095         * class.c: add constructors to array classes.
14096         * icall.c: special case array construction for InternalInvoke (),
14097
14098 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
14099
14100         * class.h class.c reflection.c object.c: Added support for field
14101         defaults in dynamically generated classes.
14102
14103 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
14104
14105         * reflection.c: properly encode charset for ddlimport.
14106
14107 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
14108
14109         * threads.c: allow compiling without GC.
14110
14111 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
14112
14113         * appdomain.h, object.c, object.h, threads.c, threads.h: added
14114         handling of thread static data.
14115
14116 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
14117
14118         * reflection.h, reflection.c: added mono_custom_attrs_free ().
14119
14120 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
14121
14122         * class.c (mono_array_class_get): always set the serializable flags
14123         (mono_array_class_get): always set the SEALED attribute for array types
14124
14125 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
14126
14127         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
14128         attributes (fix for bug 42021).
14129
14130 2003-05-12  Dick Porter  <dick@ximian.com>
14131
14132         * gc.c: Don't run finalizers when the finalizer thread is
14133         finishing up, because the default domain has already been
14134         destroyed.
14135
14136 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
14137
14138         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
14139         value is null, we should throw an exception.   This is slightly
14140         different than the other conventions used for the constructor.
14141
14142 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14143
14144         * socket-io.c: fixed windows build.
14145
14146 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14147
14148         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
14149
14150 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
14151
14152         * object.c (mono_string_new_wrapper): Compatibility fix for MS
14153         compilers.
14154
14155 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
14156
14157         * class.c (mono_class_layout_fields): Add experimental GC aware
14158         auto layout facility. Requires class library changes to work correctly.
14159
14160         (mono_class_setup_vtable): Avoid overriding explicit interface
14161         method implementations. Fixes iface3.exe test.
14162
14163         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
14164         object reference.
14165         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
14166         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
14167
14168         * metadata.h: Add new type classification macro which determines
14169         whenever the type holds an object reference.
14170
14171 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
14172
14173         * marshal.c (mono_marshal_get_native_wrapper): cleanups
14174
14175 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
14176
14177         * gc.c (finalizer_thread): Work around a GC bug.
14178
14179 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
14180
14181         * marshal.c (emit_struct_conv): allow unions
14182
14183         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
14184
14185 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
14186
14187         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
14188
14189 2003-05-06  Martin Baulig  <martin@ximian.com>
14190
14191         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
14192
14193 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14194
14195         * socket-io.c:
14196         (Select_internal): allow NULLs, don't create arrays if not needed.
14197         Coupled with Socket.cs changes.
14198
14199         * threadpool.c:
14200         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
14201         register a finalizer for it that will close the semaphore handle. This
14202         fixes the leak and make Lupus' test run with > 4080 loops.
14203
14204 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
14205
14206         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
14207         Jerome Laban (bug #42287)
14208
14209 2003-05-02  Martin Baulig  <martin@ximian.com>
14210
14211         * debug-mono-symfile.h
14212         (MonoSymbolFile): Moved declaration into mono-debug.h.
14213         (MonoDebugMethodJitInfo): Likewise.
14214         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
14215         argument.
14216         (_mono_debug_address_from_il_offset): Take a
14217         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
14218
14219         * mono-debug.h
14220         (MonoDebugDomainData): New struct.
14221         (mono_debug_get_domain_data): New function.
14222         (mono_debug_add_method): Take an additional `MonoDomain *'
14223         argument.
14224         (mono_debug_source_location_from_address): Likewise.
14225         (mono_debug_il_offset_from_address): Likewise.
14226         (mono_debug_address_from_il_offset): Likewise.
14227
14228 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
14229
14230         * reflection.c: one more check for null type in custom attrs.
14231
14232 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14233
14234         * reflection.c: avoid warning (comparison is always false due to limited
14235         range of data type).
14236
14237 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14238
14239         * icall.c: throw an exception in Type.GetField if the argument 'name'
14240         is NULL.
14241
14242 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
14243
14244         * reflection.c: fixed handling of enums in named arguments to custom
14245         attributes (bug #42123).
14246
14247 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
14248
14249         * reflection.c: use the right array element type and handle
14250         a null for a Type argument, too.
14251
14252 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
14253
14254         * reflection.c: handle arrays as arguments to custom attributes.
14255
14256 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
14257
14258         * reflection.c: handle a string value in a custom attr
14259         ctor that takes an object.
14260
14261 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
14262
14263         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
14264         (fix bug #42063)
14265
14266 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
14267
14268         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
14269
14270 2003-04-27  Martin Baulig  <martin@ximian.com>
14271
14272         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
14273         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
14274         MONO_DEBUGGER_EVENT_BREAKPOINT.
14275         (mono_breakpoint_trampoline_code): Removed.
14276         (mono_debugger_event_handler): The last argument is now a
14277         `guint32'.
14278         (mono_debugger_insert_breakpoint_full): Removed the
14279         `use_trampoline' argument.
14280         (mono_debugger_method_has_breakpoint): Likewise.
14281         (mono_debugger_trampoline_breakpoint_callback): Renamed to
14282         mono_debugger_breakpoint_callback(); take the method and
14283         breakpoint number as arguments.
14284
14285 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
14286
14287         * metadata.c: fix off by one when loading parameters attributes.
14288
14289 2003-04-24  Martin Baulig  <martin@ximian.com>
14290
14291         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
14292
14293 2003-04-24  Martin Baulig  <martin@ximian.com>
14294
14295         * mono-debug-debugger.c: Moved all code which interacts with the
14296         Mono Debugger here.
14297
14298         * debug-mono-symfile.c: This code now just deals with the symbol
14299         file itself, the debugger code is now in mono-debug-debugger.c.
14300
14301 2003-04-23  Martin Baulig  <martin@ximian.com>
14302
14303         * mono-debug.c (mono_debug_source_location_from_il_offset):
14304         New method; like mono_debug_source_location_from_address(), but
14305         takes an IL offset instead of a machine address.
14306
14307 2003-04-23  Martin Baulig  <martin@ximian.com>
14308
14309         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
14310         `line' field; this is now computed by the debugger.
14311
14312 2003-04-23  Martin Baulig  <martin@ximian.com>
14313
14314         * mono-debug.[ch]: New files.  This is the new debugging interface.
14315
14316         * mono-debug-debugger.[ch]: New files.  Moved all code which
14317         interacts with the Mono Debugger here.
14318
14319 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
14320
14321         * domain.c (mono_init): initialize mono_defaults.monitor_class
14322
14323 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
14324
14325         * reflection.c (method_encode_code): Add a spicy exception to help
14326         future compiler authors.
14327
14328 2003-04-21  Martin Baulig  <martin@ximian.com>
14329
14330         * icall.c
14331         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14332         Make this work with relative pathnames; g_filename_to_uri() needs
14333         an absolute filename.
14334
14335 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
14336
14337         * icall.c: Track name changes in Object and ValueType.
14338
14339 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
14340
14341         * metadata.c (mono_type_stack_size): size should be a multiple of
14342         sizeof (gpointer)
14343
14344 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14345
14346         * gc.c:
14347         (internal_domain_finalize): moved into mono_domain_finalize. No need
14348         to create another thread because the finalizers will be run in the
14349         finalizer thread.
14350         
14351         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
14352         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
14353         to be run (MS does this too).
14354
14355 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
14356
14357         * object.c (mono_class_compute_gc_descriptor): Update comment.
14358
14359         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
14360
14361         * image.h: Add synchronized wrapper cache.
14362
14363         * image.c (do_mono_image_open): Initialize cache.
14364
14365         * reflection.c (create_dynamic_mono_image): Initialize cache.
14366
14367 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14368
14369         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
14370         ves_icall_System_Buffer_ByteLengthInternal.
14371
14372 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14373
14374         * reflection.c: setup klass->nested_in earlier. Allow
14375         a dash in the assembly name.
14376
14377 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
14378
14379         * metadata.c (mono_type_to_unmanaged): dont access
14380         type->data.klass for MONO_TYPE_OBJECT
14381         (mono_type_to_unmanaged): consider System.Delegate class
14382
14383 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
14384
14385         * class.c: just setup supertypes in the proper place instead of
14386         initializing the full element class for arrays.
14387
14388 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14389
14390         * class.c: ensure the element class of arrays is initialized.
14391         Setup the supertype info for array classes, too.
14392
14393 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
14394
14395         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
14396
14397 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14398
14399         * Makefile.am: re-added -m option when running cygpath. This way,
14400         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
14401         separator.
14402         * mono-config.c: same codepath for locating mono config file for WIN32
14403         and the rest.
14404         * assembly.c: if mono_assembly_setrootdir is called, don't override
14405         the value set.
14406
14407 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14408
14409         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
14410         MONO_ASSEMBLIES variable.
14411
14412 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
14413
14414         * icall.c: added Assembly::GetNamespaces() icall.
14415
14416 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14417
14418         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
14419
14420 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
14421
14422         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
14423         * object.c: fixed bug in the construction of vtable for proxies
14424
14425 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
14426
14427         * object.c (mono_array_new): Mark mono_array_new as an icall.
14428
14429 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14430
14431         * class.c: fixed test for public method when overriding interfaces.
14432         Closes bug #40970.
14433
14434 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14435
14436         * appdomain.h, domain.c: added mono_domain_foreach() to
14437         be able to access the currently loaded appdomains.
14438         * object.c: make string interning work across sppdomains.
14439         Mark some functions for use as icalls.
14440
14441 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
14442
14443         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
14444
14445         * reflection.h reflection.c: Allocate long living data using 
14446         GC_MALLOC_ATOMIC so the collector does not need to scan it.
14447
14448         * reflection.c: Double the allocation size in streams instead of
14449         increasing it, to prevent unneccesary copying on large assemblies.
14450         
14451         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
14452         creation if the assembly does not have the Run flag set.
14453
14454 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
14455
14456         * class.h: avoid the C++ keywords in header files (Jerome Laban
14457         spotted and fixed this).
14458
14459 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14460
14461         * object.c:
14462         (mono_unhandled_exception): fill in the arguments for the
14463         UnhandledException event. Only trigger that event for the default
14464         domain (as MS does).
14465
14466 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
14467
14468         * object.c: Improve typed allocation stuff based on suggestions from
14469         Paolo. Also turn it on if the GC library supports it.
14470
14471 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14472
14473         * object.c object.h class.h: Added experimental typed allocation
14474         facility using the interfaces in gc_gcj.h.
14475
14476         * os/gc_wrapper.h: Added new include files.
14477         
14478 2003-04-03  Martin Baulig  <martin@ximian.com>
14479
14480         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
14481         which is not yet enabled by default.
14482
14483         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
14484         functions.
14485         (mono_gc_lock, mono_gc_unlock): New static functions.
14486
14487         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
14488         functions; stop/start the world for the garbage collector.  This
14489         is using the windows API; we need to complete the SuspendThread()/
14490         ResumeThread() implementation in the io-layer to make this work on Unix.
14491         (mono_gc_push_all_stacks): New public function; tells the garbage
14492         collector about the stack pointers from all managed threads.
14493
14494 2003-04-03  Martin Baulig  <martin@ximian.com>
14495
14496         * object.h (MonoThread): Added `gpointer stack_ptr'.
14497
14498         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
14499
14500 2003-04-03  Martin Baulig  <martin@ximian.com>
14501
14502         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
14503
14504 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14505
14506         * reflection.c (typebuilder_setup_fields): Initialize field.first and
14507         field.last.
14508
14509 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
14510
14511         * loader.c (mono_lookup_internal_call): Report the corlib that is
14512         out of sync.
14513
14514 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
14515
14516         * icall.c (ves_icall_type_GetTypeCode): fixed check for
14517         System.DBNull (it's class not valuetype).
14518
14519 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14520
14521         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
14522         if the array method was already assigned a token (fixes bug#40646).
14523
14524 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
14525
14526         * reflection.c (mono_reflection_get_type): Attempt type resolve even
14527         if no assembly is given.
14528
14529 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
14530
14531         * metadata.h: Added the new tables.
14532
14533         * row-indexes.h: Added definitions for new tables.
14534
14535         * metadata.c: Add schemas for new tables, and add support for
14536         computing the sizes of them.
14537
14538         * class.c: Update for handling the new type cases.
14539
14540 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
14541
14542         * metadata.h (MONO_TYPE_IS_VOID): new macro
14543
14544 2003-03-31  Martin Baulig  <martin@ximian.com>
14545
14546         * threads.h (MonoThreadCallbacks): Added `thread_created'.
14547
14548         * threads.c (mono_thread_new_init): Call `thread_created' in the
14549         mono_thread_callbacks.
14550
14551 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
14552
14553         * loader.h: added marshalbyrefobject_class to mono_defaults
14554         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
14555         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
14556           generation of output parameters.
14557           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
14558         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
14559           contextbound and the target object belongs to the context of the caller.
14560         * object.h: added context and unwrapped_server variables in MonoRealProxy.
14561         * object.c: Implemented support for interfaces and abstract classes
14562           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
14563           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
14564
14565 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
14566
14567         * class.h class.c (mono_class_is_subclass_of): New function.
14568         
14569         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
14570         routines for most common case (calls from ArrayList::ToArray).
14571
14572         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
14573         routine so programs which call Environment::Exit() can be profiled.
14574
14575         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
14576         Added MONO_ARCH_SAVE_REGS.
14577
14578         * icall.c (ves_icall_type_is_subtype_of): Use new function.
14579
14580 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
14581
14582         * blob.h: Add a couple of new MonoType types definitions.
14583
14584         * tabledefs.h: Add a couple of new call convs.
14585
14586 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
14587
14588         * reflection.h (MonoReflectionDynamicAssembly): track changes in
14589         the layout of the class.
14590
14591         * reflection.c (alloc_table): double the size on overflow to avoid
14592         unnecessary copying.
14593
14594         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
14595         avoid filling out metadata tables and blobs. Also set mb->ilgen to
14596         null so it can be garbage collected.
14597         
14598 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
14599
14600         * reflection.c (mono_reflection_get_type): Return the resolved type
14601         only if it is in the assembly we searched.
14602
14603         * reflection.c (ensure_runtime_vtable): Initialize method slots.
14604
14605         * class.c (mono_class_setup_vtable): Set the slot of the overriding
14606         method.
14607
14608 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14609
14610         * appdomain.c:
14611         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
14612         the right one is 'file:///blah', but MS allows it.
14613         * assembly.c:
14614         (mono_assembly_open): allow 'file://blah'
14615
14616         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
14617
14618 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
14619
14620         * socket-io.c: fixes bug #40310.
14621
14622 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
14623
14624         * reflection.c (mono_reflection_parse_type): handle deeply nested
14625         types correctly.
14626
14627         * reflection.c (mono_image_create_token): Use unique token values
14628         since they will be put into a hash table.
14629
14630         * class.c (mono_class_setup_vtable): If a method occurs in more than
14631         one place in the vtable, and it gets overriden, then change the
14632         other occurances too.
14633
14634         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14635         object as return type.
14636
14637 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14638
14639         * icall.c: Deleted "ToString" implementation for double and float
14640         because they are full implemented in managed code.
14641
14642 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14643
14644         * reflection.c, reflection.h: implemented and exported functions
14645         to retrieve info about custom attributes.
14646
14647 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14648
14649         * appdomain.c: moved Uri handling to assembly.c
14650         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
14651         work when using a file Uri in *nix and windows.
14652
14653         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
14654         GetReferencedAssemblies.
14655
14656 2003-03-18  Dick Porter  <dick@ximian.com>
14657
14658         * icall.c: Rename a couple of internal calls
14659
14660         * threads.c: Set the thread state to Stopped when a thread exits.
14661         Fixes bug 39377.
14662
14663 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
14664
14665         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
14666         New icall.
14667
14668         * object.c (mono_class_vtable): fix warning.
14669
14670 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
14671
14672         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
14673
14674         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
14675         memory.
14676         (method_encode_clauses): Create exception info structures in the right
14677         order.
14678         (mono_reflection_setup_internal_class): Initialize supertypes field.
14679
14680         * class.c object.c: Handle interfaces which implement other interfaces 
14681         correctly.
14682
14683         * class.h class.c: Move the supertypes array initialization code into 
14684         a separate function so it can be used for dynamic types too. Also call
14685         it earlier, in mono_class_init(), since it can be used before the
14686         type is initialized.
14687
14688 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14689
14690         * Makefile.am:
14691         * assembly.c:
14692         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
14693
14694         * appdomain.c:
14695         * appdomain.h:
14696         * marshal.c:
14697         * object.c: remove warnings.
14698
14699 2003-03-13  Martin Baulig  <martin@ximian.com>
14700
14701         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
14702         (MonoDebugLexicalBlockEntry): New types.
14703
14704         * debug-mono-symfile.c
14705         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
14706
14707 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14708
14709         * process.c: ret can be any non-zero value accroding to MS doc.
14710
14711 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
14712
14713         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
14714         fixing a warning for a miss-used prototype, would have cause
14715         random memory corruption.
14716
14717 2003-03-07  Martin Baulig  <martin@ximian.com>
14718
14719         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
14720         getting really annoying ....
14721
14722 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
14723
14724         * reflection.c (fixup_method): added support for array methods.
14725
14726 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
14727
14728         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
14729         (pointed out by Michael Adams).
14730
14731 2003-03-04  Dick Porter  <dick@ximian.com>
14732
14733         * icall.c: Temporarily reverted the Double and Single ToString()
14734         change, because it broke nunit.
14735
14736 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
14737
14738         * object.h, threads.h: make include files compatible with C++
14739         (patch by Jerome Laban <jlaban@wanadoo.fr>).
14740
14741 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14742
14743         * icall.c: Erased ToString helper functions for Double and Single.
14744         Now, that implementations ar all in managed code (Double and Single
14745         Formatters).
14746
14747 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
14748
14749         * appdomain.c: Added method for initializing the default context of
14750         a domain. Added internal call for getting the default context.
14751         * appdomain.h: Added context variable in MonoDomain struct.
14752         * domain.c: mono_domain_set also sets the default context of the domain
14753         * icall.c: Mapped internal method InternalGetDefaultContext.
14754         * object.c: mono_object_get_virtual_method returns always a remoting
14755         wrapper if the object is a transparent proxy.
14756         mono_runtime_invoke_array: when creating an object by calling the
14757         constructor, if the created object is a proxy, then the constructor should
14758         be called using the a remoting wrapper.
14759
14760 2003-03-03  Dick Porter  <dick@ximian.com>
14761
14762         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
14763         variable so it compiles on solaris.  Problem spotted by
14764         Christopher Taylor <ct@cs.clemson.edu>
14765
14766 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14767
14768         * appdomain.c:
14769         (get_info_from_assembly_name): don't leak value.
14770
14771         * icall.c:
14772         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
14773         result.
14774
14775 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
14776
14777         * assembly.c: export mono_image_load_references ().
14778         * class.c: handle function pointers. mono_class_from_name() now
14779         supports nested type names directly.
14780
14781 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
14782
14783         * reflection.h reflection.c: Encode already created dynamic methods 
14784         and fields correctly as a DEF instead of a REF.
14785
14786         * reflection.c: Get rid of the force_ref argument to 
14787         mono_image_typedef_or_ref since it was wrong in the first place.
14788
14789         * string-icalls.c: add error checking to string constructors according
14790         to the MSDN docs.
14791
14792         * reflection.c: Emit types in the order their TypeBuilders were 
14793         created. Previously, a new table index was assigned to each type before
14794         the tables were emitted. This was wrong because the signature blob
14795         might already refer to a type by its original table index.
14796
14797 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
14798
14799         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
14800         change.
14801         
14802 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14803
14804         * Makefile.am: make assemblies dir have \ instead of / on windows.
14805
14806 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
14807
14808         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
14809         iterate over the NESTEDCLASS table using a linear search since the
14810         table is not guaranteed to be sorted by the secondary key.
14811
14812         * class.c (mono_class_create_from_typedef): fixed up call to
14813         mono_metadata_nesting_typedef.
14814         
14815 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
14816
14817         * marshal.c (mono_string_to_byvalstr): clear the memory as
14818         suggested by Jerome Laban <jlaban@wanadoo.fr>
14819
14820 2003-02-26  Dick Porter  <dick@ximian.com>
14821
14822         * process.c: Cope with padding in .rsrc blocks
14823
14824 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14825
14826         * metadata.h: reverted the filter_len change, it breaks reflection
14827         
14828 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14829
14830         * metadata.h: added a new field to store the filter_len
14831         
14832
14833 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14834
14835         * reflection.c: handle custom attributes for types and members
14836         created with Reflection.Emit (bug#38422).
14837
14838 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14839
14840         * reflection.c: define RTSpecialName automatically for constructors for
14841         compatibility with MS.NET.
14842
14843         * reflection.c (mono_reflection_create_runtime_class): initialize
14844         nested_in field of dynamically created classes.
14845
14846 2003-02-22  Martin Baulig  <martin@ximian.com>
14847
14848         * debug-mono-symfile.h: Incremented version number.
14849
14850 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14851
14852         * object.h icall.c process.c: fix warnings.
14853
14854 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14855
14856         * appdomain.h appdomain.c:
14857         (mono_domain_try_type_resolve): split the 
14858         name_or_tb argument into a name and a tb argument.
14859         (mono_domain_has_type_resolve): new function to check whenever the
14860         application has registered a TypeResolve event handler.
14861         
14862         * icall.c reflection.h reflection.c: move the type resolve logic into
14863         mono_reflection_get_type () so it will be invoked when 
14864         Assembly::GetType () is called.
14865
14866         * reflection.c:
14867         (mono_reflection_get_type): renamed to get_type_internal.
14868         (mono_reflection_get_type): fixed type name generation so it works 
14869         for nested types too.
14870         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14871         costly type name generation if there is no resolve event handler.
14872
14873 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14874
14875         * class.c, image.c: load exported types from file references.
14876
14877 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14878
14879         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14880           used to cache the managed methods used to create proxies and make 
14881           remote invocation of methods.
14882         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14883           to be remotely created.
14884         * object.c: Modified the method mono_class_vtable(). It now initializes 
14885           the remote flag of the vtable. Modified mono_object_new_specific(), 
14886           so now it checks the remote flag.
14887         * icall.c: Added a couple of internal methods, one for enabling instance 
14888           creation interception for a type, and one for creating objects bypassing
14889           the remote check.
14890
14891 2003-02-18  Martin Baulig  <martin@ximian.com>
14892
14893         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14894         New interncall to get a method's metadata token.
14895
14896         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14897         New interncall for the debugger.
14898
14899 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14900
14901         * class.c (mono_class_setup_vtable): allocate supertype array
14902
14903 2003-02-18  Martin Baulig  <martin@ximian.com>
14904
14905         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14906
14907 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14908
14909         * reflection.c:
14910         (assembly_name_to_aname): jump over unknown properties (i've found
14911         something like: 'type, assembly, version=xxx, custom=null, public...',
14912         so now will ignore custom=null and still get the rest of the values).
14913
14914 2003-02-17  Dick Porter  <dick@ximian.com>
14915
14916         * threads.c: Have Thread.Start() wait for a semaphore to signal
14917         that the thread has set up all its local data.  This fixes bug
14918         34323, where Abort() raced the new thread's TLS data.
14919
14920         Also removes the handle_store() call from start_wrapper, because
14921         threads are now always created suspended and there is no longer a
14922         race between the parent and child threads to store the info.
14923
14924 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14925
14926         * image.c: explain the #- heap issue in a message, hopefully
14927         avoiding FAQs on mono-list.
14928
14929 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14930
14931         * icall.c:
14932         (GetEntryAssembly): if the domain has not invoked
14933         AppDomain.ExecuteAssembly yet, return the assembly of the default
14934         AppDomain.
14935
14936 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14937
14938         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14939
14940 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14941
14942         * metadata.c, reflection.c: simple speedup to type hash
14943         and equals code.
14944
14945 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14946
14947         * image.c, image.h, class.c, assembly.c: move module loading
14948         to MonoImage. When loading metadata, consider alignemnet from
14949         the start of metadata, not from the metadata address in memory.
14950
14951 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14952
14953         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14954         AssemblyBuilder objects. Factored out custom attribute creation into
14955         a separate function.
14956         (create_custom_attr): new function to create custom attributes.
14957
14958 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14959
14960         * Makefile.am: Got tired of typing the full pathname to pedump.
14961         Until there is another option, am installing this.
14962
14963 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14964
14965         * class.c (class_compute_field_layout): always set field->parent 
14966         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14967
14968 2003-02-11  Dick Porter  <dick@ximian.com>
14969
14970         * threads-types.h:
14971         * monitor.c: Rewrote Monitor, making lock much faster and
14972         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14973         creates them as needed.
14974
14975         * exception.c: Added SynchronizationLockException
14976
14977         * threads.c: Deleted old Monitor implementation.  The new one is
14978         in a new file.
14979
14980 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14981
14982         * class.c: handled TypedReference type code. Set the correct size for
14983         class data. Setup interface_offsets for interface classes, too.
14984
14985 2003-02-09  Martin Baulig  <martin@ximian.com>
14986
14987         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14988
14989 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14990
14991         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14992         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14993         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14994         * verify.c: check for code that runs after the end of the method.
14995
14996 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14997
14998         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14999         "System.Math::Round2".
15000         * sysmath.h: Added Floor, Round and Round2 definitions.
15001         * sysmath.c: Modified certain functions that were not 100% compliant
15002         with MS.NET (math precision) and added the implementation of Floor,
15003         Round and Round2.
15004
15005 2003-02-07  Martin Baulig  <martin@ximian.com>
15006
15007         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
15008
15009 2003-02-07  Martin Baulig  <martin@ximian.com>
15010
15011         * debug-mono-symfile.c: Reflected latest symwriter changes.
15012         (mono_debug_create_mono_symbol_file): Removed.
15013         (mono_debug_open_mono_symbol_file): Take an argument which
15014         specifies whether to create a dynamic symbol file.
15015
15016 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
15017
15018         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
15019
15020 2003-02-05  Martin Baulig  <martin@ximian.com>
15021
15022         * reflection.c (mono_image_build_metadata): Make this public,
15023         protect it against being called multiple times, don't create
15024         resources and don't build the compressed metadata here.
15025         (mono_image_create_pefile): Do this here.
15026
15027         * icall.c
15028         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
15029
15030 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15031
15032         * socket-io.c: fixed bug #36322.
15033
15034 2003-02-06  Piers Haken <piersh@friskit.com>
15035
15036         * appdomain.[ch]:
15037         * class.h:
15038         * debug-mono-symfile.c:
15039         * icall.c:
15040         * loader.c:
15041         * mono-config.c:
15042         * monosn.c:
15043         * reflection.c:
15044         * socket-io.c: warning cleanups
15045
15046 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
15047
15048         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
15049         function. works like remoting invoke, but does a check for the Proxy first.
15050
15051 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
15052
15053         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
15054
15055 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
15056
15057         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
15058         array of pointers.
15059         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
15060         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
15061
15062         * object.c (mono_store_remote_field_new): used by the new jit
15063         instead of mono_store_remote_field
15064         (mono_load_remote_field_new): used by the new jit
15065         instead of mono_load_remote_field
15066
15067 2003-02-05  Patrik Torstensson
15068
15069         * appdomain.c: changed unload to take the domain id instead
15070         of domain
15071         
15072         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
15073
15074
15075 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15076
15077         * appdomain.c: don't look for assemblies in ApplicationBase if
15078         PrivateBinPathProbe is set.
15079
15080 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15081
15082         * object.c: make the first argument in main_args contain the absolute
15083         path to the assembly. Fixes bug #37511.
15084
15085 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15086
15087         * icall.c: get correct UTC offset for countries not using daylight
15088         time saving. Fixes bug #30030.
15089
15090 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15091
15092         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
15093         and 1 are the family).
15094
15095 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
15096
15097         * icall.c (ves_icall_InternalExecute): removed wrong assertion
15098
15099         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
15100
15101 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
15102
15103         * reflection.c: added support for SignatureHelper tokens, which is
15104         needed by the Calli opcode.
15105
15106         * reflection.h: track changes to SignatureHelper class.
15107
15108         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
15109
15110 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15111
15112         * appdomain.c: fixed loading assemblies from PrivateBinPath.
15113
15114 2003-02-03  Patrik Torstensson
15115         * appdomain.[c|h], domain.c : 
15116          - Added support for getting a domain via domain id
15117          - Support for setting and getting domain from System.AppDomain 
15118            (used in cross appdomain channel)
15119          - Added support for get/set for a MonoAppContext on a thread 
15120            (Context class in System.Runtime.Remoting.Contexts),
15121          - Removed hack in Get/SetData and ExecuteAssembly.
15122         
15123         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
15124         the managed world to get control when a proxy is created.
15125
15126         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
15127         
15128 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
15129
15130         * icall.c
15131         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
15132         Populate the codebase field as well.
15133
15134 2003-02-02  Martin Baulig  <martin@ximian.com>
15135
15136         * debug-mono-symfile.c
15137         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
15138         (mono_debug_symfile_add_method): Allow interncalls.
15139
15140 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15141
15142         * icall.c: throw parse exception if strtod fails or the string is empty.
15143
15144 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
15145
15146         * marshal.c: handle object type separately from defined
15147         class types.
15148
15149 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
15150
15151         * marshal.c: handle NATIVE_LPSTR for strings when it's
15152         explicitly specified.
15153
15154 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
15155
15156         * reflection.c, reflection.h, icall.c: setup the reflection
15157         handle cache for ModuleBuilders and AssemblyBuilders.
15158
15159 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
15160
15161         * reflection.c (reflection_methodbuilder_to_mono_method): set
15162         pinvoke flag
15163
15164 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15165
15166         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
15167
15168 2003-01-29  Dick Porter  <dick@ximian.com>
15169
15170         * threads.c: No need for the fake_thread kludge now that Thread
15171         doesn't run a class constructor
15172         
15173 2003-01-29  Dick Porter  <dick@ximian.com>
15174
15175         * threads.c: Use g_direct_hash instead of the rather bogus
15176         g_int_hash
15177
15178 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
15179
15180         * marshal.c (mono_marshal_get_native_wrapper): add check for null
15181         (fix pinvoke12.exe)
15182         (mono_marshal_get_struct_to_ptr): generate valid IL code
15183         (mono_marshal_get_ptr_to_struct): generate valid IL code
15184         (*): correctly set sig->pinvoke, we need to memdup the signature
15185         to do that
15186
15187 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
15188
15189         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
15190         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
15191
15192 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
15193
15194         * profiler.c: provide more callers information.
15195
15196 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
15197
15198         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
15199
15200         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
15201
15202         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
15203
15204 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15205
15206         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
15207         exception instead of going into an infinite loop on dates which it 
15208         can't yet handle.
15209
15210         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
15211         out-of-range exception if needed.
15212
15213         * class.c (mono_class_setup_vtable): allow a virtual method to provide
15214         an implementation for an interface method and to override an inherited
15215         method at the same time. 
15216         Imagine a scenario when a virtual method is used to override a
15217         virtual abstract method in a parent class, and this same method 
15218         provides an implementation for an method inherited from an interface. 
15219         In this case, the interface resolution code will set im->slot, which 
15220         means that the virtual method override pass will skip this method 
15221         which means a pointer to the abstract method inherited from the parent
15222         will remain in the vtable of this non-abstract class.
15223
15224         * class.c: (mono_class_setup_vtable): continue search for a real 
15225         method if only an abstract method is found.     
15226
15227 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
15228
15229         * reflection.c: add size to encoding for ByValStr and ByValArray
15230         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
15231
15232 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15233
15234         * class.c (mono_class_setup_vtable): pass the override info as an
15235         argument.
15236
15237         * class.c (mono_class_setup_vtable): set the slot of overriding methods
15238         correctly.
15239         
15240         * reflection.c (ensure_runtime_vtable); add support for method 
15241         overrides.
15242         
15243 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15244
15245         * reflection.c (resolution_scope_from_image): Hack to work to work with
15246         dynamic assemblies.
15247
15248         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
15249         added a 'force_ref' argument to force this function to allways return 
15250         a TypeRef. This is needed by mono_image_get_memberref_token ().
15251         
15252 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15253
15254         * reflection.c (mono_image_get_type_info): interfaces really don't have
15255         a parent.
15256
15257         * reflection.c (mono_image_basic_init): fill out missing fields of
15258         image structure.
15259
15260         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
15261         dynamic assemblies. This is required so dynamic assemblies show up in
15262         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
15263         Type::GetType() etc. This is consistent with MS behaviour.
15264
15265         * image.c image.h reflection.c: add newly created classes to the name 
15266         cache so mono_class_get () will find them.      
15267
15268 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
15269
15270         First part of changes to get IKVM.NET running under mono.
15271         
15272         * appdomain.h, appdomain.c: added new function 
15273         mono_domain_try_type_resolve() which will emit TypeResolve events. 
15274         This function will call AppDomain::DoTypeResolve to do the actual work.
15275
15276         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
15277         moved existing code dealing with dynamic tokens to a new function 
15278         called mono_reflection_lookup_dynamic_token (). This function will 
15279         raise TypeResolve events when appropriate. Since reflection.c is not 
15280         part of libmetadata, a new hook function called 
15281         mono_lookup_dynamic_token() is added to class.c which will call this.
15282
15283         * assembly.h assembly.c: make the invoke_load_hook function public,
15284         so it can be called for dynamic assemblies.
15285
15286         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
15287
15288         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
15289         type isn't found.
15290
15291         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
15292         MonoGHashTable, since it contains pointers to objects which the GC 
15293         needs to track.
15294
15295         * assembly.c (search_loaded): remove unused variable.
15296         
15297 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
15298
15299         * object.c: fixed issue exposed by gcc-generated IL programs
15300         that use RVA data for pointers.
15301
15302 2003-01-25  Martin Baulig  <martin@ximian.com>
15303
15304         * threads.c (start_wrapper): Moved the initialization of
15305         `start_func' above the mono_new_thread_init() call to which we
15306         pass it as argument.
15307
15308 2003-01-24  Martin Baulig  <martin@ximian.com>
15309
15310         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
15311         the MonoThread pointer.
15312
15313 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
15314
15315         * icall.c: Rename `PowImpl' to Pow.
15316
15317 2003-01-23  Dick Porter  <dick@ximian.com>
15318
15319         * threads.c (start_wrapper): Create a Thread object if needed, so
15320         the Main() thread can do the class initialisation in a subthread
15321         that has been set up to allow managed code execution.
15322
15323         Pass the thread ID instead of the MonoThread pointer to the thread
15324         start and attach callbacks.  This change is required, because the
15325         jit thread start callback must be called _before_ the Thread
15326         object can be created.
15327         
15328         (mono_thread_init): Removed much object creation code that is no
15329         longer needed.  No managed code is called from here now.
15330
15331         * object.c (mono_runtime_exec_managed_code): Create a subthread
15332         for Main, and call back to the runtime to use it.
15333         Set the exit code when Main exits.
15334
15335         * gc.c: Make sure domain finalisation happens in a subthread.
15336         Re-enable threaded GC, fixing bug 31333 (again).
15337
15338         * environment.c: System.Environment internall calls (so far just
15339         ExitCode is here, the others are still in icall.c)
15340
15341         * appdomain.c (mono_runtime_cleanup): All threads running managed
15342         code should have finished before mono_runtime_cleanup() is
15343         reached, so no need to clean up threads.
15344
15345 2003-01-22  Martin Baulig  <martin@ximian.com>
15346
15347         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
15348         `gpointer func' arguments.      
15349         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
15350         but added `MonoThread *thread' argument.
15351         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
15352
15353         * threads.c (mono_new_thread_init): Added `gpointer func' argument
15354         and pass it to the mono_thread_start_cb callback.
15355         (mono_install_thread_callbacks): New public function to install a
15356         set of callbacks which are set by the debugger.
15357         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
15358
15359 2003-01-22  Martin Baulig  <martin@ximian.com>
15360
15361         * Makefile.am: Install debug-mono-symfile.h.
15362
15363 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
15364
15365         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
15366
15367 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
15368
15369         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
15370         * class.c (mono_ptr_class_get): correctly set access levels of pointers
15371         (mono_array_class_get): correctly set access levels of arrays
15372
15373 2003-01-20      Patrik Torstensson
15374         * image.h (MonoAssemblyName): changed major, minor, build, revision
15375         from signed to unsigned.
15376
15377 2003-01-20  sean kasun <skasun@azstarnet.com>
15378
15379         * reflection.c (load_cattr_value): Now this handles
15380         MONO_TYPE_SZARRAY.  Fixes bug #35629
15381
15382 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
15383
15384         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
15385         integer value
15386
15387 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15388
15389         * decimal.c: fixed bug #26056.
15390
15391 2003-01-17  Martin Baulig  <martin@ximian.com>
15392
15393         * gc.c: Raise an ExecutionEngineException instead of using g_error().
15394
15395 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15396
15397         * exception.[ch]:
15398         (mono_get_exception_type_initialization): new function.
15399
15400         * object.c: throw a TypeInitializationException when an exception is
15401         thrown invoking the class constructor.
15402
15403 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15404
15405         * reflection.c: fixed attribute reading.
15406
15407 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15408
15409         * icall.c:
15410         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
15411         provided, look for the type in the calling assembly and then in
15412         mscorlib; if the assembly name is provided, only try that one.
15413
15414 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
15415
15416         * object.c: register the vtable before there is a chance it's
15417         queried again recursively.
15418
15419 2003-01-13  Duncan Mak  <duncan@ximian.com>
15420
15421         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
15422         gc-internal.h. 
15423         
15424 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
15425
15426         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
15427
15428 2003-01-11  Martin Baulig  <martin@ximian.com>
15429
15430         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
15431         this to 20 for the release.
15432
15433 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
15434
15435         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
15436
15437         * loader.c (mono_method_get_marshal_info): bug fix
15438
15439         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
15440         structures with explicit layout
15441
15442 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15443
15444         * profiler.c: made the output more readable (and sorted). 
15445         Added caller information for the allocation profiler.
15446
15447 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
15448
15449         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
15450
15451 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15452
15453         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
15454         to get value types.
15455         
15456 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
15457
15458         * object.c, profiler.h, profiler.c, profiler-private.h:
15459         Added object allocation profiler.
15460
15461 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
15462
15463         * reflection.h, reflection.c: handle global methods.
15464         Compress blob entries.
15465
15466 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
15467
15468         * marshal.c: fix compilation.
15469
15470 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
15471
15472         * loader.c (mono_method_get_marshal_info): impl.
15473
15474         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
15475
15476 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15477
15478         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
15479         for reference types.
15480
15481 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
15482
15483         * loader.c: fixed off by one error in loaded parameter names.
15484
15485 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
15486
15487         * marshal.c (mono_marshal_get_icall_wrapper): like
15488         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
15489         instead of a MonoMethod.
15490
15491 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15492
15493         * decimal.c: fixed bug #36537.
15494
15495 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
15496
15497         * marshal.c: throw a missing method exception if a
15498         P/Invoke method is not found.
15499
15500 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15501
15502         * icall.c: allow a null this for constructors.
15503
15504 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
15505
15506         * icall.c: raise the proper exceptions if the arguments to the
15507         internal Invoke are incorrect.
15508
15509 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
15510
15511         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
15512
15513 2003-01-03  Martin Baulig  <martin@ximian.com>
15514
15515         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15516
15517 2002-12-31  Martin Baulig  <martin@ximian.com>
15518
15519         * debug-mono-symfile.c: Completely rewrote the type section.
15520         Instead of using individual malloc()ed fields, we use one big
15521         continuous memory area and offsets into this area.
15522         See the comments in the source code for details.
15523
15524 2002-12-30  Martin Baulig  <martin@ximian.com>
15525
15526         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
15527
15528 2002-12-30  Martin Baulig  <martin@ximian.com>
15529
15530         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
15531         line number table in this data blob instead of using an external
15532         pointer.
15533
15534 2002-12-28  Martin Baulig  <martin@ximian.com>
15535
15536         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15537
15538 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
15539
15540         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
15541         as a boxed return type.
15542
15543 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
15544
15545         * appdomain.c
15546         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
15547         g_build_filename to properly get separators on the filename created.
15548
15549         * object.h: Small change, introduce MonoMarshalByRefObject to
15550         track the layout of that structure in the C# universe as we make
15551         changes there.
15552
15553 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
15554
15555         * object.c: removed assert to allow static fields on interfaces.
15556         * loader.c: a TypeSpec may be used for any type, not just arrays.
15557
15558 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15559
15560         * class.c, class.h: added mono_class_array_element_size ().
15561         Ignore static methods in interfaces.
15562
15563 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15564
15565         * threads.c: fixed the build under cygwin.
15566
15567 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15568
15569         * reflection.c: handle nullref constants. Allocate keys for
15570         reflection handles with the GC.
15571
15572 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15573
15574         * threads.c, threads.h: added mono_thread_get_abort_signal()
15575         to get a suitable signal for thread abort.
15576
15577 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15578
15579         * metadata.c: fix handling of ExportedType table.
15580
15581 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15582
15583         * icall.c: added WriteWindowsDebugString internal call.
15584
15585 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15586
15587         * reflection.h: added fields to match C# implementation.
15588
15589 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15590
15591         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
15592
15593 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
15594
15595         * gc.h, gc-internal.h: Rename header for GC internal calls to
15596         gc-internal.h from gc.h as to not clash with Boehm GC having its
15597         header installed as <gc.h> in outside include paths.
15598         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
15599         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
15600
15601 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15602
15603         * icall.c: assign minor, build and revision in FillName.
15604
15605 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
15606
15607         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
15608         Added support for running code generated by Reflection.Emit.
15609
15610 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15611
15612         * appdomain.c: check for NULL argument in LoadFrom.
15613
15614 2002-12-10  Dick Porter  <dick@ximian.com>
15615
15616         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
15617
15618 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15619
15620         * appdomain.c: fix buglet when building exe file name.  Handle full
15621         assembly name (needed after latest changes to AssemblyName).
15622         * image.c:
15623         (mono_image_close): free some hashtables.
15624
15625 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
15626
15627         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
15628         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
15629         on some systems (redhat 7.3) 
15630
15631 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
15632
15633         * threads.c: delete the critical section of a sync block,
15634         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
15635
15636 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
15637
15638         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
15639
15640 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15641
15642         * appdomain.[ch]: handle the assembly preload event to try loading the
15643         assemblies using the paths we have in the current domain.
15644
15645         * assembly.[ch]: created an assembly preload hook that is called to try
15646         loading the assembly by other means that the ones provided here.
15647
15648         * domain.c: initialize the domain search path.
15649
15650         From now on, assemblies (TODO: except corlib and System) are loaded
15651         according to these rules when using mono_assembly_load ():
15652
15653                 1. It tries to load the assembly from the ApplicationBase
15654                 of the current domain appending .dll and .exe (TODO: have to
15655                 try loading from name/name.dll and name/name.exe).
15656
15657                 2. It tries the search path specified in PrivateBinPath for the
15658                 current domain (if any).
15659
15660                 3. Previous behavior.
15661
15662 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
15663
15664         * icall.c: implemented GetInterfaceMap() related icall.
15665         * domain.c, loader.h: load MethodInfo in mono_defaults.
15666
15667 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15668
15669         * gc.c: disable the finalizer thread for now, untill all the issues
15670         with it are resolved.
15671
15672 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15673
15674         * string-icalls.c: handle embedded nulls in string ctor when the
15675         length is specified.
15676
15677 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15678
15679         * class.c: look for explicit interface implementation in parent
15680         classes, too.
15681
15682 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
15683
15684         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
15685
15686 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15687
15688         * gc.c: protect handles with a critical section.
15689
15690 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15691
15692         * icall.c:
15693         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
15694         parameters. If no assembly specified, try getting the type from all
15695         the assemblies in the current domain, else, load the assembly and get
15696         the type from it.
15697
15698 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15699
15700         * marshal.c: applied patch from Aleksey Demakov that fixes
15701         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
15702
15703 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15704
15705         * icall.c: fixed get_location.
15706
15707 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
15708
15709         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
15710         declarations to make it work with older gcc. 
15711
15712         * loader.c (mono_get_method): set signature->pinvoke for native calls
15713
15714 2002-11-20  Dick Porter  <dick@ximian.com>
15715
15716         * threads.c (mono_thread_init): Set the main thread's handle
15717
15718 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15719
15720         * gc.c: allow compilation without GC support. Changed to match the
15721         mono coding style.
15722
15723 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15724
15725         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
15726
15727 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
15728
15729         * reflection.c: set a public key token on the core assemblies.
15730
15731 2002-11-18  Dick Porter  <dick@ximian.com>
15732
15733         * threads.c: Split out some thread initialisation so that other
15734         files can set the start callback function.
15735
15736         * gc.c: Run finalisers in a separate thread, to avoid stack
15737         overflow.  Fixes bug 31333.
15738
15739         * appdomain.c: Set up GC finalisation thread.
15740
15741         * reflection.c: 
15742         * object.c: 
15743         * domain.c: Use gc.h macros for GC_malloc
15744         
15745 2002-11-15  Dick Porter  <dick@ximian.com>
15746
15747         * threadpool.c: 
15748         * threads.c:
15749         * appdomain.c: Removed mono_runtime_init_with_attach(),
15750         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
15751         merging the extra parameter with the existing function.  Removed
15752         unneeded code in mono_thread_attach().
15753
15754 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
15755
15756         * image.c (mono_image_loaded_by_guid): a method to get loaded
15757         images by guid. 
15758         (load_metadata_ptrs): we store the guid as string.
15759
15760 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
15761
15762         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
15763
15764         * metadata.c (mono_guid_to_string): imported method form Zoltan
15765         Varga (slightly modified)
15766
15767         * assembly.c (mono_assembly_open): load precompiled code
15768
15769         * loader.h (MonoMethod): we store the method token for use in the
15770         aot compiler. 
15771
15772 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15773
15774         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
15775         the hook function called when an assembly is loaded.
15776         
15777         * domain.c: Modified file.
15778         (mono_domain_assembly_load): removed hash table insertion of assemblies.
15779
15780         Fixes bug #33196.
15781
15782 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
15783
15784         * reflection.c: Map PEFileKind to the value expected by the WinNT
15785         image loader. 
15786
15787 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15788
15789         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
15790         Read until the buffer is filled completely.
15791
15792 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15793
15794         * icall.c: implemented MonoType.InternalGetEvent ().
15795
15796 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15797
15798         * appdomain.c: implemented InitAppDomainSetup. Delayed
15799         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
15800         the entry_assembly.
15801
15802         * assembly.c: base_dir is now an absolute path ending with
15803         G_DIR_SEPARATOR.
15804
15805         * icall.c: modified get_location according to the above changes.
15806
15807         * object.c: init AppDomain.SetupInformation for the default domain after
15808         we have the entry assembly.
15809
15810         * domain.c: when unloading a domain, setup = NULL.
15811
15812 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
15813
15814         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
15815
15816 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
15817
15818         * object.h, object.c: introduced mono_object_get_virtual_method ()
15819         to lookup the method invoked on an object when a callvirt is done on
15820         a method.
15821         * icall.c: make MethodInfo::Invoke() always do a virtual call.
15822
15823 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15824
15825         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15826         current domain when loaded an assembly and failed to load it.
15827
15828         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15829
15830 2002-10-31  Dick Porter  <dick@ximian.com>
15831
15832         * icall.c: 
15833         * file-io.h: 
15834         * file-io.c: Return the error status in a parameter, as the
15835         GetLastError() value has long since been blown away if we try and
15836         look it up in a subsequent internal call invocation.  Delete the
15837         GetLastError() internal call, because it's useless.
15838
15839 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15840
15841         * class.[ch]: added cast_class to fix bug 29517
15842
15843 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15844
15845         * marshal.c: create valid IL code in the filter clause:
15846         the new JIT is less forgiving:-)
15847
15848 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15849
15850         * icall.c: removed get_property internal call.
15851
15852 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15853
15854         * appdomain.h domain.c: Added an ID to appdomains.
15855         
15856         * threads.c threads.h icall.c: Implement icall
15857         Thread:GetDomainID(), and remove unused icall 
15858         CurrentThreadDomain_internal.
15859
15860 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15861
15862         * icall.c: Don't recurse through the base types in GetConstructor.
15863         Fixes bug #32063. 
15864
15865 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15866
15867         * mempool.h, mempool.c: added mono_mempool_empty() and
15868         mono_mempool_stats().
15869
15870 2002-10-23  Dick Porter  <dick@ximian.com>
15871
15872         * file-io.c: 
15873         * file-io.h: 
15874         * icall.c: Added MonoIO.GetFileType internal call
15875
15876 2002-10-17  Dick Porter  <dick@ximian.com>
15877
15878         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15879         delegate semaphore before waiting for all threads to finish,
15880         because new threads can also call async delegates.  Fixes bug
15881         32004.
15882
15883         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15884         of 3 seconds, in case another async job is queued.  (This part is
15885         needed because the bug fix reintroduced the 3s exit lag.)  This
15886         makes the mono_runtime_shutdown flag superfluous.
15887
15888 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15889
15890         * reflection.c: include ehader size in method section headers.
15891         Really check for suplicated modules entries.
15892
15893 2002-10-17  Martin Baulig  <martin@gnome.org>
15894
15895         * debug-mono-symfile.c: Added back support for locals.
15896
15897 2002-10-14  Martin Baulig  <martin@gnome.org>
15898
15899         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15900         MONO_TYPE_VOID.
15901
15902 2002-10-14  Martin Baulig  <martin@gnome.org>
15903
15904         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15905         mono_class_get() instead of looking in the class cache. 
15906
15907 2002-10-13  Martin Baulig  <martin@gnome.org>
15908
15909         * debug-mono-symfile.c: Set version number to 28, include the
15910         signature in method names.
15911
15912 2002-10-13  Martin Baulig  <martin@gnome.org>
15913
15914         * debug-mono-symfile.h: Set version number to 27.
15915
15916 2002-10-11  Martin Baulig  <martin@gnome.org>
15917
15918         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15919
15920 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15921
15922         * metadata.c, metadata.h: added helper function to allocate signatures.
15923
15924 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15925
15926         * icall.c: added internal call to get the location of machine.config.
15927
15928 2002-10-08  Martin Baulig  <martin@gnome.org>
15929
15930         * debug-mono-symfile.c: Ignore classes with a pending init for the
15931         moment.
15932
15933 2002-10-03  Dick Porter  <dick@ximian.com>
15934
15935         * threads.c: Freebsd pthread_t is a pointer
15936
15937 2002-10-03  Dick Porter  <dick@ximian.com>
15938
15939         * socket-io.c: Implemented GetHostName_internal
15940
15941 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15942
15943         * mono-config.c:
15944         (mono_config_parse_file): don't leak the text.
15945
15946 2002-10-02  Martin Baulig  <martin@gnome.org>
15947
15948         * debug-mono-symfile.c: Added support for methods.
15949
15950 2002-10-01  Martin Baulig  <martin@gnome.org>
15951
15952         * debug-mono-symfile.c: Don't emit methods and line numbers for
15953         the dynamic symbol file, just write the type table.  We can easily
15954         have an external helper program which creates a symbol file for an
15955         IL file.        
15956
15957 2002-10-01  Dick Porter  <dick@ximian.com>
15958
15959         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15960         Only add the handle to the cleanup array when we're about to
15961         launch the thread.  Bug 31425 deadlocked when the test was run on
15962         mono under w32.
15963
15964 2002-10-01  Martin Baulig  <martin@gnome.org>
15965
15966         * debug-mono-symfile.c: Added support for properties.
15967
15968 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15969
15970         * reflection.c: unaligned store fix from Mark Crichton
15971         <crichton@gimp.org>.
15972
15973 2002-09-27  Martin Baulig  <martin@gnome.org>
15974
15975         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15976         New interncall.
15977
15978 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15979
15980         * assembly.h, assembly.c: use a sane API to hook into the assembly
15981         loading process instead of a useless special-purpouse hack
15982         (ngen needs a hook, too, for example).
15983
15984 2002-09-27  Dick Porter  <dick@ximian.com>
15985
15986         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15987         io-layer can set up some process handle info.  Not needed on w32,
15988         but doesn't hurt either.
15989
15990         * process.c: Pass the program name in the second parameter to
15991         CreateProcess, so the path is searched.  Include the working
15992         directory. Implemented process name, process enumeration, and some
15993         process detail internal calls.
15994         
15995         * icall.c: Added internal calls for process lookup, and some
15996         process details
15997
15998 2002-09-26  Martin Baulig  <martin@gnome.org>
15999
16000         * assembly.c (mono_install_open_assembly_hook): New global
16001         function to install a function to be invoked each time a new
16002         assembly is loaded.
16003         (mono_assembly_open): Run this callback function if set.
16004
16005         * debug-mono-symfile.c: Put back line numbers for the dynamic
16006         symbol file and also record the .il file as source file.  This
16007         allows us to install the temporary symbol file as `file.dbg' just
16008         like a compiler-generated one.
16009
16010 2002-09-26  Nick Zigarovich <nick@chemlab.org>
16011
16012         * Corrected typo in gc.c (BOHEM vs BOEHM).
16013
16014 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16015
16016         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
16017         GetProperties. Also avoid calling g_slist_length in GetProperties and
16018         GetMethods.
16019
16020 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16021
16022         * reflection.c: avoid unaligned stores (bug spotted by
16023         Mark Crichton  <crichton@gimp.org>).
16024
16025 2002-09-25  Martin Baulig  <martin@gnome.org>
16026
16027         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
16028         instead of guint64 for addresses and added prologue/epilogue info.
16029
16030 2002-09-25  Martin Baulig  <martin@gnome.org>
16031
16032         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
16033         store line number info.  For the dynamic symbol file, we only need
16034         to provide the JIT generated dynamic line number info for the dynamic
16035         symbol file.
16036
16037 2002-09-25  Martin Baulig  <martin@gnome.org>
16038
16039         * debug-mono-symfile.h: Incremented version number.
16040
16041 2002-09-24  Martin Baulig  <martin@gnome.org>
16042
16043         * class.c (mono_debugger_class_init_func): New global function
16044         pointer variable.
16045         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
16046         call it.
16047
16048         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
16049         function.  This is called via the mono_debugger_class_init_func
16050         hook to add all types to the dynamic type table.
16051         (ves_icall_MonoDebugger_GetType): New interncall to get a class
16052         from its metadata token.
16053
16054         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
16055         New interncall for the debugger.
16056
16057 2002-09-24  Nick Drochak <ndrochak@gol.com>
16058
16059         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
16060         before using it in case it is null.
16061         
16062 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16063
16064         * metadata.c: allow custom modifiers in local var signatures
16065         (bug spotted by Zoltan Varga).
16066
16067 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
16068
16069         * class.c: deal with the <Module> class that may have a NULL vtable.
16070         Eliminate warnings.
16071
16072 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16073
16074         * image.c, image.h: more strong name helpers.
16075         * monosn.c: more work: convert pem keys to cryptoapi format.
16076
16077 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16078
16079         * string-icalls.c: speedup IndexOf.
16080
16081 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16082
16083         * icall.c: updates from Zoltan.2.Varga@nokia.com.
16084
16085 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16086
16087         * icall.c: cleanup: use mono_object_domain ().
16088
16089 2002-09-23  Martin Baulig  <martin@gnome.org>
16090
16091         * debug-mono-symfile.c: Improved type support.
16092
16093 2002-09-22  Martin Baulig  <martin@gnome.org>
16094
16095         * debug-mono-symfile.c: Added support for reference types and strings.
16096
16097 2002-09-22  Martin Baulig  <martin@gnome.org>
16098
16099         * debug-mono-symfile.c: Started to work on the type table.
16100
16101 2002-09-21  Martin Baulig  <martin@gnome.org>
16102
16103         * debug-mono-symfile.c: Largely reworked the symbol table format.
16104         The symbol table is now incrementally updated each time a new
16105         method is added.  We're now also using our own magic and version
16106         so that you don't need to recompile all your classes if the
16107         dynamic table changes.
16108         (mono_debug_update_mono_symbol_file): Removed.
16109         (mono_debug_symfile_add_method): New function to add a method.
16110
16111 2002-09-21  Martin Baulig  <martin@gnome.org>
16112
16113         * icall.c
16114         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
16115         New interncall.
16116
16117         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
16118         New interncall to get a method from its metadata token.
16119
16120 2002-09-21  Martin Baulig  <martin@gnome.org>
16121
16122         * debug-mono-symfile.c: Create type table.
16123
16124 2002-09-20  Martin Baulig  <martin@gnome.org>
16125
16126         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
16127
16128 2002-09-20  Martin Baulig  <martin@gnome.org>
16129
16130         * debug-mono-symfile.c: Provide information about params and locals.
16131
16132 2002-09-20  Martin Baulig  <martin@gnome.org>
16133
16134         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
16135         New interncall.
16136
16137         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
16138         interncall to get a method from its metadata token.
16139
16140 2002-09-20  Martin Baulig  <martin@gnome.org>
16141
16142         * debug-mono-symfile.c: Added a few checks for method->header
16143         being non-NULL.  This should never happen, but for the moment
16144         let's use a g_warning() rather than a g_assert().
16145
16146 2002-09-19  Mark Crichton  <crichton@gimp.org>
16147
16148         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
16149         even if support for it isn't present.  Added an #ifdef to fix this.
16150
16151         * socket-io.c: Added checks back for Solaris support.
16152
16153 2002-09-19  Martin Baulig  <martin@gnome.org>
16154
16155         * debug-mono-symfile.c (read_string, write_string): Reflect latest
16156         changes in the symbol file format.
16157
16158 2002-09-18  Martin Baulig  <martin@gnome.org>
16159
16160         * debug-mono-symfile.c: Set version number to 21.
16161
16162 2002-09-18  Dick Porter  <dick@ximian.com>
16163
16164         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
16165         on netbsd.  Fixes bug 30051.
16166
16167 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16168
16169         * reflection.c:
16170         (set_version_from_string): little fix.
16171
16172 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16173
16174         * monosn.c, Makefile.am: added strong name utility.
16175         * reflection.h, reflection.c: implemented delayed signing,
16176         locale, version and hash id assembly attributes.
16177
16178 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16179
16180         * loader.c, metadata.c: load param attributes in signatures.
16181
16182 2002-09-16  Martin Baulig  <martin@gnome.org>
16183
16184         * debug-mono-symfile.c: Added string table with all method names.
16185
16186 2002-09-14  Martin Baulig  <martin@gnome.org>
16187
16188         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
16189         fast method lookup.
16190
16191 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16192
16193         * reflection.c: record the public key token of referenced assemblies.
16194
16195 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16196
16197         * image.c, image.h: added functions to get the strong name and the
16198         public key of an assembly.
16199         * pedump.c: use them.
16200
16201 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
16202
16203         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
16204
16205 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
16206
16207         * marshal.c (mono_marshal_get_managed_wrapper): Added
16208         MONO_TYPE_BOOLEAN 
16209
16210 2002-09-11  Martin Baulig  <martin@gnome.org>
16211
16212         * gc.c: Call GC_unregister_disappearing_link() on all links when
16213         finalizing them, this is necessary to aviod a crash in boehm's
16214         finalize handler.
16215
16216 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16217
16218         * gc.c: handle GetTarget for finalized objects spotted and fixed by
16219         nick@chemlab.org.
16220
16221 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16222
16223         * icall.c: implemented MonoType::Module.
16224         * reflection.c, reflection.h: mono_module_get_object () from
16225         Tomi Pakarinen <tomi.pakarinen@welho.com>.
16226
16227 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
16228
16229         * icall.c: ignore overridden methods in GetMethods ().
16230         Fix for FieldInfo::SetValue().
16231         * object.c: handle float/double in runtime invoke.
16232
16233 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16234
16235         * object.c: allow a constructor to be called again on an object.
16236
16237 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16238
16239         * class.h, class.c: move field layout code to it's own function and
16240         export it. Get an interface id earlier. Move fields in MonoClass
16241         so they are more cache friendly and align the bitfields.
16242         * loader.c: temporary handle get_param_names() for a runtime method.
16243         * reflection.c, reflection.h: more code to handle runtime creation of
16244         types.
16245
16246 2002-09-09  Martin Baulig  <martin@gnome.org>
16247
16248         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
16249         signature with the pinvoke field being set for the actual call.
16250
16251 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16252
16253         * icall.c: removed some unused icalls. Start of map of glib charsets
16254         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
16255
16256 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16257
16258         * debug-helpers.c: break infinite loop (found and fixed by
16259         Holger Arnold <harnold@gmx.de>).
16260
16261 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16262
16263         * icall.c: target may be null in create_delegate.
16264
16265 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16266
16267         * marshal.c: handle a boolean return type.
16268
16269 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16270
16271         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
16272
16273 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16274
16275         * gc.c: fix weakreferences.
16276
16277 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16278
16279         * icall.c: added icall to get default codepage.
16280
16281 2002-09-03  Dick Porter  <dick@ximian.com>
16282
16283         * threads.h: 
16284         * threads.c: Use MonoThread instead of MonoObject where
16285         apropriate.
16286
16287         Store running thread objects in a hash table, so that we have all
16288         the info to hand when waiting for them to finish
16289         (means we don't need OpenThread() any more, so mingw builds should
16290         be fully functional again.)
16291
16292         * verify.c:
16293         * object.h: Added thread ID to MonoThread
16294
16295 2002-09-03  Martin Baulig  <martin@gnome.org>
16296
16297         * icall.c (System.Reflection.Assembly::get_location): New interncall.
16298
16299 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16300
16301         * icall.c: fixed leak in get_temp_path. Thanks lupus.
16302
16303 2002-09-03  Martin Baulig  <martin@gnome.org>
16304
16305         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
16306         argument to store the end address of the disassembled instruction.
16307
16308         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
16309         here from debug-symfile.h.
16310         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
16311         JIT into this struct.
16312         (MonoSymbolFile): Added `char *image_file' field.
16313         (MonoDebugGetMethodFunc): Removed.
16314         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
16315         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
16316         (mono_debug_find_method): New method.
16317
16318         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
16319         create a full symbol file.
16320         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
16321         and static symbol files.
16322         (mono_debug_find_method): The symbol file keeps an internal method hash,
16323         call this to get a MonoDebugMethodInfo from a MonoMethod.
16324
16325         * debug-symfile.[ch]: Removed.
16326
16327 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
16328
16329         * image.c (do_mono_image_open): Remove linker version check.
16330
16331 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
16332
16333         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
16334         wrappers for instance methods.
16335         
16336 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16337
16338         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
16339
16340 2002-08-28  Dick Porter  <dick@ximian.com>
16341
16342         * Makefile.am: Export HOST_CC for w32 builds
16343
16344 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16345
16346         * file-io.c process.c: MonoString are null terminated, no
16347         need for mono_string_to_utf16() anymore.
16348
16349 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16350
16351         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
16352
16353 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
16354
16355         * icall.c, reflection.h: speedup System.MonoType.
16356
16357 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16358
16359         * reflection.c: allow null as the value of a string argument in
16360         custom attributes constructors.
16361
16362 2002-08-27  Martin Baulig  <martin@gnome.org>
16363
16364         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
16365         `trampoline_address' field.
16366
16367 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
16368
16369         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
16370         check (fixes bug #29486) 
16371
16372 2002-08-27  Martin Baulig  <martin@gnome.org>
16373
16374         * debug-mono-symfile.c: Changed the file format in a way that allows us
16375         open it read-only and to use a specially malloced area for all the
16376         dynamic data.  We can now also generate a symbol file on-the-fly if we're
16377         debugging IL code and there is no MCS generated symbol file for it.
16378
16379 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16380
16381         * object.c: added a define for a good string and array
16382         creation speedup (not enabled by default because we need to deal with
16383         the synch stuff).
16384
16385 2002-08-26  Martin Baulig  <martin@gnome.org>
16386
16387         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
16388         function to create a dynamic symbol file.  This is used by the
16389         debugger to create a symbol file for IL code on-the-fly.
16390
16391 2002-08-26  Martin Baulig  <martin@gnome.org>
16392
16393         * loader.c (mono_lookup_pinvoke_call): Include the error message
16394         from g_module_error() in the error message.
16395
16396 2002-08-24  Martin Baulig  <martin@gnome.org>
16397
16398         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
16399         function to update the symbol file.  The symbol file is mmap()ed
16400         writable, but private.  This allows us to install the symbol file
16401         together with the assembly.
16402
16403 2002-08-24  Martin Baulig  <martin@gnome.org>
16404
16405         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
16406         but they can read the new symbol file format which mcs is now creating.
16407
16408         * debug-symfile.c (mono_debug_find_source_location): Moved to
16409         debug-mono-symfile.c; this is now operating on the new symbol file.
16410
16411 2002-08-23  Martin Baulig  <martin@gnome.org>
16412
16413         * debug-helpers.c (mono_method_desc_from_method): New function to get
16414         a MonoMethodDesc from a MonoMethod.
16415
16416 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16417
16418         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
16419         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
16420
16421 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16422
16423         * string-icalls.[ch]: make helper methods static.
16424
16425 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16426
16427         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
16428         types to it and to SetValueInternal.
16429
16430         * object.c: Moved handle_enum label to its proper place. This was the
16431         f... bug! ;-)
16432
16433         This time i compiled mcs and gtk-sharp and they both work.
16434
16435 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16436
16437         * icall.c: reverted partially my previous patch until 
16438         object.c:set_value handles enums correcly.
16439
16440 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16441
16442         * icall.c:
16443         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
16444         (ves_icall_System_Environment_get_MachineName): removed warning when
16445         compiling under cygwin.
16446
16447 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16448
16449         * object.c: fixed field_get_value() for reference types.
16450
16451 2002-08-22  Dick Porter  <dick@ximian.com>
16452
16453         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
16454         Don't free a buffer while it's still needed.  Patch from Jonathan
16455         Liger <Jonathan.liger@wanadoo.fr>
16456
16457 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
16458
16459         * icall.c (ves_icall_System_Environment_get_Platform): Add new
16460         internal call.
16461
16462 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
16463
16464         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
16465         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
16466
16467         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
16468         we call unmanaged code which throws exceptions.
16469
16470 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16471
16472         * appdomain.h: added per-domain entry_assembly.
16473         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
16474         arguments.
16475         * icall.c: Assembly::GetEntryAssembly icall.
16476         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
16477         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
16478
16479 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16480
16481         * appdomain.h, gc.c: added mono_domain_finalize ().
16482
16483 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16484
16485         * object.c:
16486         (mono_print_unhandled_exception): changed g_warning by g_printerr
16487         because g_log has a 1024 characters limit (yeah, i got a big stack
16488         trace). Don't print exception name, that should be in ToString 
16489         returned string.
16490
16491 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16492
16493         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
16494         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
16495
16496 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16497
16498         * object.c:
16499         (mono_print_unhandled_exception): after previous commit, i realized
16500         that MS calls ToString on the exception. I changed this function to
16501         do that. This way we get stack_trace for free.
16502
16503 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16504
16505         * object.c:
16506         (mono_print_unhandled_exception): invoke Message property instead of
16507         getting 'message' field from Exception. Don't allocate memory for
16508         'trace' and 'message' if not needed.
16509
16510 2002-08-18  Dick Porter  <dick@ximian.com>
16511
16512         * unicode.c: Fix asserts to match Encoder.cs checks
16513
16514 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16515
16516         * marshal.c: fix unaligned store issue and a few wrong
16517         opcode argument types.
16518
16519 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16520
16521         * icall.c: added GetUninitializedObjectInternal internal call.
16522
16523 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
16524
16525         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
16526         to the right domain.
16527
16528 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
16529
16530         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
16531
16532         * class.c (class_compute_field_layout): set blittable to false for Strings
16533
16534         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
16535
16536 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16537
16538         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
16539         first chunk of code to create types at runtime. Code to
16540         handle ReflectedType/DeclaringType. Make reflection handles
16541         domain specific.
16542
16543 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16544
16545         * class.c: set correct name in arrays.
16546
16547 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
16548
16549         * appdomain.c (mono_domain_transfer_object): make it work with
16550         valuetypes. bug fixes.
16551
16552 2002-08-12  Dick Porter  <dick@ximian.com>
16553
16554         * object.h: Rename some parameters to avoid c++ keywords (Patch
16555         from Joseph Wenninger <kde@jowenn.at>)
16556
16557 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
16558
16559         * icall.c: added icall to implement Assembly.GetFile*.
16560
16561 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16562
16563         * reflection.h, reflection.c: code to embed managed resources.
16564
16565 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16566
16567         * class.c: move all the type size stuff into
16568         class_compute_field_layout().
16569
16570 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16571
16572         * class.c: ensure enums have always the correct instance size.
16573         * unicode.c: remove wrong assert.
16574
16575 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16576
16577         * assembly.c: fix mem corruption issue.
16578         * image.h, image.c: added mono_image_get_resource () to access
16579         managed resources.
16580         * icall.c: implemented Assembly.EntryPoint property and some
16581         Managed Resources related internalcalls.
16582
16583
16584 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16585
16586         * image.c, image.h: impemented mono_image_get_entry_point ().
16587         * appdomain.c: use mono_image_get_entry_point.
16588
16589 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16590
16591         * reflection.c: support the object type argument when loading
16592         custom attributes.
16593
16594 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
16595
16596         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
16597         String as return type.
16598
16599 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
16600
16601         * reflection.c: fix encoding of named args for custom attrs to match
16602         the ms implementation. Read them back when instantiating custom
16603         attributes.
16604
16605 2002-08-02  Radek Doulik  <rodo@ximian.com>
16606
16607         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
16608         by Dietmar as quick fix
16609         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
16610         16 as stack size, used on more places as quick fix before Dietmar
16611         will fix it properly
16612
16613 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16614
16615         * object.h, object.c: added accessors for fields and properties.
16616
16617 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16618
16619         * class.c, class.h: made mono_class_get_field_from_name ()
16620         loop on parent types.
16621         Added mono_class_get_property_from_name ().
16622
16623 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16624
16625         * class.c, class.h: move the code to setup the type vtable in its own
16626         function so that it can be reused also for types created at runtime.
16627         Eliminate the "class" identifier from the header file.
16628         * reflection.c: setup the vtable for enums so that we can create
16629         objects for use in SetConstant ().
16630
16631 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
16632
16633         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
16634         instead of the delegate itself as this pointer (bug #28383)
16635
16636 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
16637
16638         * marshal.c (mono_marshal_get_managed_wrapper): added return type
16639         conversions.
16640
16641 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16642
16643         * loader.c: don't set the pinvoke bit on icalls.
16644
16645 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
16646
16647         * debug-helpers.c (mono_method_full_name): only print a number to
16648         indicate wrapper type (so that the output is more readable in traces).
16649
16650 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
16651
16652         * class.c (mono_class_init): include method override patch from Paolo
16653
16654 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
16655
16656         * icall.c: fixed GetTypeCode().
16657
16658 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
16659
16660         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
16661         use real delegate invoke function to make it work with multicast
16662         delegates (fix bug# 28291).
16663
16664 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16665
16666         * object.c: load constant strings.
16667
16668 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16669
16670         * reflection.c: no magic numbers.
16671         * tabledefs.h: security action enum.
16672
16673 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16674
16675         * assembly.c: fix possible memory corruption.
16676
16677 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16678
16679         * reflection.h, reflection.c: added support for linking resources.
16680         * verify.c: check we have an updated corlib.
16681
16682 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
16683
16684         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
16685         string arrays.
16686         (mono_marshal_string_array): null terminate unmanaged string arrays.
16687         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
16688
16689 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16690
16691         * icall.c: Type.GetType () can now return also types from the
16692         calling assembly.
16693
16694 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16695
16696         * loader.h, loader.c: stack walking support.
16697         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
16698         GetCallingAssembly.
16699
16700 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
16701
16702         * marshal.c: added optimisations for blittable types 
16703
16704         * class.c (mono_array_class_get): do not set blittable attribute on arrays
16705         (mono_class_setup_mono_type): set blittable attribute for single
16706         and double.
16707
16708         * marshal.c (mono_string_utf8_to_builder): impl.
16709         (mono_string_builder_to_utf8): impl.
16710         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
16711
16712 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
16713
16714         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
16715         (mono_marshal_get_managed_wrapper): impl. byref types
16716
16717 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16718
16719         * icall.c:
16720         (search_method): don't display debug message. 
16721
16722 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16723
16724         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
16725
16726 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16727
16728         * appdomain.c: set the missing filename when throwing exception.
16729
16730 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16731
16732         * metadata.c (mono_type_size): code cleanup
16733         (mono_type_stack_size): removed some test code
16734
16735 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
16736
16737         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
16738         mono_get_exception_file_not_found now.
16739
16740         * exception.c (mono_exception_from_name_two_strings): New version
16741         that will call a constructor with two string arguments. 
16742         (mono_get_exception_file_not_found): New helper routine, used to
16743         report file-not-found errors.
16744
16745 2002-07-20  Dick Porter  <dick@ximian.com>
16746
16747         * process.h:
16748         * process.c: Pass file handles to CreateProcess
16749         
16750         * icall.c:
16751         * file-io.h:
16752         * file-io.c: Implemented CreatePipe
16753
16754 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16755
16756         * metadata.c (mono_get_param_info): set alignment for value types
16757
16758 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16759
16760         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
16761         Constify mono_domain_assembly_open().
16762         * loader.c: handle null namespace in icalls.
16763
16764 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16765
16766         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
16767         (emit_str_to_ptr_conv): marshal object as structs
16768
16769         * metadata.c (mono_type_to_unmanaged): marshal object as structs
16770
16771         * marshal.c (mono_marshal_get_runtime_invoke): support value types
16772
16773 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
16774
16775         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
16776         (mono_marshal_get_native_wrapper): we an now return value types
16777
16778 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16779
16780         * verify.c: more checks implemented.
16781
16782 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
16783
16784         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
16785         (fix bug #27695)
16786         (mono_marshal_get_native_wrapper): allow byref arguments
16787         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
16788         impl. PtrToStringXXX methods
16789         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
16790         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
16791         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
16792         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
16793         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
16794
16795 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16796
16797         * reflection.c: fix buglet in parsing an assembly name.
16798
16799 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16800
16801         * marshal.c (emit_ptr_to_str_conv): first impl.
16802
16803 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16804
16805         * object.c, class.h: cache the vtable in the class as suggested by
16806         vargaz@freemail.hu (Zoltan Varga).
16807
16808 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16809
16810         * class.h, loader.c: added mono_field_from_token().
16811         * verify.c: first cut of type checking code.
16812
16813 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16814
16815         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
16816
16817 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
16818
16819         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
16820         (fix bug #27782)
16821         (mono_marshal_get_remoting_invoke): impl.
16822         (mono_delegate_begin_invoke): impl.
16823         (mono_mb_emit_save_args): impl.
16824         (mono_delegate_end_invoke): impl.
16825         (mono_marshal_get_delegate_begin_invoke):
16826         (mono_marshal_get_delegate_end_invoke):
16827         (mono_marshal_get_delegate_invoke): generate a special name for
16828         those methods (including the signature) and associate them whith
16829         the delegate class. 
16830
16831 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16832
16833         * reflection.[ch]: 
16834         (mono_reflection_type_from_name): now it has a MonoImage parameter
16835         which is used as the default image to search the type in. If the image
16836         is NULL or getting the type from it fails, it defaults to corlib.
16837
16838         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16839         new parameter.
16840
16841 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16842
16843         * reflection.c: update the parameter table index.
16844
16845 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16846
16847         * domain.c: don't include the mark byte in the string hash.
16848
16849 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16850
16851         * icall.cs: icall for Type.GetTypeCode ().
16852         * verify: a couple of fixes and disabled local initialization checks.
16853
16854 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16855
16856         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16857
16858         * debug-helpers.c (mono_method_full_name): print the type of the
16859         runtime wrapper
16860
16861         * metadata.c (mono_signature_hash): a hash function for signatures
16862         (mono_signature_hash): better hash algorithm
16863
16864         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16865
16866         * debug-helpers.c (mono_method_full_name): this can now generate
16867         method names with signatures
16868
16869         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16870         method dont have this pointers.
16871
16872 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16873
16874         * reflection.c: fixup typebuilder tokens.
16875         * image.c: fix buglet.
16876         * marshal.h: remove whitespace.
16877         * metadata.h, metadata.c: reinstate code that was removed.
16878         * verify.c: handle catch directives and fix another couple of bugs.
16879
16880 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16881
16882         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16883         (mono_marshal_get_native_wrapper): make it comp. with the old code
16884         (mono_marshal_get_native_wrapper): support boolean
16885         (mono_marshal_get_managed_wrapper): support more types
16886
16887 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16888
16889         * class.c (class_compute_field_layout): compute class->blittable attribute.
16890
16891 2002-07-09  Dick Porter  <dick@ximian.com>
16892
16893         * threads.c: Make the thread cleaning up cope with threads that
16894         call ExitThread()
16895
16896 2002-07-08  Radek Doulik  <rodo@ximian.com>
16897
16898         * reflection.c (method_encode_code): use non-translated values to
16899         compute finally_start, this fixes exception handling on ppc, yay!
16900
16901         * decimal.h (struct signscale): fix endianess
16902
16903 2002-07-07  Radek Doulik  <rodo@ximian.com>
16904
16905         * reflection.c: swap box_val and not val
16906
16907 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16908
16909         * reflection.c, reflection.h: handle full assembly info in type name.
16910         Handle Type arguments when loading custom attributes.
16911         * icall.c: updated to use new mono_reflection_type_from_name () method.
16912
16913 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16914
16915         * loader.c:
16916         (method_from_memberref): also print assembly name when method not found.
16917
16918 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16919
16920         * icall.c:
16921         (ves_icall_TypeGetProperties): fixed bug #27473. 
16922
16923 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16924
16925         * reflection.c: display image name and token when cannot find the
16926         .ctor for an attribute.
16927
16928 2002-07-05  Martin Baulig  <martin@gnome.org>
16929
16930         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16931
16932 2002-07-04  Dick Porter  <dick@ximian.com>
16933
16934         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16935         compile on mingw.  This will cause mingw builds to not wait for
16936         subthreads to terminate after the main thread does.  I've lodged a
16937         bug with the mingw developers for them to wrap OpenThread().
16938
16939 2002-07-03  Dick Porter  <dick@ximian.com>
16940
16941         * threads.c: Store thread IDs instead of handles, because
16942         GetCurrentThread() returns a pseudohandle and therefore stores
16943         useless values.  mono_thread_cleanup() continues checking the
16944         array of threads until it is empty, to cope with subthreads
16945         spawning new threads after the main thread has finished.
16946
16947         * profiler.h:
16948         * profiler.c:
16949         * profiler-private.h: Pass the thread ID to thread profiler
16950         functions, instead of a handle
16951
16952 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16953
16954         * verify.c: fixes to make it more usable.
16955         * pedump.c: added --verify code to verify IL code in an assembly.
16956
16957 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16958
16959         * reflection.c: turn errors into warnings to allow compiling corlib.
16960
16961 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16962
16963         * reflection.c: add special cases to compile corlib.
16964
16965 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16966
16967         * reflection.c: handle properties with only a set method.
16968
16969 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16970
16971         * opcodes.h: add enum with opcodes in opval order.
16972
16973 2002-07-01  Dick Porter  <dick@ximian.com>
16974         
16975         * object.h:
16976         * object.c (mono_runtime_run_main): Removed unneeded argument
16977
16978 2002-06-28  Martin Baulig  <martin@gnome.org>
16979
16980         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16981
16982 2002-06-27  Dick Porter  <dick@ximian.com>
16983
16984         * threads.c: Store the handle in both the parent thread and in the
16985         subthread, to minimise the time between starting a new thread and
16986         storing its ID.
16987
16988 2002-06-26  Dick Porter  <dick@ximian.com>
16989
16990         * appdomain.c (mono_runtime_cleanup): Close the socket library
16991         after all the threads have finished, not before
16992
16993 2002-06-26  Martin Baulig  <martin@gnome.org>
16994
16995         * debug-symfile.c (mono_debug_find_source_location): Added
16996         `guint32 *line_number' argument.  If it's not NULL, store the line number
16997         there and return the file name without the line number.
16998
16999 2002-06-25  Dick Porter  <dick@ximian.com>
17000
17001         * icall.c:
17002         * process.h:
17003         * process.c: Process forking and other support functions
17004
17005 2002-06-25  Dick Porter  <dick@ximian.com>
17006
17007         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
17008         things dont happen when the image is closed.
17009         (mono_image_lookup_resource): Walk the resource section looking
17010         for a particular entry
17011
17012         * cil-coff.h: PE resource section decoding
17013
17014 2002-06-25  Dick Porter  <dick@ximian.com>
17015         
17016         * assembly.h:
17017         * assembly.c: 
17018         (mono_assembly_foreach): Accessor functions to walk the list of
17019         loaded assemblies
17020         (mono_assembly_set_main):
17021         (mono_assembly_get_main): Process methods need to know which
17022         assembly is the "main" one
17023
17024         * object.c (mono_runtime_run_main): Record the main assembly
17025
17026         * debug-helpers.c: Fix typo
17027
17028 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
17029
17030         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
17031         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
17032
17033 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17034
17035         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
17036
17037 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
17038
17039         * image.c (do_mono_image_open): Initialize reference count,
17040         otherwise we leak the MonoImage.
17041
17042 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17043
17044         * reflection.c: small tweak to handle self-hosting.
17045
17046 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
17047
17048         * reflection.c: fix type name parse code.
17049
17050 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17051
17052         * reflection.c: break out of the loop.
17053         * image.c: special case corlib.
17054
17055 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17056
17057         * reflection.c: add all the custom attrs at the end to ensure the
17058         ctors have been properly initialized when the attributes are defined
17059         in the current assembly.
17060
17061 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17062
17063         * reflection.c: handle correctly multiple-nested types.
17064
17065 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
17066
17067         * row-indexes.h: fix typos.
17068         * reflection.c: adjust for typos and fix method_def_or_ref
17069         encoding in MethodImpl table.
17070
17071 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17072
17073         * reflection.c: fix entry point patching (thanks Serge!).
17074
17075 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
17076
17077         * verify.c: add check for System.Exception
17078
17079 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
17080
17081         * image.c, class.c: minifix for code just c&p'ed.
17082         * reflection.c: warning fix.
17083         * object.h, loader.h, domain.c: load also StringBuilder.
17084
17085 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
17086
17087         * marshal.h, marshal.c: some support code to handle complex marshaling.
17088
17089 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17090
17091         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
17092         Better signatures with vtable error dump.
17093
17094 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
17095
17096         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
17097
17098 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
17099
17100         * icall.c (ves_icall_Type_GetField): impl.
17101
17102 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17103
17104         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
17105         to retrieve a marshal description blob for a field or param.
17106
17107 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
17108
17109         * reflection.h, reflection.c: change order of nested type emission
17110         to avoid table corruption. The NestedTypes table is sorted.
17111         * icall.c: change order of GetConstructor results to workaround mcs bug.
17112
17113 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17114
17115         * reflection.h, reflection.c: handle field and param marshal
17116         information.
17117
17118 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17119
17120         * icall.c, marshal.c marshal.h: more Marshal class implementation.
17121
17122 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17123
17124         * reflection.c: fix call convention.
17125
17126 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17127
17128         * reflection.h, reflection.c: mono_image_get_memberref_token()
17129         takes a type instead of a class, now. Added
17130         mono_image_get_array_token() to create tokens for the special
17131         multi-dim array methods.
17132
17133 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17134
17135         * assembly.c: handle modules (no assembly table). Split
17136         loading references in its own function.
17137         * class.c: handle moduleref resolution scope.
17138         * image.c, image.h: cache module name in image.
17139
17140 2002-06-07  Martin Baulig  <martin@gnome.org>
17141
17142         * reflection.c (mono_image_get_type_info): Only add a class layout entry
17143         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
17144
17145 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17146
17147         * icall.c: more signature fixes that used uint instead of int.
17148
17149 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17150
17151         * reflection.c: fixed signature of field refs.
17152
17153 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17154
17155         * class.c, reflection.c: handle typerefs of nested types
17156         (both on read and when writing files).
17157
17158 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
17159
17160         * icall.c: fix method signatures that tried to workaround the previous
17161         typo, d'oh!
17162
17163 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17164
17165         * debug-helpers.c: fix typo.
17166
17167 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17168
17169         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
17170         rewrote the PE/COFF writing code (our programs are understood by the
17171         ms runtime, now).
17172
17173 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
17174
17175         * gc.c, gc.h, icall.c: weakreference support.
17176
17177 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
17178
17179         * Makefile.am, mono-config.c: use $(sysconfdir).
17180
17181 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17182
17183         * icall.c: changed default precision of Double.ToString() to 15.
17184         Fixed memory leak. Unified with Single.ToString.
17185
17186 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
17187
17188         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
17189
17190 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
17191
17192         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
17193         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
17194         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
17195         and myself.
17196
17197 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17198
17199         * debug-symfile.c, sysmath.c: yet more compilation fixes.
17200
17201 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17202
17203         * reflection.c, socket-io.c: more compilation fixes.
17204
17205 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17206
17207         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
17208         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
17209         unicode.c: warning and compiler compatibility fixes.
17210
17211 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17212
17213         * class.h, metadata.c: fixed warnings/compilation errors.
17214
17215 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
17216
17217         * Makefile.am, mono-config.c, mono-config.h: configuration file
17218         support routines.
17219         * loader.c, loader.h: make Dll mapping configurable at runtime in the
17220         config file. Export methods to insert and lookup mappings.
17221
17222 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
17223
17224         * reflection.c: handle types and boxed objects in custom attr
17225         constructors.
17226
17227 2002-05-30  Martin Baulig  <martin@gnome.org>
17228
17229         * debug-symfile.c
17230         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
17231
17232 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
17233
17234         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
17235         to lookup the implmap row for a P/Invoke method.
17236         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
17237         P/Invoke method from the runtime on an as needed basis.
17238
17239 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
17240
17241         * metadata.c (mono_metadata_parse_signature): impl.
17242
17243 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17244
17245         * class.c: handle .pack directive.
17246
17247 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
17248
17249         * object.c: initialize static fields with RVA data.
17250
17251 2002-05-25  Martin Baulig  <martin@gnome.org>
17252
17253         * debug-symfile.c
17254         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
17255
17256 2002-05-24  Martin Baulig  <martin@gnome.org>
17257
17258         * debug-symfile.c
17259         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
17260         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
17261         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
17262
17263 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17264
17265         * object.c: special case string ctros in invoke.
17266         * gc.c: silly whitespace changes.
17267
17268 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
17269
17270         * threadpool.[ch]: impl. a threadpool that can
17271         be used by mint and mono.
17272
17273 2002-05-22  Martin Baulig  <martin@gnome.org>
17274
17275         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
17276         The first argument is now a `MonoReflectionModuleBuilder *', the return
17277         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
17278         `methods' field to get the method builder.  The `token' argument is the
17279         unfixed token.
17280
17281         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
17282         invalid characters instead of g_assert_not_reached()ing.  This seems
17283         to be the behaviour of mscorlib.
17284
17285 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
17286
17287         * object.c (mono_runtime_invoke_array): applied patch from Rachel
17288         Hestilow to fix bug #25104
17289
17290 2002-05-21  Martin Baulig  <martin@gnome.org>
17291
17292         * debug-symfile.c (mono_debug_find_source_location): New function.
17293         Looks up an IL offset in the line number table and returns the source
17294         location as a string.
17295
17296 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17297
17298         * icall.c:
17299         (mono_double_ToStringImpl): changed %f by %g until we have something
17300         better.
17301
17302 2002-05-21  Nick Drochak  <ndrochak@gol.com>
17303
17304         * icall.c : Use different name for Math.Pow's icall.  Needed to check
17305         parameters first in C#.
17306
17307 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17308
17309         * icall.c, reflection.h: added icall to get info about an event.
17310
17311 2002-05-20  Radek Doulik  <rodo@ximian.com>
17312
17313         * object.c (mono_value_box): don't use memcpy for boxing on BIG
17314         endian
17315         (mono_value_box): don't use memcpy for small sizes on
17316         architectures with unaligned access
17317
17318 2002-05-20  Martin Baulig  <martin@gnome.org>
17319
17320         * reflection.c (mono_reflection_setup_internal_class): Don't crash
17321         if `tb->parent == NULL'.
17322         (mono_reflection_create_internal_class): New function.  This is
17323         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
17324         for enum types.
17325
17326         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
17327         New interncall.
17328
17329 2002-05-19  Martin Baulig  <martin@gnome.org>
17330
17331         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
17332         argument to get the length, don't default to the array length.
17333
17334 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
17335
17336         * assembly.c (mono_assembly_setrootdir): New function used to
17337         override the MONO_ASSEMBLIES directory.
17338
17339 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17340
17341         * icall.c: ValueType_GetHashCode() initialize local var.
17342
17343 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17344
17345         * reflection.c: sort custom attributes table.
17346
17347 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17348
17349         * reflection.c: support named args in custom attributes (write support).
17350
17351 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17352
17353         * reflection.c: fix finally position calculation.
17354
17355 2002-05-15  Radek Doulik  <rodo@ximian.com>
17356
17357         * reflection.c: fixed endianess at many places
17358
17359         * icall.c (ves_icall_InitializeArray): comment out debug msg
17360
17361 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
17362
17363         * object.c (mono_unhandled_exception): new function to handle
17364         unhandled exceptions.
17365         (mono_unhandled_exception): call the UnhandledException event.
17366         (mono_runtime_delegate_invoke): impl.
17367
17368 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
17369
17370         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
17371         returns the RVA, not the direct pointer to the data. Handle the case
17372         when the class size is fixed.
17373
17374 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17375
17376         * reflection.c: fix some endianess issues.
17377
17378 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
17379
17380         * object.c (mono_runtime_invoke): is now able to catch exceptions.
17381
17382         * threads.c (mono_thread_init): added a callback which is invoked
17383         at thread start.
17384
17385 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17386         
17387         * icall.c: make GetHashCode return non-negative values.
17388
17389 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17390
17391         * object.c, icall.c, gc.c: revert to address-based hashcode.
17392
17393 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
17394
17395         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
17396
17397 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17398
17399         * icall.c, class.c: special case <Module>.
17400
17401 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
17402
17403         * icall.c: fix bug in GetNow().
17404
17405 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
17406
17407         * object.c (mono_runtime_class_init): make sure that we call all
17408         static class constructors.
17409
17410 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17411
17412         * reflection.c: sort methodsemantics table.
17413
17414 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17415
17416         * reflection.h, reflection.c: honour init locals setting.
17417
17418 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
17419
17420         * icall.c: copied Double ToStringImpl for Single ToStringImpl
17421
17422 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17423
17424         * reflection.c: support ContructorBuilders in attribute blob creation.
17425
17426 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17427
17428         * reflection.c: some changes to build a binary that can be run
17429         directly in windows.
17430
17431 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17432
17433         * loader.c: print a big message when an icall can't be found.
17434
17435 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17436
17437         * string-icalls.c: fix bug 24248.
17438
17439 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17440
17441         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
17442         icall.c, reflection.h: separate assembly loading by pathname and by
17443         assembly name. Use the MONO_PATH env var to search for assemblies.
17444
17445 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17446
17447         * assembly.c, image.h: add some support for assemblies
17448         with multiple modules.
17449         * class.c, class.h: export mono_class_from_typeref().
17450         * loader.c: remove duplicated code and use mono_class_from_typeref(),
17451         instead.
17452
17453 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17454
17455         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
17456         documentation says (the ECMA one is correct).
17457
17458 2002-05-02  Dick Porter  <dick@ximian.com>
17459
17460         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
17461         Don't name the synchronisation mutex.
17462
17463 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
17464
17465         * rand.c
17466         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
17467         Make the prototypes match.
17468         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
17469         Same.
17470
17471         * icall.c
17472         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
17473         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
17474         all systems have tm.tm_zone, so use strftime() with %Z to print
17475         the timezone abreviation into a temp string.
17476
17477         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
17478         rather than mono_array_addr() on a MonoString on Big Endian
17479         machines.
17480
17481 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
17482
17483         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
17484         fix bug 24041
17485
17486 2002-04-30  Dick Porter  <dick@ximian.com>
17487
17488         * socket-io.c: Cope with SOCKET being an integer rather than a
17489         pointer now.
17490
17491         * threads.c: Added Thread_free_internal, to deal with thread
17492         handle cleanup.  Moved calls to handle_store() and handle_remove()
17493         to start_wrapper(), so each can only be called once.  Allocate
17494         synchronisation blocks with GC_malloc(), and use GC finalisation
17495         to close the handles.
17496
17497         * icall.c: added System.Threading.Thread::Thread_free_internal
17498
17499 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17500
17501         * icall.c: support Environment.Exit, CommandLineArgs().
17502
17503 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17504
17505         * object.c, object.h: added mono_runtime_run_main () and
17506         mono_runtime_get_main_args () for use in System.Environment.
17507
17508 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17509
17510         * gc.c: fix thinko, enable actual finalization since the jit is now
17511         fixed.
17512
17513 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17514
17515         * gc.c, object.c: take into account that an object may be offset wrt the address
17516         returned by GC_malloc().
17517
17518 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17519
17520         * image.c: handle files without entries in the assembly table (modules).
17521
17522 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
17523
17524         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
17525         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
17526         allowed to be null when it's System.Object class setup.
17527
17528 2002-04-27  Martin Baulig  <martin@gnome.org>
17529
17530         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
17531         if `tb->parent == NULL' rather than crashing.
17532
17533 2002-04-28  Nick Drochak  <ndrochak@gol.com>
17534
17535         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
17536         calling acos() where asin() should have been called.
17537
17538 2002-04-26  Martin Baulig  <martin@gnome.org>
17539
17540         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
17541         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
17542         there's a subdirectory called `System', but we don't want to read that
17543         subdirectory as an assembly.
17544
17545 2002-04-25  Martin Baulig  <martin@gnome.org>
17546
17547         * debug-symfile.c: Reflect latest MonoString changes.
17548
17549 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17550
17551         * rand.c, rand.h: instance method icalls need to have an explicit
17552         this pointer as first argument in the C implementation.
17553
17554 2002-04-25  Nick Drochak <ndrochak@gol.com>
17555
17556         * icall.c: Fix typo in map for GetNonZeroBytes
17557
17558 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17559
17560         * string-icalls.c : String does now passes unit tests without any 
17561         errors, the following changes has been made:
17562         
17563         Implemented replace methods.
17564         Renaming of methods to (try) follow the standard.
17565         Fixed compare ordinal
17566         Made all memory allocated directly to function instead of via icall function.
17567         Small performance fix in is_in_array function
17568                         
17569  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
17570
17571         c (mono_string_Internal_ctor_charp_int_int):
17572         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
17573         sindex < 0, throw ArgumentOutOfRangeException instead of
17574         ArgumentNullException.
17575
17576         Added new check for length == 0, however
17577         I need to make it return String.Empty from the C code.
17578         
17579         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
17580         that calculate the length for us here.
17581         
17582         (mono_string_Internal_ctor_sbytep_int_int): Replaced
17583         mono_string_new_utf16 with mono_string_new, since value is utf8.
17584
17585 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17586
17587         * object.c: register the object for finalization if needed.
17588         Allocate one more char in the string for the terminating 0 char.
17589
17590 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17591
17592         * class.c, class.h, image.c: check if a type implemenst a destructor.
17593         Use the proper key for array class lookups.
17594         * icall.c: register the icalls in the System.GC class.
17595         * gc.c, gc.h: GC-related functions and icalls.
17596
17597 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17598
17599         * icall.c:
17600         * socket-io.c:
17601         * unicode.c: free some strings gotten from mono_string_to_utf8 and
17602         changed a couple of free () by g_free ().
17603
17604         * decimal.c: one-liner in the comments for decimal2string ().
17605
17606 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17607
17608         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
17609
17610 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17611
17612         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
17613         * object.c (mono_runtime_invoke_array) : handle null in params
17614
17615 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17616
17617         * string-icalls.c: fixed bug in split (one off bug)
17618
17619 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17620
17621         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
17622         * icalls.c: added String::Equals as internal method
17623
17624 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17625
17626         * threads.c: fixed bug in the double interlocked functions
17627
17628 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
17629
17630         * threads.c: implemented all of the new interlocked icalls.
17631         * string-icalls.c: fix a bug in insert.
17632         * icalls.c: added the icalls for interlocked, removed old string functions.
17633         
17634 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17635
17636         * loader.c: fix off-by-one error when reading argument names.
17637
17638 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17639
17640         * profiler.c: win32 counter implementation (untested).
17641         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
17642         (the latter needs testing and more complete impl. from win32 folks).
17643
17644 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
17645
17646         * object.c: mono_array_new_full workaround mono_array_class_get
17647         problem.
17648
17649 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17650
17651         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
17652         * object.h (mono_string_chars): Changed casting type.
17653
17654 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17655
17656         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
17657                            method signatures to use gunichar2 instead of gint16.
17658
17659 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
17660
17661         * object.h, object.c: domain-specific versions of mono_object_new and
17662         mono_array_new.
17663
17664 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
17665
17666         * object.c: changed String layout
17667
17668         * string-icalls.c (mono_string_Internal_ctor_chara): added
17669         internal string constructors.
17670
17671 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
17672
17673         * threads.c: pass 'this' to the thread start routine.
17674
17675 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17676
17677         * string-icalls.c: fix IndexOf and LastIndexOf. Now
17678         InternalCompareStr don't call twice mono_string_cmp_char for the last
17679         character. Improved performance in mono_string_cmp_char.
17680
17681 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17682
17683         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
17684         code into its own library: libmonoruntime.
17685
17686 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
17687
17688         * object.h, object.c: changed array format so that szarrays do not
17689         require a bounds structure.
17690         * icall.c, appdomain.c: support for new szarray format.
17691
17692 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17693
17694         * metadata.c: compare also the retuns type when comparing signatures:
17695         we didn't do this as an optimization since really overloaded methods
17696         must differ also in the arguments, but this doesn't work with
17697         low-level IL code (or when using explicit conversion operators: see
17698         bug#23498 for an example).
17699
17700 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17701
17702         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
17703
17704 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17705
17706         * icall.c: make MonoType::GetElementType its own icall.
17707
17708 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17709
17710         * icall.c: remove MonoMethod_get_Name().
17711         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
17712         object.
17713
17714 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17715
17716         * string-icalls.c: optimized a few methods.
17717
17718 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17719
17720         * icall.c: added all new string internal calls
17721         * string-icalls.c: added, new string internal call implementation.
17722         * object.c: added mono_string_new_size for allocating a string a size
17723
17724 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
17725
17726         * object.c (mono_object_isinst): use the same code as in the
17727         optimized x86 version.
17728
17729 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17730
17731         * profiler.c: TSC-based timer code (faster and more accurate).
17732         Not hooked up in configure, yet (set USE_X86TSC to 1).
17733
17734 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
17735
17736         * profiler.c, profiler.h: track time spent compiling methods.
17737         * threads.c: track thread creation/destruction.
17738
17739 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
17740
17741         * profiler.c, profiler.h, profiler-private.h: profiling interface
17742         and sample implementation. Moved here so that it can be used also by
17743         the jit.
17744
17745 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
17746
17747         * reflection.c, reflection.h: keep types and other handles separate in
17748         the hash tables for referred tokens. Add guid for modules.
17749
17750 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17751
17752         * assembly.c: fix bugs found with valgrind.
17753         * metadata.h, metadata.c: added mono_metadata_guid_heap().
17754
17755 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
17756
17757         * threads: added icall support for getting current domain for
17758                    the thread.
17759  
17760 2002-04-13  Martin Baulig  <martin@gnome.org>
17761
17762         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
17763         (MonoDebugVarInfo): Added `index' field for register based addresses.
17764         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
17765         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
17766         `MonoDebugVarInfo *params' and `guint32 this_offset' with
17767         `MonoDebugVarInfo *this_var'.
17768
17769         * debug-symfile.c (relocate_variable): New static function to write
17770         a location description for a local variable or method parameter.
17771
17772 2002-04-12  Martin Baulig  <martin@gnome.org>
17773
17774         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
17775         stack offset and begin/end scope address of a local variable.
17776         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
17777         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
17778         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
17779
17780         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
17781         Added new relocation types for start/end scope of a local variable.
17782
17783 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17784
17785         * object.h: add mono_object_domain() macro.
17786         * reflection.c: handle typespecs.
17787         * icall.c: MonoMethod::get_Name() implementation.
17788
17789 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17790
17791         * icall.c: String::GetHashCode() icall implementation.
17792
17793 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17794
17795         * icall.c: String::IndexOfAny icall.
17796         * object.c, object.h: make array->max_length more useful.
17797         Intrduced mono_object_class() and mono_string_length() macros.
17798
17799 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17800
17801         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
17802         instead of g_unichar_isdigit.
17803
17804 2002-04-11  Nick Drochak  <ndrochak@gol.com>
17805
17806         * icall.c: Implement a simple Double.ToString().
17807
17808 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17809
17810         * appdomain.h: only io-layer.h is supposed to be included.
17811         * icall.c: explicitly import environ. Fix warning.
17812
17813 2002-04-10  Nick Drochak  <ndrochak@gol.com>
17814
17815         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
17816                 return true even if it's not Daylight Savings time.
17817                 Only return false for the case where the function isn't
17818                 implemented for a plaform (read Windows).
17819
17820 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17821
17822         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
17823         data with a mutex.
17824
17825 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17826
17827         * mempool.c (mono_mempool_alloc): only use g_malloc when
17828         absolutely necessary.
17829
17830 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17831
17832         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17833
17834         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17835         (mono_class_proxy_vtable): use domain mempool
17836
17837 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17838
17839         * appdomain.h, appdomain.c: split initialization that requires the
17840         execution engine support into mono_runtime_init().
17841
17842 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17843
17844         * class.c (mono_class_init): don't include vtable inside MonoClass
17845         to save some memory, gather some statistics.
17846         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17847
17848 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17849
17850         * icall.c: internalcall implementation for ValueType.Equals().
17851
17852 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17853
17854         * object.c (mono_message_init): moved 
17855         (mono_runtime_exec_main): new arch. independent impl.
17856         (mono_runtime_invoke_array): new method - like
17857         mono_runtime_invoke, but you can pass an array of objects.
17858         (mono_remoting_invoke): new arch. independent impl.
17859         (mono_message_invoke): new arch. independent impl.
17860         (mono_runtime_class_init): new arch. independent impl.
17861         (mono_runtime_object_init): new arch. independent impl.
17862
17863 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17864
17865         * metadata.c, object.c, reflection.c: documented the exported
17866         functions.
17867
17868 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17869
17870         * icall.c: simpler code to pass the assembly builder data to corlib.
17871         Implement GetNestedTypes() internalcall.
17872
17873 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17874
17875         * class.c: warn if a type can't be loaded.
17876
17877 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17878
17879         * image.h: typedef MonoImageOpenStatus
17880         * types.h: removed unused file
17881         
17882 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17883
17884         * icall.c: Enum_ToObject accepts enum value arguments.
17885
17886 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17887
17888         * class.c: move initialization of properties, events and nested
17889         classes, so that they happen for interfaces, too.
17890
17891 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17892
17893         * icall.c: cleanup some ugly casts in Array_SetValue*.
17894
17895 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17896
17897         * icall.c: the values array fro enums is of the correct type, now.
17898         Implement (correctly) getFullName instead of assQualifiedName for
17899         MonoType.
17900         * reflection.h, reflection.c: added mono_type_get_name ().
17901
17902 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17903
17904         * assembly.c, image.h: for each MonoImage, record from wich assembly
17905         it was loaded.
17906         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17907         Make Type.Assembly work.
17908
17909 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17910
17911         * debug-symfile.h: use char* instead of gpointer to avoid
17912         unnecessary casts.
17913
17914         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17915
17916         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17917         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17918
17919 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17920
17921         * icall.c (mono_message_init): impl. (code cleanup)
17922         (ves_icall_InternalExecute): impl. FieldGetter
17923
17924         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17925         defined we call all (non-static)methods through the vtable. 
17926
17927 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17928
17929         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17930         finalizer even though the memory is still referenced (and the chunk of
17931         memory is not freed).
17932
17933 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17934
17935         * assembly.c: fix brokeness.
17936
17937 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17938
17939         * class.c: kill some warnings. Check explicit interface method
17940         implementation also without considering the namespace.
17941         Load also literal strings in static class data.
17942
17943 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17944
17945         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17946         (default_assembly_name_resolver): Make the resolver take the
17947         "base" directory where the assembly was originally defined, so we
17948         can load DLLs that are in the same directory as the assembly that
17949         is being referenced.
17950
17951 2002-03-28  Dick Porter  <dick@ximian.com>
17952
17953         * file-io.h: 
17954         * file-io.c:
17955         * socket-io.c: 
17956         * unicode.h: 
17957         * unicode.c: Warning cleanups
17958
17959 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17960
17961         * object.h, reflection.h: use the correct type instead of MonoObject.
17962
17963 2002-03-28  Martin Baulig  <martin@gnome.org>
17964
17965         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17966         (mono_debug_update_symbol_file): Initialize classes if necessary.
17967
17968 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17969
17970         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17971         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17972
17973 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17974
17975         * assembly.h: fix function prototype.
17976         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17977         * mono-endian.h: use const cast.
17978
17979 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17980
17981         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17982
17983 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17984
17985         * loader.c: don't assert when a typeref can't be loaded, give
17986         a chance to the runtime to trow an exception instead.
17987         * loader.h: fix warning.
17988
17989 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17990
17991         * class.c (mono_class_proxy_vtable): added proxy support
17992
17993 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17994
17995         * icall.c: removed last of PAL calls, added System.Environment
17996         * file-io.h, file-io.c: MonoIO implementation
17997         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17998
17999 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18000
18001         * appdomain.c: do not use the byte marker in ldstr table lookup.
18002         * debug-helpers.c: allow two ':' to separate class and method name.
18003         * object.c: allocate arrays bounds with the GC, too.
18004         * verify: add a few more checks.
18005
18006 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
18007
18008         * reflection.c: output also literal strings. Allocate parameter data
18009         with GC_malloc() (thanks, Martin, for catching this!).
18010
18011 2002-03-26  Martin Baulig  <martin@gnome.org>
18012
18013         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
18014         include the `this' offset in the `param_offsets'.
18015
18016 2002-03-25  Martin Baulig  <martin@gnome.org>
18017
18018         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
18019         mono_debug_get_class() function to get the classes. Added new
18020         relocation types for arrays and strings.
18021         (mono_debug_get_class): New static function to search in all
18022         referenced assemblies for a metadata token.
18023
18024         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
18025
18026 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
18027
18028         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
18029         hold gc-allocated objects. Make the string heap a stream like the
18030         others. Removed duplicated code when writing stream info.
18031         Added asserts to catch possible buffer overflows. Set the sorted map
18032         for tables that need sorting. Added some documentation.
18033
18034 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
18035
18036         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
18037         for interned strings and vtables.
18038
18039 2002-03-24  Martin Baulig  <martin@gnome.org>
18040
18041         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
18042         it in the array since it was created with g_slist_prepend().
18043
18044 2002-03-24  Martin Baulig  <martin@gnome.org>
18045
18046         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
18047         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
18048         (mono_debug_method_from_token): Renamed to
18049         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
18050         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
18051
18052         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
18053         relocation types.
18054
18055         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
18056
18057 2002-03-24  Martin Baulig  <martin@gnome.org>
18058
18059         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
18060         (mono_debug_method_from_token): New func.
18061
18062         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
18063         New interncall, calls mono_debug_local_type_from_signature().
18064         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
18065         calls mono_debug_method_from_token().
18066
18067 2002-03-23  Martin Baulig  <martin@gnome.org>
18068
18069         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
18070         specifies the number of bytes to be converted, not the array size.
18071         Return the number of chars, not the number of bytes.
18072         (ves_icall_iconv_get_chars): The `byteCount' argument
18073         specifies the number of bytes to be converted, not the array size.
18074
18075 2002-03-23  Martin Baulig  <martin@gnome.org>
18076
18077         * reflection.h (MonoReflectionSigHelper): New type.
18078
18079         * reflection.c (mono_reflection_sighelper_get_signature_local),
18080         (mono_reflection_sighelper_get_signature_local): New functions.
18081
18082         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
18083         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
18084         interncalls.
18085
18086 2002-03-23  Martin Baulig  <martin@gnome.org>
18087
18088         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
18089         is_writeable is set.
18090         (mono_raw_buffer_update): New function to write the modified map
18091         back to disk.
18092
18093         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
18094
18095         * debug-symfile.c (mono_debug_update_symbol_file): Call
18096         mono_raw_buffer_update() when done writing.
18097
18098 2002-03-23  Martin Baulig  <martin@gnome.org>
18099
18100         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
18101
18102         * debug-symfile.c: Added support for arguments and local variables.
18103
18104 2002-03-23  Dick Porter  <dick@ximian.com>
18105
18106         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
18107         protected by ifdefs, hence breaking the w32 build.
18108
18109 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18110
18111         * object.c: implement is_interned() the right way.
18112
18113 2002-03-21  Martin Baulig  <martin@gnome.org>
18114
18115         * debug-symfile.[ch]: New files to handle debugging information
18116         files. There's also support to dynamically update these symbol
18117         files to include machine dependent information.
18118
18119 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
18120
18121         * threads.c (mono_thread_create): new function to create thread
18122         from C
18123
18124 2002-03-20  Martin Baulig  <martin@gnome.org>
18125
18126         * icall.c (ves_icall_InternalInvoke): Create a new object if the
18127         method is a constructor.
18128         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
18129         points to ves_icall_InternalInvoke().
18130
18131 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
18132
18133         * file-io.c: Flush shouldn't throw exceptions.
18134
18135 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
18136
18137         * file-io.c: FileStream flush support; FileSetLength now
18138         restores file pointer.
18139
18140 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18141
18142         * class.c: set image for pointer classes.
18143
18144 2002/03/19  Nick Drochak <ndrochak@gol.com>
18145
18146         * sysmath.c: Forgot one.
18147
18148 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
18149
18150         * sysmath.c: Avoid redefining existing names.
18151
18152 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
18153
18154         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
18155         handled by runtime as icall rather than dllimport from libm.so
18156         * file-io.c, file-io.h: fixed handle argument type.
18157
18158 2002-03-18  Dick Porter  <dick@ximian.com>
18159
18160         * reflection.c (mono_image_get_type_info): rename interface to
18161         iface, because of "#define interface struct" on windows.
18162
18163 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
18164
18165         * class.c, class.h: rename and export mono_ptr_class_get().
18166         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
18167         * reflection.c, reflection.h, icall.c: better/saner type name
18168         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
18169         method signatures.
18170
18171 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
18172
18173         * class.c (mono_class_init): removed hardcoded GHC_SLOT
18174
18175         * icall.c (ves_icall_InternalInvoke): impl.
18176
18177 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18178
18179         * reflection.c: output the interface map table, too.
18180
18181 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
18182
18183         * class.c (class_compute_field_layout): separate computation of 
18184         static field layout
18185
18186 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
18187
18188         * icall.c: added System.Buffer support.
18189         * file-io.c: moved file icalls from PAL to FileStream.
18190
18191 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
18192
18193         * icall.c (ves_icall_System_Object_GetHashCode): impl.
18194
18195 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
18196
18197         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
18198
18199 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18200
18201         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
18202
18203 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18204
18205         * debug-helpers.{c,h}: moved here from monograph some useful functions
18206         to locate a method by name/signature in a class or image. Included
18207         also a small and flexible IL disassembler.
18208
18209 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18210
18211         * reflection.c: fixup tokens in methods with small header size, too.
18212
18213 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
18214
18215         * object.c (mono_string_to_utf8): remove assert(!error), instead
18216         print a warning. 
18217
18218 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
18219
18220         * icall.c: update to the new mono_Array_class_get interface.
18221
18222 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
18223
18224         * appdomain.c, object.c: Boehm-GC enable.
18225         * icall.c: make get_data_chunk() support split data requests.
18226         Ensure a class is initialized in more cases. Return only the first
18227         property found in GetProperties() or the compiler gets confused. 
18228         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
18229         * reflection.h, reflection.c: add fixup mechanism for field and method
18230         tokens. Initialize assembly->typeref in a single place. Output
18231         properties after events. Support custom attributes for events, too.
18232         Typo fix for paramter custom attrs.
18233
18234 2002-03-07  Martin Baulig  <martin@gnome.org>
18235
18236         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
18237
18238 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
18239
18240         * class.c (mono_array_class_get): fix. for multi. dim. arrays
18241
18242 2002-03-06  Martin Baulig  <martin@gnome.org>
18243
18244         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
18245         non-zero lower bounds. See testcases #F10-#F13.
18246
18247 2002-03-05  Martin Baulig  <martin@gnome.org>
18248
18249         * exception.c (mono_get_exception_argument_out_of_range): New exception.
18250
18251         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
18252         ves_icall_System_Array_GetValue(), only calculate the absolute array position
18253         here.
18254         (ves_icall_System_Array_SetValue): Likewise.
18255         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
18256         as argument and does the actual work. This function is used when copying a
18257         multi-dimensional array.
18258         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
18259         now do all the widening conversions of value types.
18260         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
18261
18262 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18263
18264         * class.c: remove some magic numbers and use the smbolic names,
18265         instead. Added init_events() to load event info at class init time.
18266         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
18267         and mono_metadata_methods_from_event().
18268         * reflection.h, reflection.c: added support for writing out the evnets
18269         related information.
18270
18271 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
18272
18273         * reflection.h, icall.c: use a different method (GetInterfaces)
18274         to gather interface info and add isbyref, isprimitive and
18275         ispointer to the ves_icall_get_type_info() return value.
18276
18277 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
18278
18279         * class.h: stared adding support for events.
18280         * icall.c: split find_members implementation. Added debug icall to get
18281         the address of an object.
18282         * reflection.c: handle TypeBuilders in mono_type_get_object().
18283
18284 2002-03-01  Martin Baulig  <martin@gnome.org>
18285
18286         * icall.c (ves_icall_System_Array_GetLength): This must throw an
18287         ArgumentOutOfRangeException(), not an ArgumentException().
18288         (ves_icall_System_Array_GetLowerBound): Likewise.
18289         (ves_icall_System_Array_GetValue): Improved argument checking.
18290         (ves_icall_System_Array_SetValue): Improved argument checking.
18291
18292 2002-03-01  Martin Baulig  <martin@gnome.org>
18293
18294         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
18295         called with invalid arguments rather than just dying with g_assert().
18296         (ves_icall_System_Array_SetValue): Likewise.
18297         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
18298         raise a NotImplementedException instead.
18299         (ves_icall_System_Array_GetLength): Added argument checking.
18300         (ves_icall_System_Array_GetLowerBound): Added argument checking.
18301
18302 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
18303
18304         * object.h (mono_assert): new macros mono_assert and
18305         mono_assert_not_reached
18306
18307 2002-02-28  Martin Baulig  <martin@gnome.org>
18308
18309         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
18310         and "System::String::IsInterned" to "System::String::_IsInterned".
18311
18312 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
18313
18314         * icall.c: remove hacks for typebuilder. Added icall to create a
18315         modified type from a tybebuilder.
18316         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
18317         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
18318         to create a backing MonoClass for a TypeBuilder.
18319
18320 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18321
18322         * class.c, class.h: more refactoring of class init.
18323         Export mono_class_setup_mono_type() and mono_class_setup_parent().
18324
18325 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
18326
18327         * marshal.c, marshal.h: start of marshaling interface.
18328
18329 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18330
18331         * icall.c: fix order in assembly qualified name icall.
18332
18333 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18334
18335         * class.c: do not free str, since we store it in the hash table.
18336         * reflection.h: add label field to MonoILExceptionInfo.
18337         * reflection.c: handle references to more than one assembly. Handle
18338         case when there isn't a module created in the assembly.
18339
18340 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18341
18342         * class.c: Fix typo. Start refactoring of class init code.
18343
18344 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18345
18346         * appdomain.c: exit with 1 on error.
18347         * class.c: we already have the name in MonoClassField.
18348         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
18349         MonoStreamHeader instead of an offset of image->raw_metadata.
18350
18351 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
18352
18353         * appdomain.c (mono_init): Be even more descriptive about the error.
18354
18355 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
18356
18357         * appdomain.c: give the user an informative message when corlib can't
18358         be loaded.
18359
18360 2002-02-26  Martin Baulig  <martin@gnome.org>
18361
18362         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18363         New icall to get the time zone data.
18364
18365 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18366
18367         * reflection.c: set virtual and raw size of section correctly.
18368         * threads.c: transfer domain information to newly created threads.
18369
18370 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18371
18372         * class.c: when instancing a class in a domain, load the default
18373         vaules for static fields from the constant table. Fix System.Enum to
18374         not be an enum.
18375         * icall.c: implement Object::GetType() internalcall. Implemented
18376         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
18377         Fixed checking of binding flags in find_members().
18378         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
18379         * reflection.c: handle enumerations when writing to the constant
18380         table. Use a different object cache for types.
18381
18382
18383 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
18384
18385         * object.c (mono_object_isinst): fix for arrays
18386
18387         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
18388
18389 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18390
18391         * object.c: don't use mprotect ()  and fix intern pool hash table
18392         lookup for big endian systems.
18393
18394 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18395
18396         * icall.c: change type_is_subtype_of () signature.
18397
18398 2002-02-21  Mark Crichton  <crichton@gimp.org>
18399
18400         * rand.c, rand.h: Added random number generator for
18401         System.Security.Cryptography classes.
18402
18403         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
18404
18405         * icall.c: Added System.Security.Cryptography calls.
18406
18407 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18408
18409         * class.c, icall.c, metadata.c: better support for pointer types.
18410         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
18411         * reflection.c: Add support for getting custom attrs for properties
18412         and simplify some code.
18413
18414 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18415
18416         * icall.c: change getToken () and add custom attribute GetBlob()helper
18417         method.
18418         * reflection.h: add custom attrs array to the reflection builder structures.
18419         * reflection.c: encode and emit custom attributes for all the relevant
18420         reflection objects. Cache fieldref and methodref tokens. Change
18421         mono_image_create_token() interface to take a MonoDynamicAssembly.
18422         More complete custom attributes decoder. Load custom attributes for
18423         Assembly, Field, Method and Constructor objects, too. Make the
18424         returned array an Attribute[] one, not object[]. Added
18425         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
18426         custom attribute constructor.
18427
18428 2002-02-20  Dick Porter  <dick@ximian.com>
18429
18430         * icall.c:
18431         * rawbuffer.c:
18432         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
18433         problem code out for now).
18434
18435 2002-02-19  Radek Doulik  <rodo@ximian.com>
18436
18437         * object.c (mono_ldstr): use hash table to avoid multiple swapping
18438
18439 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
18440
18441         * icall.c: register the GetCustomAttributes method.
18442         * object.c, object.h: add mono_string_new_len ().
18443         * reflection.h, reflection.c: added mono_runtime_invoke(),
18444         mono_install_runtime_invoke(). Added
18445         mono_reflection_get_custom_attrs () to load custom attributes and
18446         create the attribute objects.
18447
18448 2002-02-19  Dick Porter  <dick@ximian.com>
18449         * threads-dummy-types.c:
18450         * threads-dummy-types.h:
18451         * threads-dummy.c:
18452         * threads-dummy.h:
18453         * threads-pthread-types.c:
18454         * threads-pthread-types.h:
18455         * threads-pthread.c:
18456         * threads-pthread.h:  Deleted obsolete files
18457
18458 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
18459
18460         * class.c (mono_class_vtable): runtime init the class when we
18461         allocate static class data.
18462
18463         * icall.c (ves_icall_System_Array_SetValue): check for null values.
18464
18465         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
18466         and String - but we will need generic marshalling support in the
18467         future. 
18468         (mono_init): set the domain name in a ms compatible way
18469
18470         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
18471         String[].
18472
18473 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
18474
18475         * object.c (mono_array_clone): use alloca() instead of g_malloc  
18476         for sizes
18477
18478         * appdomain.c (mono_domain_unload): impl.
18479
18480 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18481
18482         * appdomain.c, object.c: fix intern pool implementation.
18483         * class.c: fix alignment code.
18484
18485 2002-02-16  Radek Doulik  <rodo@ximian.com>
18486
18487         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
18488         and s2 > s1, just copy lower bytes to be compatible with little
18489         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
18490         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
18491
18492         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
18493         force big_endian to be 1 for big endian machines 
18494         (ves_icall_iconv_new_decoder): ditto
18495
18496 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
18497
18498         * socket-io.c (convert_sockopt_level_and_name): If the system
18499         doesn't define SOL_IP or SOL_TCP, get them by hand using
18500         getprotobyname() and caching the values (because this could be a
18501         slow operation).
18502         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
18503         Use the appropriate struct when the system does support it. Ie,
18504         not all systems have struct ip_mreqn so use struct ip_mreq when
18505         appropriate.
18506
18507 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
18508
18509         * reflection.c: handle finally clauses.
18510
18511 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
18512
18513         * socket-io.c: use g_snprintf() instead of snprintf.
18514
18515 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18516
18517         * reflection.c (mono_param_get_objects): Cast second argument to
18518         mono_method_get_param_names to a const char** to silence the
18519         compiler warning.
18520
18521         * appdomain.c (mono_domain_assembly_open): Put parens around the
18522         truth statement in the for-loop.
18523
18524         * unicode.c (iconv_convert): Got rid of a compiler warning about
18525         int i being unused when the system has a new iconv.
18526         (iconv_get_length): Same.
18527
18528         * image.c (load_class_names): Cast the second argument to
18529         g_hash_table_insert() to char* to hush compiler warnings about the
18530         arg being a const.
18531         (mono_image_open): Same here.
18532
18533         * socket-io.c: Don't conditionally include sys/filio.h or
18534         sys/sockio.h here anymore since we now get them from
18535         io-layer/io-layer.h
18536         (inet_pton): If the system doesn't support inet_aton, implement
18537         using inet_addr and also #define INADDR_NONE if it isn't defined
18538         by the system.
18539
18540 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18541
18542         * metadata.c, metadata.h: added function to get packing and size info
18543         of a typedef.
18544         * reflection.h, reflection.c: handle field RVA data. Save info about
18545         the table layout if needed. Assign typedef indexes to all the types
18546         before dumping the info about them to avoid forward reference problems.
18547
18548 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
18549
18550         * socket-io.c (convert_sockopt_level_and_name): ifdef
18551         SO_ACCEPTCONN because it is not defined on my system (old debian)
18552
18553 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18554
18555         * opcode.c: use stddef.h to get NULL.
18556
18557 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18558
18559         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
18560         for FIONBIO, FIONREAD and SIOCATMARK.
18561         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
18562         define INADDR_NONE and besides, inet_addr() is deprecated and
18563         should not be used. Use inet_pton() instead - it also has the
18564         added bonus that it can easily handle IPv6 addresses as well.
18565         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
18566
18567 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18568
18569         * decimal.c: remove _MSC_VER conditional.
18570
18571 2002-02-13  Dick Porter  <dick@ximian.com>
18572
18573         * socket-io.c: 
18574         * icall.c: Internal calls for Blocking, Select, Shutdown,
18575         GetSocketOption and SetSocketOption
18576
18577 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18578
18579         * assembly.cs: better resolver: use it instead of some kludgy
18580         code.
18581
18582 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
18583
18584         * reflection.c: the best way to speed-up the compiler is to avoid
18585         infinite loops.
18586
18587 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
18588
18589         * class.c (mono_class_vtable): changed the object layout
18590         (obj->vtable->class). 
18591         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
18592
18593 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18594
18595         * assembly.c: look for assemblies in the assembly dir, too.
18596
18597 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18598
18599         * class.c: fix thinko in mono_class_from_type().
18600
18601 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18602
18603         * exception.h, exception.c: added TypeLoadException.
18604         * object.h, object.c: added mono_array_clone ().
18605         * icall.c: handle throwOnError in AssemblyGetType().
18606         Added Array.Clone().
18607         * opcode.h, opcode.c: use a single value for the opcode val.
18608         Compile fix for non-gcc compilers.
18609
18610 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
18611
18612         * opcodes.c, opcodes.h: export interesting info about opcodes.
18613
18614 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
18615
18616         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
18617         icalls. 
18618
18619         * class.c (class_compute_field_layout): set element_class for enums
18620         (mono_class_create_from_typedef): set element_class for normal classes
18621
18622         * icall.c (ves_icall_System_Enum_get_value): impl.
18623
18624         * class.c (mono_class_create_from_typedef): do not set valuetype
18625         flag for System.ValueType and System.Enum
18626
18627 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
18628
18629         * unicode.c (iconv_convert): fix big endian problem.
18630
18631 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18632
18633         * class.c: add asserts if we are ever going to scribble over memory.
18634         * socket-io.c: not all systems have AF_IRDA defined.
18635
18636 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
18637
18638         * class.c (class_compute_field_layout): do not consider static
18639         fields to compute alignment
18640
18641 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
18642
18643         * appdomain.c (mono_appdomain_get): impl.
18644         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
18645
18646 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18647
18648         * icall.c: ignore "file://" prefix when loading an assembly.
18649
18650 2002-01-23  Dick Porter  <dick@ximian.com>
18651
18652         * socket-io.c:
18653         * icall.c:
18654         * Makefile.am: Added socket support
18655
18656 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18657
18658         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
18659         code back.  This should return the assemblies that are loaded by
18660         the runtime on behalf of an application domain. 
18661
18662         The current implementation is still broken, it just returns every
18663         assembly loaded, but until we get real applications domain this
18664         will do.
18665
18666 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
18667
18668         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
18669         AppDomain object.
18670
18671 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18672
18673         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
18674         the mono_class_from_name lookup.
18675         (ves_icall_get_parameter_info): ditto.
18676         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
18677         method.
18678         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
18679
18680 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18681
18682         * class.c: load also nested classes on class init.
18683         System.ValueType instance methods gets passed boxed
18684         values, unless methods in derived classed that get a pointer to the
18685         data.
18686         * icall.c: use better name parsing code in GetType().
18687         * image.c, image.h: add mono_image_loaded ().
18688         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
18689         * reflection.c, reflection.h: added mono_reflection_parse_type().
18690
18691 2002-01-22  Veronica De Santis <veron78@interfree.it>
18692
18693         * icall.c : Added mapping of internal calls for Manual and Auto reset events
18694         * threads.c : Added the implementation of internal calls for events
18695         * threads.h : Added prototypes of internal calls for events
18696         
18697 2002-01-21  Radek Doulik  <rodo@ximian.com>
18698
18699         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
18700
18701 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
18702
18703         * class.c (mono_class_init): set min_align to 1 (instead of 0)
18704         (mono_class_value_size): use min_align
18705
18706 2002-01-20  Dick Porter  <dick@ximian.com>
18707
18708         * threads.h:
18709         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
18710         so it compiles on w32.
18711
18712 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
18713
18714         * metadata.c (mono_type_stack_size): impl.
18715
18716         * class.c (mono_class_get_field): impl. memberref token
18717
18718 2002-01-16 Veronica De Santis <veron78@@interfree.it>
18719
18720         * icall.h : Added the internal calls mapping for CreateMutex_internal
18721                     and ReleaseMutex_internal.
18722         * threads.h : Added the prototype of mutexes internal calls.
18723         * threads.c : Added the implementations of mutexes internal calls.
18724
18725 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18726
18727         * metaparse.h: removed unused file.
18728         * reflection.c, reflection.h: added stream_data_align () function 
18729         to align data in streams and keep stream aligned. Add support for
18730         exception support in method headers.
18731
18732 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
18733
18734         * unicode.c: make iconv_convert () return the number of bytess written
18735         in the output buffer.
18736
18737 2002-01-15  Dick Porter  <dick@ximian.com>
18738         * threads.c: Make the runtime's idea of infinite timeouts coincide
18739         with the class library's
18740
18741         Fix a particularly egregious bug in mono_thread_cleanup(). That
18742         code was so utterly bogus it must have been written on a Monday.
18743
18744 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18745
18746         * reflection.h: add subtypes field to TypeBuilder.
18747         * reflection.c: encode constants for literal fields.
18748         Handle subtypes. Fix user string token (and add a zero byte)
18749         at the end.
18750         
18751 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
18752
18753         * class.c (mono_class_init): bug fix: assign slot numbers for
18754         abstract methods.
18755
18756 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18757
18758         * reflection.c: don't try to output a code RVA for abstract methods.
18759         Small fixes for method header format. Output parameter info to the
18760         ParamDef table. Save method overriding info to MethodImpl table.
18761         Fix property support. Allow typedef.extends to be a type in the
18762         building assembly.
18763         * verify.c: fix off-by-one error.
18764
18765 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
18766
18767         * class.c: fix mono_class_from_mono_type () for szarray types.
18768         Remove unused cache check in mono_class_from_type_spec().
18769         * icall.c: *type_from_name () functions handle simple arrays and byref.
18770         * reflection.c: handle byref and szarray types. Handle methods without
18771         body (gets P/Invoke compilation working). Handle types and fields in
18772         get_token ().
18773         * reflection.h: add rank to MonoTypeInfo.
18774
18775 2002-01-10  Dick Porter  <dick@ximian.com>
18776
18777         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
18778         internal calls
18779
18780 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18781
18782         * icall.c: initialize class in type_from_handle ().
18783         Loop also in parent classes for get_method ().
18784         * reflection.c: properly encode class and valuetype types.
18785         Start on encoding TypeBuilder types. Handle fieldrefs.
18786         Use correct length when registering a user string.
18787         Handle ConstructorBuilder and MonoMethod in get_token ().
18788         Make mono_type_get_object () aware of cached types.
18789         * object.c: back out change to mono_string_new ().
18790
18791 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
18792         * object.c: mono_string_new should return a NULL when the string 
18793         passed in is NULL -- not try to deference it.
18794         
18795 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18796
18797         * icall.c: hack to make IsSubType work for TypeBuilders.
18798         * reflection.c: emit constructors before methods.
18799         Retrieve param names in mono_param_get_objects().
18800
18801 2002/01/05  Nick Drochak  <ndrochak@gol.com>
18802
18803         * Makefile.am: fix list of headers and sources so automake 1.5
18804         doesn't complain. Removed \# at end of list.
18805
18806 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18807
18808         * reflection.c: get token for a method ref. Set return type of
18809         constructor to void.
18810         * loader.c: debug message.
18811         * class.c: typo fix.
18812
18813 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
18814
18815         * icall.c: fix array init with rank > 1. FindMembers
18816         loops in parent class as well.
18817         * image.c: do not insert nested types in name cache.
18818         * reflection.c: warning fix.
18819         * reflection.h: add override method (for interface impl).
18820
18821 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
18822
18823         * metadata.c: fix customattr decoding.
18824
18825 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18826
18827         * rawbuffer.cs: Added native Win32 implementation, avoids using
18828         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18829
18830 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18831
18832         * class.c: make the low-level routines handle the cache.
18833
18834 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18835
18836         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18837
18838 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18839
18840         * class.c: fix mono_array_element_size() for objects.
18841         * class.h, class.c: add properties to MonoClass and load them
18842         at init time.
18843         * icall.c: check with isinst() when assigning a value to an array
18844         instead of requiring the classes to match exactly.
18845         Implemented icall for System.Type::GetType().
18846         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18847         enums. Handle bindingflags when looking for methods and fields.
18848         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18849         and mono_metadata_methods_from_property().
18850         * reflection.h, reflection.c: added structures for propreties,
18851         parameters and enums. Implemented mono_property_get_object() and
18852         mono_param_get_objects().
18853
18854 2001-12-18  Dick Porter  <dick@ximian.com>
18855
18856         * file-io.c: Use mono_string_to_utf16() instead of
18857         mono_string_chars()
18858
18859         * object.c: Added mono_string_to_utf16(), which copies the non
18860         NULL-terminated MonoString into a new double-null-terminated
18861         buffer.
18862
18863 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18864
18865         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18866
18867 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18868
18869         * file-io.c: raise exceptions if handle is invalid.
18870
18871 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18872
18873         * assembly.c: yet another check for mscorlib.
18874         * class.c, class.h: load nesting info for classes.
18875         * icall.c: many new functions to support the Reflection classes.
18876         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18877         * reflection.h, reflection.c: mono_image_create_token(),
18878         mono_assembly_get_object(), mono_type_get_object(),
18879         mono_method_get_object(), mono_field_get_object(): methods to return
18880         objects that parallel the C representation of assemblies, types,
18881         methods, fields.
18882
18883 2001-12-11  Dick Porter  <dick@ximian.com>
18884
18885         * icall.c:
18886         * file-io.c: Internal calls for file IO.
18887
18888 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18889
18890         * tabledefs.h: missing FileAttributes.
18891         * verify.h, verify.c: use is_valid_string () to simplify and check for
18892         valid strings more correctly. Fix warnings and speeling.
18893         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18894         Check code: branches, maxstack, method calls.
18895
18896 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18897
18898         * object.c (mono_object_allocate): removed static, so that the jit
18899         can allocate value types.
18900
18901         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18902
18903 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18904
18905         * class.c: init enum types right away and register the
18906         token->MonoClass map in mono_class_create_from_typedef ().
18907         * verify.h, verify.c: first cut of the verifier.
18908         * pedump.c: add --verify switch to verify metadata tables.
18909         * tabledefs.h: add some missing enums.
18910
18911 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18912
18913         * class.c (mono_install_runtime_class_init): impl.
18914         (mono_class_init): renamed mono_class_metadata_init to
18915         mono_class_init, also removed the metadata_inited flag
18916
18917         * object.c (mono_object_isinst): use faster algorithm
18918
18919 2001-11-30  Radek Doulik  <rodo@ximian.com>
18920
18921         * mono-endian.h: reverted last change
18922         added function prototypes
18923
18924         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18925         add mono-endian.c back
18926
18927         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18928         for unaligned access, I've mistaked it with endianess. I am
18929         sorry.
18930         (mono_read16): fix reverted endianess
18931         (mono_read64): ditto
18932         (mono_read32): ditto
18933
18934 2001-11-30  Dick Porter  <dick@ximian.com>
18935
18936         * exception.c: Implement mono_exception_from_name()
18937
18938 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18939
18940         * metadata.h, metadata.c: remove params_size and locals_size and their
18941         calculation from the metadata code: they are only usefult to the
18942         interp.
18943
18944 2001-11-29  Radek Doulik  <rodo@ximian.com>
18945
18946         * object.c (mono_ldstr): swap bytes here, it's probably not the
18947         best place, but works for me now, I'll redo it once I know mono
18948         better, also note that I add PROT_WRITE and don't reset back, also
18949         note that it's only affects big endians, so x86 should be OK
18950
18951         * mono-endian.h (read16): use just glib macros for both endians
18952
18953         * mono-endian.c: removed as glib macros are used in in
18954         mono-endian.h so we don't need to care about endianess for read
18955         macros as glib does that for us already
18956
18957 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18958
18959         * class.h, class.h: take minimum alignment into consideration so
18960         that the fields of a class remain aligned also when in an array.
18961
18962 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18963
18964         * loader.h, loader.c: add mono_method_get_param_names().
18965         * class.c: 0-init class fields.
18966
18967 2001-11-26  Dick Porter  <dick@ximian.com>
18968
18969         * icall.c:
18970         * threads-types.h:
18971         * threads.c: New file that handles System.Threading on all platforms
18972
18973         * object.c: 
18974         * object.h: Remove the synchronisation struct from MonoObject,
18975         replace it with a pointer that gets initialised on demand
18976
18977         * Makefile.am: Replace all the system-specific threading code with
18978         a single file that uses the new wrapper library
18979
18980 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18981
18982         * class.c, class.h: add mono_install_trampoline() so that the runtime
18983         can register a function to create a trampoline: removes the ugly
18984         requirement that a runtime needed to export arch_create_jit_trampoline.
18985         * object.h, object.c: added mono_install_handler() so that the runtime
18986         can install an handler for exceptions generated in C code (with
18987         mono_raise_exception()). Added C struct for System.Delegate.
18988         * pedump.c: removed arch_create_jit_trampoline.
18989         * reflection.c: some cleanups to allow registering user strings and
18990         later getting a token for methodrefs and fieldrefs before the assembly
18991         is built.
18992         * row-indexes.h: updates and fixes from the new ECMA specs.
18993
18994 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18995
18996         * class.h, class.c: add enum_basetype field to MonoClass.
18997         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18998         to get index in the constant table reated to a field, param or
18999         property.
19000         * reflection.h, reflection.c: handle constructors. Set public-key and
19001         version number of the built assembly to 0.
19002         * row-indexes.h: update from new ECMA spec.
19003
19004 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19005
19006         * class.h, class.c: add a max_interface_id to MonoClass.
19007         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
19008         since it's used to do that. Added mono_type_type_from_obj().
19009         Make GetType() return NULL instead of segfaulting if the type was not
19010         found. Handle simple arrays in assQualifiedName.
19011         * object.h: add a struct to represent an Exception.
19012         * reflection.c: output call convention in method signature.
19013         Add code to support P/Invoke methods and fixed offsets for fields.
19014
19015 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
19016
19017         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
19018         the value.
19019         * icall.c: use mono_array_addr instead of array->vector: fixes the
19020         reflection image writing.
19021         * reflection.c: init call convention byte to 0 in method signature.
19022         Encode the property signature. Don't output property-related methods
19023         twice. Really process the properties for a type (don't cast a field to
19024         a property, my mom always told me that).
19025         Fix 64 bit issues in pointer alignment in a different and more
19026         readable way.
19027
19028 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
19029
19030         * loader.h: Removed type class from MonoDefaults, added monotype
19031
19032         * loader.c: Loaded MonoType, removed loading of Type
19033
19034         * icall.c (my_mono_new_object): Now returns a System.MonoType,
19035         and fills in System.Type._impl with a RuntimeTypeHandle rather
19036         than the actual MonoClass *
19037
19038         (ves_icall_type_from_handle): change from type_class to
19039         monotype_class
19040
19041         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
19042         implemented
19043
19044         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
19045         implemented
19046
19047         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
19048
19049         (ves_icall_System_Reflection_Assembly_GetType): implemented
19050
19051         (ves_icall_System_MonoType_assQualifiedName): implemented
19052
19053         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
19054
19055 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
19056
19057         * assembly.c (mono_assembly_open): Implement a cache for the
19058         assemblies. 
19059
19060         (mono_assembly_close): only destroy the assembly when the last
19061         reference is gone.
19062         
19063 2001-11-09  Dick Porter  <dick@ximian.com>
19064
19065         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
19066
19067 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
19068
19069         * class.c (mono_class_metadata_init): bug fix: compute the right slot
19070
19071 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
19072
19073         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
19074         from Martin Weindel.
19075         * object.h: add mono_string_chars ().
19076
19077 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
19078
19079         * reflection.c (build_compressed_metadata): Eliminates warnings
19080         and uses 64-bit clean code.
19081
19082         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
19083         (mono_type_equal): Change signature to eliminate warnings.
19084
19085 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
19086
19087         * icall.c, loader.c: remove the internalcall array constructors.
19088         Changes to match the new MonoArray structure.
19089         * object.h, object.c: an array object doesn't allocate an extra
19090         vector. Add mono_array_new_full () to create jagged arrays easily.
19091
19092 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
19093
19094         * metadata.h, metadata.c: add mono_metadata_field_info () to
19095         retreive all the info about a field from vairous tables.
19096         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
19097         * class.h, class.c: augment MonoClassField with more info.
19098         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
19099         policy and load a field's RVA if needed.
19100
19101 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
19102
19103         * class.c (mono_class_metadata_init): create a trampoline for all
19104         virtual functions instead of actually compiling them.
19105
19106 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
19107
19108         * class.h, class.c: include name in MonoClassField.
19109         * class.c: fix fundamental type of System.Object and System.String.
19110         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
19111         tokens in ldtoken.
19112         * icall.c: remove internalcalls for the Reflection stuff that is now
19113         done in C# code.
19114         * loader.c: mono_field_from_memberref () implementation.
19115         * mono-endian.c: thinko (s/struct/union/g).
19116         * object.c, object.h: make the mono_string_* prototypes actually use
19117         MonoString instead of MonoObject.
19118         * reflection.c, reflection.h: updates for changes in the reflection
19119         code in corlib: we use C structures that map to the actual C# classes.
19120         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
19121         fat method header if needed and use the info from the ILGenerator for
19122         methods. Handle fields in types. Misc fixes.
19123
19124 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
19125
19126         * class.c (mono_class_metadata_init): bug fix: always allocate
19127         space for static class data
19128
19129 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
19130
19131         * class.c (mono_compute_relative_numbering): use relative
19132         numbering to support fast runtime type checks.
19133
19134 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
19135
19136         * class.c (mono_class_create_from_typeref): added debugging output
19137         to print class name when MonoDummy is returned instead of real class
19138
19139 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
19140
19141         * class.c (mono_class_metadata_init): interface offset table now
19142         contains pointers into the vtable - this is more efficient for the jit
19143
19144 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
19145
19146         * class.c (mono_class_metadata_init): use a temporary vtable (the
19147         old algorithm only worked for the interpreter, but not for the jit)
19148
19149 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
19150
19151         * loader.c (method_from_memberref): use mono_class_get to get the
19152         class of an array instead of using System.Array directly.
19153         (mono_get_method): also add MEMBERREF methods to the method cache
19154         which usefull for arrays.
19155
19156 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
19157
19158         * pedump.c (arch_compile_method): added to compute vtable entry
19159
19160         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
19161         number of interfaces.
19162         
19163         * class.h: merged MonoArrayClass into MonoClass
19164
19165         * class.c (mono_class_create_from_typedef): compute the vtable size and
19166         allocate space to include the vtable inside MonoClass
19167         (mono_class_metadata_init): initialize the vtable
19168
19169 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
19170
19171         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
19172         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
19173         * image.c: endian fixes by Laurent Rioux.
19174         * object.h, object.c: rename MonoStringObject to MonoString and
19175         MonoArrayObject to MonoArray. Change some function names to conform to
19176         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
19177         guint16* as first argument, so don't use char*.
19178         Provide macros to do the interesting things on arrays in a portable way.
19179         * threads-pthread.c: updates for the API changes and #include <sched.h>
19180         (required for sched_yield()).
19181         * icall.c: updates for the API changes above.
19182         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
19183         platforms that need them.
19184
19185 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19186
19187         * class.c: set the correct type for all the fundamental
19188         type when loading the class.
19189
19190 2001-10-05  Dick Porter  <dick@ximian.com>
19191
19192         * threads-pthread.c (pthread_mutex_timedlock): Simple
19193         compatibility version for C libraries that lack this call.
19194
19195 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19196
19197         * class.c: MonoTypes stored in MonoClass are stored as
19198         fundamental MonoTypes when the class represents a
19199         fundamental type (System.Int32, ...).
19200         The TypeHandle return by ldtoken is a MonoType*.
19201         * icall.c: ves_icall_get_data_chunk () write out all the
19202         PE/COFF stuff. Implement ves_icall_define_method (),
19203         ves_icall_set_method_body (), ves_icall_type_from_handle ().
19204         * image.c: properly skip unknown streams.
19205         * loader.h, loader.c: add type_class to mono_defaults.
19206         * metadata.c, metadata.h: export compute_size () as
19207         mono_metadata_compute_size () with a better interface.
19208         Typo and C&P fixes.
19209         * pedump.c: don't try to print the entry point RVA if there is no entry point.
19210         * reflection.c, reflection.h: many cleanups, fixes, output method
19211         signatures and headers, typedef and typeref info, compress the metadata
19212         tables, output all the heap streams, cli header etc.
19213         * row-indexes.h: typo fixes.
19214
19215 2001-10-04  Dick Porter  <dick@ximian.com>
19216
19217         * object.h: Add a synchronisation mutex struct to MonoObject
19218
19219         * object.c (mono_new_object): Initialise the object
19220         synchronisation mutexes
19221
19222         * icall.c: System.Threading.Monitor internal calls
19223         
19224         * threads-pthread.h:
19225         * threads-pthread.c: System.Threading.Monitor internal calls
19226
19227         * threads-types.h: New file, includes the system-specific thread
19228         structures
19229         
19230         * threads-pthread-types.h:
19231         * threads-pthread-types.c: New files, handle pthread-specific
19232         synchronisation types
19233
19234         * threads-dummy-types.h: 
19235         * threads-dummy-types.c: New files of dummy support for
19236         thread-specific types
19237
19238         * metadata.c:
19239         * image.c:
19240         * pedump.c: include mono-endian.h not endian.h
19241         
19242         * Makefile.am: More threads files.
19243         Name mono-endian.h not endian.h
19244
19245 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
19246
19247         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
19248         stuff and implement a few more bits.
19249         * icall.c: a field needs to be dereferenced twice. Do not use the same
19250         name for two variables in the same scope.
19251         * image.c, image.h: cleanups.
19252
19253 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
19254
19255         * class.c (mono_class_metadata_init): bug fix: compute the right size
19256
19257 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
19258
19259         * icall.c: implemented some of the Reflection internalcalls.
19260         * image.c, image.h: start writing out the PE/COFF image.
19261         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
19262         that does the reverse than decode_blob_size ().
19263         * object.c: use mono_metadata_encode_value (). Move here
19264         temporary implementation of mono_string_to_utf8 ().
19265         * rawbuffer.c: make malloc_map static.
19266
19267 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19268
19269         * metadata.c: fix type comparison for arrays.
19270         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
19271         Added a couple of new classes to monodefaults.
19272         * icall.c: added a couple of Reflection-related internalcalls.
19273         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
19274         Added a byval_arg MonoType to MonoClass.
19275
19276 2001-09-28  Dick Porter  <dick@ximian.com>
19277
19278         * icall.c:
19279         * threads-pthread.h: 
19280         * threads-pthread.c: Implemented internal calls for
19281         LocalDataStoreSlot operations.  Applied mutexes around all shared
19282         data.  Reworked the thread creation and Start() operations to
19283         avoid a race condition.
19284         
19285         * threads-dummy.h:
19286         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
19287
19288 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
19289
19290         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
19291
19292 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
19293
19294         * class.c, loader.c: warn and return NULL instead of erroring out.
19295         * icall.c: added System.AppDomain::getCurDomain().
19296         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
19297
19298 2001-09-25  Dick Porter  <dick@ximian.com>
19299
19300         * threads-pthread.h:
19301         * threads-pthread.c: Implemented timed thread joining and added
19302         System.Threading.Thread::Join_internal internal call
19303
19304         * icall.c: Added System.Threading.Thread::Join_internal internal call
19305
19306         * threads-dummy.h:
19307         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
19308
19309 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
19310
19311         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
19312         mono_string_intern () to implement the semantics of the ldstr opcode
19313         and the interning of System.Strings.
19314         * icall.c: provide hooks to make String::IsIntern and String::Intern
19315         internalcalls.
19316
19317 2001-09-23  Dick Porter  <dick@ximian.com>
19318
19319         * threads-dummy.c: 
19320         * threads-dummy.h: New files of dummy threading routines
19321
19322         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
19323         support code based on system specifics
19324
19325         Rename PTHREAD_LIBS to THREAD_LIBS
19326         
19327 2001-09-23  Dick Porter  <dick@ximian.com>
19328
19329         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
19330         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
19331         internal calls.
19332         (mono_thread_init): Set up a Thread object instance to return when
19333         the main thread calls Thread.CurrentThread
19334         (mono_thread_cleanup): Wait for all subthreads to exit
19335
19336         * icall.c: New internal calls for System.Threading.Thread::Sleep
19337         (including Schedule) and CurrentThread
19338
19339         * threads.h: New file, to insulate thread-specific stuff from the
19340         rest of the code
19341
19342 2001-09-21  Dick Porter  <dick@ximian.com>
19343
19344         * threads-pthread.h: 
19345         * threads-pthread.c: New file, for handling pthreads-style
19346         threading support.  Start() now starts a new thread and executes
19347         the ThreadStart delegate instance.
19348
19349         * icall.c: Added the internalcall for
19350         System.Threading.Thread::Start_internal
19351
19352         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
19353
19354 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
19355
19356         * loader.c: work around the different signatures for delegates
19357         constructors csc generates in compiled code vs the ones compiled in mscorlib.
19358
19359 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19360
19361         * class.h, class.c: add mono_class_get_field_from_name ().
19362         * *: Fix C comments and other ANSI C issues.
19363
19364 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
19365
19366         * endian.h, assembly.c: fix some endianness issues.
19367
19368 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
19369
19370         * loader.h, load.c: add delegate_class to mono_defaults.
19371         Handle runtime provided methods in mono_get_method ().
19372
19373 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
19374
19375         * loader.c (mono_get_method): use pinvoke for internal call
19376
19377         * icall.c: use pinvoke for internal call
19378
19379         * loader.c (method_from_memberref): set the method name
19380
19381 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
19382
19383         * metadata.c: help the compiler generate better code for
19384         mono_class_from_mono_type ().
19385
19386 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
19387
19388         * class.c (mono_class_metadata_init): delayed computing of the
19389         class size to mono_class_metadata_init ()
19390
19391 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
19392
19393         * class.c, class.h: add an interfaces member to MonoClass.
19394         * image.c, image.h: add assembly_name field to MonoImage
19395         from the assembly table.
19396         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
19397
19398 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19399
19400         * class.c: Handle Array in mono_class_from_mono_type ().
19401         * metadata.c, pedump.c: some endian fixes.
19402
19403 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19404
19405         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
19406         * metadata.c: fix small problem introduced with the latest commit.
19407
19408 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
19409
19410         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
19411         We don't need a MonoMetadata pointer anymore to compare signatures in
19412         mono_metadata_signature_equal (), update callers.
19413         Reduced memory usage an number of allocations for MonoMethodHeader and
19414         MonoMethodSignature.
19415
19416 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
19417
19418         * metadata.c: added compare for szarray.
19419
19420 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
19421
19422         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
19423         and add a couple more types to it and mono_defaults. Give an hint on
19424         classes that need implementing in our corlib and are referenced
19425         in mscorlib.
19426
19427 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
19428
19429         * class.h, class.c: keep track if a class is also an Enum.
19430         * loader.c: Implement a couple more types for use in libffi
19431         marshalling. Gives better diagnostics when failing to dlopen
19432         a library. Set method->klass for P/Invoke methods, too.
19433
19434 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
19435
19436         * class.c, class.h: add a MonoType this_arg to MonoClass that
19437         represents a pointer to an object of the class' type that
19438         can be used by the interpreter and later the type cache.
19439         Add best guess alignment info for valuetype objects.
19440
19441 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
19442
19443         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
19444         into MonoType: one less level of indirection and allocation and
19445         simplifies quite a bit of code. Added cache for MonoTypes that are
19446         used frequently, so that we don't need to allocate them all the time.
19447
19448 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
19449
19450         * class.c (mono_class_create_from_typedef): System.Enum is also a
19451         value type, although it does not derive from System.ValueType
19452         (maybe a bug in the ms compiler?)
19453
19454         * metadata.c (mono_type_size): return the right size for value types
19455
19456         * loader.c (mono_get_method): only initialize method header if not abstract
19457
19458         * class.c (mono_class_from_mono_type): use mono_default values. 
19459
19460 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
19461
19462         * *: use MonoClass pointers instead of <type_tokens>
19463         
19464         * class.h: new flag: metadata_inited.
19465
19466         * class.c (mono_class_metadata_init): impl.
19467         (mono_class_instance_size): impl.
19468         (mono_class_data_size): impl.
19469
19470 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19471
19472         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
19473         MonoClass now has the name and name_space fields. 
19474         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
19475         mono_get_method () takes and optional MonoClass as argument.
19476         Removed mono_typedef_from_name() and added mono_class_token_from_name()
19477         instead that takes advantage of a map from class names to typedef
19478         tokens in MonoImage.
19479
19480 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
19481
19482         * metadata.c: zero is not a valid alignment boundary.
19483         Merge MONO_TYPE_VOID in default decoding code.
19484
19485 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
19486
19487         * image.h: merged MonoMetadata into MonoImage
19488
19489         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
19490         identify the type of elements.
19491
19492 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
19493
19494         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
19495         * cil-coff.h: split MonoMSDOSHeader and add size info.
19496         * image.c: add some consistency checks.
19497         * metadata.c: fix row size computation: one programmer
19498         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
19499         add explanation for the locator routine.
19500         Fix decoding of size in method header.
19501         
19502 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
19503
19504         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
19505         (g_concat_dir_and_file): Bring g_concat_dir_and_file
19506         function from gnome-libs.  This uses the right path separator
19507         based on the OS, and also works around a bug in some systems where
19508         a double slash is not allowed. 
19509         (default_assembly_name_resolver): Use g_concat_dir_and_file
19510         (mono_assembly_open): ditto.
19511
19512 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
19513
19514         * metadata.c (mono_metadata_signature_equal): impl.
19515
19516         * *: void is now a realy MonoType (instead of using NULL)
19517         
19518         * metadata.c (do_mono_metadata_parse_type): use
19519         mono_metadata_parse_type to parse void value.
19520
19521 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
19522
19523         * metadata.c, metadata.h: in the signature and method header store
19524         only the space required for holding the loca vars and incoming arguments.
19525
19526 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
19527
19528         * metadata.c (do_mono_metadata_parse_type): treat void like any
19529         other type (instead of assigning NULL);
19530
19531 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
19532
19533         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
19534
19535 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
19536
19537         * image.c (do_mono_image_open): added a cache for arrays.
19538
19539 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19540
19541         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
19542         decode a single column from a row in a metadata table and changes
19543         to take advantage of it in the typedef locator (gives a nice speed up).
19544         Store offset info for function params.
19545
19546 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
19547
19548         * image.h (MONO_IMAGE_IS_CORLIB): removed 
19549
19550 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
19551
19552         * assembly.c: how could mono_assembly_close () had ever worked?
19553         * metadata.c, metadata.h: provide offset info for local vars.
19554         Implement mono_type_size () to take care of alignment as well
19555         as size (it was mono_field_type_size in cli/class.c before).
19556
19557 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
19558
19559         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
19560
19561         * assembly.h (CORLIB_NAME): set to corlib.dll
19562
19563         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
19564
19565 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19566
19567         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
19568         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
19569         tokentype.h: massive namespace cleanup.
19570
19571 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19572
19573         * metadata.h, metadata.c: decode exception clauses when parsing method header.
19574
19575 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
19576
19577         * metadata.c (mono_metadata_free_type): added check for type !=
19578         NULL (void) before calling mono_metadata_free_type()
19579
19580 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
19581
19582         * metadata.h, row_indexes.h: added header with enumerations to use
19583         to index in the columns from tables in metadata and to decode coded
19584         tokens: we should start using this instead of embedding magic numbers
19585         all over the code.
19586
19587 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
19588
19589         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
19590         Move metadata_t info from cli_image_info_t to MonoImage, where
19591         it's easily accessible. Changed all the uses accordingly.
19592         Added the method and class caches to MonoImage.
19593         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
19594         and mono_metadata_decode_value () signature to be more consistent
19595         with the other parse functions (and simplify code). Taken advantage
19596         of zero-length array allocation with GCC. Removed reduntant (and
19597         wrong) MonoFieldType struct and use MonoParam instead. Changed
19598         mono_metadata_parse_field_type () to use common code for parsing.
19599         Added mono_metadata_typedef_from_field () and
19600         mono_metadata_typedef_from_method () to lookup a typedef index from a
19601         field or method token.
19602         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
19603
19604 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
19605
19606         * metadata.c (mono_metadata_parse_field_type): Implement. 
19607         (do_mono_metadata_parse_type): Split engine from
19608         mono_metadata_parse_type, so that we can create smaller structures
19609         for things that just have one pointer to the MonoType (look at
19610         the MonoFieldType)
19611
19612 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
19613
19614         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
19615         as Jan Gray found out, it is incorrect. 
19616
19617 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
19618
19619         * assembly.c: Implement asssembly loading.  This loads an image
19620         and loads all the referenced assemblies.  Come to think of it, we
19621         could always do lazy loading of the assemblies. 
19622
19623         * image.c (mono_image_open): Keep loaded images in a hashtable.
19624
19625         * image.h (MonoImage): Add reference count.
19626
19627 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
19628
19629         * assembly.c (mono_assembly_open): Keep track of the file name in
19630         case the assembly has no ASSEMBLY table.
19631
19632         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
19633         from get.c here.
19634
19635 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
19636
19637         * metadata.c, metadata.h: decode local vars in method header
19638         parse function. Change callers accordingly.
19639
19640 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
19641
19642         * metadata.h, cil-coff.h: protect against multiple inclusion.
19643         Added some new structures to hold information decoded from metadata:
19644         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
19645         and relevant decoding/free functions.
19646         * metadata.c: implement decoding functions. Add warning for out of bounds
19647         index in mono_metadata_locate(). Implement mono_get_method () to retreive
19648         all the info about a method signature and invocation. Remove check on
19649         uninitialized local var in parse_mh() and fix memory leak.
19650
19651 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
19652
19653         * metadata.h: More macros.
19654
19655         * tokentype.h: New file.
19656
19657 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
19658
19659         * assembly.c: added a consistency check and initialize
19660         some structures with g_new0().
19661         * metadata.c: fixed a couple more bugs in table size computation
19662         and add other checks for out-of bound access to metadata.
19663
19664 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
19665
19666         * metatada.c: fix bugs computing table sizes. Spew a
19667         warning when index in string heap is out of bounds.
19668
19669 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
19670
19671         * metadata.h: Add a couple of macros to manipulate tokens. 
19672
19673 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19674
19675         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
19676         cli_section_tables).
19677
19678 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
19679
19680         * metadata.c (mono_metadata_user_string): New function, provides
19681         access to the UserString heap. 
19682
19683 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
19684
19685         * metadata.c: Add inline documentation.
19686
19687 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
19688
19689         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
19690         files. 
19691
19692 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
19693
19694         * typeattr.h: New file, TypeAttribute flags. 
19695
19696 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
19697
19698         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
19699         mono_assembly_ensure_section): Section loading code.
19700         (load_section_tables): Load the sections.
19701
19702         * mono/metadata/metadata.c (mono_metadata_locate_token,
19703         mono_metadata_locate): Functions to locate the information
19704         definition given a token or a table and an index.
19705         (mono_metadata_compute_table_bases): New.
19706         (compute_size): New function to compute the sizes of the various
19707         tables.
19708
19709         * mono/metadata/metadata.h: Finish listing the different index
19710         types. 
19711
19712         * mono/metadata/pedump.c: Improve to dump new information.
19713
19714 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
19715
19716         * mono/metadata/metadata.c: Entered all the tables matching
19717         Beta2. 
19718
19719         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
19720
19721
19722