2006-08-31 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
2
3         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
4
5         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
6         missing a [MarshalAs] directive. Fixes #79203.
7
8         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
9         klass->marshal_info. Fixes #79217.
10
11 2006-08-30  Martin Baulig  <martin@ximian.com>
12
13         Committing a patch from Joachim Ante <joe@otee.dk>:
14         Add support for binary data symbol stores.
15
16         * debug-mono-symfile.c
17         (mono_debug_open_mono_symbol_file): Renamed into
18         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
19         arguments.
20
21         * mono-debug.c
22         (mono_debug_open_image): Added `raw_contents' and `size' args.
23         (mono_debug_init_2_memory): New public function.
24
25 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
26
27         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
28
29 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
30
31         * appdomain.c: implement support for ShadowCopyFiles.
32
33 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
34
35         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
36         when value is NULL (and should remove CID #51).
37
38 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
39
40         * image.c: moved 2 functions to ../utils.
41
42 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
43
44         * gc.c: cope with the target object of a GC handle being NULL
45         (bug #78877).
46
47 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
48
49         * class.c: recursively check parent's explicit implementations
50         of interface methods (fixes bug #79125).
51
52 2006-08-19  Miguel de Icaza  <miguel@novell.com>
53
54         * filewatcher.c: Avoid warnings when building, do not redefine
55         constants that are defined.
56
57         Remove warnings.
58
59 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
60
61         * image.c: don't fail when the link points to an absolute path.
62
63 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
64
65         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
66         Fix CID #3.
67
68 2006-08-17  Miguel de Icaza  <miguel@novell.com>
69
70         * image.c (full_path): A new method used to obtain the actual path
71         of an assembly even in the presence of symbolic links.  
72
73         This is necessary for the case where we are running a binary that
74         has been GACed, but we are using the "published" path name
75         ($prefix/mono/1.0/blah.exe) which happens to point to the real
76         file in the GAC.
77
78         This was the source of the failure for the `xsp' command with the
79         recent AppDomain changes, as far as the runtime was concerned,
80         there were two different assemblies: $prefix/mono/1.0/blah.exe and
81         $prefix/mono/gac/blah/version/blah.exe.
82
83         (do_mono_image_open): use full path
84
85 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
86
87         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
88
89 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
90
91         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
92         domain_id is supplied. Fix CID #241 and corlib's unit tests.
93
94 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
95
96         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
97         small structures. Fixes #78990.
98
99 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
100
101         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
102
103         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
104
105 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
106
107         * appdomain.c:
108         * marshal.c: don't load all the assemblies from a domain into newly
109         created ones. The new domains might have different rules and load
110         assemblies from different locations. Fixes bug #76757.
111
112         Patch by Lluis. Conflicts resolved by Brian Crowell.
113
114 2006-08-16  Alp Toker  <alp@atoker.com>
115
116         * socket-io.c: First half of the fix for #79084.
117         Set sa_size to the length of the content, not that of the struct.
118         Don't add NULL suffix to the content, this should be done in
119         managed code if needed.
120
121 2006-08-14  Raja R Harinath  <rharinath@novell.com>
122
123         Fix part of #79012
124         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
125         mono_metadata_parse_type returns NULL.
126
127 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
128
129         * normalization-tables.h : new file for string normalization data.
130         * locales.c, locales.h, icall.c :
131           added load_normalization_resource() for string normalization,
132           and icall as well.
133         * Makefile.am : added normalization-tables.h to the sources.
134
135 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
136
137         * marshal.c: Add more helper functions to reduce code duplication and use them
138         everywhere.
139
140 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
141
142         * marshal.c: Fix non-x86 stdcall warnings.
143         
144         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
145         them everywhere.
146
147 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
148
149         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
150         type check on multi-dimensional arrays. Fixes #79000.
151
152 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
153
154         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
155         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
156         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
157         * class-internals.h: add is_com_object to class structure.
158         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
159         null checks to COM object marshalling. Fix .ctor call on RCW.
160         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
161         
162         All code is contributed under the MIT/X11 license.
163
164 2006-08-09  Dick Porter  <dick@ximian.com>
165
166         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
167         racing mono_monitor_allocator_lock() somewhere, so don't delete
168         the critical section for now.  Found by running and exiting
169         monodevelop.
170
171 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
172
173         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
174         (ves_icall_System_ComObject_FindInterface): Ditto.
175         (ves_icall_System_ComObject_CacheInterface): Ditto.
176
177         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
178         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
179
180 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
181
182         * threadpool.c: treat pipes from process asynchronous reads as sockets
183         when reading from them, so we get select/poll or epoll to wait for
184         data.
185
186 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
187
188         * loader.c: Fix a typo (CID #233) in the null check.
189
190 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
191
192         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
193         Hopefully fixes #78949.
194         
195         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
196         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
197         bytes. Fixes #78972.
198
199 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
200
201         * filewatcher.c: we need to set errno here.
202
203 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
204
205         * filewatcher.c: let Win32Exception get the error value.
206
207 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
208
209         * filewatcher.c: translate errno into win32 errors for Win32Exception
210         to know what happened.
211
212 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
213
214         * threadpool.c: Fix more warnings.
215
216         * assembly.c (search_loaded): Fix warnings.
217
218         * threadpool.c (mono_thread_pool_finish): Fix warnings.
219         (mono_async_invoke): Ditto.
220
221 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
222
223         * object.c (mono_remote_class_vtable): Need to create proxy vtable
224         entries for __ComObject type in addition to ComImport types.
225         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
226         about hash table.
227         
228         All code is contributed under the MIT/X11 license.
229
230 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
231
232         * image.c: avoid tentative loading of modulerefs that contain
233         no metadata (P/Invoke library names).
234
235 2006-07-28  Dick Porter  <dick@ximian.com>
236
237         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
238         mono_loader_lock() somewhere, so don't delete the critical section
239         for now.  Found by running and exiting monodevelop.
240
241 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
242
243         * filewatcher.c: define the inotify syscalls when we're building on
244         linux and have sys/syscall.h. The build system might not have support
245         for inotify but the target system might have it.
246
247 2006-07-26  Miguel de Icaza  <miguel@novell.com>
248
249         * domain.c: Documentation updates.
250
251         * loader.c (mono_free_method): Do not release the method
252         information if we are being profiled, as profilers will use this
253         information at shut down to present some data to the user.
254
255         This is needed so that the profiler does not crash, as the
256         profiler tends to keep MonoMethods around, and they might become
257         invalid if we free these.
258
259         (mono_get_method_constrained): Return the original CIL stream
260         method as well, so verification can be performed against it.
261
262 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
263
264         * filewatcher.[ch]: support for inotify file system watcher.
265         * icall.c: add new internal calls for the inotify file system watcher.
266
267 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
268
269         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
270         #78888.
271
272 2006-07-20  Dick Porter  <dick@ximian.com>
273
274         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
275         warning.
276
277 2006-07-20  Dick Porter  <dick@ximian.com>
278
279         * threads.c (start_wrapper): Do the thread cleanup while we still
280         hold a reference to its object.  Fixes bug 78123.
281
282 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
283
284         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
285         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
286           "managed-to-managed".
287         * icall.c: Redirect string constructors that take sbyte* to
288           ves_icall_System_String_ctor_RedirectToCreateString.
289         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
290           to CreateString () methods with matching signature.
291         * reflection.c: Use original security informations for
292           MONO_WRAPPER_MANAGED_TO_MANAGED.
293         * security-manager.c: Use original security informations for
294           MONO_WRAPPER_MANAGED_TO_MANAGED.
295         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
296           that is a placeholder and only its address should be used.
297         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
298           that is a placeholder and only its address should be used.
299
300 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
301
302         Begin implementing COM Interop.
303         * appdomain.c: Increment corlib version.
304         * class.c: Set ComImport classes' parent to __ComObject.
305         * loader.c: Mark cominterop methods as such.
306         * domain.c: Add __ComObject class to MonoDefaults structure.
307         * image.c: Add 2 hashtables to the image for COM Interop related methods
308         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
309         using the mempool allocator
310         
311         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
312         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
313         declaration for mono_metadata_type_dup_mp.
314         
315         * debug-helpers.c: Added strings for two additional wrapper types
316         * object.c: Create proxy objects for ComImport classes
317         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
318         and added __ComObject class to MonoDefaults structure.
319         
320         * object-internals.h: Finish MonoRealProxy definition, and add definition of
321         MonoComInteropProxy and MonoComObject.
322         
323         * marshal.c: Added support for COM Interop
324         (signature_cominterop): Converts managed signature to corresponding
325         unmanaged COM signature.
326         (cominterop_get_function_pointer): gets unmanaged function pointer via
327         COM object vtable
328         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
329         (cominterop_get_method_interface): returns interface type that method is defined on
330         (mono_mb_emit_cominterop_call): emits native call to function pointer
331         gotten from vtable
332         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
333         that matches signature of unmanaged function.
334         (cominterop_get_native_wrapper): wrapper around adjusted method call.
335         (cominterop_get_invoke): forwards call from proxy to __ComObject
336         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
337         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
338         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
339         
340         * marshal.h: Added Marshal icall declarations.
341         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
342         so we can access them in finalizer
343         
344 2006-07-14  Dick Porter  <dick@ximian.com>
345
346         * object.c (mono_type_initialization_cleanup): Fix a race
347         condition by temporarily commenting out the critical section
348         deletion.
349
350 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
351
352         * reflection.c (create_custom_attr): Fix some warnings.
353         (create_custom_attr_data): Ditto.
354         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
355         types. Fixes #78855.
356
357 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
358
359         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
360
361         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
362
363 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
364
365         * reflection.c (resolve_object): Add support for DynamicMethod.
366
367         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
368         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
369
370 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
371
372         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
373         don't leak GPtrArray's pdata has we have no use (nor free) for it.
374
375 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
376
377         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
378         Fixes #77888.
379
380 2006-06-30  Raja R Harinath  <rharinath@novell.com>
381
382         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
383         slightly: remove a shadow local variable.
384
385 2006-06-29  Raja R Harinath  <rharinath@novell.com>
386
387         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
388         definition that introduces the virtual function slot.
389         Also fix Coverity #105.
390
391 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
392
393         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
394         for dynamic assemblies. Fixes #78724.
395
396 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
397
398         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
399         Fixes #78722.
400
401 2006-06-21  Martin Baulig  <martin@ximian.com>
402
403         * reflection.c
404         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
405         fixes #76484.
406
407 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
408
409         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
410
411 2006-06-20  Raja R Harinath  <rharinath@novell.com>
412
413         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
414         nor TYPEREFs.
415         * class.c (mono_class_create_from_typespec): Add 'context' argument.
416         Inflate result if necessary.
417         (mono_class_get_full): Remove old version.  Rename from
418         'mono_class_get' and add 'context' argument.  Pass it to
419         ..._create_from_typespec.
420         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
421         (mono_ldtoken): Revert change below.
422
423 2006-06-20  Martin Baulig  <martin@ximian.com>
424
425         * class.c (mono_ldtoken): Don't pass the generic context to
426         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
427
428 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
429
430         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
431         and later freeing it. Fixes #78638.
432
433 2006-06-15  Miguel de Icaza  <miguel@novell.com>
434
435         * icall.c (mono_class_get_throw): Revert over-zealous error
436         throwing, the caller for mono_class_get_throw will cope with
437         errors when classes are not properly initialized already.
438
439         The code still copes with loader exceptions though.
440
441         Fixes the regression in reftype1 and reftype3 from the CAS tests.
442         
443 2006-06-14  Miguel de Icaza  <miguel@novell.com>
444
445         Fixes the `make run1' version of RuntimeAbort (to be commited,
446         source is in Bugzilla).
447         
448         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
449         FALSE on class loading failure instead of returning true.
450
451         * class.c (mono_class_create_from_typedef): It is possible for
452         mono_metadata_interfaces_from_typedef_full to fail if a class is
453         not found, cope with this.
454         
455
456 2006-06-14  Dick Porter  <dick@ximian.com>
457
458         * socket-io.c: 
459         * process.c: Fix a bunch of signed/unsigned warnings from gcc
460         4.1.1
461
462 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
463
464         * culture-info-table.h : oops, forgot to make it nsync with r61548.
465
466 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
467
468         * icall.c: Another fix for building mono in Visual Studio.
469
470 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
471
472         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
473         
474 2006-06-09  Martin Baulig  <martin@ximian.com>
475
476         * debug-mono-symfile.c: Put this back and really fix it this
477         time. Sorry for all the trouble.
478
479 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
480
481         * icall.c (mono_class_get_throw): Fix a warning.
482         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
483         ReflectionTypeLoadException if needed. Fixes #78606.
484
485         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
486         (mono_class_init): Ditto.
487
488         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
489         ref_only exceptions.
490         (mono_loader_clear_error): Make this work even if there is no error.
491
492 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
493
494         * object-internals.h marshal.c marshal.h icall.c: Implement method 
495         Marshal.GetComSlotForMethodInfo using internal call.
496
497 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
498
499         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
500         a function for signalling it.
501
502         * class.c (mono_class_from_typeref): Use the new kind of loader error when
503         a referenced assembly is not found.
504
505         * loader.c (mono_loader_error_prepare_exception): Add support for 
506         LOADER_ERROR_ASSEMBLY. Fix formatting.
507
508 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
509
510         * domain.c appdomain.c class-internals.h marshal.c: Add support 
511         for VARIANT marshalling on windows and increment corlib version
512         since Variant struct was added.
513
514 2006-06-03  Miguel de Icaza  <miguel@novell.com>
515
516         * debug-mono-symfile.c: Revert Martin's previous patch which broke
517         stack trace line information:
518
519         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
520         (Martin) when looking up B which is between A and C, return A not C.
521
522         Bug is #78573.
523
524         Thanks to Alexander Olk for tracking this down.
525
526 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
527
528         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
529         
530         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
531         avoid clobbering its value.
532         (mono_string_to_lpstr): Fix a warning on windows.
533
534 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
535
536         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
537
538         * reflection.c loader.c: Removed references to 'dummy' flag.
539
540         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
541
542         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
543         it gets GC tracking.
544
545         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
546         GC tracking.
547         
548         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
549
550         * marshal.c threadpool.c: Update callers of mono_async_result_new.
551
552         * appdomain.c: Bump corlib version.
553
554 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
555
556         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
557         CEE_STIND_REF when working with object references.
558
559 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
560
561         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
562         Fixes #78539.
563
564 2006-05-30  Miguel de Icaza  <miguel@novell.com>
565
566         * loader.c (method_from_memberref): Fix argument value for
567         mono_loader_set_error_method_load (I was passing the MonoClass
568         instead of the class name char *).
569
570 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
571
572         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
573         CEE_STIND_REF when working with object references.
574
575 2006-05-30  Martin Baulig  <martin@ximian.com>
576
577         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
578         mono_method_full_name() change and replace the ':' with a '.'
579         here.
580
581 2006-05-30  Martin Baulig  <martin@ximian.com>
582
583         * debug-mono-symfile.c
584         (mono_debug_symfile_lookup_location): Fix the algorithm:
585         when looking up B which is between A and C, return A not C.
586
587 2006-05-29  Martin Baulig  <martin@ximian.com>
588
589         * mono-debug.h
590         (MonoDebugMethodInfo): Make the typedef public.
591         (MonoDebugSourceLocation): New public struct.
592
593         * mono-debug.c
594         (mono_debug_source_location_from_address): Removed.
595         (mono_debug_source_location_from_il_offset): Removed.
596         (mono_debug_il_offset_from_address): Removed.
597         (mono_debug_address_from_il_offset): Removed.
598         (mono_debug_lookup_method): New public function.
599         (mono_debug_lookup_source_location): New public function; replaces
600         the old mono_debug_source_location_from_*() functions; see the
601         inline documentation.
602         (mono_debug_free_source_location): New public function.
603         (mono_debug_print_stack_frame): New public function; see the
604         inline documentation.
605
606         * debug-mono-symfile.c
607         (mono_debug_find_source_location): Renamed into
608         mono_debug_symfile_lookup_location(); only take a
609         `MonoDebugMethodInfo *' and an `offset' argument; added inline
610         documentation.
611         (mono_debug_find_method): Renamed into
612         mono_debug_symfile_lookup_method().
613
614 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
615
616         * assembly.c (mono_assembly_open_full): Dont overwrite the status
617         returned by mono_image_open_full ().
618
619         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
620         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
621         #78517.
622
623         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
624         #78518.
625
626 2006-05-27  Miguel de Icaza  <miguel@novell.com>
627
628         * class.c (mono_class_from_typeref): handle missing images
629         earlier, deals with bug #78418.   Refactor code; 
630
631         Fix a warning introduced in my previous commit (some stale code
632         from before I revisited my patch).
633
634         * class.c (mono_class_create_from_typedef): On failure, remove the
635         class from the MonoImage->class_cache as the class is not
636         initialized;   Fixes the leak pointed out by Paolo.
637
638 2006-05-25  Dick Porter  <dick@ximian.com>
639
640         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
641         DeleteCriticalSections until I figure out which one may still be
642         sometimes locked when mono_thread_cleanup is called.
643
644 2006-05-24  Dick Porter  <dick@ximian.com>
645
646         * threads.c (mono_thread_cleanup): Move the threading cleanup out
647         of mono_thread_manage and back into its own function, so it can be
648         called after the finalizer thread has finished.
649
650         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
651
652 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
653
654         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
655         Fixes #78495.
656
657         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
658         with non-blittable elements.
659         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
660
661 2006-05-24  Martin Baulig  <martin@ximian.com>
662
663         * mono-debug-debugger.h (MonoDebuggerEvent): Added
664         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
665
666         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
667         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
668         `mono_debugger_event_handler' to NULL.
669
670 2006-05-24  Martin Baulig  <martin@ximian.com>
671
672         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
673
674 2006-05-24  Martin Baulig  <martin@ximian.com>
675
676         * mono-debug-debugger.h
677         (mono_debugger_create_notification_function): Added
678         `MonoCodeManager *' argument.
679
680 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
681
682         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
683
684 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
685
686         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
687         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
688         implementation.
689
690 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
691
692         * icall.c: precise GC support: objects can't be stored in unmanaged
693         memory anymore, even if they are kept alive by other references: since
694         they can move the GC needs to be able to always find them.
695
696 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
697
698         * object.c: precise GC support for static fields. Support
699         for moving GCs: write barriers and pinned allocation for interned
700         strings.
701
702 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
703
704         * domain.c, domain-internals.h: precise GC support for the MonoDomain
705         structure.
706
707 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
708
709         * class.c, gc.c: sgen and precise GC updates.
710
711 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
712
713         * marshal.h, marshal.c: added write barrier wrapper and precise type
714         fixes.
715
716 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
717
718         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
719         support.
720
721 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
722
723         * reflection.c: precise and sgen GC updates.
724
725 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
726
727         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
728
729 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
730
731         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
732
733 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
734
735         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
736         MONO_TYPE_OBJECT. Fixes #78462.
737
738 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
739
740         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
741         and blittable types.
742
743 2006-05-17  Miguel de Icaza  <miguel@novell.com>
744
745         * class.c (mono_class_get_exception_for_failure): Implement parts
746         of a TODO: if the loader error is set (instead of the class
747         error), we return a Loader exception that can be properly thrown
748         elsewhere.
749
750         This was exposed by some Winforms 2.0 code that I tried to run
751         (Atsushi pointed me to it).
752
753 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
754
755         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
756         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
757         
758         * marshal.c (emit_marshal_vtype): Add limited support for 
759         UnmanagedType.LPStruct. Fixes #78427.
760
761         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
762         Applied a patch from kangaroo to fix #77523.
763
764 2006-05-17  Martin Baulig  <martin@ximian.com>
765
766         * threads.c
767         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
768         (debugger_thread_created): Removed.
769         (debugger_thread_exited): Removed.
770
771 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
772
773         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
774
775         * object-internals.h (MonoReflectionResource): Sync with managed version.
776
777 2006-05-12  Wade Berrier <wberrier@novell.com>
778
779         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
780
781 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
782
783         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
784         functions try to allocate from the image mempool.
785
786 2006-05-12  Dick Porter  <dick@ximian.com>
787
788         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
789
790 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
791
792         * object.c: The FieldGetter and FieldSetter methods require the full
793         name of the class, not only the name. Fixes bug #78277.
794
795 2006-05-11  Miguel de Icaza  <miguel@novell.com>
796
797         * loader.c (method_from_memberref): Do not pass the NULL klass to
798         mono_loader_set_error_() methods.  Pass the non-NULL value
799         (class). 
800
801 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
802
803         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
804         (mono_assembly_close): Null out assembly->image->references after freeing it.
805
806         * image.c (mono_image_close): Free image->references.
807         
808         * reflection.c (mono_image_basic_init): Fix a small memory leak.
809
810 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
811
812         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
813         before checking if it's NULL (g_assert).
814
815 2006-05-10  Martin Baulig  <martin@ximian.com>
816
817         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
818         I thought I already killed that two months ago, but now it somehow reappeared.
819
820 2006-05-10  Martin Baulig  <martin@ximian.com>
821
822         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
823
824 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
825
826         * reflection.c: Allocate memory for dynamically created methods in the image
827         mempools.
828
829 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
830
831         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
832         don't use the ad pointer before checking if it's NULL (g_assert).
833
834 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
835
836         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
837         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
838
839         * marshal.c: Allocate all signatures from mempools.
840
841         * marshal.c: Allocate some more signatures from mempools.
842
843 2006-05-09  Miguel de Icaza  <miguel@novell.com>
844
845         * object.c (mono_load_remote_field): The code used to provide a
846         temporary variable for returning results if the user did not
847         provide a result pointer.  But our temporary variable was allocted
848         on the satck.
849
850         Fix calling code to always pass a result area.   Coverity ID 103.
851
852 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
853
854         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
855         value, not the old. Fixes #78312.
856         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
857
858         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
859         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
860         per-image cache.
861
862         * assembly.c (mono_assembly_close): Free image->references.
863
864         * assembly.c (mono_assembly_names_equal): Fix a warning.
865         (mono_assemblies_cleanup): Cleanup more global data.
866
867         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
868
869         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
870         ptr_cache and image->modules.
871
872         * image.c (mono_image_init): Allocate array_cache lazily.
873         
874 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
875
876         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
877         behavior was changed recently and has bad side effects.
878
879 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
880
881         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
882         
883         * assembly.c (mono_assembly_close): Remove a debug printf.
884
885         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
886
887         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
888         to also allow for temporary references between mono_image_open ()/close ().
889
890         * domain.c (get_runtimes_from_exe): Add a FIXME.        
891
892 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
893
894         * marshal.c: Fix support for dynamic methods.
895
896         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
897
898         * marshal.c (mono_marshal_cleanup): New cleanup function.
899
900         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
901         image mempools.
902
903         * class.c (mono_class_init): Fix leaking class->nested_classes.
904
905         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
906
907         * image.c (mono_image_init): Initialize the new cashes.
908
909         * image.c (mono_image_close): Destroy the new cashes.
910
911         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
912
913         * mempool.c (mono_mempool_strdup): New helper function.
914
915         * class-internals.h: Add prototype for mono_loader_unlock ().
916
917         * domain.c (mono_jit_info_table_find): Fix a warning.
918         (mono_debugger_check_runtime_version): Ditto.
919
920         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
921         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
922         functions to these modules.
923
924         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
925         metadata modules.
926         
927         * marshal.c (mono_free_bstr): Fix a warning.
928
929         * assembly.c (mono_assembly_open_full): Fix another small leak.
930
931         * object.c: Fix some unload leaks in the remoting code.
932
933         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
934         function.
935
936         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
937
938         * reflection.c: Fix some unload leaks in dynamic assemblies.
939
940 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
941
942         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
943         * marshal.h: Add BSTR support on Win32
944         * icall.c: Add BSTR icalls
945         * metadata.h: Add BSTR enums
946
947 2006-04-28  Miguel de Icaza  <miguel@novell.com>
948
949         Work to catch the crash from #76795 and turn it into an
950         exception.   As I stubbed out pieces of the VisualBasic support,
951         I found a number of places where the code was failing and I added
952         checks to those places. 
953         
954         * metadata.c (do_mono_metadata_parse_generic_class): Make this
955         function return a status code.  If we fail to parse the signature
956         from mono_metadata_parse_generic_inst, return FALSE.
957
958         * loader.c (mono_get_method_from_token): If we fail to load the
959         method (mono_class_get) return NULL.   
960
961         * (method_from_memberref): Return NULL if we are unable to parse
962         the method signature
963
964         (mono_loader_error_prepare_exception): Since we now use the
965         loader_error flag internally to stop processing, and obtaining
966         exceptions that might be thrown will walk this code path the
967         proper way of going from a MonoLoaderError into a
968         MonoException was convoluted.   This new routine encapsulates the
969         process of turning the error into an exception and *clearing* the
970         error afterwards.
971         
972 2006-04-27  Miguel de Icaza  <miguel@novell.com>
973
974         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
975         with missing assemblies), and to cope with:
976
977                 * Missing fieldref from a non-existing assembly.
978                 * Missing methodref from a non-existing assembly.
979
980         The first batch of work to address *some* of the issues from 76661.
981         
982         * object.c (mono_class_create_runtime_vtable): If we fail to
983         initialize the class raise the exception here. 
984
985         * metadata.c (mono_class_get_overrides_full): If any methods fail
986         to load return the failure to the caller.
987
988         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
989         flagging assemblies that failed to load.   
990
991         Do not crash if we are unable to load the assembly.
992
993         (mono_assembly_close): Do nothing with REFERENCE_MISSING
994         assemblies. 
995
996         * loader.c (mono_loader_set_error_type_load): Change the
997         convention to always pass unallocated strings, so we make our own
998         copies (I know our own code had duplicated strings before, but
999         this keeps the normal conventions).
1000         (method_from_memberref): Call mono_loader_set_error_method_load
1001         for all possible failures of loading the class. 
1002         Remove assert, turn into a loader error.
1003
1004         (mono_loader_error_to_exception): Move this routine from mini
1005         (mini_loader_error_to_exception) there was no need to have that in
1006         mini. 
1007
1008         * class.c (mono_class_from_typeref): If we were not able to load
1009         the assembly with mono_assembly_load_reference, call the
1010         mono_loader_set_error_type_load to register the problem.
1011
1012         (mono_class_setup_fields): If we fail to load the type from
1013         mono_metadata_parse_type_full, call mono_class_set_failure and
1014         break from the loop.
1015
1016         If class->exception_type is set, we do not layout the fields as
1017         that might crash the runtime, and instead return (from breaking
1018         from the previous loop).
1019
1020         (mono_class_setup_vtable): This now returns a boolean indicating
1021         whether the table was properly setup.   The decision is driven by
1022         mono_class_get_overrides_full which might run into non-existing
1023         methods. 
1024         
1025         (mono_class_init): Returns TRUE on success or FALSE if there was a
1026         problem in loading the type (incorrect assemblies, missing
1027         assemblies, methods, etc).
1028
1029         When we call mono_class_setup_fields we also check for a potential
1030         error inside this call (either a class exception or a general
1031         loader exception).
1032
1033         (mono_class_create_from_typedef): If the parent fails to load
1034         (calling mono_class_get_full) return NULL.
1035         
1036         ** Important **
1037
1038         calls to mono_metadata_parse_type_full should be checked
1039         everywhere and set the mono_class_set_failure
1040         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
1041
1042         The current patch checks the places where my manually constructed
1043         tests show the errors are showing up, but we should do it
1044         everywhere. 
1045
1046         ** Important2 **
1047
1048         mono_class_init return values should be tested everywhere, like
1049         the previous case this is something that we should audit
1050         everywhere and not only on the cases exposed by the tests I
1051         created. 
1052
1053 2006-04-26  Miguel de Icaza  <miguel@novell.com>
1054
1055         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
1056         boolean parameter and instead pass the information on `options'
1057         parameter (FileOptions).
1058
1059         * icall.c: Register the new signature for MonoIO.Open.
1060
1061         * debug-helpers.c (dis_one): Trying to understand how coverity
1062         works.  Fix Run 5, item 78.
1063
1064 2006-04-26  Dick Porter  <dick@ximian.com>
1065
1066         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
1067         dereference.
1068
1069 2006-04-25  Martin Baulig  <martin@ximian.com>
1070
1071         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
1072
1073         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
1074         debugger_thread_created().
1075         (debugger_gc_push_all_stacks): Don't handle the main thread in any
1076         special way.
1077         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
1078         (mono_debugger_finalize_threads): New function; undo the effects
1079         of mono_debugger_init_threads().
1080         (mono_debugger_create_all_threads): Removed.
1081
1082 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
1083
1084         * image.c (mono_image_close): Tidy up trace messages.
1085
1086         * assembly.c (mono_assembly_close): Ditto.
1087
1088         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
1089         no longer references an already freed assembly. Fixes #78168.
1090
1091 2006-04-21  Dick Porter  <dick@ximian.com>
1092
1093         * threads.c (mono_thread_detach): Fix reference counting when
1094         detaching threads.
1095
1096 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
1097
1098         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
1099         #78155.
1100
1101 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
1102
1103         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
1104         (mono_type_to_stind): Ditto.
1105
1106         * marshal.c: Use the new helper functions to simplify code.
1107
1108         * image.c (mono_image_close): Add some code for help debug assembly unloading
1109         problems.
1110
1111         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
1112         image mempool.
1113
1114         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
1115         assembly was already loaded in another appdomain. Fixes #78083.
1116
1117 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
1118
1119         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
1120         referenced assemblies.
1121         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
1122
1123         * domain.c (mono_domain_free): Add a trace message.
1124
1125         * appdomain.c (add_assemblies_to_domain): Ditto.        
1126
1127         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
1128         field.  
1129
1130 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1131
1132         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
1133
1134 2006-04-12  Martin Baulig  <martin@ximian.com>
1135
1136         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
1137         `USE_INCLUDED_LIBGC'.   
1138
1139 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
1140
1141         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
1142         the patch contains ../ and a small directory name later. Hopefully fixes
1143         #78035.
1144
1145 2006-04-10  Martin Baulig  <martin@ximian.com>
1146
1147         Clean up the debugger's thread-handling code.
1148
1149         The debugger's thread-handling code has been moved from
1150         ../mini/debug-debugger.c to threads.c.  We now iterate directly
1151         over the `threads' hash, keep track of exiting threads and also
1152         use proper locking.
1153
1154         We can now debug XSP and XSP based applications with the debugger.
1155
1156         * object-internals.h (MonoThread): Added `gpointer end_stack'.
1157
1158         * threads.h
1159         (MonoThreadCallbacks): Removed; this was only used by the debugger.
1160         (mono_install_thread_callbacks): Likewise.      
1161
1162         * threads.c (mono_thread_callbacks): Removed.
1163         (debugger_thread_created, debugger_thread_exited): New static functions.
1164         (start_wrapper): Call debugger_thread_created().
1165         (thread_cleanup): Call debugger_thread_exited().
1166         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
1167         (mono_debugger_init_threads): New public function.
1168         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
1169         iterate directly over the `threads' hash and also use proper locking.
1170
1171         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
1172
1173         * mono-debug-debugger.h
1174         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
1175
1176 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
1177
1178         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
1179         argument type=array. Fixes #78057.
1180
1181 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
1182
1183         * culture-info-table.h : regenerated. Fixed bug #69652.
1184
1185 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
1186
1187         * loader.c metadata.c: Reapply a variant r59116.
1188         
1189         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
1190
1191         * class.c (mono_class_setup_interface_offsets): New internal function.
1192
1193         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
1194         interfaces too. Fixes #77398.
1195
1196         * reflection.c (encode_cattr_value): Add support for 
1197         parameter type=object, argument type=array.
1198         (load_cattr_value): Ditto. Fixes #77916.
1199
1200         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
1201         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
1202
1203         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
1204         a byval char array and CharSet is Ansi.
1205
1206         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
1207
1208 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
1209
1210         * metadata.c: Add some locking comments.
1211         
1212         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
1213         mempool.
1214         (mono_metadata_free_method_signature): Don't free the signature itself.
1215
1216         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
1217
1218         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
1219         reference the same MonoImage.
1220         (mono_assembly_load_from_full): Add an assert.
1221
1222 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
1223
1224         * image.c (mono_image_close): Don't put the image we are about to free into the
1225         loaded_images_guid_hash.
1226
1227         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
1228         to reduce code duplication.
1229
1230         * marshal.c: Register the native functions called by this module as icalls, to
1231         somewhat centralize the creation of MonoMethodSignature's.
1232
1233         * loader.c (mono_method_signature): Add a cache for method signatures.
1234
1235         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
1236         the parameter attributes of a method.
1237         (mono_metadata_parse_method_signature_full): Refactored the computation of
1238         parameter attributes into a separate function. Also avoid one allocation in
1239         most cases.
1240
1241         * assembly.c (mono_assembly_close): Ditto.
1242
1243         * image.c (mono_image_close): Log trace messages with INFO level.
1244
1245         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
1246
1247         * image.c reflection.c: Correct reference counting of image modules.
1248         
1249         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
1250         of this function from the image mempool.
1251         
1252         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
1253         to allow more cached types to be used.
1254
1255         * mono-debug.c (mono_debug_add_method): Appled patch from
1256         David S. Miller  <davem@sunset.davemloft.net>: Access 
1257         minfo->lexical_blocks[] entry elements using read32().
1258
1259 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
1260
1261         * loader.c (mono_free_method): No longer free the method header for non-dynamic
1262         methods as it is allocated from the mempool.
1263
1264         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
1265         image mempool.
1266
1267         * metadata-internals.h: Add comments describing the reference counting scheme
1268         used for MonoImage and MonoAssembly.
1269
1270         * image.c assembly.c reflection.c: Rework reference counting of images and 
1271         assemblies so they are freed when the runtime is shut down. Free some 
1272         additional memory structures when an image is unloaded.
1273         
1274 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
1275
1276         * class.c loader.c reflection.c: Allocate more data structures in
1277         the image mempool.
1278
1279 2006-03-31  Miguel de Icaza  <miguel@novell.com>
1280
1281         * icall.c
1282         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
1283         build on pre glib 2.4 systems.
1284
1285 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
1286
1287         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
1288
1289         * icall.c: Fix some warnings.
1290
1291 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
1292
1293         * culture-info-table.h : regenerated.
1294
1295 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
1296
1297         * threads.c, object-internals.h, verify.c: changed the culture caching
1298         code to use a normal MonoArray for storage so the GC can keep track of
1299         them easily. Fixed bits of the cache logic, too and simplified the
1300         code.
1301
1302 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
1303
1304         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
1305         thread for non-Boehm GCs.
1306
1307 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
1308
1309         * domain.c, object.c, domain-internals.h: reduce the amount of memory
1310         needed to keep track of the data for static fields.
1311
1312 2006-03-29  Raja R Harinath  <rharinath@novell.com>
1313
1314         Fix #75172
1315         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
1316         for interface classes.  Use 'num_methods' instead.
1317         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
1318         before using '->vtable_size' field.
1319
1320 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
1321
1322         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
1323         doesn't contain managed pointers, so use a normal hashtable.
1324
1325 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
1326
1327         * reflection.c, class-internals.h, domain.c: fixed handling of types
1328         used as values for objects in custom attributes (bug #77915):
1329
1330 2006-03-24  Martin Baulig  <martin@ximian.com>
1331
1332         * class.c (mono_class_setup_fields): Added support for generic
1333         instances; fixes #77580.
1334
1335 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1336
1337         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
1338
1339 2006-03-24  Dick Porter  <dick@ximian.com>
1340
1341         * file-io.c (get_file_attributes): More stat macro breakage.
1342         Fixes bug 77759.
1343
1344 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
1345
1346         * profiler.c: added the file=filename option in the default profiler
1347         to output the profile data to filename.
1348
1349 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1350
1351         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
1352         bug #77877.
1353
1354 2006-03-22  Martin Baulig  <martin@ximian.com>
1355
1356         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
1357         allocated `MonoClassField *' in `fb->handle'.
1358
1359 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
1360
1361         * class.c, image.c, metadata-internals.h: implemented new mechanism to
1362         allocate interface ID to save memory and allow better ID reuse on
1363         appdomain unload. setup_generic_vtable () removal from Martin.
1364
1365 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1366
1367         * object.h, appdomain.c, domain.c, exception.c, icall.c,
1368         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
1369         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
1370         write barriers for reference stores with managed objects accessed with
1371         C structures in the runtime and in embedding programs.
1372
1373 2006-03-20  Raja R Harinath  <rharinath@novell.com>
1374
1375         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
1376         'interface_id' and 'max_interface_id' fields of MonoClasses
1377         representing open generic types.
1378
1379 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
1380
1381         * object.h, object.c, icall.c: added functions to deal with
1382         storing valuetypes that contain references in managed objects.
1383         * reflection.c, string-icalls.c, threads.c, marshal.c: small
1384         fixes and comments around uses of mono_array_addr ().
1385
1386 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
1387
1388         * object.h, icall.c, monitor.c: object.GetHashCode ()
1389         implementation that supports the moving garbage collector.
1390
1391 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
1392
1393         * icall.c, threads-types.h, threads.c: implemented finalizer for
1394         LocalDataStoreSlot.
1395
1396 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
1397
1398         * metadata.c (mono_type_size): Add a fixme.
1399         (mono_type_stack_size): Ditto.
1400
1401         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
1402         'type_forwarders' field.
1403
1404         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
1405         attribute from net 2.0.
1406
1407         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
1408         from class.c.
1409
1410         * class.c (mono_class_setup_fields): Fix a warning.
1411         
1412         * class.c (mono_class_from_name): Add support for assemblyref entries
1413         in the EXPORTEDTYPE table.
1414
1415         * reflection.c: Add support for handling type forwarders under net 2.0.
1416
1417         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
1418         
1419 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
1420
1421         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
1422         overwriting entries in ModuleBuild->types, also clean up the code
1423         a little. Fixes #77774.
1424
1425 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
1426
1427         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
1428         load friend assembly info when present.
1429
1430 2006-03-14  Raja R Harinath  <rharinath@novell.com>
1431
1432         Fix crasher on gtest-158.cs.
1433         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
1434         the return value if the MonoClass we want is yet in an
1435         inconsistent state.
1436         * class.c (mono_class_create_from_typedef): Add an comment
1437         explaining an order dependency between mono_class_setup_parent and
1438         mono_class_setup_mono_type.
1439
1440 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
1441
1442         * class.c: documentation updates and events bug fix.
1443
1444 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
1445
1446         * class.c: some cleanup, locking fixes.
1447
1448 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
1449
1450         * class.c: fix the generics code to setup nested
1451         type info to the instantiated type (bug #77770).
1452
1453 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
1454
1455         * marshal.c: fixed a few type correctness issues.
1456
1457 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1458
1459         * loader.c: the Set/Get/Addrtess array methods should be public.
1460
1461 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
1462
1463         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
1464         
1465         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
1466         info->wrapper.
1467
1468 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
1469
1470         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
1471
1472         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
1473
1474         * mempool.c (mono_mempool_alloc): Speed this up a bit.
1475         (mono_mempool_alloc0): Ditto.
1476
1477 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1478
1479         * socket-io.c:
1480         (create_object_from_sockaddr): it was allocating 4 extra bytes
1481         for the AF_UNIX data. Fixes bug #77747.
1482
1483 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
1484
1485         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
1486
1487 2006-03-09  Dick Porter  <dick@ximian.com>
1488
1489         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
1490         Fixes bug 76966 again.
1491
1492 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
1493
1494         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
1495         names from r57532
1496         * appdomain.c: Bumped corlib version to 48 (due to r57532)
1497
1498 2006-03-07  Martin Baulig  <martin@ximian.com>
1499
1500         * object.c
1501         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
1502
1503 2006-03-07  Martin Baulig  <martin@ximian.com>
1504
1505         * class.c
1506         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
1507         regression introduced in r56970; see gtest-252.cs.
1508
1509         * loader.c (mono_get_method_constrained): Correctly handle generic
1510         methods; see gtest-253.cs.
1511
1512 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
1513
1514         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
1515
1516 2006-03-04  Martin Baulig  <martin@ximian.com>
1517
1518         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
1519         compute the parent type at runtime, just like we're already doing
1520         it for interfaces.
1521
1522         * reflection.c
1523         (mono_reflection_bind_generic_parameters): Don't compute the
1524         parent type anymore.
1525
1526         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
1527
1528 2006-03-04  Martin Baulig  <martin@ximian.com>
1529
1530         * mono-debug-debugger.h
1531         (mono_debugger_create_notification_function): Allocate memory at
1532         runtime and return a pointer to it.
1533
1534 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
1535
1536         * assembly.c: Fix windows build.
1537         
1538         * assembly.c: Fix build.
1539
1540         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
1541
1542         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
1543         
1544 2006-03-03  Dick Porter  <dick@ximian.com>
1545
1546         * process.c
1547         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
1548         Check parameters before dereferencing them.  Fixes Aaron's part of
1549         bug 77393.
1550
1551 2006-03-03  Raja R Harinath  <rharinath@novell.com>
1552
1553         Fix performance regression.
1554         * loader.c (find_method_in_class): Add 'from_class' argument.
1555         Rename 'klass' argument to 'in_class'.  The signature is compared
1556         against the method in 'in_class', and the corresponding method is
1557         returned from 'from_class'.
1558         (find_method): Walk both 'in_class' and 'from_class' in parallel.
1559         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
1560         type definition and generic instantiation in parallel.
1561         (mono_get_method_constrained): Update to changes.
1562
1563 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
1564
1565         * threads.c: make sure the domain is correct, too when doing
1566         mono_thread_attach ().
1567
1568 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
1569
1570         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
1571         windows. Fixes #77683.
1572
1573 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
1574
1575         * object.h, *: introduced specific way to set elements of an array
1576         of references to be used as write barrier. Still need to audit the
1577         uses of mono_array_addr.
1578
1579 2006-03-01  Miguel de Icaza  <miguel@novell.com>
1580
1581         * object-internals.h: New field to cache the assmebly name, patch
1582         from Tambet Ingo (tambet@ximian.com)
1583
1584 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
1585
1586         * decimal.h, class-internals.h, metadata-internals.h,
1587         file-io.h: mark a few function declarations as internal, to
1588         reduce the number of PLT entries.
1589
1590 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1591
1592         * file-io.c: fix typo in warning message.
1593
1594 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
1595
1596         * loader.c: on unix, lookup the "*A" version of a function
1597         if charset is auto as a second option before failing.
1598
1599 2006-02-28  Raja R Harinath  <rharinath@novell.com>
1600
1601         * class.h (mono_class_inflate_generic_method): Revert to two
1602         argument version.
1603         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
1604         (mono_class_inflate_generic_method_full): Add.
1605         * class.c (mono_class_inflate_generic_method_full): Rename from
1606         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
1607         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
1608         * loader.c, reflection.c: Update to changes.
1609
1610 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
1611
1612         * icall.c: const fixes and small improvements.
1613
1614 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1615
1616         * threadpool.c: for asynchronous connect(), enable the same workaround
1617         for BSD 6 as for the Mac. Fixes bug #77637.
1618
1619 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
1620
1621         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
1622         formatted classes. Fixes #77524.
1623
1624 2006-02-24  Raja R Harinath  <rharinath@novell.com>
1625
1626         * class.c (inflate_generic_type): Add a couple more
1627         micro-optimizations.
1628         (inflate_generic_context): Don't use the 'gmethod' from
1629         'inflate_with'.
1630         (mono_class_inflate_generic_method): If the method has generic
1631         parameters, but the passed-in context doesn't have a 'gmethod',
1632         create one.  Use the possibly simplified generic instantiation
1633         from the declaring class instead of the one passed in.
1634
1635 2006-02-24  Raja R Harinath  <harinath@gmail.com>
1636
1637         Make generic method signature and method header handling lazy.
1638         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
1639         (inflate_generic_header): Likewise.
1640         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
1641         parameter to avoid inflating types.
1642         (mono_get_inflated_method): Empty out.
1643         * class.h (mono_class_inflate_generic_method): Update to changes.
1644         * loader.c (mono_get_method_from_token): Don't parse signature for
1645         generic methods, nor methods of generic classes.
1646         (mono_method_signature): Rename from 'mono_method_signature'.
1647         Inflate signature on demand.
1648         (mono_method_get_header): Inflate method header on demand.
1649         * reflection.c: Update to changes.
1650
1651 2006-02-23  Raja R Harinath  <rharinath@novell.com>
1652
1653         * metadata.c (mono_metadata_inflate_generic_inst): If the
1654         instantiation is closed, don't bother expanding it in the new
1655         context.
1656         * class.c (inflate_generic_class): If the generic instantiation
1657         doesn't change after inflation, return the argument itself.
1658         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
1659         Add bounds checks.
1660         (inflate_generic_context): If neither the generic class nor the
1661         generic method instantiations change, return the original context.
1662         * reflection.c (mono_method_get_object): Do
1663         'mono_get_inflated_method' before accessing the ->klass field.
1664         (inflate_mono_method): Don't create a MonoGenericMethod unless
1665         necessary.
1666         (inflate_method): Don't pass a constructed type as the declaring
1667         type of a methodbuilder.
1668
1669 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
1670
1671         * object.c: fix memory overwrite.
1672
1673 2006-02-22  Dick Porter  <dick@ximian.com>
1674
1675         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
1676         it doesn't work any more.
1677         (mono_threads_request_thread_dump): Fix unused variable warnings.
1678
1679 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
1680
1681         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
1682         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
1683         the public header file.
1684
1685 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
1686
1687         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
1688
1689 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
1690
1691         * class-internals.h, object.c: reduce the size of MonoVTable
1692         and store the interface_offsets array at negative offsets.
1693
1694 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
1695
1696         * metadata.c: tweak table descriptors data structures to reduce
1697         size and runtime relocations.
1698
1699 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1700
1701         * marshal.c: fix some types and opcodes to be type-safe
1702         in marshaling wrappers.
1703
1704 2006-02-21  Ankit Jain  <jankit@novell.com>
1705
1706         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
1707
1708 2006-02-21  Raja R Harinath  <rharinath@novell.com>
1709
1710         * metadata.c (get_constraints): Relax debugging checks for monodis.
1711
1712 2006-02-21  Ankit Jain  <jankit@novell.com>
1713
1714         * metadata.c (mono_metadata_load_generic_params): Move the code
1715         checking for ambiguous generic params from here to mono/dis/get.c
1716         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
1717
1718 2006-02-21  Raja R Harinath  <harinath@gmail.com>
1719
1720         Fix assertion triggered when compiling nemerle.
1721         * class.c (mono_get_shared_generic_inst): Rename from
1722         get_shared_inst and make non-static.
1723         * loader.c (mono_get_shared_generic_method): New.  Used to create
1724         the MonoGenericContext-equivalent of a MonoGenericContainer.
1725         (mono_get_method_from_token): Initialize the 'context' field of
1726         the created MonoGenericContainer.
1727         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
1728         * metadata.c (get_constraints): Add sanity check.
1729         * class-internals.h: Add new internal methods.
1730
1731         * reflection.c (verify_safe_for_managed_space): New sanity check.
1732         Currently checks that owner-less generic parameters aren't allowed
1733         in managed space.
1734         (mono_type_get_object): Use it.
1735         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
1736         that are now in mono_type_get_object.
1737         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
1738
1739 2006-02-19  Raja R Harinath  <harinath@gmail.com>
1740
1741         * metadata.c (mono_type_create_from_typespec): Rename from
1742         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
1743         argument and caching of types in the generic container.
1744         (unwrap_arrays, find_generic_param): Remove.
1745         * metadata-internals.h: Update.
1746         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
1747
1748 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
1749
1750         * class.c (mono_class_get_exception_for_failure): Fix a warning.
1751
1752         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
1753         return values. Fixes #77581.
1754
1755         * class.c (mono_fnptr_class_get): Switch name and name_space.
1756
1757         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
1758         classes and add support for [In, Out] attributes.
1759         (mono_marshal_free_asany): Ditto. Fixes #77524.
1760
1761 2006-02-18  Raja R Harinath  <harinath@gmail.com>
1762
1763         * class.c (mono_class_from_generic_parameter): Make more robust to
1764         incomplete MonoGenericContainers from monodis.
1765
1766 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1767
1768         * class-internals.h: added some more exception types.
1769         * class.c, metadata.c: added a few checks to handle missing
1770         types.
1771
1772 2006-02-17  Raja R Harinath  <rharinath@novell.com>
1773
1774         Use owner-less generic-params some more.
1775         * class.c (my_mono_class_from_generic_parameter): Remove.
1776         (mono_class_from_generic_parameter): Handle null image,
1777         param->name and param->owner.
1778         (mono_class_from_mono_type): Update.
1779         (mono_class_create_from_typespec): Remove 'container' parameter.
1780         If that parameter is non-null, the result is always inflated by
1781         'mono_class_get_full' anyway.
1782         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
1783         parameter.
1784         (mono_class_get_full): Update.
1785
1786         * class.c (inflate_generic_type) [GENERICINST]: If the generic
1787         instance is not open, don't bother inflating.
1788         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
1789         parse metadata for inflated classes.
1790         (_mono_class_get): Change GenericContext* parameter to
1791         GenericContainer*.
1792         (mono_class_create_from_typespec): Likewise.  Simplify, and
1793         implement trivially.  All the cases are handled in
1794         mono_class_from_mono_type.  Don't inflate returned class.
1795         (mono_class_get_full): Delegate GENERICINST optimization to
1796         inflate_generic_type.
1797         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
1798
1799 2006-02-16  Dick Porter  <dick@ximian.com>
1800
1801         * socket-io.c (create_object_from_sockaddr): Fix typo.
1802         (create_sockaddr_from_object): Check array lengths before
1803         potentially accessing items off the end.
1804         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
1805         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
1806         (ves_icall_System_Net_Sockets_Socket_Send_internal)
1807         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
1808         length checks to avoid wraparound overflows.
1809         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
1810         contents of the array of sockets
1811         (hostent_to_IPHostEntry2)
1812         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
1813         Check return value of inet_ntop ().
1814         (addrinfo_to_IPHostEntry): Fix typo
1815
1816 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1817
1818         Type metadata parsing doesn't use generic-instantiation information.
1819         * metadata.c (mono_metadata_parse_array_full): Change
1820         MonoGenericContext* parameter to MonoGenericContainer*.
1821         (mono_metadata_parse_type_full): Likewise.
1822         (mono_type_create_from_typespec_full): Likewise.
1823         (mono_metadata_parse_mh_full): Likewise.
1824         (mono_metadata_parse_generic_inst): Likewise.
1825         (do_mono_metadata_parse_generic_class): Likewise.
1826         (do_mono_metadata_parse_type): Likewise.
1827         * metadata-internals.h: Update to changes.
1828         * class.c (mono_class_find_enum_basetype): Likewise.
1829         (mono_class_setup_fields): Likewise.
1830         (mono_class_create_from_typespec): Likewise.
1831         * loader.c (method_from_methodspec): Likewise.
1832         (mono_get_method_from_token): Likewise.
1833         (mono_method_get_header): Likewise.
1834
1835 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
1836
1837         * marshal.c: handle additional GENERICINST case (patch from
1838         Thong Nguyen <tum@veridicus.com>).
1839         Fix a few cases where LDIND_I/STIND_I was used for references.
1840
1841 2006-02-16  Raja R Harinath  <rharinath@novell.com>
1842
1843         * reflection.c (mono_reflection_get_token): Remove unused variable.
1844
1845 2006-02-16  Martin Baulig  <martin@ximian.com>
1846
1847         * reflection.c (mono_reflection_get_token): Add support for fields
1848         in instantiated generic types.
1849
1850         * icall.c
1851         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
1852
1853 2006-02-15  Martin Baulig  <martin@ximian.com>
1854
1855         * icall.c
1856         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
1857         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
1858         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
1859         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
1860
1861 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
1862
1863         * class.c, metadata.c, metadata.h, object.c, icall.c,
1864         marshal.c: changed mono_type_get_underlying_type () to do
1865         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
1866         Fixed handling of instantiated generic valuetypes (bug #75479).
1867
1868 2006-02-15  Raja R Harinath  <rharinath@novell.com>
1869
1870         * metadata.c (mono_metadata_decode_signed_value): Simplify.
1871         Delegate to mono_metadata_decode_value, and work on the returned value.
1872
1873         * icall.c (ves_icall_MonoType_GetGenericArguments):
1874         Add consistency check here too.
1875         
1876 2006-02-15  Ankit Jain  <jankit@novell.com>
1877
1878         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
1879         char/short etc.
1880
1881 2006-02-15  Ankit Jain  <jankit@novell.com>
1882
1883         * metadata.c (mono_metadata_decode_signed_value): New function to decode
1884         signed values, used only for representing lower bounds of arrays.
1885         (mono_metadata_parse_array_full): Use new
1886         mono_metadata_decode_signed_value to decode lower bounds.
1887
1888 2006-02-14  Martin Baulig  <martin@ximian.com>
1889
1890         * reflection.c
1891         (mono_reflection_get_token): Support "MonoGenericMethod" and
1892         "MonoGenericCMethod" and allow generic instances / methods.
1893
1894 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
1895
1896         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
1897         to obtain the terminal size using an ioctl.
1898
1899         * object.c (mono_nullable_init): Revert this as nullable reference
1900         types are not valid.
1901         (mono_nullable_box): Ditto.
1902
1903 2006-02-09  Dick Porter  <dick@ximian.com>
1904
1905         * threads.c (mono_thread_detach): Drop a reference to the thread
1906         we're detaching.
1907
1908 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
1909
1910         * object.c (mono_nullable_init): Handle nullable reference types.
1911         (mono_nullable_box): Ditto. Fixes #77446.
1912
1913 2006-02-07  Martin Baulig  <martin@ximian.com>
1914
1915         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
1916
1917 2006-02-07  Ankit Jain  <jankit@novell.com>
1918
1919         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
1920         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
1921         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
1922         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
1923         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
1924         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
1925
1926 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
1927
1928         * class.c (mono_class_create_generic): Set type_token as well.
1929
1930         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
1931         compatible with MS.
1932
1933 2006-02-02  Martin Baulig  <martin@ximian.com>
1934
1935         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
1936         has never been used so far.
1937
1938 2006-02-02  Martin Baulig  <martin@ximian.com>
1939
1940         * mono-debug-debugger.h: Changed comment at the top of this file;
1941         the header is not installed, but it's safe to #include it from
1942         within the JIT.
1943
1944         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
1945         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
1946
1947 2006-02-02  Martin Baulig  <martin@ximian.com>
1948
1949         * mono-debug.h
1950         (MonoSymbolTable): Removed the `metadata_info' field.
1951
1952         * mono-debug.c
1953         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
1954
1955         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
1956         (mono_debugger_add_builtin_types): Removed.
1957         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
1958         (mono_debugger_create_notification_function): We now operate on a
1959         pre-allocated area; take a `gpointer' and return `void'.
1960
1961         * mono-debug-debugger.c
1962         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
1963         (mono_debugger_add_builtin_types): Removed.
1964
1965 2006-02-02  Martin Baulig  <martin@ximian.com>
1966
1967         * threads.c (mono_debugger_create_all_threads): New public method.
1968
1969 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
1970
1971         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
1972         breaks on several platforms.
1973
1974 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
1975
1976         * assembly.c: the VS.NET build doesn't supply default values for
1977         MONO_ASSEMBLIES and MONO_CFG_DIR.
1978
1979 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
1980
1981         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
1982         helper function.
1983
1984         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
1985
1986         * loader.c (method_from_memberref): Fix a warning.
1987
1988         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
1989
1990         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
1991         with explicit layout. Fixes #77433.
1992
1993 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
1994
1995         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
1996         max_interface_id is initialized before using it. Fixes #77398.
1997         (ves_icall_Type_GetInterfaces): Ditto.
1998
1999 2006-01-30  Raja R Harinath  <rharinath@novell.com>
2000
2001         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2002         allocate memory for parameter attributes when parsing memberref
2003         signatures.
2004         * loader.c (mono_loader_set_error_method_load): Don't warn.
2005         (method_from_memberref): Ensure MissingMethodException gets thrown
2006         if method is not found.  Make warning more informative.
2007
2008 2006-01-29  Raja R Harinath  <harinath@gmail.com>
2009
2010         Fix #77397
2011         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
2012         return true if is byref.
2013         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
2014         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
2015         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
2016
2017 2006-01-27  Raja R Harinath  <rharinath@novell.com>
2018
2019         Fix tests/find-method.2.il
2020         * loader.c (find_method, find_method_in_class): Remove is_inflated
2021         argument.  Revert 2006-01-18 change.
2022         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
2023         is generic, search for method in its generic definition.
2024         * class.c (mono_class_setup_vtable_general): Print generic
2025         arguments of generic types in debugging printf.
2026
2027 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
2028
2029         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
2030
2031         * threads.c (mono_threads_request_thread_dump): New helper function.
2032
2033 2006-01-25  Raja R Harinath  <rharinath@novell.com>
2034
2035         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
2036
2037 2006-01-25  Ankit Jain  <jankit@novell.com>
2038
2039         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
2040         move definition to ..
2041         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
2042         
2043 2006-01-25  Ankit Jain  <jankit@novell.com>
2044             Raja R Harinath  <rharinath@novell.com>
2045
2046         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
2047         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
2048         as necessary.
2049
2050 2006-01-25  Martin Baulig  <martin@ximian.com>
2051
2052         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
2053         `MonoDebuggerThread' into debug-debugger.c.
2054
2055 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
2056
2057         * profiler.c: fix printing of data.
2058
2059 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
2060
2061         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
2062           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
2063
2064 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
2065
2066         * object.c: fix deadlock related to string interning.
2067
2068 2006-01-23  Martin Baulig  <martin@ximian.com>
2069
2070         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
2071
2072         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
2073
2074 2006-01-23  Martin Baulig  <martin@ximian.com>
2075
2076         * mono-debug.h: Moved the prototypes of some functions which are
2077         used by the JIT here from mono-debug-debugger.h.
2078
2079 2006-01-21  Martin Baulig  <martin@ximian.com>
2080
2081         * Makefile.am: Don't install mono-debug-debugger.h.
2082
2083 2006-01-21  Martin Baulig  <martin@ximian.com>
2084
2085         * mono-debug-debugger.h: Enforce the private status of this header
2086         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
2087         Moved some stuff from mono-debugger-jit-wrapper.h here.
2088
2089 2006-01-20  Raja R Harinath  <rharinath@novell.com>
2090
2091         * class.c (mono_class_from_typeref): Add a sanity test to help
2092         catch lack of assembly load/search hooks.
2093
2094 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
2095
2096         * marshal.c (emit_struct_conv): Relax the fields with same offset
2097         check even more. Fixes #77230.
2098
2099 2006-01-18  Martin Baulig  <martin@ximian.com>
2100
2101         * loader.c (find_method_in_class): Added `gboolean is_inflated'
2102         argument; if false, we compare the uninstantiated signatures.
2103         (method_from_memberref): Compare the uninstantiated signatures;
2104         fixes #76417.
2105
2106 2006-01-18  Robert Jordan  <robertj@gmx.net>
2107
2108         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
2109         Clear the weak link. Fixes bug #77170.
2110
2111         * gc.c (mono_gchandle_free):
2112         Reflect *-gc.c changes (tiny optimization).
2113
2114 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
2115
2116         * metadata.c (mono_metadata_signature_dup): Applied patch from
2117         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
2118         Fixes #77288.
2119
2120 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
2121
2122         * marshal.c (emit_struct_conv): Allow fields with the same offset when
2123         marshalling from native to managed code. Fixes #77230.
2124
2125 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2126
2127         * threadpool.c: fix problem (Mac only) when more than one asynchronous
2128         connect. Fixes bug #77020.
2129
2130 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
2131
2132         * class.c: fixed id assignement for nested interfaces (bug #77275).
2133         Added also better info for --print-vtable debugging.
2134
2135 2006-01-12  Martin Baulig  <martin@ximian.com>
2136
2137         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
2138         interfaces on-the-fly; fixes #76625.
2139
2140         * class-internals.h
2141         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
2142         don't need that anymore.
2143
2144 2006-01-12  Miguel de Icaza  <miguel@novell.com>
2145
2146         * socket-io.c
2147         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
2148         To avoid initing the nested_classes when not needed I turned the
2149         PeerCredData as a toplevel internal class, as it has to be shared
2150         anyways. 
2151
2152         Fixes the CASA issue.
2153
2154 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
2155
2156         * domain.c: Accessors for MonoJitInfo
2157
2158         * profiler-private.h: Add jitinfo to the end jit hook
2159
2160         * profiler.[ch]: Define new hooks, called after jitting which give
2161         the MonoJitInfo that was compiled
2162
2163 2006-01-10  Martin Baulig  <martin@ximian.com>
2164
2165         * class.c (mono_class_setup_events): Add support for generic
2166         classes; fixes #76440.
2167
2168 2006-01-06  Raja R Harinath  <rharinath@novell.com>
2169
2170         Fix #77160.
2171         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
2172         on passed-in method.
2173
2174 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2175
2176         * object.c (mono_runtime_invoke_array): Add Nullable support.
2177
2178         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
2179
2180 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
2181
2182         * file-io.c: Don't consider sockets as directory and avoid an endless
2183         loop. Fix bug #76966.
2184
2185 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
2186
2187         * object.c (mono_nullable_init): New helper function.
2188         (mono_nullable_box): Ditto.
2189
2190         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
2191
2192         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
2193
2194         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
2195         
2196 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
2197
2198         * class.c (mono_class_is_assignable_from): Make T assignable to 
2199         Nullable<T>.
2200
2201 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
2202
2203         * appdomain.c: Bump corlib version to 46.
2204         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
2205         serialization purpose) and changed ves_icall_System_Reflection_
2206         Assembly_get_code_base signature to accept a boolean (to escape, or 
2207         not, the assembly code base).
2208
2209 2005-12-23  Dick Porter  <dick@ximian.com>
2210
2211         * icall.c: 
2212         * threads-types.h: 
2213         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
2214         CreateEvent icall now returns "created" boolean parameter.
2215
2216 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
2217
2218         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
2219         #76967.
2220
2221         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
2222         when attr_klass is an interface. Fixes #77045.
2223
2224 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
2225
2226         * marshal.c (emit_struct_conv): Fix previous patch.
2227         
2228         * marshal.c (emit_struct_conv): Add a check for fields with the same
2229         offset.
2230
2231 2005-12-20  Raja R Harinath  <rharinath@novell.com>
2232
2233         Fix regression in Mono.C5.
2234         * class.c (mono_class_create_generic): If 'klass' is an interface
2235         set up the interface offsets.
2236         (mono_class_is_assignable_from): Don't throw away generic arguments.
2237
2238 2005-12-19  Raja R Harinath  <rharinath@novell.com>
2239
2240         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
2241         type parameters.
2242
2243 2005-12-15  Raja R Harinath  <rharinath@novell.com>
2244
2245         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
2246         dead store.
2247         (do_mono_metadata_parse_generic_class): Don't pass the current
2248         generic context when parsing the type being instantiated: it
2249         cannot use it, anyway.
2250
2251         * loader.c (method_from_memberref): Don't inflate a signature if
2252         it doesn't contain any type parameters.
2253
2254 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
2255
2256         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
2257
2258 2005-12-14  Martin Baulig  <martin@ximian.com>
2259
2260         * class.c
2261         (mono_type_get_name_recurse): Don't return null for type
2262         parameters and open generic classes.
2263         (mono_class_setup_methods): Don't exclude generic instances.
2264         (mono_get_unique_iid): Use different IDs for different
2265         instantiations of the same generic type.
2266         (mono_class_setup_vtable): Only use setup_generic_vtable() for
2267         open generic instances; create a normal vtable for closed generic
2268         instances.
2269         (mono_class_setup_vtable_general): We're now also called for
2270         closed generic instances.
2271
2272         * reflection.c
2273         (mono_reflection_bind_generic_parameters): Correctly use
2274         mono_metadata_lookup_generic_inst() everywhere.
2275
2276 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
2277
2278         * object.c (mono_class_create_runtime_vtable): Call 
2279         mono_class_setup_vtable ().
2280
2281         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
2282         function.
2283         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
2284         #76959.
2285
2286         * loader.c (mono_loader_set_error_type_load): Print the type load
2287         warnings to the console so they are more visible to the user.
2288         (mono_loader_set_error_method_load): Ditto.
2289
2290         * reflection.c (ensure_runtime_vtable): Revert the last change as it
2291         is still broken.
2292         
2293         * reflection.c (ensure_runtime_vtable): Fix build.
2294
2295         * reflection.c (ensure_runtime_vtable): Disable an optimization which
2296         doesn't work in all cases.
2297
2298 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
2299
2300         * object.c (mono_array_new_full): Treat a single dimensional array
2301         with 0 lower bounds as an szarray. Fixes #76973.
2302
2303         * reflection.c (custom_attr_visible): Really fix this.
2304
2305 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
2306
2307         * reflection.c (custom_attr_visible): Allow nested public attributes
2308         as well.
2309
2310         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
2311         interface check.
2312
2313 2005-12-12  Raja R Harinath  <harinath@gmail.com>
2314
2315         * class.c (set_generic_param_owner): Delete.
2316         (mono_class_create_from_typedef): Don't set ->owner field of
2317         generic parameters to "param containers" of enclosing classes.
2318         * reflection.c (mono_reflection_initialize_generic_parameter):
2319         Likewise.
2320
2321 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
2322
2323         * reflection.c (custom_attr_visible): Fix build.
2324
2325 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
2326
2327         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
2328         private attributes.
2329         
2330         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
2331         handling of null parameter defaults.
2332
2333 2005-12-09  Raja R Harinath  <rharinath@novell.com>
2334
2335         * class.c (mono_class_from_generic_parameter): Don't set
2336         klass->generic_container.
2337         (my_mono_class_from_generic_parameter): Likewise.
2338
2339 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
2340
2341         * reflection.c (load_public_key): Fix a warning.
2342         (method_encode_code): Fix unaligned accesses.
2343
2344 2005-12-07  Martin Baulig  <martin@ximian.com>
2345
2346         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
2347
2348         * reflection.c
2349         (write_generic_param_entry): Encode our custom attrs.
2350
2351         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
2352
2353 2005-12-07  Martin Baulig  <martin@ximian.com>
2354
2355         * reflection.c (encode_new_constraint): Removed; we don't use the
2356         `NewConstraintAttribute' anymore.
2357
2358 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
2359
2360         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
2361         not fire a TypeResolve event when Assembly.GetType () is called.
2362
2363 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
2364
2365         Beginning of support for nullable types in the runtime. Parts of
2366         this patch are from Martin.
2367
2368         * appdomain.c (MONO_CORLIB_VERSION): Bump
2369
2370         * domain.c (mono_init_internal): get the nullable type
2371
2372         * class.c (mono_class_is_nullable): New method
2373         (mono_class_get_nullable_param): New mehod
2374         (mono_class_create_generic): In types T? set cast_class to T
2375
2376         * class-internals.h (MonoDefaults): new nullable default class
2377         (mono_class_get_nullable_param, mono_class_get_nullable_param):
2378         new methods.
2379
2380 2005-12-05  Raja R Harinath  <rharinath@novell.com>
2381
2382         * metadata.c (select_container): New.  Refactor code to select the
2383         appropriate GenericContainer given the type of generic parameter
2384         we are looking for.
2385         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
2386         not a MonoGenericContext.  Use select_container.  Update parameters.
2387         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
2388         and MONO_TYPE_MVAR.
2389         (unwrap_arrays): Remove duplicate tests.
2390         (find_generic_param): Rename from 'has_same_context'.  Now walks a
2391         generic instantiated class to find any arguments that are generic
2392         parameters.
2393         (mono_type_create_from_typespec_full): Use find_generic_param to
2394         avoid evicting some generic instantiations from the typespec
2395         cache.
2396
2397 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
2398
2399         * reflection.c: fixed writing of doubles on ARM FPA.
2400
2401 2005-12-02  Robert Jordan  <robertj@gmx.net>
2402
2403         * icall.c: Fixed EventInfo.ReflectedType (#76829).
2404
2405 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2406
2407         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
2408         least on SUSE 10 they are not the same (on debian, they are just the
2409         same thing).
2410
2411 2005-12-01  Raja R Harinath  <rharinath@novell.com>
2412
2413         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
2414         DeclaringType for VARs and MVARs.
2415         * class.c (set_generic_param_owner): Fix initialization of owner
2416         fields.
2417
2418 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2419
2420         * icall.c: fixed Enum.ToObject() to correctly convert the values.
2421
2422 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2423
2424         * threadpool.c: workaround for a bug that shows up on the Mac:
2425         select()+connect() on a blocking socket is not like it should
2426         be, so we proceed to connect() in that case, wasting the I/O
2427         threadpool thread until connect succeedes. Fixes bug #75436.
2428
2429 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2430
2431         * threadpool.c: fix typo when setting file descriptor states.
2432
2433 2005-11-28  Raja R Harinath  <rharinath@novell.com>
2434
2435         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
2436         * metadata.c (mono_metadata_parse_method_signature_full): Don't
2437         create a temporary signature container.
2438         (mono_metadata_parse_generic_param): Update to changes.
2439         (mono_type_create_from_typespec_full): Update to changes.
2440         * loader.c (method_from_memberref): Don't use a
2441         MonoGenericContainer while parsing a memberref signature.
2442         (method_from_methodspec): Remove dead-store of the 'container'
2443         variable.  It's overwritten before use.
2444
2445         * metadata.c (mono_type_create_from_typespec_full): Make debugging
2446         checks tighter.
2447         (mono_metadata_parse_generic_param): Likewise.
2448         * loader.c (find_method_in_class): Does not need a
2449         MonoGenericContainer.  Use 'mono_method_signature' rather than
2450         'mono_method_signature_full'.
2451         (find_method, mono_get_method_constrained, method_from_memberref):
2452         Update to changes.
2453
2454         * metadata.c (mono_type_create_from_typespec_full): Ensure that
2455         owner-less generic-parameters are never evicted from the typespec
2456         cache.
2457
2458         * loader.c (method_from_memberref): Don't use the current context
2459         when parsing signatures.
2460         (method_from_methodspec, mono_get_method_from_token): Update to changes.
2461
2462         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
2463         side-effects in g_assert.
2464         * loader.c (mono_get_method_from_token): Resolve klass earlier so
2465         that we don't potentially lose information.
2466
2467 2005-11-26  Dick Porter  <dick@ximian.com>
2468
2469         * icall.c:
2470         * threads.c: icalls to implement basic (ie, not named)
2471         System.Threading.Semaphore.
2472
2473 2005-11-24  Dick Porter  <dick@ximian.com>
2474
2475         * process.c
2476         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
2477         Use GetProcessId() if it's available.
2478
2479 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
2480
2481         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
2482
2483 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2484             Ankit Jain  <jankit@novell.com>
2485
2486         * loader.c (mono_get_method_from_token): Initialize 'method' field
2487         of all generic parameters before parsing the signature.  Remove
2488         code that "fixed"-up MVAR references.
2489
2490 2005-11-23  Ankit Jain  <jankit@novell.com>
2491
2492         * metadata.c (mono_metadata_has_generic_params):
2493         (mono_metadata_load_generic_param_constraints):
2494         (mono_metadata_load_generic_params): Move duplicate code ...
2495         (mono_metadata_get_generic_param_row): ... here. Returns the
2496         first row-id in GenericParam table for a given owner (token).
2497         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
2498         prototype.
2499
2500 2005-11-23  Raja R Harinath  <rharinath@novell.com>
2501             Ankit Jain  <jankit@novell.com>
2502
2503         * metadata.c (mono_metadata_class_equal): Pass signature_only when
2504         comparing VARs too.
2505         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
2506         type->data.generic_param only if the type is an MVAR.
2507         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
2508         leak owner-less VARs and MVARs into managed space.
2509
2510 2005-11-21  Martin Baulig  <martin@ximian.com>
2511
2512         * class-internals.h
2513         (MonoMethod): Moved the `generic_container' here from
2514         `MonoMethodNormal' since we now also need it for
2515         `MonoMethodPInvoke';
2516         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
2517         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
2518         an union containing both `MonoMethodNormal' and
2519         `MonoMethodPInvoke'.
2520
2521         * loader.c
2522         (mono_get_method_from_token): Allow implementing generic methods
2523         as interncalls.
2524
2525         * threads.c
2526         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
2527         icall.
2528
2529 2005-11-17  Dick Porter  <dick@ximian.com>
2530
2531         * icall.c: 
2532         * process.h: 
2533         * process.c: Split the Process Start_internal icall into
2534         ShellExecuteEx_internal and CreateProcess_internal, which are
2535         called depending on whether UseShellExecute is true.  Fixes bug
2536         76670.
2537
2538         * appdomain.c (MONO_CORLIB_VERSION): Incremented
2539
2540 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
2541
2542         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
2543         'msize' parameters, use the information in 'mspec' instead.
2544         (emit_object_to_ptr_conv): Ditto.
2545
2546         * marshal.c (emit_struct_conv): Handle explicit layout structs with
2547         fields out of order. Fixes #76733.
2548
2549 2005-11-17  Ankit Jain  <jankit@novell.com>
2550
2551         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
2552
2553 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
2554
2555         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
2556           bug #76575.
2557
2558 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2559
2560         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
2561         for types with non-auto layout. Fixes #76717.
2562
2563 2005-11-16  Ankit Jain  <jankit@novell.com>
2564
2565         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
2566         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
2567         if generic_context is null.
2568           (mono_metadata_generic_param_equal): param->owner can be null.
2569           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
2570         null.
2571
2572 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
2573
2574         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
2575         the correct value.
2576
2577 2005-11-15  Martin Baulig  <martin@ximian.com>
2578
2579         * object.c (set_value): Use mono_class_from_mono_type() instead of
2580         the hack for generic instances; fixes #76136.
2581
2582 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
2583
2584         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
2585         fields.
2586
2587         * image.c (load_metadata_ptrs): Initialize the new fields.
2588
2589         * reflection.c (create_dynamic_mono_image): Ditto.
2590
2591         * reflection.c (build_compressed_metadata): Use the new fields.
2592
2593         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
2594         icall.
2595
2596         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
2597         icall.
2598         
2599 2005-11-15  Ankit Jain  <jankit@novell.com>
2600             Raja R Harinath  <harinath@gmail.com>
2601
2602         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
2603         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
2604         new per-generic_container cache if the cached MonoType's context matches
2605         the current context.
2606           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
2607         to the expected context.
2608           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
2609
2610 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2611
2612         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
2613         we changed the signature of an icall.
2614         * icall.c: Modify to mono_double_ParseImpl return true/false 
2615         depending on the success, instead of throwing the exception. This will
2616         help us in Double.TryParse methods.
2617         
2618 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
2619
2620         * marshal.c (emit_marshal_object): Throw an exception when
2621         marshalling 'object' instead of crashing. Fixes #76696.
2622
2623 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2624
2625         * class-internals.h: Add prototype for mono_type_get_full_name ().
2626
2627 2005-11-11  Dick Porter  <dick@ximian.com>
2628
2629         * threads.c (mono_thread_manage): Make sure the main thread has
2630         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
2631
2632 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
2633
2634         * loader.c (mono_loader_set_error_type_load): Log a warning to the
2635         console about the missing type.
2636         (mono_loader_set_error_method_load): Ditto.
2637
2638 2005-11-09  Miguel de Icaza  <miguel@novell.com>
2639
2640         * mono-config.c (mono_get_config_dir): Set the system defaults if
2641         none is specified.
2642
2643         * assembly.c (mono_set_dirs): New API entry point to set the
2644         assembly and the config directory in one call
2645
2646 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
2647
2648         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
2649         the ftnptr was created from a delegate in a domain other than the
2650         current domain. Fixes #75377.
2651
2652         * exception.h exception.c: Add mono_get_exception_not_supported ().
2653
2654 2005-11-08  Martin Baulig  <martin@ximian.com>
2655
2656         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
2657
2658 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
2659
2660         * security-manager.h: Added definitions to deal with strongname key 
2661         pairs bigger (and smaller) than 1024 bits.
2662         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
2663         adjust wrt the public key length being used.
2664
2665 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
2666
2667         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
2668           Windows build (r51396-51397).
2669
2670 2005-11-03  Martin Baulig  <martin@ximian.com>
2671
2672         * class.c (mono_class_setup_vtable_general): Also add generic
2673         methods to the vtable; fixes #76581.
2674
2675 2005-11-01  Miguel de Icaza  <miguel@novell.com>
2676
2677         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
2678         sure that we lookup GetString method from the System.Text.Encoding
2679         class, not the derived class or we get an empty method.
2680
2681         Fixed class #76612.
2682
2683 2005-10-25  Miguel de Icaza  <miguel@novell.com>
2684
2685         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
2686         if it has been previously set (embedders). 
2687
2688         Make mono_set_rootdir available also on Unix.
2689
2690 005-10-24  Robert Jordan  <robertj@gmx.net>
2691
2692         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
2693
2694 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
2695
2696         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
2697         only calls which are made to native code use this flag.
2698
2699         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
2700
2701 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
2702
2703         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
2704         Add support for FieldBuilders.
2705
2706 2005-10-29  Martin Baulig  <martin@ximian.com>
2707
2708         * mono-debug.c
2709         (mono_debug_using_mono_debugger): New public method; returns
2710         whether we're running inside the debugger.
2711
2712 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
2713
2714         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
2715         for Method/Constructor/FieldBuilders.
2716
2717 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
2718
2719         * reflection.c (module_add_cattrs): Save custom attributes for global methods
2720         and fields as well.
2721
2722 2005-10-26  Martin Baulig  <martin@ximian.com>
2723
2724         * mono-debug-debugger.c
2725         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
2726
2727 2005-10-24  Raja R Harinath  <harinath@gmail.com>
2728
2729         * icall.c (base64_to_byte_array): Don't pass an out-of-range
2730         integer to isspace.
2731
2732 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
2733
2734         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
2735         when passing valuetypes byref. Fixes #76502.
2736
2737 2005-10-19  Jackson Harper  <jackson@ximian.com>
2738
2739         * profiler.c: Don't put a . in front of types that are not in a
2740         namespace.
2741
2742 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
2743
2744         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
2745
2746 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
2747
2748         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
2749         #76436.
2750         (mono_marshal_get_ldflda_wrapper): Fix a warning.
2751
2752 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2753
2754         * assembly.c metadata-internals.h icall.c: Define an additional
2755         parameter for mono_assembly_name_parse_full, so we can avoid creating
2756         S.R.AssemblyName.Version when no version info wasn't passed.
2757         
2758 2005-10-09  Miguel de Icaza  <miguel@novell.com>
2759
2760         * class.c (mono_type_get_full_name): Reimplement method that was
2761         removed. 
2762
2763         * image.c: Some docs
2764
2765 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
2766
2767         * profiler.c (output_newobj_profile): Fix printing of Total memory
2768         on x86.
2769
2770 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2771
2772         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
2773
2774 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
2775
2776         * threads.c: remove debug output.
2777
2778 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
2779
2780         * threads.c (mono_thread_manage): Fix crashes if more than 64
2781         threads need to be aborted. Hopefully fixes #75899.
2782
2783         * assembly.c (mono_stringify_assembly_name): New helper function.
2784
2785         * class.c: Use mono_stringify_assembly_name instead of the similar
2786         static function.
2787
2788         * assembly.h assembly.c: Add support for calling a postload search 
2789         hook if an assembly cannot be loaded.
2790
2791         * appdomain.c: Register new search hooks which call the AssemblyResolve
2792         events in AppDomain. Fixes #75231
2793
2794 2005-10-07  Martin Baulig  <martin@ximian.com>
2795
2796         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
2797         methods without debug info.
2798
2799 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
2800
2801         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
2802         wrappers.
2803
2804 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2805
2806         * file-io.c: now that we return symlinks, use lstat and, when the file
2807         is a symbolic link, stat, to get the file attributes. Also avoid the
2808         conversion to/from utf16/external.
2809
2810 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
2811
2812         * class.c (mono_class_layout_fields): Compute klass->has_references
2813         correctly if an embedded valuetype is not yet initialized. Fixes
2814         #76331.
2815
2816 2005-10-04  Martin Baulig  <martin@ximian.com>
2817
2818         * metadata.c
2819         (mono_metadata_load_generic_param_constraints): New public
2820         function; splitted the constraints loading out from
2821         mono_metadata_load_generic_params().
2822
2823         * class.c (mono_class_create_from_typedef): Call
2824         mono_metadata_load_generic_param_constraints() after setting up
2825         the type and creating our parent; fixes #75329.
2826
2827 2005-10-04  Martin Baulig  <martin@ximian.com>
2828
2829         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
2830         non-dynamic parent classes.
2831
2832 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2833
2834         * file-io.c : win32 build fix (ETXTBSY seems not found).
2835
2836 2005-10-04  Martin Baulig  <martin@ximian.com>
2837
2838         * reflection.c
2839         (mono_image_get_methodspec_token): Make the cache actually work;
2840         fixes #75974.
2841
2842 2005-10-04  Martin Baulig  <martin@ximian.com>
2843
2844         * class.c (mono_class_name_from_token): Removed the unneccessary
2845         `MonoGenericContext *' argument.
2846
2847 2005-10-04  Martin Baulig  <martin@ximian.com>
2848
2849         * loader.c
2850         (method_from_methodspec): Make the caching work again; fixes the
2851         performance regression from #76262.
2852
2853 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2854
2855         * file-io.c:
2856         * file-io.h:
2857         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
2858         GetFileSystemEntries that performs the same work but without going
2859         into io-layer, locking, etc.
2860
2861 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
2862
2863         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
2864         ThreadState_Stopped as well. Fixes #76047.
2865
2866 2005-09-29  Martin Baulig  <martin@ximian.com>
2867
2868         * class.c
2869         (inflate_generic_context): If the new context has a `gmethod', set
2870         its `container' that that gmethod's `container'.
2871
2872         * metadata.c
2873         (mono_metadata_parse_generic_param): Simplify things;
2874         `generic_container = generic_context->container;' is just fine.
2875
2876         * loader.c (method_from_methodspec): Code cleanups.
2877
2878 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
2879
2880         * decimal.c: fix warning (and let gcc generate correct
2881         code on ARM with optimizations).
2882
2883 2005-09-28  Martin Baulig  <martin@ximian.com>
2884
2885         * loader.c
2886         (method_from_memberref): Added `MonoGenericContext *class_context'
2887         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
2888         (method_from_methodspec): If we're a memberref, use the enclosing
2889         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
2890
2891 2005-09-28  Martin Baulig  <martin@ximian.com>
2892
2893         * object.c (mono_runtime_invoke_array): Added support for
2894         MONO_TYPE_GENERICINST; fixes #75917.
2895
2896 2005-09-27  Martin Baulig  <martin@ximian.com>
2897
2898         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
2899         `k->byval_arg.type' to determine the actual type.
2900
2901         * loader.c (method_from_methodspec): Removed some hacks.
2902
2903 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
2904
2905         * class-internals.h (mono_field_is_deleted): Do the test for
2906         rtspecialname before we check the actual name of the field. This
2907         prevents us from dereferencing a pointer into the string table,
2908         saving us from accessing a few pages
2909
2910         * *.c: Replace the use of {Enter,Leave}CriticalSection with
2911         macros. This will allow a deadlock debugger to easily be plugged
2912         in.
2913
2914 2005-09-27  Martin Baulig  <martin@ximian.com>
2915
2916         * loader.c (method_from_methodspec): Create a "signature"
2917         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
2918
2919 2005-09-27  Martin Baulig  <martin@ximian.com>
2920
2921         * class.c
2922         (inflate_generic_class): Correctly set the new context's
2923         container.
2924
2925         * loader.c
2926         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
2927         instead of a `MonoGenericContext *'.
2928         (mono_method_signature_full): Take a `MonoGenericContainer *'
2929         instead of a `MonoGenericContext *'.
2930
2931         * metadata.c
2932         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
2933         instead of a `MonoGenericContext *'.
2934         (mono_metadata_parse_method_signature_full): Likewise.
2935
2936 2005-09-26  Martin Baulig  <martin@ximian.com>
2937
2938         * class.c
2939         (mono_class_from_generic_parameter): Set `klass->generic_container'
2940         (mono_class_from_generic_parameter): Likewise.
2941         (mono_bounded_array_class_get): We inherit the generic container
2942         from the element class.
2943
2944         * loader.c
2945         (find_method, find_method_in_class): Take a `MonoGenericContext *'
2946         argument rather than computing it here.
2947         (method_from_memberref): Correctly set the generic context before
2948         parsing the signature.  Fixes #75681.
2949
2950 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
2951
2952         * object.c (mono_class_has_special_static_fields): Fix warnings.
2953
2954 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2955
2956         * assembly.c: Add parse_public_key function, to
2957         par the public keys. Also added mono_assembly_name_parse_full,
2958         to define it the parsed key should be freed or not.
2959         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
2960         to parse a long format assembly name.
2961         * metadata-internals.h: Keep mono_assembly_name_parse_full as
2962         private, since calling it to preserve the key requires
2963         freeing it manually.
2964         
2965 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
2966
2967         * locales.c : removed HAVE_ICU part.
2968
2969 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
2970
2971         * object.c (mono_class_create_runtime_vtable): Avoid calling 
2972         field_is_special_static if the klass has no special static fields.
2973
2974         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
2975         (MonoCachedClassInfo): Likewise.
2976
2977         * object.c (mono_class_has_special_static_fields): New helper function.
2978
2979 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2980
2981         * class.c (mono_class_create_from_typedef): Don't call 
2982         interfaces_from_typedef_full for enums.
2983         (mono_class_create_from_typedef): Compute the base types of enums directly
2984         without calling mono_class_setup_fields ().
2985         (mono_class_find_enum_basetype): New helper function.
2986
2987         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
2988         one place inside the string heap.
2989         
2990 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
2991
2992         * class.c: locking fixes, code cleanups, some docs added.
2993         Allocate some data structures in the image mempool.
2994
2995 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
2996
2997         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
2998         the example code.
2999         
3000 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
3001
3002         * class-internals.h, class.c, reflection.c: reduce memory taken by
3003         MonoClass.
3004
3005 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
3006
3007         * metadata.c, metadata.h, loader.h: documentation updates, code and
3008         API cleanups.
3009
3010 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
3011
3012         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
3013         the example code.
3014
3015         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
3016         page faults caused by the runtime while reading metadata.
3017
3018 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3019
3020         * socket-io.c: the field names were changed 3 months ago and no one
3021         realized until bug #76077 got filed!
3022
3023 2005-09-20  Martin Baulig  <martin@ximian.com>
3024
3025         * icall.c (assembly_icalls): Removed some unused debugger icalls.
3026
3027 2005-09-20  Martin Baulig  <martin@ximian.com>
3028
3029         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
3030         write the rank into the class entry.
3031
3032 2005-09-20  Martin Baulig  <martin@ximian.com>
3033
3034         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
3035
3036 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
3037
3038         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3039
3040         * icall.c (custom_attrs_defined_internal): New icall.
3041
3042         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
3043         function.
3044         (mono_custom_attrs_construct_by_type): New helper function.
3045
3046 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
3047
3048         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
3049         terminate the resulting string. Fixes #76123.
3050
3051 2005-09-16  Martin Baulig  <martin@ximian.com>
3052
3053         * mono-debug.c
3054         (mono_debug_add_method): Ignore inflated methods for the moment.
3055
3056 2005-09-14  Martin Baulig  <martin@ximian.com>
3057
3058         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
3059
3060 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
3061
3062         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
3063         return a success/failure indication.
3064         (mono_metadata_interfaces_from_typedef_full): Ditto.
3065         (get_constraints): Ditto.
3066
3067 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
3068
3069         * marshal.c (emit_marshal_array): Fix handling of null arrays.
3070         
3071         * marshal.c (emit_marshal_array): Add support for returning string
3072         arrays from delegates. Fixes #76063.
3073
3074         * marshal.c: Use the emit_ldloc/stloc macros where possible.
3075
3076 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
3077
3078         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
3079         icall.
3080
3081 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
3082
3083         * reflection.c icall.c: Fix after mono_get_exception_type_load
3084         signature change.
3085
3086         * assembly.c (mono_assembly_get_assemblyref): New helper function.
3087         (mono_assembly_load_reference): Use the new helper.
3088
3089         * class-internals.h (MonoLoaderError): New structure containing 
3090         information about type loading errors.
3091
3092         * class-internals.h loader.c: Add APIs to store per-thread loader
3093         error information.
3094
3095         * loader.c class.c: Set the loader error if needed.
3096
3097         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
3098
3099 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
3100
3101         * decimal.c: fixed to handle the broken ARM fp format.
3102
3103 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
3104
3105         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
3106         broken.
3107
3108 2005-09-06  Martin Baulig  <martin@ximian.com>
3109
3110         * domain.c (supported_runtimes): Added v2.0.50727.
3111
3112 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
3113
3114         * culture-info.h: reduce the size of some structures.
3115
3116 2005-09-05  Martin Baulig  <martin@ximian.com>
3117
3118         Reflect latest API changes in the August CTP.
3119
3120         * icall.c
3121         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
3122         ("MonoType.HasGenericArguments"): Removed.
3123         ("MonoMethod.BindGenericParameters"): Renamed to
3124         "MakeGenericMethod".
3125         ("MethodBuilder.BindGenericParameters"): Renamed to
3126         "MakeGenericMethod".    
3127
3128 2005-09-05  Martin Baulig  <martin@ximian.com>
3129
3130         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
3131
3132 2005-09-05  Martin Baulig  <martin@ximian.com>
3133
3134         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3135
3136         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
3137         generic_container is non-NULL.
3138
3139 2005-09-05  Martin Baulig  <martin@ximian.com>
3140
3141         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3142
3143         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
3144
3145 2005-08-29  Michal Moskal  <malekith@nemerle.org>
3146
3147         * reflection.c (encode_locals,
3148         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
3149         for large generic types.
3150
3151 2005-09-05  Martin Baulig  <martin@ximian.com>
3152
3153         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3154
3155         * class.c (mono_dup_array_type): New public method.
3156         (mono_metadata_signature_deep_dup): New public method.
3157         (dup_type): Correctly duplicate array and function types.
3158
3159 2005-09-05  Martin Baulig  <martin@ximian.com>
3160
3161         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3162
3163         * reflection.c (get_default_param_value_blobs): Handle generic types
3164         and generic methods.
3165
3166 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
3167
3168         * class.c: Fixed error reporting (method/class were inversed) for 
3169         inheritance demands.
3170         * security-manager.c|h: Added the AppDomain when calling the managed
3171         System.Security.SecurityManager.InheritanceDemand method.
3172
3173 2005-09-01  Raja R Harinath  <rharinath@novell.com>
3174
3175         * reflection.c (encode_marshal_blob): 'marshaltype' and
3176         'marshaltyperef' are alternate sources for the custom marshaler
3177         name.
3178
3179 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
3180
3181         * class.c: fix creation of array classes with rank == 1
3182         (patch by Ankit Jain <jankit@novell.com>).
3183
3184 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
3185
3186         * object.c: fix check for creating the bound data for arrays vs
3187         szarrays.
3188
3189 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3190
3191         * object.c: configuration file name is now based on the executable name,
3192         not the image name. Fixes bug #75931.
3193
3194 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
3195
3196         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
3197         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
3198
3199 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
3200
3201         * rand.c: Use wincrypt.h instead of WinCrypt.h.
3202
3203 2005-08-24  Ankit Jain  <jankit@novell.com>
3204             Raja R Harinath  <rharinath@novell.com>
3205
3206         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
3207           called by it recursively.
3208           (mono_class_init): Remove special case in pending_init handling, since it's
3209           superseded by the fix to mono_class_from_typeref.
3210
3211 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
3212
3213         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
3214         BROKEN_THREAD_START stuff.
3215
3216 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
3217
3218         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
3219         trampoline.
3220
3221         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
3222         
3223         * object.c (mono_delegate_ctor): Replace the original function address with
3224         a delegate trampoline.
3225
3226 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
3227
3228         * icall.c: add boolean argument to base64_to_byte_array and 
3229         InternalFromBase64String to control whether a whitespace-only string
3230         is allowed (or should casue a FormatException to be thrown). We need
3231         this as the behavior has changed between MS.NET 1.x and 2.0, and we
3232         to match the MS behaviour in both profiles.
3233         * appdomain.c: Bump corlib version.
3234
3235 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3236
3237         This patch implements a big portion of publisher policy
3238         support, used to bind assembly versions and redirect
3239         one assembly from version A to version B.
3240
3241         * assembly.c:
3242         New GSList loaded_assembly_bindings, for storing the cached
3243         assembly bindings.
3244         (assembly_binding_maps_name): New static function for checking if a 
3245         assembly binding information maps an assembly name.
3246         (mono_assembly_binding_info_free): New function for freeing
3247         assembly binding information resources.
3248         (get_publisher_policy_info): New static function for retrieving 
3249         assembly binding information from a MonoImage.
3250         (compare_versions): New static function for comparing an assembly
3251         binding information data and the version of an assembly name.
3252         (check_policy_versions): New static function for checking if an
3253         assembly binding info mapping an assembly name is valid for it.
3254         (mono_assembly_load_publisher_policy): New static function for
3255         loading the 'policy.major.minor.MyAssembly' image for an assembly
3256         with an assembly name 'aname'.
3257         (mono_assembly_bind_version): New static function for updating
3258         assembly redirection.
3259         (mono_assembly_apply_binding): New static function for applying
3260         assembly binding.
3261         (search_binding_loaded): New static function for searching 
3262         loaded assembly binding infos in the cache domain.
3263         (mono_assembly_load_full): Don't apply assembly binding for
3264         reflection only assemblies.
3265
3266         * metadata-internals.h: Add MonoAssemblyBindingInfo,
3267         which contains information about assembly binding. Also
3268         declare signature for mono_config_parse_publisher_policy ()
3269         function, used to retrieve pub policy info.
3270         
3271         * mono-config.c:
3272         (publisher_policy_start): New static function used to parse publisher 
3273         policy config files.
3274         (publisher_policy_parser): New static MonoParseHandler containing 
3275         the functions used when parsing config files.
3276         (mono_config_parse_publisher_policy): New function for parsing
3277         publisher policy files.
3278         
3279 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
3280
3281         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
3282
3283         * marshal.c (mono_delegate_free_ftnptr): Ditto.
3284
3285         * object.c (mono_get_addr_from_ftnptr): New helper function.
3286
3287         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
3288
3289         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3290
3291 2005-08-19  Dick Porter  <dick@ximian.com>
3292
3293         * threads.c, threads.h, appdomain.c, appdomain.h,
3294         profiler-private.h, monitor.c, object.c, object-internals.h,
3295         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
3296         store the thread ID, so it can hold a 64 bit value if needed.
3297
3298 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
3299
3300         * reflection.c (mono_reflection_create_dynamic_method): Store the
3301         handle class into the method references as well so ldtoken works in
3302         dynamic methods.
3303
3304         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
3305         types.
3306
3307 2005-08-19  Ankit Jain <jankit@novell.com>
3308
3309         Fix #75847.
3310         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
3311           here rather than using the method signature of a arbitrary function
3312           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
3313           two arguments.
3314           Hack done with Harinath.
3315
3316 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3317
3318         * threadpool.c: disable printing stack traces when we get a exception
3319         in a threadpool thread. I need to do more testing to figure out which
3320         cases actually print this. Fixes bug #75828.
3321
3322 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3323
3324         * icall.c: there might be ignored whitespace after the last '='. This
3325         fixes length computation and bug #75840.
3326
3327 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
3328
3329         * assembly.c (mono_assembly_load_full): Consider .exe extension as
3330         well. Fixes #75809.
3331
3332         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
3333         #75784.
3334         
3335         * reflection.c (create_custom_attr_data): Ditto.
3336
3337 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
3338
3339         * locales.c, culture-info.h : removed RegionLCIDMap.
3340         * culture-info-tables.h : regenerated.
3341
3342 2005-08-16  Martin Baulig  <martin@ximian.com>
3343
3344         * class.c (mono_type_get_name_recurse): Small fix.
3345
3346 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
3347
3348         * locales.c : indentation fixie.
3349
3350 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
3351
3352         * object-internals.h,
3353           locales.h,
3354           locales.c,
3355           culture-info.h,
3356           icall.c : added RegionInfo table support.
3357         * culture-info-table.h : regenerated for region support.
3358
3359 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
3360
3361         * reflection.c (resolve_object): handle all kinds of MonoMethod
3362         including generic ones
3363
3364 2005-08-12  Ankit Jain <jankit@novell.com>
3365
3366         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
3367           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
3368
3369 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
3370
3371         * process.c: Don't close a thread handle when it's NULL. This is a
3372         workaround for bug #75733.
3373
3374 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
3375
3376         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
3377
3378 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
3379
3380         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
3381
3382 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3383
3384         * threadpool.c: if a work item in the thread pool has a callback that
3385         catches a exception, don't propagate it after invoking the callback.
3386         Fixes bug #75336.
3387
3388 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
3389
3390         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
3391
3392         * class-internals.h (MonoCachedClassInfo): Add some new fields.
3393
3394         * class.c (mono_class_init): Load field info lazily in the AOT case.    
3395
3396         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
3397
3398 2005-08-03  Ankit Jain  <jankit@novell.com>
3399
3400         Fix #75683.
3401         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
3402           PInvoke calling convention is 0.
3403
3404 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
3405
3406         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
3407         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
3408
3409 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
3410
3411         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
3412         to handle threads not started by the GC (patch by Michael Meeks
3413         <michael.meeks@novell.com>).
3414
3415 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
3416
3417         * reflection.c: Make buffer used in emitting types larger for some
3418         big generic types (patch by Michal Moskal).
3419
3420 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
3421
3422         * mono-debug.c: Fix some (not all) alignment problems.
3423
3424 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3425
3426         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
3427         Invoke mono_image_load_from_data_full passing the refonly
3428         parameter.
3429
3430         * assembly.c
3431         (mono_assembly_open_from_bundle): Add the refonly argument, 
3432         in order to pass it to other methods it calls to.
3433         (do_mono_assembly_open): Add the refonly argument, in order 
3434         to pass it to other methods it calls to.
3435         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
3436         the refonly parameter to it.
3437
3438         * image.c: Add loaded_images_refonly_hash and
3439         loaded_images_refonly_guid_hash to cache the reflection
3440         only loaded images.
3441         (mono_images_init): Initialize the hash tables used for
3442         caching the reflection only images.
3443         (load_modules): Invoke mono_image_open_full passing the refonly
3444         parameter to load the modules the correct way.
3445         (build_guid_table): Add the refonly argument, to re-build the 
3446         correct hash table.
3447         (do_mono_image_open): Added the refonly argument, in order to
3448         define it for the loaded image.
3449         (mono_image_loaded_full): New function, which receives an
3450         additional parameter to look for the image in the refonly or
3451         non-refonly section.
3452         (mono_image_loaded): Updated, using mono_image_loaded_full.
3453         (mono_image_loaded_by_guid_full): The same case that happens
3454         with mono_image_loaded_full.
3455         (mono_image_loaded_by_guid): Likewise.
3456         (register_image): Use the ref_only variable inside MonoImage
3457         to decide in which hash table store the current image.
3458         (mono_image_open_from_data_full): Rename
3459         mono_image_open_from_data to mono_image_open_from_data_full,
3460         adding the refonly argument, to define the ref_only variable 
3461         inside MonoImage.
3462         (mono_image_open_from_data): Return 
3463         mono_image_open_from_data_full.
3464         (mono_image_open_full): Rename mono_image_open to
3465         mono_image_open_full, receiving the new refonly argument,
3466         to pass it to inner methods.
3467         (mono_pe_file_open): Update this function, to open
3468         a MonoImage as a non-refonly image.
3469         (mono_image_close): Use the refonly variable inside
3470         MonoImage to remove the image from the correct caches.
3471
3472         * image.h: Add the signatures of mono_image_open_full,
3473         mono_image_open_from_data_full, mono_image_loaded_full,
3474         mono_image_loaded_by_guid_full.
3475
3476         * metadata-internals.h: Add the ref_only field to 
3477         MonoImage.
3478         
3479 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3480
3481         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
3482         Fix the last behavior, which used to load the assemblies and
3483         extract MonoReflectionAssemblyName information, instead of
3484         extract it from the metadata tables. Needed for Reflection
3485         Only assemblies.
3486         
3487 2005-07-29  Martin Baulig  <martin@ximian.com>
3488
3489         * mono-debug-debugger.c
3490         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
3491         not initialized.
3492
3493         * mono-debug.c
3494         (mono_debug_address_from_il_offset): Check whether we have
3495         debugging support before attempting to take the lock.
3496         (mono_debug_source_location_from_address): Likewise.
3497         (mono_debug_source_location_from_il_offset): Likewise.
3498         (mono_debug_il_offset_from_address): Likewise.
3499         (mono_debug_address_from_il_offset): Likewise.
3500
3501 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
3502
3503         * class.c (mono_class_from_name_case): Add support for dynamic images.
3504         Fixes #75650.
3505
3506         * object.c (mono_class_compute_gc_descriptor): Add a workaround
3507         for #75479.
3508
3509 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3510         
3511         * reflection.c (mono_method_get_object): Fix warning.
3512
3513 2005-07-28  Martin Baulig  <martin@ximian.com>
3514
3515         * mono-debug.c
3516         (mono_debug_add_wrapper): Also write the wrapper type.
3517
3518 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
3519
3520         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
3521         
3522         * class.c (mono_class_init): Avoid reading nested classes if the AOT
3523         data indicates the class has none.
3524
3525 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
3526
3527         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
3528         loader lock with the debugger lock. Prevents deadlocks for beagle.
3529
3530         Beagle can now run on an smp box for a weekend without any
3531         issues. Woohoo!
3532
3533 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
3534
3535         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
3536         in a module. Fixes #75629.
3537
3538 2005-07-26  Martin Baulig  <martin@ximian.com>
3539
3540         * mono-debug.c (mono_debug_add_wrapper): New static method.
3541         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
3542         interncall or a wrapper.
3543
3544         * mono-debug.h (MonoDebugWrapperData): New public typedef.
3545         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
3546         (MONO_DEBUGGER_VERSION): Bump to 51.
3547
3548         * mono-debug-debugger.c
3549         (mono_debugger_add_type): Removed this empty function.
3550         (mono_debugger_add_method): Likewise.
3551
3552 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
3553
3554         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
3555         before accessing method->slot.
3556
3557 2005-07-21  Jb Evain  <jbevain@gmail.com>
3558
3559         * reflection.c (method_encode_clauses/class): Handle filters clauses.
3560         Fixes #75010.
3561
3562 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
3563
3564         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
3565         #75587.
3566
3567 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
3568
3569         * image.h image.c: Add mono_image_get_guid () API function.
3570
3571 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
3572
3573         There were issues when multiple threads tried to load
3574         assemblies. A deadlock was created between assemblies_mutex and
3575         mono_domain_assemblies_lock. This fixes the issue by making the
3576         assembly ref counting be lock free. See bug 75586.
3577         
3578         * image.c (mono_image_close): The add ref function here was using
3579         Interlocked operations while the unref was using a mutex and a
3580         --. I don't think this was ever a bug that would be exposed in a
3581         non-pendantic way (ie, by an embedder doing a ref on one thread
3582         and an unref on another), but for the sake of correctness, this is
3583         now Interlocked.
3584
3585         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
3586         (mono_assembly_load_reference): Call mono_assembly_addref rather
3587         than touching the refcount ourselves.
3588         (mono_assembly_close): Use InterlockedDecrement to unref the
3589         assembly. Don't acquire the lock unless it is actually needed.
3590
3591 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3592
3593         * class.c (mono_class_layout_fields): Fix calculation of has_references
3594         for generic types.
3595
3596 2005-07-12  Martin Baulig  <martin@ximian.com>
3597
3598         Applying a patch from Michal Moskal <malekith@nemerle.org>.
3599
3600         * metadata.c
3601         (mono_type_hash): Provide better hashing for generic instances.
3602         (mono_generic_inst_hash): Improve hashing.
3603         (mono_generic_class_hash): Likewise.
3604
3605         * reflection.c (mymono_metadata_type_hash): Improve hashing for
3606         generic instances.
3607
3608 2005-07-12  Martin Baulig  <martin@ximian.com>
3609
3610         * reflection.c (mono_reflection_create_runtime_class): Remove the
3611         hack for generic type definitions and non-`Run' assemblies.
3612         (mono_reflection_bind_generic_parameters): Also use
3613         `klass->wastypebuilder' to check for TypeBuilders.
3614
3615 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
3616
3617         * class.c (mono_class_layout_fields): Fix calculation of has_references
3618         for generic types.
3619
3620         * class.c (inflate_generic_class): Fix a leak.
3621         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
3622         for generic types.
3623
3624 2005-07-11  Martin Baulig  <martin@ximian.com>
3625
3626         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
3627         on error.
3628
3629 2005-07-11  Martin Baulig  <martin@ximian.com>
3630
3631         * loader.c (find_method): Also lookup in
3632         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
3633
3634 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3635
3636         * appdomain.c (mono_domain_unload): Don't free the error message
3637         before passing it to mono_get_exception_...
3638
3639         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
3640         
3641 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
3642
3643         * threads.c: try to better guess an available RT signal (bug #75387).
3644
3645 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3646
3647         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
3648         and CACHE_OBJECT.
3649
3650 2005-07-07  Martin Baulig  <martin@ximian.com>
3651
3652         * class.c (mono_type_get_name_full): Return NULL for
3653         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
3654         fixes #75408.
3655
3656 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
3657
3658         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
3659         exit the appdomain as well being aborted.
3660
3661         * threadpool.c: Create all threadpool threads inside the root appdomain, and
3662         change back to the root domain after calling managed code. This enables
3663         appdomains using threadpools to be unloaded.
3664
3665 2005-07-07  Martin Baulig  <martin@ximian.com>
3666
3667         * class-internals.h
3668         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
3669         into `MonoDynamicGenericClass' since we only need it for dynamic
3670         types.
3671
3672         * reflection.c (mono_class_bind_generic_parameters): We don't need
3673         to compute the `parent' here.
3674
3675 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
3676
3677         * culture-info-table.h : regenerated.
3678
3679 2005-07-06  Martin Baulig  <martin@ximian.com>
3680
3681         * icall.c
3682         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
3683
3684         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
3685
3686 2005-07-06  Martin Baulig  <martin@ximian.com>
3687
3688         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
3689         we're doing a signature-only comparision; fixes #74945.
3690
3691 2005-07-06  Martin Baulig  <martin@ximian.com>
3692
3693         * class-internals.h (MonoGenericClass): Moved some things out into
3694         a new `MonoInflatedGenericClass' type.  
3695         (MonoInflatedGenericClass): New type; the `klass' of a
3696         `MonoGenericClass' is now computed lazyly in
3697         mono_get_inflated_generic_class().      
3698
3699         * class.c (mono_get_inflated_generic_class): New public function.
3700         (mono_class_inflate_generic_method): Removed the unused
3701         `MonoClass *' argument.
3702         (setup_generic_vtable): Don't call mono_get_inflated_method() on
3703         all the methods.
3704         (mono_class_create_generic): Make this static and merge it with
3705         mono_class_create_generic_2(); we're now called automatically from
3706         mono_get_inflated_generic_class().
3707
3708         * loader.c (mono_method_signature): Call
3709         mono_get_inflated_method() here.
3710
3711 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
3712
3713         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
3714         type of fields with RVA.
3715
3716         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
3717         for this pseudo class.
3718         (my_mono_class_from_generic_parameter): Likewise.
3719         (mono_class_init): Allow interfaces to have cctors.
3720
3721 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3722
3723         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
3724         lazily for AOT methods.
3725
3726 2005-07-05  Martin Baulig  <martin@ximian.com>
3727
3728         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
3729         returns FALSE for a successful match, not TRUE.
3730
3731 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
3732
3733         * loader.c (mono_method_get_index): Optimize this a bit.
3734
3735 2005-07-04  Martin Baulig  <martin@ximian.com>
3736
3737         * class.c
3738         (class_compute_field_layout): Move the check for generic type
3739         definitions into mono_class_layout_fields().  Fixes #74684.
3740         (mono_class_from_generic_parameter): Correctly compute
3741         `klass->parent'; fixes #75457.
3742
3743         * reflection.c (register_assembly, register_module): Make sure
3744         `domain->rejobject_hash' is already created.
3745
3746 2005-07-02  Martin Baulig  <martin@ximian.com>
3747
3748         * class-internals.h
3749         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
3750         `MonoDynamicGenericClass'.      
3751
3752 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
3753
3754         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
3755         returned by a field getter is null, since null is a valid value.
3756
3757 2005-07-01  Martin Baulig  <martin@ximian.com>
3758
3759         * reflection.c (mono_reflection_generic_class_initialize): Update
3760         the `dgclass->fields [i].parent' to the correct class.
3761         (mono_image_get_fieldref_token): Use the declaring type, not the
3762         reflected type.
3763
3764 2005-07-01  Martin Baulig  <martin@ximian.com>
3765
3766         * loader.c (find_method): Also look in the interfaces; fixes #75429.
3767
3768 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
3769
3770         * threads.c (thread_cleanup): assert that thread != NULL
3771         (wait_for_tids_or_state_change): We were using the wrong variable
3772         when accessing wait->threads. `i' was always out of the bounds of
3773         the array.
3774
3775 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3776
3777         * loader.c: map user32 and kernel32 to libMonoSupportW
3778
3779 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
3780
3781         * appdomain.c (unload_thread_main): Mark this as WINAPI.
3782
3783 2005-06-28  Martin Baulig  <martin@ximian.com>
3784
3785         * loader.c (method_from_methodspec): Fix #75334.
3786
3787 2005-06-28  Martin Baulig  <martin@ximian.com>
3788
3789         Fix #74953 - Arrays now implement the generic IList<T> interface
3790         on the 2.0 platform.
3791
3792         * class-internals.h (MonoDefaults): Added `generic_array_class'.
3793
3794         * reflection.c (mono_class_bind_generic_parameters): New public
3795         function; similar to mono_reflection_bind_generic_parameters(),
3796         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
3797
3798         * domain.c (mono_init_internal): Try to initialize.
3799         `mono_defaults.generic_array_class' here; this'll only succeed if
3800         we're using the 2.0 corlib.
3801
3802         * icall.c
3803         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
3804         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
3805         (mono_lookup_internal_call): Added support for nested classes.
3806
3807         * loader.c
3808         (mono_get_method_from_token): Set `result->signature->pinvoke' if
3809         we're an interncall and have generic arguments.
3810
3811         * class.c
3812         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
3813         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
3814         instance of System.Array.InternalArray<T> for arrays, so they
3815         implement the generic IList<T> interface.
3816
3817 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
3818
3819         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
3820         (chastamar@yahoo.com). Fixes #75374.    
3821
3822 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
3823
3824         * culture-info-table.h: regenerated.
3825
3826 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3827
3828         * icall.c: handle spaces correctly for base64 strings.
3829
3830 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
3831
3832         * *.c: Kill some warnings.
3833
3834 2005-06-23  Duncan Mak  <duncan@novell.com>
3835
3836         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
3837         that this builds on Solaris 10 (x86).
3838
3839 2005-06-23  Martin Baulig  <martin@ximian.com>
3840
3841         * class.c
3842         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
3843         generic type definitions.
3844
3845 2005-06-23  Martin Baulig  <martin@ximian.com>
3846
3847         Fix #75331.
3848
3849         * metadata.c (mono_class_get_overrides): Renamed to
3850         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
3851         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
3852         pass it to mono_get_method_full().
3853
3854 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
3855
3856         * reflection.c (mono_reflection_create_runtime_class): take the
3857         mono_domain_lock in this method. Prevents deadlocks
3858
3859 2005-06-22  Martin Baulig  <martin@ximian.com>
3860
3861         * loader.c (method_from_methodspec): Fix #75330.
3862
3863 2005-06-22  Martin Baulig  <martin@ximian.com>
3864
3865         * reflection.c (type_get_qualified_name): Use
3866         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
3867         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
3868         argument; use it if we don't have an assembly name.
3869
3870 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
3871
3872         * object.c: In mono_message_init, set "copy out" flag for in
3873         parameters with the [Out] flag.
3874
3875 2005-06-21  Martin Baulig  <martin@ximian.com>
3876
3877         * class.c
3878         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
3879         and MONO_TYPE_PTR.
3880
3881 2005-06-21  Martin Baulig  <martin@ximian.com>
3882
3883         * class.c (mono_class_init): Don't initialize `class->fields' for
3884         generic instances since they're initialized again in
3885         compute_field_layout(). 
3886         (compute_field_layout): Set the field's `generic_info' here; fix
3887         #75320. 
3888
3889 2005-06-21  Martin Baulig  <martin@ximian.com>
3890
3891         * class-internals.h
3892         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
3893
3894         * metadata.c (mono_metadata_generic_method_equal): Also
3895         distinguish the `generic_class'; fixes #75334.
3896
3897 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3898
3899         * domain.c:
3900         * appdomain.c:
3901         * domain-internals.h:
3902         * reflection.c: 'domain_assemblies' field is now protected by its own
3903         lock. Don't call into managed code to run the AssemblyLoad event if we
3904         now there are no registered delegates for it.
3905
3906 2005-06-20  Martin Baulig  <martin@ximian.com>
3907
3908         * class.c (mono_class_is_assignable_from): Use a custom version of
3909         mono_class_has_parent() to make things work for generic instances;
3910         fix #75300.
3911
3912 2005-06-20  Martin Baulig  <martin@ximian.com>
3913
3914         * loader.c (method_from_methodspec): Apply a patch from
3915         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
3916
3917 2005-06-20  Martin Baulig  <martin@ximian.com>
3918
3919         * class.c (mono_class_init): Reverted Zoltan's last change; it
3920         breaks generics.
3921
3922 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
3923
3924         * threads.c (wait_for_tids_or_state_change): Add missing locking.
3925
3926 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3927
3928         * socket-io.c: fix the index in the socket array for writable/error
3929         sockets. Fixes bug #75306.
3930
3931 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
3932
3933         * class.c (mono_class_init): Allow interfaces to have static ctors.
3934
3935 2005-06-17  Martin Baulig  <martin@ximian.com>
3936
3937         * loader.c (method_from_methodspec): Use `context->container' when
3938         parsing the `gmethod->inst'.
3939
3940 2005-06-17  Martin Baulig  <martin@ximian.com>
3941
3942         * class.c (mono_type_get_name_recurse): Don't add the assembly
3943         name for type arguments.
3944
3945 2005-06-15  Martin Baulig  <martin@ximian.com>
3946
3947         * reflection.c (mono_image_get_inflated_method_token): Encode
3948         correct klass; fixes #75260.
3949
3950 2005-06-13 Michal Moskal <malekith@nemerle.org>
3951
3952         * icall.c: Make GetCorrespondingMethod/Constructor take
3953         MonoReflectionMethod method not MonoMethod. Removed
3954         MonoType.GetCorrespondingField, and make
3955         MonoGenericType.GetCorrespondingField take name not
3956         MonoClassField.
3957
3958 2005-06-13  Michal Moskal <malekith@nemerle.org>
3959
3960         * reflection.c (field_encode_signature, encode_locals):
3961          Make sizes of buffers for types larger (for big generic types).
3962          (create_generic_typespec,
3963          mono_reflection_sighelper_get_signature_local,
3964          mono_reflection_sighelper_get_signature_field):
3965          Add asserts for too small buffers.
3966
3967 2005-06-15  Martin Baulig  <martin@ximian.com>
3968
3969         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
3970         if our parent is not a dynamic type.
3971
3972 2005-06-15  Martin Baulig  <martin@ximian.com>
3973
3974         * class-internals.h (MonoTypeNameFormat): New enum.
3975
3976         * class.c
3977         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
3978         (mono_type_get_full_name): Removed.
3979         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
3980         argument instead of the boolean's.
3981
3982         * icall.c (ves_icall_System_MonoType_getFullName):
3983         Added `gboolean assembly_qualified'.    
3984
3985         * reflection.h
3986         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
3987
3988         * reflection.c (mono_reflection_parse_type): Parse the new type
3989         name format.
3990
3991 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3992
3993         * icall.c: no need to convert from utf16 to utf8 and then back again
3994         after the call to GetLogicalDrives.
3995
3996 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3997
3998         * icall.c: frombase64. Fix problems exposed by new tests.
3999
4000 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4001
4002         * icall.c: added internal calls for converting char [] and strings in
4003         base64 into byte [].
4004
4005 2005-06-10  Martin Baulig  <martin@ximian.com>
4006
4007         * class.c (mono_class_create_generic_2): Read the nested classes
4008         from the metadata rather than from `gklass->nested_classes' since
4009         `gklass' might not be initialized yet.
4010
4011 2005-06-09  Duncan Mak  <duncan@novell.com>
4012
4013         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
4014         all public headers. Fixes #74919.
4015
4016 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
4017
4018         * domain.c: The key for proxy_vtable_hash is now a pointer
4019         array. Added new GHashFunc and GCompareFunc functions for this.
4020
4021         * class.h: The list of interfaces in MonoRemoteClass is known in
4022         advance and can't grow (we create a new MonoRemoteClass if needed),
4023         so now the interface array can be allocated together with
4024         MonoRemoteClass.
4025         
4026         * object.c: Added a new method create_remote_class_key.
4027         Fixed mono_remote_class so it does not depend on
4028         mono_upgrade_remote_class.
4029         Removed extend_interface_array.
4030         Added new method clone_remote_class(), which makes a copy of a remote
4031         class and adds a new interface or class to it.
4032         mono_upgrade_remote_class() now creates a new remote class (or gets
4033         it from the cache) if an vtable upgrade is needed. In this way
4034         we make sure that other objects sharing the same remote class
4035         don't get the new vtable with unwanted interfaces.
4036         
4037         * object-internals.h:
4038         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
4039         
4040         * marshal.c: Track changes in mono_upgrade_remote_class().
4041
4042 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
4043         * icall.c: Add runtime methods for obtaining members of inflated
4044         class, which were created from supplied non-inflated members. It
4045         is used in internal Get{Method,Constructor,Field} methods in
4046         System.Type
4047
4048 2005-06-09  Martin Baulig  <martin@ximian.com>
4049
4050         * reflection.c
4051         (mono_reflection_bind_generic_method_parameters): Fix #75169.
4052
4053 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4054         * reflection.c (mono_image_basic_init): Define
4055         Version in MonoDynamicAssembly. 
4056         
4057 2005-06-08  Martin Baulig  <martin@ximian.com>
4058
4059         Fix #75136.
4060
4061         * loader.c
4062         (mono_method_signature_full): New public method; takes a
4063         `MonoGenericContext *'.
4064         (find_method): Use mono_method_signature_full() and pass the
4065         klass'es context to it.
4066
4067         * class.c (mono_class_is_inflated_method): Use
4068         mono_method_signature_full() and pass the context to it.
4069
4070 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
4071
4072         * object.c: add proper locking in mono_remote_class_vtable(),
4073         fixes possible memory corruption.
4074
4075 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
4076
4077         * marshal.c (mono_remoting_marshal_init): set
4078         initialized after initialization.
4079
4080 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4081
4082         * locales.c : hush.
4083
4084 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
4085
4086         * object.c (extend_interface_array): fix really silly
4087         memory corrupting / comparison bug.
4088
4089 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4090
4091         * reflection.c: Functions added to support the creation
4092         of CustomAttributeData, which includes Attribute data
4093         used by ReflectionOnly methods.
4094
4095         * reflection.h:  mono_reflection_get_custom_attrs_data and
4096          mono_custom_attrs_data_construct added (functions exposed).
4097
4098          * icall.c: Added mono_reflection_get_custom_attrs_data
4099          as icall.
4100         
4101 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
4102
4103         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
4104         lupus's request.
4105
4106 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
4107
4108         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
4109
4110         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
4111         dynamic DllImportAttribute.
4112
4113         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
4114         dynamic DllImportAttribute.
4115
4116         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
4117         Fixes #75162.
4118
4119 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4120
4121         * threads.c: avoid segfault when an unstarted thread is aborted.
4122
4123 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
4124
4125         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
4126         Returns the name and version of the runtime for reporting.
4127
4128 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4129
4130         * appdomain.c: bump corlib version.
4131         * object-internals.h: new field in MonoReflectionAssembly.
4132
4133 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4134
4135         * object-internals.h: Carlos forgot to add this field.
4136
4137 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4138
4139         * icall.c: Added create_version to create instances
4140         of Version of MonoReflectionAssemblyName. This change helps
4141         the AssemblyName tests to keep running fine.
4142         
4143 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
4144   
4145         * object.c (mono_method_return_message_restore): A somehow less
4146         intrusive fix for #75138.
4147
4148 2005-06-03  Raja R Harinath  <rharinath@novell.com>
4149
4150         * object.c (mono_method_return_message_restore): Fix computation
4151         of expected number of out args.
4152
4153 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4154
4155         * reflection.c (mono_image_get_method_info): Fix the case when the
4156         charset is empty.
4157
4158 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
4159
4160         * object.c: Added missing null check in
4161           mono_method_return_message_restore.
4162
4163 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
4164
4165         * reflection.c (mono_image_get_method_info): Handle the case when
4166         dllentry is empty.
4167
4168 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
4169
4170         * object.c: When creating the vtable for a proxy, take into account
4171         all inherited interfaces, not only the ones registered in
4172         iclass->interfaces. This fixs bug #74996.
4173         Also, in mono_method_return_message_restore, verify that the array
4174         of out args has the expected lengh.
4175
4176 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4177
4178         * socket-io.c: update the timeout in Poll when the call is interrupte.
4179
4180 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4181
4182         * socket-io.c: support abort/suspend in Select_internal after last
4183         change.
4184
4185 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4186
4187         * threadpool.c: remove warning.
4188
4189 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4190
4191         * icall.c:
4192         * socket-io.[ch]: Select_internal uses poll() now when available, thus
4193         removing the 1024 limit from select(). Runtime part of the fix for
4194         bug #71203.
4195
4196 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4197
4198         * socket-io.c: when resolving the addresses for the same
4199         host returned by gethostname(), get the local IPs from the interface
4200         list. Loopback addresses are discarded if the are interfaces up with
4201         non-loopback ones. Fixes bug #63265.
4202
4203 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
4204
4205         * appdomain.c, verify.c, object-internals.h, reflection.c:
4206         bumped corlib number to 36, and added new extra_flags field
4207         to ReflectionMethodBuilder and friends.  Fixes #75060.
4208
4209 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
4210
4211         * gc.c: register a new weak link only if the object is non-null
4212         (fixes bug#75047).
4213
4214 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4215
4216         * culture-info.h : short time pattern too.
4217
4218 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
4219
4220         * culture-info.h : expand long time pattern string length.
4221
4222 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4223
4224         * culture-info-table.h : update (more French date format; #72788).
4225
4226 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
4227
4228         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
4229         the method is static. Fixes #75029.
4230
4231 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
4232
4233         * reflection.c: Update the table_idx field of method builders after
4234         saving the module, since it can change. This is a workaround for
4235         bug #74914. 
4236
4237 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4238
4239         * culture-info-table.h : update (additional French date format).
4240
4241 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
4242
4243         * icall.c (ves_icall_type_Equals): Revert last change.
4244         
4245         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
4246
4247         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
4248
4249 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
4250
4251         * class-internals.h: Added executioncontext_class field to 
4252         MonoDefaults structure.
4253         * domain.c: Cache System.Threading.ExecutionContext class in 
4254         mono_defaults.
4255         * object.c: Capture the ExecutionContext for asynchroneous calls in
4256          mono_async_result_new.
4257         * object-internals.h: Added execution_context and original_context 
4258         fields to MonoAsyncResult. Added execution_context to MonoThread.
4259         * security-manager.c|.h: Added mono_get_context_capture_method to 
4260         return the capture method (if required by the security manager or by
4261         the framework version used).
4262         * threadpool.c: Apply capture (if present) ExecutionContext in 
4263         mono_async_invoke and revert to original context after it completes.
4264
4265 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
4266
4267         * culture-info-table.h : updated (real hacky solution for zh-CHT).
4268
4269 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
4270
4271         * culture-info-table.h : zh-CHT related workaround.
4272
4273 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4274
4275         * marshal.c (emit_marshal_custom): Add some error checking and call the
4276         methods in the ICustomMarshaler interface. Fixes #74875.
4277         
4278         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
4279         native->managed wrappers.
4280
4281 2005-05-12  Martin Baulig  <martin@ximian.com>
4282
4283         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
4284         here and use the loader lock.
4285
4286         * mono-debug.c: Properly lock when the debugger is not attached.
4287         (mono_debug_init): Release the initial lock if we're not running
4288         in the debugger.
4289
4290 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
4291
4292         * marshal.c (emit_marshal_custom): Pass through NULL values without
4293         calling the custom marshalling routines.
4294
4295         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
4296         conversion in structures. Fixes #74882.
4297
4298 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
4299
4300         * culture-info-table.h : zh-* cultures were missing.
4301
4302 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
4303
4304         * threads.c: Added a new event background_change_event which is signaled
4305         when a thread changes its background mode.
4306         Moved here several checks previously done in managed code. The checks
4307         require the thread lock, and using the thread lock in managed code
4308         can result in deadlocks.
4309         Merged Start_internal and Thread_internal into a single method. Now 
4310         Thread_internal does all work of creating and starting a thread.
4311         Added icalls for setting and getting the state of the object. Moved from
4312         managed code to avoid locking there.
4313         Added wait_for_tids_or_state_change() which is called instad of
4314         wait_for_tids when waiting for non-backround threads to end. This method
4315         will return if one of the threads ends or the background_change_event
4316         is signaled.
4317         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
4318         the background mode. This method signals the background_change_event
4319         event.
4320         * icall.c:
4321         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
4322         removed Start_internal.
4323         
4324 2005-05-11  Martin Baulig  <martin@ximian.com>
4325
4326         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
4327         to order of some fields to get proper alignment on 64-bit machines.
4328
4329 2005-05-11  Martin Baulig  <martin@ximian.com>
4330
4331         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
4332         changes as they're broken and completely fuck up the debugger.
4333
4334         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
4335
4336 2005-05-10  Martin Baulig  <martin@ximian.com>
4337
4338         * reflection.c (mono_reflection_generic_class_initialize): Don't
4339         call mono_class_setup_parent() here.
4340
4341 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4342
4343         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
4344         send/receive timeout use an integer in milliseconds. We were using a
4345         struct timeval.
4346
4347 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4348
4349         * locales.c:
4350         (internal_get_cultures): reserve the first slot of the array for the
4351         InvariantCulture, which will be filled in managed code.
4352
4353 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
4354
4355         * reflection.c (mono_image_fill_module_table): Initialize the
4356         GENERATION field as well.
4357
4358 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4359
4360         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
4361         Monitor.Enter on the object.
4362
4363 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
4364
4365         * threads.c: Enable the wait for running threads when exiting.
4366         * icall.c: Suspend all threads before exiting.
4367
4368 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
4369
4370         * assembly.c (mono_assembly_load_reference): Fix warning.
4371
4372 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4373
4374         * threadpool.c: changed the default number of threads per cpu. From now
4375         on, the default will be 20 + (5 * number of cpus) instead of 50.
4376
4377 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
4378
4379         * loader.c (mono_method_get_signature_full): Add locking here.
4380
4381 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
4382
4383         * appdomain.c: Moved methods for parsing and freeing assembly
4384         names to assembly.c.
4385         * assembly.c, domain-internals.h: Created public methods for parsing
4386         assembly names. Fixed mono_assembly_load_with_partial_name:
4387         it now finds the best match, taking into account the version,
4388         token and culture specified in the partial name. Also return
4389         the latest version if no version information is specified.
4390
4391 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
4392
4393         * threadpool.c: replace check for SocketAsyncCall class.
4394
4395 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4396
4397         * threadpool-internals.h:
4398         * Makefile.am: added threadpool-internals.h
4399
4400         * threadpool.c: call mono_unhandled_exception on exceptions not handled
4401         that happen in threadpool threads (tested on MS).
4402         (mono_thread_pool_remove_socket): new function that dispatch any pending
4403         AIO call on a socket that is closing. By now only epoll really needs it,
4404         as select/poll wake up when the socket closes.
4405
4406
4407         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
4408
4409 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
4410
4411         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
4412
4413 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
4414
4415         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
4416
4417 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
4418
4419         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
4420         has an abort request, convert it into a suspend request.
4421
4422 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
4423
4424         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
4425         warning for the usage of `UnmanagedFunctionPointerAttribute' which
4426         is not supported yet.
4427
4428 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4429
4430         * image.c: register assemblies loaded from data (bundles) in the loaded
4431         assemblies hash. Fixes bug #74772.
4432
4433 2005-04-29  Martin Baulig  <martin@ximian.com>
4434
4435         * class.c (mono_type_get_name_recurse): Update to the new naming
4436         schema from the latest .NET 2.x beta2.
4437         (mono_class_setup_vtable_general): If we're a generic instance,
4438         copy the vtable from our generic type definition and inflate all
4439         the methods in it.
4440
4441         * loader.c (find_method): Update to the new naming schema from the
4442         latest .NET 2.x beta2.
4443
4444 2005-04-29  Raja R Harinath  <harinath@gmail.com>
4445
4446         * class.c (mono_class_init): Add a mono_loader_unlock to the
4447         #74734 fix.
4448
4449 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
4450
4451         * icall.c (ves_icall_System_Environment_Exit): Remove the 
4452         suspend_all_other_threads () call for the time being, since it can hang.
4453
4454         * threads.c (mono_thread_manage): Similarly, disable the waiting for
4455         the background threads to exit, since it can also hang.
4456
4457         * class.c (mono_class_init): Applied patch from Ankit Jain 
4458         (radical@gmail.com). Avoid pending init errors when a field refers
4459         to a nested class using a typeref. Fixes #74734.
4460
4461         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
4462         this for dynamic modules.
4463
4464 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4465
4466         * threads.c: don't wait for threads that are in the process of aborting
4467         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
4468         and waiting for background threads to finish. This makes xsp and
4469         mod-mono-server exit without random length delays and/or hangs.
4470
4471 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4472
4473         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
4474
4475 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
4476
4477         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
4478         dynamic types to prevent infinite loops. Fixes #74727.
4479
4480         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
4481         ..._is_assignable_to.
4482
4483 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
4484
4485         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
4486
4487 2005-04-25  Martin Baulig  <martin@ximian.com>
4488
4489         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
4490
4491         * domain.c
4492         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
4493
4494         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
4495
4496         * reflection.c (build_compressed_metadata): Set metadata header
4497         version to 2.0.
4498
4499 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
4500
4501         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
4502         number into an integral and a decimal part. Fixes #70473.
4503
4504         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
4505
4506 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
4507
4508         * culture-info-table.h : reflected the latest locale-builder output.
4509
4510 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4511
4512         * threadpool.c: check for SuspendRequested too when deciding if
4513         mono_thread_interruption_checkpoint should be called.
4514
4515 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4516
4517         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
4518         * threads.c: remove interruption_mutex and use Interlocked instead. When
4519         suspending all the threads, wait for all the suspended events at once.
4520         If we're shutting down and get an APC that is going to be queued,
4521         call mono_thread_execute_interruption immediately, as the thread might
4522         be sleeping on a pthread condition or mutex.
4523
4524         * icall.c: call mono_runtime_set_shutting_down before suspending the
4525         threads.
4526
4527         Fixes bug #74693. And now xsp is happier when exiting.
4528
4529 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
4530
4531         * loader.c (mono_stack_walk): Fix #74690.
4532
4533 2005-04-22  Martin Baulig  <martin@ximian.com>
4534
4535         * mono-debug.h (MonoDebugMethodJitInfo): Added
4536         `MonoDebugMethodJitInfo *jit'.
4537
4538         * mono-debug.c (mono_debug_read_method): Cache the
4539         MonoDebugMethodJitInfo in `address->jit'.
4540         (mono_debug_free_method_jit_info): New public method.
4541
4542 2005-04-22  Martin Baulig  <martin@ximian.com>
4543
4544         * class.c (mono_class_is_assignable_from): Disallow
4545         type parameter -> interface.
4546
4547 2005-04-21  Dick Porter  <dick@ximian.com>
4548
4549         * threads.c (mono_thread_create): Turn an assertion into an error.
4550
4551 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
4552
4553         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
4554         
4555         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
4556         Fix some gcc 4.0 warnings.
4557
4558 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
4559
4560         * file-io.c: fix alt dir separator char on unix systems
4561         and cleanup (fixes bug #71214).
4562
4563 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
4564
4565         * marshal.c: Use CALLVIRT instead of CALL when dispatching
4566         a call to a remote domain, since the method may be an
4567         interface method in the client domain. This fixes bug #74192.
4568
4569 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4570
4571         * threadpool.c: recv/send are now performed before going back to managed
4572         code to save one transition.
4573
4574 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4575
4576         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
4577
4578         * metadata/threadpool.c: removed hack to workaround the bug above.
4579
4580         Fixes bug #74618.
4581
4582 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
4583
4584         * reflection.c reflection.h: Fix handling of parameter defaults in
4585         dynamic methods. Also fixes handling of parameter attributes.
4586         Fixes #74609.
4587
4588         * mono-debug.c (mono_debug_close_image): Fix warning.
4589
4590 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4591
4592         * socket-io.h: replaced old unused field with new 'blocking'.
4593         * threadpool.c: restore socket blocking state on windows(tm).
4594
4595 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
4596
4597         * icall.c: don't return the codebase in the AssemblyName[] returned by
4598         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
4599         * object-internals.h: Removed FIXME (fields were presents) and fixed
4600         versioncompat declaration.
4601
4602 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4603
4604         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
4605         not closed, so don't cleanup when it happens.
4606
4607 2005-04-13  Chris Toshok  <toshok@ximian.com>
4608
4609         * mono-debug-debugger.h: change prototype for
4610         mono_debugger_lookup_type.
4611
4612         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
4613         this function, although it should probably be named
4614         mono_debugger_init_type.
4615
4616 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4617
4618         * threadpool.c: fix non-AIO case.
4619
4620 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
4621
4622         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
4623         the built-in profiler to measure just JIT compilation times.
4624
4625 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4626
4627         * threadpool.c: the epollfd might be closed by another thread at
4628         any time, so ignore EBADF at treat it as a "we're closing" sign.
4629
4630 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4631
4632         * threadpool.c: release the semaphores with a count equals to the number
4633         of working threads in both IO and regular pools. Fixed typo that messed
4634         up the count of IO pool threads. Don't initialize the pipe handles if
4635         we're using epoll.
4636
4637 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4638
4639         * threadpool.c: some systems don't like a NULL when deleting the socket
4640         from epoll.
4641
4642 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4643
4644         * threadpool.c: fix semaphore allocation.
4645
4646 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4647
4648         * threadpool.c: added epoll() based implementation for asynchronous IO
4649         that is used instead of the default poll() when available.
4650         It can be disabled by setting MONO_DISABLE_AIO.
4651
4652 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4653
4654         * threadpool.c: windows needs 'closesocket' and instead of returning
4655         0 when the stream is closed while in select, it returns -1. Fixes bug
4656         #74573.
4657
4658 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
4659
4660         * class.c (class_compute_field_layout): Fix the regression caused by
4661         the previous try.
4662
4663 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4664
4665         * threadpool.c: separate pool for socket async. IO.
4666         * threadpool.h: mono_max_worker_threads is not a global any more.
4667
4668 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
4669
4670         * class.c (class_compute_field_layout): Fix #74549.
4671
4672 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4673
4674         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
4675         use 2 connected sockets instead.
4676
4677 2005-04-08  Miguel de Icaza  <miguel@novell.com>
4678
4679         * mono-config.c: Add new entry point for mkbundle
4680         mono_config_parse_memory. 
4681
4682 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4683
4684         * threadpool.c: removed another unused function.
4685
4686 2005-04-08  Ankit Jain  <radical@corewars.org>
4687
4688         * reflection.c (get_default_param_value_blobs): Add 'types'
4689         parameter to get the types encoded in the constant table.
4690         (mono_param_get_objects): Use the type from the constant table,
4691         not the type of the parameter, when creating default values.
4692         Handle null default values correctly.
4693
4694 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4695
4696         * file-io.c:
4697         * file-io.h:
4698         * threadpool.c:
4699         * threadpool.h:
4700         * icall.c:
4701         * socket-io.c: removed dead code for async IO.
4702
4703 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4704
4705         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
4706
4707         * threadpool.c: intercept socket async. calls and pass them to a thread
4708         that is polling and dispatching the job items to the threadpool as
4709         socket become ready. Fixes bugs #71217, #71933.
4710
4711         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
4712         between char and short/ushort arrays.
4713
4714         * socket-io.c: remove dead code.
4715
4716 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4717
4718         * locales.c,
4719           icall.c : removed InternalToUpper_Comp() and
4720           InternalToLower_Comp().
4721
4722 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
4723
4724         * char-conversions.h : The tables were incorrectly generated. Should
4725           be generated against invariant culture.
4726
4727 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
4728
4729         * object.c (mono_runtime_invoke_array): Fix return value when 
4730         passing pre-created valuetype objects to ctors.
4731
4732         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
4733         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
4734         Fixes #74338.
4735
4736 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
4737
4738         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
4739         only used with --security and hides the wrong corlib version error.
4740
4741 2005-03-30  Joshua Tauberer  <tauberer@for.net>
4742
4743         * class.c: Changed mono_class_name_from_token so that types
4744         outside of a namespace don't have an initial period.  Improved
4745         the g_warning message used in _mono_class_get when loading
4746         fails.
4747         * assembly.c: In mono_assembly_load_reference, when an assembly
4748         can't be found, "No such file or directory" is misleading and
4749         unhelpful because a few paths were checked for the presence of
4750         the assembly.  When that happens (ENOENT), display a nicer
4751         message indicating the directories that were searched.  In all
4752         cases, the warning is made easier to read for non-hackers.
4753
4754 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
4755
4756         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
4757         project/solution.
4758         * appdomain.h|domain.c: Removed inline from functions.
4759         * appdomain.c: Reduced warnings when compiling on windows.
4760         * icall.c: Fixed output_debug declaration to gunichar2*.
4761         * mono-config.c: Reduced warnings when compiling on windows.
4762         * rand.c: Added missing "windows.h". Added missing return value.
4763         * rawbuffer.c: Added missing winsock2.h for windows.
4764         * sysmath.h: Added mono-compiler.h header to allow/ease 
4765         compilation with non-GCC compilers.
4766         * threads.c: Fixed declarations to compile with VS.NET C compiler.
4767         Removed cast warnings.
4768
4769         Adapted from the work of J Lothian (for VC6).
4770
4771 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
4772
4773         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
4774         from default_path.
4775
4776 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
4777
4778         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
4779         the 2.0 profile.
4780
4781 2005-03-27  Raja R Harinath  <harinath@gmail.com>
4782
4783         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
4784         has to be in $(exec_prefix).  $(prefix) is for arch-independent
4785         stuff, and it would probably use $(prefix)/share rather than
4786         $(prefix)/lib.
4787
4788 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4789
4790         * console-io.c: added 2 includes that might be missing.
4791
4792 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
4793
4794         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
4795         profile.
4796
4797         * reflection.c (create_custom_attr): Allocate the params array using
4798         alloca so it gets GC tracking.
4799
4800 2005-03-23  Chris Toshok  <toshok@ximian.com>
4801
4802         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
4803         out some spew.
4804
4805 2005-03-24  Raja R Harinath  <rharinath@novell.com>
4806
4807         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
4808         changes to pick up any changes in prefix, etc.
4809
4810 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4811
4812         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
4813         
4814         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
4815         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
4816
4817 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
4818
4819         * class-internals.h object-internals.h class.c reflection.c: Extend the
4820         mono_lookup_dynamic_token () function to return the class of the
4821         token as well. 
4822
4823         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
4824         well. Fixes #73848.
4825
4826 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
4827
4828         * security-manager.c: Skip inheritance checks for intra-corlib
4829         class inheritance and method overrides. This skips a lot of checks
4830         and (anyway) permissions cannot work until corlib is loaded.
4831
4832 2005-03-23  Martin Baulig  <martin@ximian.com>
4833
4834         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
4835         MONO_TYPE_GENERICINST.  
4836
4837 2005-03-23  Martin Baulig  <martin@ximian.com>
4838
4839         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
4840
4841 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
4842
4843         * class.c: added locking comments to some functions.
4844         Cache the interface offsets arrays (saves about 20 KB
4845         of runtime memory in a typical app).
4846         Reduce the time overhead in mono_class_setup_supertypes ().
4847
4848 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
4849
4850         * icall.c: speedup and fix leaks in GetMethodsByName and
4851         GetPropertiesByName.
4852
4853 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
4854
4855         * reflection.c: some locking fixes.
4856
4857 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
4858
4859         * metadata.c: added missing break in case statement.
4860
4861 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
4862
4863         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
4864         typedbyref return values. Fixes #73941.
4865
4866 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
4867
4868         * security-manager.c|h: Added demandunmanaged method and 
4869         suppressunmanagedcodesecurity class to MonoSecurityManager.
4870         Renamed aptc class to allowpartiallytrustedcallers.
4871
4872 2005-03-17  Martin Baulig  <martin@ximian.com>
4873
4874         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
4875
4876 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4877
4878         * file-io.c: disabled file async. IO using aio_*. It uses the
4879         threadpool now. Workaround for bug #73718.
4880
4881 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
4882
4883         * assembly.h, mono-config.c: added code to deal with bundled configs
4884         for bundled assemblies.
4885
4886 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
4887
4888         * *.c, private.h: cleanup, removing old private.h header file.
4889
4890 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
4891
4892         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
4893         and throw_on_unmappable_char attributes.
4894
4895 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
4896
4897         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
4898         _ProcessName_internal.
4899
4900 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
4901
4902         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
4903         #73631.
4904
4905         * icall.c threads.c threads-types.h: Remove slothash icalls as they
4906         are no longer used.
4907
4908 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
4909
4910         * object.c (compute_class_bitmap): Add support for generics. Fixes
4911         #73527.
4912
4913 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4914
4915         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
4916
4917 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4918
4919         * filewatcher.c: commented out the code for windows watcher, as we don't
4920         use it (we use the managed implementation instead).
4921
4922 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
4923
4924         * object-internals.h (MonoThread): Remove 'unused1' field.
4925
4926         * appdomain.c: Bump corlib version.
4927
4928         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
4929
4930         * reflection.c (mono_reflection_create_runtime_class): Remove the
4931         AssemblyBuilder.Save optimization since it causes too many problems.
4932
4933 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
4934
4935         * exception.c|h: Added mono_get_exception_reflection_type_load to
4936         create a ReflectionTypeLoadException object.
4937         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
4938         to return NULL is a InheritanceDemand fails during reflection. Updated
4939         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
4940         ReflectionTypeLoadException if an InheritanceDemand fails during 
4941         reflection. Added icall mapping for GetLinkDemandSecurity.
4942         * security-manager.c|h: Added ves_icall_System_Security_
4943         SecurityManager_GetLinkDemandSecurity internal call to return the
4944         class and methods permissions set for a LinkDemand. Removed unused
4945         fields in MonoSecurityManager.
4946
4947 2005-03-10  Martin Baulig  <martin@ximian.com>
4948
4949         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
4950         it's a generic instance.
4951
4952 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
4953
4954         * reflection.c (mono_get_object_from_blob): Applied patch from
4955         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
4956
4957         * class.c (mono_class_is_assignable_from): Another try at fixing 
4958         #73469 without breaking anything.
4959
4960 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
4961
4962         * class.c: (mono_class_is_assignable_from): Revert the last changes
4963         since they don't work with generics.
4964         
4965         * class.c (mono_class_is_assignable_from): Fix build bustage.
4966
4967         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
4968         the managed IsAssignableFrom method. Fixes #73469.
4969
4970         * reflection.c (mono_reflection_call_is_assignable_from): New helper
4971         function.
4972
4973 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
4974
4975         * object.c (mono_load_remote_field_new): Fix returning uninitialized
4976         memory when the remoting callback does not sets the out arguments.
4977         Fixes #73007.
4978
4979         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
4980         by mistake.
4981
4982         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
4983
4984         * object-internals.h (MonoStackFrame): Sync with managed object layout.
4985
4986         * appdomain.c: Bump corlib version.
4987
4988 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
4989
4990         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
4991         function.
4992
4993         * threads.c (mono_thread_attach): Detect threads which are not started
4994         by the GC pthread wrappers.
4995
4996 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
4997
4998         * icall.c: Added new icall for RNG.
4999         * rand.c|h: Added new icall to open the RNG. This allows to share a 
5000         single handle on Linux to access /dev/urandom and fix #73183.
5001
5002 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
5003
5004         * object.c: setting the new vtable in a transparent proxy object must
5005         not change the GC descriptor.
5006
5007 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5008
5009         * object.c: fixed compilation without GCJ support.
5010         * reflection.c: for runtime-created types ensure klass->has_references
5011         is correct (bug #73215).
5012
5013 2005-03-02  Martin Baulig  <martin@ximian.com>
5014
5015         * class.c (mono_class_is_assignable_from): Make this work if
5016         `oklass' is a generic instance; fixes #72831.
5017
5018 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5019
5020         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
5021         with hasthis set.
5022         
5023         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
5024
5025         * marshal.c: Reorganize native->managed marshalling code to also use
5026         the emit_marshal_... functions.
5027
5028 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5029
5030         * object.c: typed allocs have issues with bitmap sizes > 30,
5031         so check for max_set >= 30.
5032
5033 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
5034
5035         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
5036         managed code. Fixes #73012.
5037
5038         * metadata.h (MonoMarshalSpec): Add elem_mult field.
5039
5040         * metadata.c reflection.c: Load/Emit elem_mult as well.
5041         
5042         * metadata.h (MonoMarshalSpec): Add comment.
5043
5044         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
5045
5046         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
5047         num_elem to -1 if not given.
5048
5049         * object-internals.h (MonoReflectionMarshal): Add has_size field.
5050
5051         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
5052         given values.
5053
5054 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
5055
5056         * null-gc.c (mono_gc_free_fixed): Was not compilable.
5057
5058 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
5059
5060         * reflection.c (encode_marshal_blob): Encode param_num field as well.
5061
5062         * object-internals.h (MonoReflectionMarshal): Add param_num field.
5063
5064 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
5065
5066         * object.c: generalized the reference bitmap creation
5067         and added hooks for the new GC.
5068         * class-internals.c: removed the gc_bitmap field from MonoClass.
5069
5070 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5071
5072         * domain.c: help the compiler to produce better code
5073         in mono_jit_info_table_find ().
5074
5075 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5076
5077         * object.c: make all allocations look typed.
5078
5079 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5080
5081         * socket-io.c: load Mono.Posix if it's not loaded already
5082         (fixes bug#73033).
5083
5084 2005-02-24  Martin Baulig  <martin@ximian.com>
5085
5086         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
5087         * reflection.c (dup_type): Likewise.
5088
5089 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
5090
5091         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
5092         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
5093
5094 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5095
5096         * domain.c, threads.c, object-internals.h: make the critical thread
5097         local vars use the fast access mode (even when we're compiled in
5098         a lib). Provide accessors to be used by the jit during codegen.
5099
5100 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5101
5102         * appdomain.c: Changed hook functios behavior to include
5103         support for the reflection only assemblies. Some icalls were changed
5104         to support the mentioned assemblies too. Signatures of static methods
5105         try_assembly_resolve and real_load now have an additional parameter:
5106         refonly.
5107
5108         * assembly.c: General changes to mono_assembly_ methods to support
5109         reflection only api. Functions mono_assembly_open, mono_assembly_load,
5110         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
5111         suffix, to support an additional gbool parameter to specify whether
5112         the assembli is reflection only or not. Created some new hook functions 
5113         to add support for reflection only assemblies. Signatures of static 
5114         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
5115         have now an additional parameter: refonly.
5116
5117         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
5118         indicating whether the assembly is reflection only or not.
5119
5120         * exception.c: Add mono_get_exception_invalid_operation.
5121
5122         * icall.c: Throw an InvalidOperationException when trying to invoke
5123         a property/method/event, or trying to set/get the value of a field.
5124         Also add an icall to retrieve the ref_only flag to the
5125         MonoReflectionAssembly.
5126
5127 2005-02-23  Chris Toshok  <toshok@ximian.com>
5128
5129         Part of fix for #72827.
5130         * mono-debug.c (mono_debug_add_method): add lexical block data to
5131         the info we write.  Kind of a hack at the moment - we copy the
5132         lexical block info from the MonoDebugMethodInfo to the
5133         MonoDebugMethodJitInfo here, before writing it.
5134         (mono_debug_read_method): read the lexical block info.
5135
5136         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
5137
5138         * debug-mono-symfile.h: add lexical block support.
5139
5140         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
5141         support.
5142
5143 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5144
5145         * loader.c (mono_lookup_pinvoke_call): Fix warning.
5146
5147         * object.c (mono_runtime_free_method): Call mono_free_method () and
5148         put the TODOs there.
5149
5150         * loader.c (mono_free_method): Free up most memory allocated for 
5151         dynamic methods.
5152
5153 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
5154
5155         * reflection.c: properly flag a Type argument to a
5156         named custom attr value (bug #72248).
5157
5158 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5159
5160         * reflection.c: reduce code duplication in named custom
5161         attribute encoding.
5162
5163 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
5164
5165         * reflection.c: properly encode custom attrs of type object
5166         (bug #72649).
5167
5168 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
5169
5170         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
5171
5172 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
5173
5174         * socket-io.c: load System.dll if it's not loaded already
5175         (bug #72850 and #70477).
5176
5177 2005-02-21  Martin Baulig  <martin@ximian.com>
5178
5179         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
5180         generic instances.
5181
5182 2005-02-21  Martin Baulig  <martin@ximian.com>
5183
5184         * reflection.c (mono_image_build_metadata): We also need to
5185         "fixup" the MethodImpl table after we computed the final method
5186         indices.  Call fixup_methodimpl() to do that.
5187         (fixup_methodimpl): New private method.
5188
5189 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
5190
5191         * assembly.c: special case mscorlib.dll (bug#72536),
5192         patch from Carlos Alberto Cortez.
5193
5194 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
5195
5196         * threads-types.h threads.c: Fix build bustage.
5197
5198         * threads.c: Use a union for long<->double conversions.
5199
5200         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
5201         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
5202
5203         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
5204         containing the checkpoint call with NOT_TAKEN.
5205         
5206         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
5207         checkpoint before pushing the arguments, so they won't have to be
5208         spilled to stack.
5209
5210 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5211
5212         * domain.c, assembly.c, domain-internals.h: make some data
5213         const and relocation-free.
5214
5215 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
5216
5217         * object.c, appdomain.c, class-internals.h: introduce the
5218         MonoClassRuntimeInfo structure to hold the info needed to
5219         use a class at runtime. Made mono_class_vtable() lock-free
5220         for all the appdomains.
5221
5222 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
5223
5224         * metadata-internals.h, image.c: introduce a per-image mempool to
5225         be used for memory that has the same lifetime as the image.
5226
5227 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
5228
5229         * domain.c: In mono_init_internal(), instead of selecting the first
5230         runtime version supported by an executable, get a list of all
5231         supported versions and select the one for which an mscorlib exists
5232         (since even if the runtime supports a given version, it doesn't mean
5233         that the framework for that version is installed).
5234         Modified get_runtimes_from_exe to support this behavior.
5235         In supported_runtimes, added information about additional system
5236         assembly versions.
5237         
5238         * assembly.c: Added support for more than one system assembly version
5239         per runtime version. Updated the assembly list.
5240         In mono_assembly_remap_version, removed the initial version check,
5241         since we don't know to which version we need to compare until we
5242         get the version set on which the assembly is based.
5243         Moved the code for loading corlib into the new method
5244         mono_assembly_load_corlib(), so it can be used by the initialization
5245         code.
5246         
5247         * domain-internals.h: Updated data structures and added declaration
5248         for mono_assembly_load_corlib.
5249
5250 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5251
5252         * reflection.c (resolve_object): Fix the creation of the signature in 
5253         the SignatureHelper case.
5254
5255         * assembly.c (mono_assembly_remap_version): Fix binary search.
5256         
5257 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
5258  
5259         * class.c: Added inheritance check when a method is overloaded (from a
5260         virtual method or when implementing an interface) and when a class is
5261         inherited. Added functions to set a failure for a class and to 
5262         retreive the exception from a failure.
5263         * class-internals.h: Added fields to MonoClass to keep the exception
5264         information status for inheritance (or other exceptions) to be thrown
5265         later (i.e. not at load time).
5266         * object.c: Throw the inheritance SecurityException when a type is to 
5267         be created with either class or method inheritance violations.
5268         * reflection.c|h: Fix when getting declsec from a class. Removed 
5269         unrequired code for class. Improved sanity in parameter naming.
5270         * security-manager.c|h: Added functions to check for class and method
5271         inheritance.
5272
5273 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
5274
5275         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
5276         and has_finalize in dynamic types as well.
5277
5278 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
5279
5280         * culture-info-table.h : fixed currency format for en-GB (and so on).
5281
5282 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
5283
5284         * gc.c: ensure the GC handles never have 0 as a value.
5285
5286 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5287
5288         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
5289         a pointer to a struct to unmanaged code. Fixes #72625.
5290
5291 2005-02-16  Martin Baulig  <martin@ximian.com>
5292
5293         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
5294
5295 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
5296
5297         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
5298
5299 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5300
5301         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
5302
5303         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
5304         UnmanagedFunctionPointerAttribute, use it for determining calling convention
5305         etc. Fixes #71471.
5306
5307         * reflection.c (mono_custom_attrs_get_attr): New helper function.
5308
5309         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
5310
5311 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
5312
5313         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
5314         changes to make the current context a field in MonoThread.
5315
5316 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
5317
5318         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
5319         the last change.
5320         
5321         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
5322         extracted from mono_marshal_get_native_wrapper.
5323
5324         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
5325         to create wrappers around native functions.
5326
5327         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
5328         delegates for arbitrary function pointers. Fixes #71472.
5329
5330 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5331
5332         * threads.c: cleaned up the code a little.
5333
5334 2005-02-15  Martin Baulig  <martin@ximian.com>
5335
5336         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
5337         the data table.
5338
5339         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
5340         allocate larger chunks if needed.
5341
5342 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5343
5344         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
5345         in by mistake.
5346
5347 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
5348
5349         * domain.c: keep the domains in an array and ensure the domain ids
5350         are kept small, so they can be used as indexes to domain-specific data
5351         with a small memory overhead.
5352
5353 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
5354
5355         * icall.c: Handle byref types in Type icalls. Fixes #72544.
5356
5357 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
5358
5359         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
5360
5361 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
5362
5363         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
5364
5365         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
5366         values.
5367
5368         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
5369         
5370 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
5371
5372         * domain-internals.h: add the hashtable here.
5373
5374         * class-internals.h: Remove `info' from MonoMethod
5375
5376         * domain.c: Add a new hashtable, jit_trampoline_hash
5377
5378 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5379
5380         * object.c: don't set the value of static fields
5381         (fixes bug#72494).
5382
5383 2005-02-11  Martin Baulig  <martin@ximian.com>
5384
5385         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
5386         (mono_debug_add_method): Silently ignore the method if it's too big.
5387         (mono_debug_add_type): Likewise.
5388
5389 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
5390
5391         * threads.c, appdomain.c: remove #ifdefs from the code.
5392
5393 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
5394
5395         * metadata-internals.h: Added flags to MonoAssembly to cache the most
5396         common security informations. This allows us to stay in unmanaged code
5397         when doing LinkDemand and it's special cases (except for the first 
5398         time for initialization). The flags a very much used with --security.
5399         * reflection.c|h: Added code to get declarative security attributes 
5400         for LinkDemand and InheritanceDemand. This required to refactor the
5401         existing code for Demand.
5402         * security-manager.c|h: Added new method fields for the special cases
5403         of LinkDemand.
5404
5405 2005-02-10  Martin Baulig  <martin@ximian.com>
5406
5407         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
5408         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
5409
5410 2005-02-10  Martin Baulig  <martin@ximian.com>
5411
5412         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
5413         debugging code; this is almost a complete rewrite.
5414
5415         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
5416
5417 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5418
5419         * domain.c, object.h: expose mono_string_equal () and 
5420         mono_string_hash ().
5421         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
5422         it's implemented in managed code.
5423
5424 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5425
5426         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
5427         lo leak objects between appdomains.
5428
5429 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5430
5431         * assembly.c: old compilers compilation fix from 
5432         robertj@gmx.net (Robert Jordan).
5433
5434 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
5435
5436         * class-internals.h: Little reminder for the future.
5437
5438         * debug-helpers.c: Fix up wrapper_type_names
5439
5440 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5441
5442         * image.c, metadata-internals.h: when loading an image from a file,
5443         mmap all of it and use the same codepaths as when using a
5444         in-memory image: the code is simpler and we use less memory
5445         (both writable and readonly).
5446
5447 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5448
5449         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
5450         API to alloc runtime data structures that need to be tracked by the
5451         GC and contain pointers.
5452         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
5453         make the code more readable and eventually use a different GC.
5454
5455 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
5456
5457         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
5458         for out arguments.
5459         
5460 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
5461
5462         * object.c: In release_type_locks(), don't release the cctor lock
5463         if it has already been released. This fixes a crash in the
5464         thread5 test.
5465
5466 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
5467
5468         * gc.c, marshal.c, icall.c: register a delegate for finalization
5469         only when the native function pointer has been allocated for it.
5470
5471 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5472
5473         * object.c: cleaned up some code, allocate objects that are
5474         pointer free with the atomic malloc variant. Allocate memory
5475         for static data from the mempool if it's pointer-free.
5476         Allocate the bounds array at the end of the array data, when needed.
5477         * object-internals.h, object.h: move a private function in a private
5478         header.
5479         * class.c: handle missing case in tracking references in fields.
5480
5481 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
5482
5483         * class.c, class-internals.h: keep track if a type has
5484         reference fields in either the instance or static fields.
5485
5486 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
5487
5488         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
5489         and renamed to MonoRuntimeInfo. Added fields to store the expected
5490         framework assembly version. Changed mono_get_framework_version and
5491         mono_get_runtime_version for a single mono_get_runtime_info method.
5492         
5493         * assembly.c: Added method to remap system assembly versions to the
5494         current executing runtime version. Removed old mapping code.
5495         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
5496         
5497         * icall.c, reflection.c: Track api changes.
5498
5499 2005-02-06  Miguel de Icaza  <miguel@novell.com>
5500
5501         * loader.c (method_from_memberref): Improve error reporting,
5502         produce the class name instead of the typeref/typedef index. 
5503
5504 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
5505
5506         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
5507
5508 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5509
5510         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
5511         stdcall and charset name mangling.  Reorganize the code and add
5512         some tracing stuff.
5513
5514 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5515
5516         * monodiet.c: More iters!
5517
5518         * marshal.c: Iter usage.
5519
5520         * icall.c: Iter usage.
5521
5522         * object.c: Use iters.
5523
5524         * debug-helpers.c: More iters
5525
5526 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5527
5528         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
5529         under win32.
5530
5531 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
5532
5533         * mono-debug-debugger.c: use iters
5534
5535         * class.c, class-internals.h: mono_class_setup_events is static
5536         now
5537
5538         * All callers: use iters
5539
5540 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
5541
5542         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
5543         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
5544
5545 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5546
5547         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
5548
5549         * marshal.h: Add prototypes for ldfld/stfld_remote.
5550
5551         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
5552         this is called during startup.
5553         
5554 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
5555
5556         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
5557         MonoThreadsSync struct private in monitor.c. Changed the way
5558         MonoThreadsSync is allocated so it's faster and there is no
5559         need to keep track of it with a finalizer and it uses less memory.
5560         This also finally allows us to allocate mono objects as ptrfree when
5561         there are no reference fields.
5562
5563 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
5564
5565         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
5566         disappearing link to the GC interface and use them to simplify
5567         the gchandles code.
5568
5569 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
5570
5571         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
5572         stfld_remote which call mono_load/store_field_new. This allows methods
5573         calling ldfld/stfld wrappers to be AOTed.
5574
5575         * console-io.c: Include sys/filio.h under solaris.
5576         
5577         * console-io.c: Include curses.h if needed correctly.
5578
5579 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5580         
5581         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
5582         method->klass as well.
5583
5584         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
5585
5586         * class.c (mono_class_init): Switch on lazy initialization of 
5587         methods.
5588
5589         * class.c (mono_class_get_finalizer): Handle the case when the 
5590         finalizer is inherited.
5591
5592 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5593
5594         * console-io.c: <curses.h> is needed by term.h on solaris.
5595
5596 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
5597
5598         * icall.c, class-internals.h, monodiet.c, class.c: Remove
5599         mono_class_setup_properties where possible. Remove this ftn from
5600         the header file, and make it static.
5601
5602 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
5603
5604         * loader.c: Add missing setup_... call.
5605
5606         * class.c: Add missing setup_... calls.
5607
5608         * class.c (mono_class_init): Switch on lazy initialization of 
5609         the generic vtable.
5610         
5611         * class.c (mono_class_init): Fix generics broken by the recent changes.
5612
5613         * monodiet.c (handle_type): Add missing setup_... calls.
5614
5615         * class.c: Back out garbage in previous patch.
5616         
5617         * class.c: Add missing setup_... calls.
5618
5619         * class.c (mono_class_get_method_from_name_flags): Avoid calling
5620         mono_class_setup_methods () if possible.
5621
5622         * class-internals.h (MonoClass): Add 'has_cctor' flag.
5623
5624         * class-internals.h (MonoCachedClassInfo): New structure.
5625
5626         * class.c: Initialize properties and events fields of MonoClass lazily.
5627
5628         * class.c: Add infrastructure for lazily initializing the methods and
5629         vtable fields of MonoClass. Not yet used.
5630
5631         * class.c (mono_class_get_finalizer): New helper function.
5632
5633         * class.c: Add infrastructure for loading some class related data from
5634         an AOT file.
5635
5636         * object.c: Add infrastructure for initializing the vtable from data
5637         in the AOT file.
5638
5639         * gc.c (run_finalize): Use mono_class_get_finalizer ().
5640
5641         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
5642         appropriate initialization function before accessing parts of the
5643         MonoClass structure.
5644
5645         * marshal.c: Fix warnings.
5646         
5647         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
5648
5649         * mono-debug-debugger.c (get_exception_message): Use 
5650         mono_class_get_method_from_name_flags ().
5651
5652 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
5653
5654         * reflection.c, appdomain.c: Replace a few manual searches that
5655         Zoltan missed. (Paolo approved this part of my initial patch).
5656
5657 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
5658
5659         * profiler.c: disable recording statistical events at report time.
5660
5661 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5662
5663         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
5664         to byteswap arrays of enum values, too (bug #72080).
5665
5666 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
5667
5668         * appdomain.c (set_domain_search_path): Allow this to be called if
5669         domain->setup is not yet set.
5670
5671         * loader.c (mono_method_get_index): New helper function.
5672
5673         * loader.c reflection.c: Use mono_method_get_index ().
5674
5675         * class.c (mono_class_get_method_from_name_flags): New helper method.
5676
5677         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
5678         this.
5679
5680         * class.c (mono_class_get_cctor): New helper method.
5681
5682         * string-icalls.c object.c class.c marshal.c reflection.c: Use
5683         mono_class_get_method () to look up methods.
5684
5685 2005-02-01  Miguel de Icaza  <miguel@novell.com>
5686
5687         * console-io.c: Fix the build, this should work on Windows.
5688
5689 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
5690
5691         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
5692         be set to null to keep things valid
5693
5694 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5695
5696         * icall.c: added Console 2.0 icalls.
5697         * Makefile.am: added console-io.[ch]
5698         * console-io.[ch]: internal calls for Console 2.0 API.
5699
5700 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5701
5702         * class.c: make sure we consider all the interfaces
5703         when calculating max_interface_id (bug found by
5704         Jeroen Frijters running ikvm).
5705
5706 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
5707
5708         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
5709         valuetype fields to null.
5710
5711         * object.c (set_value): Ditto. Fixes #71669.    
5712
5713 2005-01-31  Martin Baulig  <martin@ximian.com>
5714
5715         * metadata.c (mono_metadata_has_generic_params): New public
5716         function; checks whether something is a generic method.
5717
5718 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
5719
5720         * appdomain.c: fix infinite recursion when adding assemblies.
5721
5722 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
5723
5724         * object.c: Fix small typo to return all items for Environment.
5725         GetCommandLineArgs.
5726
5727 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
5728
5729         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
5730         reflection.c: more domain and assembly-unload related fixes
5731         and memory leaks plugs.
5732
5733 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
5734
5735         * 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.
5736
5737 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
5738
5739         * loader.c (mono_method_signature): Make this method lazy
5740         (mono_get_method_from_token): Don't computate the signature here.
5741
5742         Doing this saves quite a bit of memory. I got 90 kb on starting up
5743         monodoc. It should also save some disk reads on startup.
5744
5745         * *: MonoMethod->signature might be NULL now. You *MUST* use
5746         mono_method_signature.
5747
5748 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
5749
5750         * object.c (mono_runtime_get_main_args): Return an array from the
5751         current domain here. Fixes #71938.
5752
5753 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
5754
5755         * monitor.c: formatting changes to comply with the
5756         mono coding style and remove #ifdefs from the code.
5757
5758 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5759
5760         * metadata.c, private.h: remove some unneeded data
5761         and use a more compact representation for table schemas.
5762
5763 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
5764
5765         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
5766         to get a better distribution in hash tables.
5767         * *.c: use mono_aligned_addr_hash() where appropriate.
5768         * assembly.c: make var static.
5769
5770 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
5771
5772         * domain-internals.h: Put MonoJitInfo on a diet.
5773
5774         * domain.c: Fix a warning.
5775
5776 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5777
5778         * gc.c: rework the gc handles code to reuse handles
5779         when freed.
5780
5781 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
5782
5783         * domain.c: fixed long standing bug in mono_string_equal() which
5784         was brought to light with the ldstr changes.
5785
5786 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
5787
5788         * reflection.c: Remove warning by adding missing include for marshal.h
5789
5790 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
5791
5792         * domain.c, object.c: change the ldstr_table to hold
5793         MonoString* as keys: makes the runtime isinterned lookup
5794         faster and simplifies memory management.
5795
5796 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
5797  
5798         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
5799         possible to add imperative security checks before calling the icall.
5800         * reflection.c: Return security attributes on the original MonoMethod
5801         (and not the wrapped one). This fix permissions on icalls.
5802
5803 2005-01-25  Dick Porter  <dick@ximian.com>
5804
5805         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
5806         the check for mktime() support actually test the mktime() return
5807         value.  "Fixes" bug 71682, though the output is still different to
5808         MS.
5809
5810 2005-01-25  Martin Baulig  <martin@ximian.com>
5811
5812         * class.c (mono_class_is_assignable_from): Make this work for
5813         generic instances.
5814
5815 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
5816
5817         * marshal.c (mono_string_utf8_to_builder)
5818         (mono_string_builder_to_utf16): We might not have ownership of the
5819         string. In thise case, we need to create a new buffer.
5820
5821         * object-internals.h (mono_stringbuilder_capacity): sb->str might
5822         be null, in which case, use the default capacity.
5823
5824 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
5825
5826         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
5827         GC events to the profiler.
5828
5829 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
5830
5831         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
5832         if you don't want the GC to run.
5833
5834 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
5835
5836         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
5837         start providing a GC API and keeping different implementations in
5838         their own file.
5839         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
5840
5841 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
5842
5843         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
5844         mmap rather than allocating a huge buffer.
5845         (mono_debug_close_mono_symbol_file): Free the buffer allocated
5846         above.
5847
5848 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
5849
5850         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
5851         and CheckExecutionRights.
5852         * reflection.c|h: Keep the index of the declarative security to be 
5853         used, instead of the pointer, when AOT compiler is used. Also add 
5854         class initialization when requesting demands.
5855         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
5856         CheckExecutionRights. Both properties are now FALSE by default, and
5857         unmodifiable, unless the --security option is used.
5858
5859 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
5860
5861         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
5862         reflection.c: properly refcount images and assemblies, many leaks fixed.
5863
5864 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5865
5866         * threadpool.c: increase the timeout for threads in the thread pool to
5867         10s.  Fixes bug #67159.
5868
5869 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
5870
5871         * class-internals.h: Sun's compiler insists on explicit
5872         signed on bit fields to handle then correctly.
5873
5874 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
5875
5876         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
5877         Make the size of the array fit only the number of invalid path
5878         chars that we have.
5879
5880         * class.c (_mono_class_get): Improve the error reporting when a
5881         class referenced is not found, to assist debugging. 
5882
5883 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
5884
5885         * threads.c: fix off-by-one error.
5886         * domain.c: free data allocated in the domain.
5887
5888 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5889
5890         * reflection.c (mono_method_body_get_object): Fill out exception info
5891         as well.
5892
5893         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
5894         structure.
5895         
5896 2005-01-19  Martin Baulig  <martin@ximian.com>
5897
5898         * loader.c (mono_get_method_constrained): Make this work again.
5899
5900 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
5901
5902         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
5903         guint16 to match the managed side.
5904
5905         * reflection.c (mono_reflection_body_get_object): Fill out local
5906         variables array.
5907
5908         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
5909         as well.
5910
5911         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
5912         'local_var_sig_token'.
5913
5914 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
5915
5916         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
5917         System.Drawing.
5918
5919         * reflection.c (mono_method_body_get_object): Handle abstract and
5920         runtime methods.
5921
5922 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
5923
5924         * marshal.c, loader.c, class-internals.h, reflection.c:
5925         store the emthod data for a wrapper in an array instead of a list.
5926
5927 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
5928
5929         * marshal.c: change the code to allocate memory more
5930         conservatively for method wrappers.
5931
5932 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
5933
5934         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
5935         fields from MonoClass to the marshal info structure where they belong.
5936
5937 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
5938
5939         * class.c, object.c, class-internals.h, marshal.c: rearrange
5940         some fields and tweak some types to lower memory usage.
5941
5942 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
5943
5944         * threads.c (signal_thread_state_change): Handle the case when the
5945         target thread is the current thread.
5946
5947         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
5948
5949         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
5950         emit_ptr_to_object_conv. 
5951
5952         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
5953         marshalling. Fixes #71352.
5954
5955 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
5956
5957         * metadata.h, blob.h: move table enum to blob.h so it can be included
5958         in any header.
5959         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
5960         cut the size of MonoImage/MonoDynamicImage.
5961
5962 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
5963
5964         * profiler.c (mono_profiler_install_simple): Fix default arguments.
5965
5966 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
5967
5968         * reflection.c, reflection.h, icall.c: add a function to check
5969         if an attribute type is defined for a metadata object.
5970
5971 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
5972
5973         * object-internals.h: Added some needed fields from StringBuilder class.
5974         * marshal.c: Set the maxCapacity when creating a StringBuilder.
5975
5976 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
5977
5978         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
5979         threads before shutting down the runtime.
5980
5981         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
5982
5983 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
5984
5985         * object-internal.h, threads.c: implement stacksize and 
5986         parameterized thread start functionality (requires
5987         matching corlib). Marked broken code for later removal.
5988
5989 2005-01-12  Martin Baulig  <martin@ximian.com>
5990
5991         * class-internals.h (MonoGenericClass): Moved the `initialized'
5992         flag to MonoDynamicGenericClass, removed `init_pending'.
5993         (MonoGenericInst): Added `is_reference' flag.
5994
5995 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
5996
5997         * reflection.c (mono_image_create_pefile): Only set the pe_offset
5998         inside the MSDOS header. Fixes #71201.
5999
6000         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
6001         gc thread.
6002         (mono_domain_finalize): Ditto.
6003
6004 2005-01-12  Martin Baulig  <martin@ximian.com>
6005
6006         * class.c (mono_get_shared_generic_class): Use the cache for
6007         non-dynamic generic classes.
6008
6009         * class-internals.h (mono_class_create_generic_2): Removed
6010         function prototype, this function is now static inside class.c.
6011
6012         * class.c (mono_class_create_generic_2): Made this static, only
6013         call it from mono_class_init() and mono_class_setup_parent().
6014         (collect_implemented_interfaces_aux): Call mono_class_init() on
6015         the interfaces we collect.
6016         (mono_class_setup_vtable): Call mono_class_init (class->parent).
6017
6018 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6019
6020         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
6021         it a real thread handle.
6022
6023         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
6024         MonoJitExceptionInfo, since each catch clause needs its own variable.
6025         
6026 2005-01-11  Dick Porter  <dick@ximian.com>
6027
6028         * image.c (mono_pe_file_open): New variant on mono_image_open()
6029         that does not set up the CLI metadata; used for FileVersionInfo so
6030         it can get the data for windows binaries too.
6031         
6032         * process.c (process_read_string_block): Don't read off the end of
6033         the StringTable block.
6034
6035         These both fix bug 70766.
6036
6037 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
6038
6039         * gc.c: set some fields to NULL at GC cleanup time.
6040         * threads.c: if we quit the main thread, call exit ().
6041
6042 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
6043
6044         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
6045
6046 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
6047
6048         * threads.h, threads.c, object.c: added accessor and settor for
6049         main_thread. Handle it specially when exiting from it: wait
6050         for other foreground threads to exit.
6051
6052 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
6053
6054         * process.c, verify.c: remove some bloat.
6055
6056 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
6057
6058         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
6059         the calling convention to cdecl under win32.
6060
6061 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
6062
6063         * object.c (mono_object_get_size): New function to get the size of
6064         an object instance.
6065
6066         * profiler.c (simple_allocation): Use above.
6067
6068 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
6069
6070         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
6071         ves_icall_System_AppDomain_getRootDomain (as it's not required to
6072         get an appdomain by it's id and we can't assume the root's id is 0).
6073         * domain-internals.h: Change the function prototype to match.
6074         * icall.c: Change the icall table for AppDomain.
6075
6076 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
6077
6078         * locales.c (string_invariant_compare_char): Only compute
6079         GUnicodeTypes in the case where we need them.  Test for ordinality
6080         first and return if so.
6081
6082         From the commit:
6083
6084                 /*
6085                  * FIXME: here we must use the information from c1type and c2type
6086                  * to find out the proper collation, even on the InvariantCulture, the
6087                  * sorting is not done by computing the unicode values, but their
6088                  * actual sort order.
6089                  */
6090
6091 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
6092
6093         * loader.c: for P/Invoke methods, allow the "Internal" shared
6094         library name to refer to the calling process symbol namespace.
6095
6096 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
6097
6098         * Makefile.am: Add the security manager to the build.
6099         * security-manager.c|h: New. Initialization of the security manager.
6100
6101 2005-01-07  Dick Porter  <dick@ximian.com>
6102
6103         * threads.c: 
6104         * monitor.c: Update thread state during Monitor and WaitHandle
6105         waits.  Fixes bug 71031.
6106
6107 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
6108
6109         * reflection.c (property_encode_signature): Correctly handle when the
6110         property has no methods.
6111
6112 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
6113
6114         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
6115         
6116         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
6117         fields from mb, not rmb. Fixes #71017.
6118
6119         * marshal.c (emit_ptr_to_str_conv): Add support for 
6120         ByValTStr -> string conversion. Fixes #71015.
6121
6122         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
6123
6124         * mempool.c (mono_mempool_contains_addr): New helper function.
6125
6126 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6127
6128         * metadata.c (mono_metadata_compute_size): Fix size calculation of
6129         HasSematics encoded fields.
6130         
6131         * metadata.c (mono_type_to_unmanaged): Improve error message for 
6132         invalid string marshalling.
6133
6134         * metadata.c: Fix warnings.
6135         
6136 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
6137
6138         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
6139         profiler support.
6140
6141 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
6142
6143         * domain.c object.c domain-internals.h: Revert part of r38077 since the
6144         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
6145         tests.
6146
6147 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
6148
6149         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
6150         so methods containing these can be AOTed.
6151
6152 2005-01-03  Martin Baulig  <martin@ximian.com>
6153
6154         * loader.c (find_method): Removed the hack for generic instances.
6155         (method_from_memberref): If our parent is a generic instance, pass
6156         its generic type definition to find_method() and then inflate the
6157         method.
6158         (mono_get_method_constrained): Pass the generic type definition to
6159         find_method() and inflate the method later.
6160
6161         * class-internals.h (MonoStats): Added `generic_class_count'.
6162
6163         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
6164         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
6165
6166         * reflection.c (mono_custom_attrs_from_params): Don't ignore
6167         generic type definitions.
6168
6169 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
6170
6171         * loader.c icall.c: Fix warnings.
6172
6173 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
6174
6175         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
6176         blittable types. Fixes #70864.
6177
6178 2004-12-29  Martin Baulig  <martin@ximian.com>
6179
6180         * icall.c
6181         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
6182
6183         * reflection.c (mono_method_get_object): Create a
6184         "System.Reflection.MonoGenericMethod" for inflated methods; don't
6185         call mono_get_inflated_method().
6186
6187         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
6188
6189 2004-12-27  Martin Baulig  <martin@ximian.com>
6190
6191         * class-internals.h (MonoMethod): Added `is_inflated' flag.
6192         (MonoMethodInflated): Added `inflated' field.
6193
6194         * class.c (mono_class_inflate_generic_method): Don't really
6195         inflate the method here; just set the `is_inflated' flag in the
6196         MonoMethod.
6197         (mono_class_get_inflated_method): Actually inflate the method here
6198         if it's not already inflated; we use the MonoMethodInflated's new
6199         `inflated' field as a cache.
6200
6201 2004-12-26  Martin Baulig  <martin@ximian.com>
6202
6203         * class.c
6204         (inflate_generic_class): Moved some code out of inflate_generic_type().
6205         (mono_class_inflate_generic_method): If we're already inflated,
6206         inflate the context and use the declaring method; ie. make sure
6207         the declaring method of an inflated method is always the generic
6208         method definition.
6209         (mono_class_create_from_typedef): Create
6210         `class->generic_container->context->gclass'.
6211
6212 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
6213
6214         * metadata-internals.h, marshal.c, reflection.c: More
6215         MonoGHashTable->GHashTable.
6216
6217         * domain-internals.h, class.c: Change MonoGHashTable's into
6218         GHashTables for some cases where no gc stuff is used
6219
6220         All users: update apis
6221
6222 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
6223
6224         * metadata.c (builtin_types): Make this `const'. Makes this get
6225         put into the shareable section.
6226         (mono_metadata_init): Casts to make gcc happy.
6227
6228 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
6229
6230         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
6231
6232 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
6233
6234         * icall.c: Added an internal call to retrieve the position and length
6235         of assembly-level declarative security attributes (RequestMinimum, 
6236         RequestOptional and RequestRefuse). This is used by the Assembly class
6237         to re-create the corresponding permission sets.
6238
6239 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
6240
6241         * marshal.c: fix the stelemref wrapper to be type correct
6242         (and faster).
6243
6244 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
6245
6246         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
6247         to do key & 0x7fffffff. Hashtable already does this. It just
6248         results in longer code.
6249
6250 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
6251
6252         * appdomain.c: Bump corlib version.
6253         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
6254         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
6255         * reflection.c|h: Add functions to get declarative security infos
6256         (blob position and length) for assemblies, classes and methods.
6257
6258 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
6259
6260         * reflection.c: sort the constant table (bug #70693).
6261
6262 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
6263
6264         * object-internals.h, threads.c, domain.c: add accessors for
6265         the MonoThread and MonoDomain tls keys.
6266
6267 2004-12-18  Martin Baulig  <martin@ximian.com>
6268
6269         * class.c (inflate_generic_type): If we're inflating a generic
6270         instance, set `ngclass->context->container = context->container';
6271         ie. the container we inflated into.
6272
6273         * metadata.c (mono_metadata_parse_generic_param): Reflect above
6274         inflate_generic_type() changes.
6275
6276 2004-12-17  Martin Baulig  <martin@ximian.com>
6277
6278         * class-internals.h
6279         (MonoGenericClass): Replaced `MonoType *generic_type' with
6280         `MonoClass *generic_class'.  Removed `dynamic_info'; if
6281         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
6282         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
6283
6284 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
6285
6286         * exception.c (mono_exception_from_token): New helper function.
6287
6288 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
6289
6290         * assembly.c (mono_assembly_load_with_partial_name): Call 
6291         mono_assembly_loaded before invoking the preload hooks. Fixes
6292         #70564.
6293
6294         * object-internals.h (MonoThread): Change culture_info and 
6295         ui_culture_info into an array.
6296
6297         * threads.c: Cache culture info objects from more than one appdomain.
6298
6299         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
6300         current UI culture.
6301
6302 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
6303
6304         * threads.h threads.c appdomain.c: Clear the culture_info field of
6305         all threads during unloading if they point to an object in the dying
6306         appdomain.
6307
6308 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
6309
6310         * culture-info.h (TextInfoEntry): New struct
6311         * object-internals.h: sync with managed
6312         * locales.c: fill the `text_info_data' field
6313         * culture-info-tables.h: update
6314
6315 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
6316
6317         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
6318         collector.
6319
6320 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
6321
6322         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
6323         (ves_icall_ModuleBuilder_getMethodToken): Ditto
6324
6325 2004-12-12  Martin Baulig  <martin@ximian.com>
6326
6327         * mono-debug-debugger.c (write_type): If we're an enum and the
6328         builtin types have already been initialized, call mono_class_init().
6329
6330 2004-12-11  Martin Baulig  <martin@ximian.com>
6331
6332         * metadata.c (mono_metadata_load_generic_params): Added
6333         `MonoGenericContainer *parent_container' argument; automatically
6334         compute `container->is_method'; pass the correct owner to
6335         get_constraints().      
6336
6337         * reflection.c (compare_genericparam): Sort the GenericParam table
6338         according to increasing owners. 
6339
6340 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
6341
6342         * profiler.c: allow disabling the default profiler.
6343
6344 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
6345
6346         * decimal.c, icall.c: allow disabling System.Decimal support.
6347
6348 2004-12-09  Marek Safar <marek.safar@seznam.cz>
6349
6350         * reflection.c: Add support for null attribute arguments.
6351
6352 2004-12-09  Martin Baulig  <martin@ximian.com>
6353
6354         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
6355         names to get rid of compiler warnings.
6356
6357 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6358
6359         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
6360         mono_marshal_load_type_info (). Fixes #69625.
6361         (mono_marshal_get_ptr_to_struct): Likewise.
6362
6363 2004-12-08  Martin Baulig  <martin@ximian.com>
6364
6365         * mono-debug.h: Bumped version number to 47.
6366
6367         * mono-debug-debugger.c
6368         (mono_debugger_event_handler, mono_debugger_event): Take two
6369         guint64 arguments insteed of a gpointer and a guint32.  
6370
6371 2004-12-08  Martin Baulig  <martin@ximian.com>
6372
6373         * debug-mono-symfile.h
6374         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
6375         `address' to `native_offset'.
6376
6377 2004-12-08  Martin Baulig  <martin@ximian.com>
6378
6379         * class.c (mono_class_create_from_typespec): Only inflate if we
6380         either have `context->gclass' or `context->gmethod'.
6381
6382 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
6383
6384         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
6385
6386         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
6387
6388         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
6389
6390         * reflection.c (mono_assembly_get_object): Remove the workaround put
6391         in for the release.
6392         
6393         * appdomain.c: Use the corlib_internal field from MonoAssembly.
6394
6395         * appdomain.c: Bump corlib version.
6396
6397         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
6398         be visible in other appdomains.
6399
6400 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
6401
6402         * threads.c: Interlocked inc and dec for longs were messed up,
6403         use a KISS based impl for this. Fixes 70234
6404
6405 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
6406
6407         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
6408
6409 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6410
6411         * icall.c: fix to follow policy not to allow struct
6412         arguments in icalls.
6413
6414 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6415
6416         * process.c: make the patch that handles spaces in file paths work
6417         on mono/windows too.
6418
6419 2004-12-06  Martin Baulig  <martin@ximian.com>
6420
6421         * class.c (mono_class_create_generic): Call
6422         mono_class_setup_supertypes() if we're dynamic.
6423         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
6424
6425 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
6426
6427         * object-internals.h: Add new fields to MonoThread.
6428
6429         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6430
6431         * icall.c threads-types.h threads.c: Add new icalls.
6432
6433         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
6434
6435         * object-internals.h (MonoReflectionAssembly): Sync object layout with
6436         managed side.
6437
6438         * appdomain.c: Bump corlib version.
6439
6440         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
6441         internal assemblies. Fixes #69181.
6442
6443 2004-12-05  Martin Baulig  <martin@ximian.com>
6444
6445         * class.c (mono_class_inflate_generic_signature): Make this a
6446         no-op if `context' is NULL or we don't have any type parameters;
6447         also copy `sentinelpos'.        
6448
6449 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
6450
6451         * image.c: Add unbox_wrapper_cache.
6452
6453         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
6454
6455         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
6456         function generator.
6457         
6458         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
6459         Fixes #70173.
6460
6461         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
6462         
6463 2004-12-04  Martin Baulig  <martin@ximian.com>
6464
6465         * loader.c (mono_method_get_signature_full): New public function;
6466         like mono_method_get_signature(), but with an additional
6467         `MonoGenericContext *' argument.
6468
6469         * class.c (mono_class_inflate_generic_signature): Formerly known
6470         as inflate_generic_signature(); make this public.
6471
6472 2004-12-04  Martin Baulig  <martin@ximian.com>
6473
6474         * metadata.c
6475         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
6476         instead of a `MonoGenericContainer *'.  
6477         (mono_metadata_parse_array_full): Likewise.
6478         (mono_metadata_parse_signature_full): Likewise.
6479         (mono_metadata_parse_method_signature_full): Likewise.
6480         (mono_metadata_parse_generic_inst): Likewise.
6481         (mono_metadata_parse_generic_param): Likewise.
6482         (mono_metadata_parse_mh_full): Likewise.
6483         (mono_type_create_from_typespec_full): Likewise.
6484
6485 2004-12-03  Martin Baulig  <martin@ximian.com>
6486
6487         * class-internals.h (MonoGenericContainer): Replaced the
6488         `MonoGenericContext * pointer with a `MonoGenericContext'
6489         structure and made it the first element.
6490
6491 2004-12-03  Martin Baulig  <martin@ximian.com>
6492
6493         * class.c
6494         (inflate_generic_type): Set the `context->container' when creating
6495         a new MonoGenericContext.
6496         (mono_class_inflate_generic_method): Likewise.
6497         (mono_class_create_from_typespec): Just use `context->container'
6498         to get the container.
6499
6500         * loader.c (method_from_methodspec): Set `context->parent' from
6501         `context->container' - and if that's a method container, use its
6502         parent.  Also set the `context->container' when creating a new
6503         MonoGenericContext.
6504         (mono_get_method_from_token): Use just `context->container' to get
6505         the container.
6506
6507         * metadata.c (do_mono_metadata_parse_generic_class): Also set
6508         `gclass->context->container'.
6509
6510         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
6511         the `context->container' when creating a new MonoGenericContext.
6512
6513 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
6514
6515         * reflection.c (compare_genericparam): Sort params with identical
6516         owner by their number. Fixes gen-111 on sparc.
6517
6518 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6519
6520         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
6521         around the domain changes.
6522
6523         * appdomain.c (mono_domain_unload): Handle the case when the thread
6524         calling Unload is itself being aborted during unloading. Fixes #70022.
6525
6526         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
6527
6528         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
6529         checkpoint_func as an icall so it gets a wrapper.
6530         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
6531         in the cross-appdomain wrappers too.
6532
6533         * threads.c (mono_thread_has_appdomain_ref): Make this public.
6534
6535         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
6536
6537         * reflection.c: Fix some memory leaks.
6538         
6539 2004-12-02  Martin Baulig  <martin@ximian.com>
6540
6541         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
6542
6543         * metadata.c (generic_class_cache): New static hashtable.
6544         (mono_metadata_lookup_generic_class): New public method.
6545
6546 2004-12-02  Martin Baulig  <martin@ximian.com>
6547
6548         * class.c (mono_class_create_from_typedef): Call
6549         mono_class_setup_parent() and mono_class_create_mono_type() before
6550         parsing the interfaces.
6551
6552 2004-12-02  Martin Baulig  <martin@ximian.com>
6553
6554         * metadata.c (generic_inst_cache): New static hashtable.
6555         (mono_metadata_lookup_generic_inst): New public function.
6556         (mono_metadata_inflate_generic_inst): New public function.
6557         (mono_metadata_parse_generic_inst): New public function.
6558         (do_mono_metadata_parse_generic_class): Use the new
6559         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
6560         since this'll also use the cache.
6561
6562         * reflection.c (mono_reflection_bind_generic_method_parameters):
6563         Use mono_metadata_lookup_generic_inst() to use the new cache.
6564
6565         * class.c (inflate_mono_type): Use
6566         mono_metadata_inflate_generic_inst() to inflate a generic
6567         instance; this'll also use the new cache.
6568
6569         * loader.c (method_from_methodspec): Use
6570         mono_metadata_parse_generic_inst() and
6571         mono_metadata_inflate_generic_inst() rather than parsing it
6572         manually, so we can use the new cache.
6573
6574 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
6575
6576         * threads.c (wait_for_tids): Do not incorrectly free threads when 
6577         the wait times out.
6578
6579 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
6580
6581         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
6582         iter->args based on whether parameters are passed in registers (i.e.
6583         MONO_ARCH_REGPARMS is defined)
6584
6585 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
6586
6587         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
6588         the exception message. Fixes #70070.
6589         (method_from_methodspec): Fix warnings.
6590
6591 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6592
6593         * process.c: (complete_path) return the path quoted
6594
6595 2004-12-01  Martin Baulig  <martin@ximian.com>
6596
6597         * class-internals.h (MonoGenericInst): New structure.
6598         (MonoGenericClass): Replaced `type_argc', `type_argv' and
6599         `is_open' with `MonoGenericInst *inst'.
6600         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
6601         `is_open' with `MonoGenericInst *inst'.
6602
6603 2004-11-30  Martin Baulig  <martin@ximian.com>
6604
6605         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
6606
6607         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
6608         to `generic_class_cache'.
6609
6610         * metadata.c
6611         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
6612         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
6613         (mono_generic_inst_is_valuetype): Renamed to
6614         mono_generic_class_is_valuetype().
6615
6616         * class-internals.h
6617         (MonoGenericInst): Renamed to MonoGenericClass.
6618         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
6619         (MonoClass): Renamed `generic_inst' to `generic_class'.
6620         (MonoGenericContext): Renamed `ginst' to `gclass'.
6621
6622         * object-internals.h
6623         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
6624
6625         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
6626         mono_reflection_generic_class_initialize().
6627
6628         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
6629         now known as "System.Reflection.MonoGenericClass".
6630         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
6631
6632 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
6633
6634         * class-internals.h: Added a flag field to MonoClass to cache the
6635         declarative security attributes actions associated with the class.
6636         * domain-internals.h: Added booleans to MonoJitInfo to cache the
6637         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
6638         applicable to the JITted method.
6639         * reflection.c|h: Added functions to extract (as flags) which security
6640         actions are available (declaratively) for a method, class or assembly.
6641         * metadata.c|h: Added functions to search the declarative security
6642         table in the metadata.
6643         
6644 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
6645
6646         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
6647         EXPORTEDTYPES are already in the class name cache, so there is no
6648         need to add extra code here to look at them. Just removes a bit of
6649         cruft.
6650
6651         (ves_icall_System_Environment_get_TickCount): No need for #if
6652         WINDOWS. We already have the code in io-layer.
6653
6654 2004-11-28  Martin Baulig  <martin@ximian.com>
6655
6656         * loader.c
6657         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
6658         Fixes gen-112.cs.
6659
6660 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
6661
6662         * assembly.c (do_mono_assembly_open): Instead of having a
6663         conditional WITH_BUNDLE, incorporate support for bundles here, by
6664         having a global `bundles' variable holding a pointer to the actual
6665         bundles. 
6666
6667         (mono_register_bundled_assemblies): New API call used by the
6668         bundle code. 
6669
6670         See mkbundle.1 for details.
6671         
6672 2004-11-27  Martin Baulig  <martin@ximian.com>
6673
6674         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
6675         the vtable for generic methods.
6676
6677 2004-11-26  Martin Baulig  <martin@ximian.com>
6678
6679         * metadata.c
6680         (mono_metadata_generic_method_hash): New public function.
6681         (mono_metadata_generic_method_equal): Likewise.
6682
6683         * class-internals.h
6684         (MonoGenericContainer): Added `GHashTable *method_hash'.
6685
6686         * reflection.c (ReflectionMethodBuilder): Added
6687         `MonoGenericContainer *generic_container'.
6688         (reflection_methodbuilder_to_mono_method): Don't create a new
6689         MonoGenericContainer each time we're called.
6690         (mono_reflection_bind_generic_method_parameters): Use
6691         `container->method_hash' to cache the results so we don't create a
6692         different method if we're called several times with the same
6693         arguments.
6694
6695         * loader.c (method_from_methodspec): Use the new
6696         `container->method_hash' here, too.
6697
6698 2004-11-26  Martin Baulig  <martin@ximian.com>
6699
6700         * class.c (inflate_generic_signature): Correctly compute
6701         `res->has_type_parameters'.
6702         (mono_class_vtable): Use the `has_type_parameters' flag to
6703         determine whether we're a generic method.
6704
6705         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
6706
6707 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
6708
6709         * object.c (mono_runtime_run_main): Fix a small memory leak.
6710
6711 2004-11-25  Martin Baulig  <martin@ximian.com>
6712
6713         * class.c (set_generic_param_owner): Fixed the loop.
6714
6715 2004-11-25  Martin Baulig  <martin@ximian.com>
6716
6717         * object.c (mono_class_vtable): Don't create any JIT wrappers for
6718         generic methods.
6719
6720 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
6721
6722         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
6723         names. Fixes #69787.
6724
6725 2004-11-24  Martin Baulig  <martin@ximian.com>
6726
6727         * class.c (mono_class_create_generic_2): If we don't have a
6728         `ginst->parent', inflate `gklass->parent' to get our parent.
6729
6730 2004-11-24  Martin Baulig  <martin@ximian.com>
6731
6732         * reflection.c (compare_genericparam): Correctly sort the
6733         GenericParam table; fixes #69779.
6734
6735 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
6736
6737         * reflection.c: When writing a PE file, don't create a huge
6738         buffer in memory. Just write the arrays we have to the file.
6739         This reduces memory usage.
6740
6741         * metadata-internals.h: MonoDynamicStream pefile is no longer used
6742         globally.
6743
6744 2004-11-17  Martin Baulig  <martin@ximian.com>
6745
6746         * class.c (mono_class_init): Don't setup `class->parent' for
6747         dynamic instances; moved this to mono_class_generic_2().
6748         (mono_class_create_generic): Also set `klass->inited' for dynamic
6749         generic instances.
6750         (mono_class_create_generic_2): Don't do anything for dynamic
6751         generic instances.  Set `klass->parent' here and also call
6752         mono_class_setup_parent() here. 
6753
6754         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
6755         `MonoType *parent' argument; set `ginst->parent' before calling
6756         mono_class_create_generic_2(), so we set the correct parent.
6757
6758 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
6759
6760         * reflection.c: allow getting attributes from ModuleBuilder
6761         (used by ikvm).
6762
6763 2004-11-17  Martin Baulig  <martin@ximian.com>
6764
6765         * class.c (mono_class_create_from_typedef): If a type parameter is
6766         inherited from an outer class, set its owner to that class.
6767
6768 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
6769
6770         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
6771           for (int*) written size. This fixes bug #69592.
6772
6773 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
6774
6775         * icall.c: Added IsAuthenticodePresnet internal call.
6776         * image.c|h: New function that check a MonoImage for an Authenticode
6777         signature in the certificate PE data directory.
6778         * security.c|h: New internal call to ask the runtime if an 
6779         Authenticode signature seems referenced in the PE header.
6780
6781 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
6782
6783         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
6784
6785         * reflection.c (mono_image_create_pefile): Free the assembly streams
6786         after writing out the assembly file.
6787
6788         * object.c (mono_runtime_run_main): Fix small memory leak.
6789
6790         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
6791         property access modifiers. Fixes #69389.
6792
6793 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
6794
6795         * domain.c, object.c, object-internals.h, domain-internals.h,
6796         object.h, marshal.c: keep dynamic code info per domain.
6797
6798 2004-11-15  Martin Baulig  <martin@ximian.com>
6799
6800         * class.c (mono_type_get_name_recurse): Put type arguments in
6801         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
6802         see bug #68387.
6803
6804 2004-11-15  Martin Baulig  <martin@ximian.com>
6805
6806         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
6807         (mono_class_setup_vtable): When computing `the_cname' for a
6808         generic instance, don't include the namespace since we'd otherwise
6809         add it twice.
6810
6811 2004-11-15  Martin Baulig  <martin@ximian.com>
6812
6813         * class.c (mono_class_create_generic): Changed return type to void.
6814         (mono_class_create_generic_2): New public function; setup
6815         `class->method', `class->field' and `class->interfaces' here
6816         instead of in mono_class_init().
6817
6818         * class.h (mono_class_create_generic): Moved to class-internals.h.
6819
6820 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
6821
6822         * reflection.c (mono_image_create_pefile): take a file HANDLE.
6823         rather than writing to memory, write to this file. Right now,
6824         we are just writting into a buffer, and copying that. However
6825         we can avoid the buffer later.
6826
6827         (mono_dynamic_stream_reset): new function
6828
6829         * icall.c, object-internals.h: update for the above.
6830
6831 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
6832
6833         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
6834         have been using gc'd memory. First it is slower, unlikely
6835         the comment in the source code said, secondly, it increases
6836         our footprint to do it in the gc.
6837
6838         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
6839         the method so that it does not have to copy to managed code.
6840
6841 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
6842
6843         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
6844
6845 2004-11-12  Martin Baulig  <martin@localhost>
6846
6847         * reflection.c (mono_image_create_token): Allow generic method
6848         definitions here, since they may appear in an `.override'; see
6849         gen-98/gen-99 for an example.
6850
6851 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
6852
6853         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
6854         #69365.
6855
6856         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
6857         descriptive.
6858
6859 2004-11-11  Martin Baulig  <martin@ximian.com>
6860
6861         * class.c (mono_class_setup_vtable): In an explicit interface
6862         implementation, the method name now includes the arity.
6863
6864 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
6865
6866         * object.c (mono_array_full_copy): Fix warning.
6867
6868 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
6869
6870         * appdomain.c: Removed look_for_method_by_name(). Use the new method
6871         mono_class_get_method_from_name() instead.
6872         
6873         * class-internals.h: Added two new types of wrappers. 
6874         Added MonoRemotingTarget enum. Added new trampoline function type, which
6875         takes an additional MonoRemotingTarget value as parameter, so it is
6876         possible to request a trampoline for a specific target.
6877         
6878         * class.c: Added new mono_class_get_method_from_name() method.
6879         
6880         * class.h: In MonoRemoteClass, we can have now to vtables, one for
6881         general remoting sinks and one specific for cross domain calls.
6882         
6883         * debug-helpers.c: Added new wrapper names.
6884         
6885         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
6886         of a remote class.
6887         
6888         * image.c: Porperly delete value objects form the remoting invoke hashtable.
6889         
6890         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
6891         with several other methods (mono_marshal_get_xappdomain_dispatch,
6892         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
6893         and others) can generate a fast remoting wrapper for cross domain calls.
6894         More information can be found in docs/remoting.
6895         Other changes: Removed mono_find_method_by_name, and used
6896         mono_class_get_method_from_name instead.
6897         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
6898         is stored in the remoting invoke hashtable.
6899         
6900         * marshal.h: published the new method for getting the xdomain wrapper,
6901         and also added a method for getting the adequate wrapper for a given
6902         method and target.
6903         
6904         * object-internals.h, object.c: Added a couple of methods for capying and
6905         cloning arrays.
6906         Modified mono_install_remoting_trampoline, which takes the new remoting
6907         trampoline that has a remoting target as parameter.
6908         mono_class_proxy_vtable now also takes a remoting target as parameter, and
6909         will return the most suitable vtable for the target.
6910         Added mono_remote_class_vtable, which returns the vtable of a remote class
6911         (which can be the normal remoting vtable or the xdomain vtable).
6912         
6913         * threads.c: the xdomain invoke and dispatch wrappers must also be
6914         protected against interruptions.
6915
6916 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
6917
6918         * icall.c: use memmove in BlockCopyInternal when the source and
6919         destination arrays are the same.
6920
6921 2004-11-09  Martin Baulig  <martin@ximian.com>
6922
6923         * class-internals.h (MonoGenericContainer): Removed `method' and
6924         `signature', replaced them with `is_method' and `is_signature'
6925         flags.  Added `context'.
6926
6927         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
6928         instead of a `MonoGenericContainer *'.
6929
6930         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
6931         for dynamic type parameters.
6932         (mono_metadata_load_generic_params): Setup `container->context'.
6933
6934         * reflection.c (mono_reflection_setup_generic_class): Setup
6935         `tb->generic_container->context'.
6936         (do_mono_reflection_bind_generic_parameters): Use
6937         mono_class_inflate_generic_type() to correctly inflate types,
6938         rather than using our own hack just for MONO_TYPE_VAR.
6939
6940 2004-11-09  Martin Baulig  <martin@ximian.com>
6941
6942         * class.c (mono_class_inflate_generic_method): Small fix; don't
6943         crash here.
6944
6945         * icall.c
6946         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
6947         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
6948         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
6949         (ves_icall_Type_BindGenericParameters): Likewise.
6950         (ves_icall_Type_get_IsGenericInstance): Likewise.
6951         (ves_icall_Type_GetGenericParameterPosition): Likewise.
6952         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
6953         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
6954         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
6955
6956 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
6957
6958         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
6959         assembly versions and public key tokens. Fixes #69113.
6960
6961 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
6962
6963         * metadata.c: fix bug introduced with the type cache changes
6964         on 2004-11-06.
6965
6966 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
6967
6968         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
6969         the MonoClass pointer instead of the token in exception clauses.
6970         * reflection.c: updates for the above and make the code not depend
6971         on the structure of MonoExceptionClause.
6972
6973 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
6974
6975         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
6976         Add support for dynamic assemblies. Fixes #69114.
6977
6978         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
6979
6980 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
6981
6982         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
6983         since most only those methods use it. the code member of
6984         MonoMethodPInvoke was dead, so that can be removed too. Also,
6985         remove inline_count (again, not used), and move slot so that it
6986         can share bits with some other flags. This saves 8 bytes in the
6987         structure and gives us about 50 kb back for mcs helloworld.cs
6988
6989         * *.[ch]: Do naming changes for the above.
6990
6991         * loader.c (mono_method_get_header): Lazily init the header
6992         on first access.
6993         (mono_get_method_from_token): don't init the header here
6994         (mono_free_method): the header may never be allocated
6995
6996         Overall, this saves 150 kb of unmanaged allocations
6997         for mcs helloworld.cs. That accounts for 10% of the unmanaged
6998         memory at runtime.
6999         
7000         * loader.c, loader.h (mono_method_get_header): new accessor.
7001
7002         * *.[ch]: use the above method. Prepares us to lazily load
7003         the header.
7004
7005         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
7006         three warnings, which are actual bugs (see 69206).
7007
7008         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
7009         unused. Saves a cool 4 bytes / method.
7010
7011 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
7012
7013         * metadata.c (builtin_types): Add types for System.Object here.
7014         (mono_metadata_parse_type_full): Cache MonoType*'s that are
7015         for a class or valuetype from klass->this_arg or klass->byval_arg.
7016
7017         On mcs for a hello world, this gets us down from 21836 MonoType's
7018         to 14560.
7019
7020         (mono_metadata_free_type): Account for the above change.
7021
7022 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
7023
7024         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
7025         exception instead of asserting if name is null.
7026         (ves_icall_System_AppDomain_GetData): Ditto.
7027
7028 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
7029
7030         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
7031         EnumBuilder.
7032
7033         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
7034         Return NULL when the domain does not have entry_assembly set.
7035
7036         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
7037         Add a 'resource_modules' argument.
7038         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
7039
7040         * reflection.c (mono_reflection_create_runtime_class): Move setting
7041         of wastypebuilder here, so mono_get_type_object () returns a MonoType
7042         for enums too.
7043
7044         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
7045         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
7046         Throw an ArgumentNullException if 'ptr' is null.
7047
7048         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
7049         assemblies here. Fixes #69020.
7050
7051 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
7052
7053         * reflection.c (build_compressed_metadata): Fix the previous patch for
7054         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
7055         the stack.
7056
7057 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
7058
7059         * assembly.c (mono_assembly_names_equal): Allow a match if one of
7060         the cultures is false. Fixes #69090.
7061
7062         * reflection.c (build_compressed_metadata): Fix invalid memory read 
7063         detected by valgrind.
7064         
7065         * reflection.c (mono_reflection_get_type): Avoid triggering a 
7066         TypeResolve multiple times for the same type. Fixes #65577.
7067
7068 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
7069
7070         * marshal.c: Avoid using ldftn to call managed functions. It is
7071         much slower than just a call.
7072
7073         * reflection.c (mono_module_get_object): free the basename we
7074         allocate here from glib.
7075         
7076         * reflection.c (ensure_runtime_vtable): make sure to free
7077         overrides.  Also, we were allocating an array of MonoMethod not an
7078         array of MonoMethod*.
7079
7080         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
7081
7082         * image.c (mono_image_close): free image->guid here.
7083
7084 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
7085
7086         * reflection.c: Fix some spec conformance issues with the PE file
7087         structures so mcs compiled apps run on the Net 2.0 beta.
7088
7089 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
7090
7091         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
7092         Implement this. Fixes #67264.
7093
7094         * debug-helpers.h debug-helpers.c marshal.c: Move 
7095         mono_find_method_by_name to debug-helpers.c.
7096
7097 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
7098
7099         * object.c (mono_release_type_locks): type_initialization_hash is
7100         a GHashTable.
7101
7102         * reflection.c object.c object-internals.h: Fix warnings.
7103
7104         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
7105         without accessors. Fixes #61561.
7106
7107         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
7108         application base from the root domain if not set. Fixes #65641.
7109         (mono_runtime_init): Fix warning.
7110
7111 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7112
7113         * appdomain.c: call mono_thread_pool_init.
7114         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
7115         of worker threads based on the number of CPUs and the environment
7116         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
7117         for non-windows (windows) systems.
7118
7119 2004-10-27  Chris Toshok  <toshok@ximian.com>
7120
7121         * mono-debug-debugger.c (write_class): don't call mono_class_init
7122         here, as even with the check for (!klass->init_pending), we get
7123         into a situation where we're hitting cycles in class
7124         initialization.  Fixes #68816.
7125
7126 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
7127
7128         * image.c: Avoid overwriting values in the loaded_images_hash when an
7129         assembly is loaded multiple times. Fixes #61152.
7130
7131         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
7132         so multiple satellite assemblies for the same name can be loaded.
7133         Fixes #68259.
7134
7135         * mono_domain_assembly_preload: Actually return the loaded assembly, 
7136         not NULL.
7137
7138         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
7139         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
7140
7141         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
7142         pending finalizers are not invoked after the appdomain has been 
7143         unloaded. Fixes #67862.
7144
7145 2004-10-22  Martin Baulig  <martin@ximian.com>
7146
7147         * mono-debug-debugger.c
7148         (mono_debugger_runtime_invoke): Don't box valuetypes.
7149
7150 2004-10-22  Chris Toshok  <toshok@ximian.com>
7151
7152         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
7153         don't hide private methods.
7154
7155 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
7156
7157         * icall.c: Allows the runtime to "share" (when known) the public key
7158         token of an assembly. This avoid the need to recalculate the token 
7159         (from the public key) in managed code.
7160
7161 2004-10-21  Chris Toshok  <toshok@ximian.com>
7162
7163         * debug-helpers.c (append_class_name): argh, revert last patch.
7164         
7165 2004-10-21  Chris Toshok  <toshok@ximian.com>
7166
7167         * debug-helpers.c (append_class_name): use '+' as the delimiter,
7168         not '/', so that it matches what the debugger uses to look up
7169         methods.
7170
7171 2004-10-21  Martin Baulig  <martin@ximian.com>
7172
7173         * mono-debug-debugger.c (mono_debugger_throw_exception): New
7174         public method; this is called each time an exception is thrown and
7175         allows the debugger to use exception catch points.
7176
7177 2004-10-21  Martin Baulig  <martin@ximian.com>
7178
7179         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
7180         the stack pointer and the exception object in some struct and pass
7181         that to the debugger.
7182
7183 2004-10-21  Chris Toshok  <toshok@ximian.com>
7184
7185         * mono-debug-debugger.c (do_write_class): add instance/static
7186         event support.  We don't expose "raise" or "other" yet.
7187         (event_is_static): new method.
7188
7189 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
7190
7191         * mono-debug-debugger.c
7192         (mono_debugger_handle_exception): Remove
7193         bogus return value for fussy compilers.
7194
7195 2004-10-20  Martin Baulig  <martin@ximian.com>
7196
7197         * mono-debug-debugger.c
7198         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
7199         (mono_debugger_handled_exception): Likewise.
7200
7201 2004-10-20  Martin Baulig  <martin@ximian.com>
7202
7203         * mono-debug-debugger.h (MonoDebuggerEvent): Added
7204         MONO_DEBUGGER_EVENT_EXCEPTION.
7205
7206         * mono-debug-debugger.c (mono_debugger_handle_exception): New
7207         public function to send the debugger a notification for an
7208         exception and inform it about a catch/finally clause.
7209
7210 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
7211
7212         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
7213         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
7214         fix 2.95 build. 
7215
7216         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
7217
7218 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
7219
7220         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
7221         marshalled as [In,Out]. Fixes #58325.
7222
7223 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
7224
7225         * reflection.c (mono_method_body_get_object): Implement some fields.
7226
7227 2004-10-12  Martin Baulig  <martin@ximian.com>
7228
7229         * reflection.c (mono_reflection_bind_generic_parameters): Small
7230         fix, correctly retrieve our parent from a generic instance.
7231
7232 2004-10-12  Martin Baulig  <martin@ximian.com>
7233
7234         * metadata.c (mono_metadata_generic_param_equal): We always have
7235         an owner.
7236
7237         * class.c
7238         (mono_class_from_generic_parameter): We need to have an owner.
7239         (my_mono_class_from_generic_parameter): Likewise.
7240
7241         * reflection.c (mono_reflection_setup_generic_class): Renamed to
7242         mono_reflection_create_generic_class() and added a new
7243         mono_reflection_setup_generic_class().  
7244         (mono_reflection_initialize_generic_param): If we're a nested
7245         generic type and inherited from the containing class, set our
7246         owner to the outer class.
7247
7248 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
7249
7250         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
7251
7252         * reflection.c (mono_method_body_get_object): New function to create
7253         a MethodBody object.
7254
7255         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
7256
7257 2004-10-11  Martin Baulig  <martin@ximian.com>
7258
7259         * metadata.c (_mono_metadata_type_equal): Renamed to
7260         do_mono_metadata_type_equal() and made static.
7261
7262 2004-10-11  Martin Baulig  <martin@ximian.com>
7263
7264         * appdomain.c: Bump corlib version number to 28.
7265
7266 2004-10-10  Martin Baulig  <martin@ximian.com>
7267
7268         * class-internals.h
7269         (MonoGenericInst): Added `MonoGenericContainer *container'.
7270         (MonoGenericMethod): Likewise.
7271         (MonoGenericContext): Likewise.
7272         (MonoGenericParam): Added `MonoGenericContainer *owner'.
7273
7274         * metadata.c
7275         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
7276         (do_mono_metadata_parse_generic_inst): Likewise.
7277         (mono_metadata_parse_type_full): New public method.  This is the actual
7278         mono_metadata_parse_type() implementation - with an additional
7279         `MonoGenericContainer *' argument.
7280         (mono_metadata_parse_array_full): Likewise.
7281         (mono_metadata_parse_signature_full): Likewise.
7282         (mono_metadata_parse_method_signature_full): Likewise.
7283         (mono_metadata_parse_mh_full): Likewise.
7284         (mono_type_create_from_typespec): Likewise.
7285         (mono_metadata_interfaces_from_typedef_full): New public method;
7286         this is similar to the other _full() methods, but we take a
7287         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
7288         (mono_metadata_parse_generic_param): Take an additional
7289         `MonoGenericContainer *' argument and lookup the MonoGenericParam
7290         from that container.
7291         (mono_metadata_generic_param_equal): New static method to compare
7292         two type parameters.
7293         (_mono_metadata_type_equal): New static method; takes an
7294         additional `gboolean signature_only' argument - if true, we don't
7295         compare the owners of generic parameters.
7296         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
7297         with a TRUE argument - do a signature-only comparision.
7298
7299         * loader.c: Use the new _full() methods and pass the
7300         MonoGenericContainer to them.
7301
7302         * object-internals.h (MonoReflectionTypeBuilder): Added
7303         `MonoGenericContainer *generic_container' field.
7304         (MonoReflectionMethodBuilder): Likewise.
7305
7306 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
7307
7308         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
7309         case initial images of dynamic assemblies.
7310
7311         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
7312
7313         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
7314
7315         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
7316         length of event->other array.
7317         (typebuilder_setup_events): Ditto.
7318
7319         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
7320         'assembly_by_name' and add an 'assemblies' list.
7321
7322         * assembly.h assembly.c: Add a new search hook for determining whenever
7323         an assembly is already loaded. Use this instead of searching in the
7324         loaded_assemblies list.
7325
7326         * domain.c appdomain.c: Implement the new search hook so loaded 
7327         assemblies are now scoped by appdomain. Fixes #67727.
7328
7329 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
7330
7331         * threads.c (mono_thread_attach): Initialize synch_lock field so
7332         mono_thread_detach works again.
7333
7334         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
7335         'lib' too. Fixes #63130.
7336
7337 2004-10-06  Jackson Harper  <jackson@ximian.com>
7338
7339         * culture-info-tables.h: regenerated.
7340
7341 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
7342
7343         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
7344         implemented by other interfaces in the result. Fixes #65764.
7345         
7346         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7347         Handle unloadable modules without crashing.
7348
7349         * image.c (load_modules): Revert the previous patch since modules must
7350         have a fixed index inside the array.
7351         
7352         * image.c (load_modules): Don't include native modules in the modules
7353         array.
7354
7355 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
7356
7357         * reflection.h: Add param_defaults field.
7358
7359         * reflection.c: Add support for parameter defaults in dynamic methods.
7360         Fixes #64595.
7361
7362         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
7363         an empty string when a type has no namespace. Fixes #64230.
7364
7365 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
7366
7367         * tabledefs.h: Added "internal" security actions to support non-CAS
7368         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
7369         Note: they do not seems to be used anymore in 2.0 (new metadata format)
7370
7371 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
7372
7373         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
7374         constructor of abstract class. Fixes #61689.
7375
7376 2004-10-04  Martin Baulig  <martin@ximian.com>
7377
7378         * class-internals.h (MonoGenericContainer): New type.
7379         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
7380         `MonoGenericContainer *generic_container'.
7381         (MonoClass): Replaced `gen_params' and `num_gen_params' with
7382         `MonoGenericContainer *generic_container'.
7383
7384         * metadata.c (mono_metadata_load_generic_params): Return a
7385         `MonoGenericContainer *' instead of a `MonoGenericParam *';
7386         removed the `num' argument.
7387
7388 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
7389
7390         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
7391         for dynamic images.
7392
7393         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
7394         machine fields.
7395
7396         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
7397
7398         * reflection.c: Save pe_kind and machine values into the generated
7399         image file.
7400
7401         * appdomain.c: Bump corlib version number.
7402
7403         * object-internals.h: Reorganize layout of LocalBuilder.
7404
7405         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
7406         New helper function.
7407
7408         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
7409         created MonoType for dynamic types. Fixes #66180.
7410
7411 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
7412
7413         * threadpool.c: the ares hashtable needs a critical section around it.
7414         this prevents some nasty segfaults
7415
7416 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
7417
7418         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
7419         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
7420         bug 67324).
7421         
7422 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7423
7424         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
7425         
7426 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
7427
7428         * image.c: Always canonicalize image file names, to avoid loading
7429         the same assembly twice when referenced using a relative path.
7430
7431 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
7432
7433         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
7434
7435         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
7436
7437         * marshal.c: Fix warnings.
7438
7439 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
7440
7441         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
7442         attempting to marshal the delegate_trampoline as the method_addr.
7443         This patch has a static hashtable of marshalled delegates so that 
7444         we can map delegate_trampoline addresses back to delegates.  This
7445         allows a delegate passed to managed code to be passed back into native
7446         code.  Fixes #67039
7447
7448 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7449
7450         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
7451
7452         * reflection.c (method_encode_code): Align method headers properly.
7453         Fixes #66025.
7454
7455 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7456
7457         * marshal.c: In the runtime invoke wrapper, reset the abort
7458         exception if it is cached. This avoids the automatic rethrowal of 
7459         the exception after the catch of the wrapper. Also check for pending
7460         interruptions before calling the managed method. This is done using
7461         the new method emit_thread_force_interrupt_checkpoint, since the
7462         normal checkpoint method is ignored when running the invoke wrapper.
7463         * object.c: If the abort exception is rethrown, set the abort_exc
7464         field of the thread, so it will be rethrown aftere every catch.
7465         * threadpool.c: Only run an interruption checkpoint if what has been
7466         requested is a stop of the thread (aborts will be ignored).
7467         * threads.c: By default, a thread will now never be interrumped while
7468         running the runtime invoke wrapper (this ensures that runtime_invoke
7469         will always return to the caller if an exception pointer is provided).
7470         There is a new special method mono_thread_force_interruption_checkpoint()
7471         to force an interruption checkpoint even if running a protected
7472         wrapper, which is used by the same runtime invoke wrapper to do a check
7473         at a safe point.
7474
7475 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
7476
7477         * object.c, object-internals.h: Implemented mono_release_type_locks,
7478         which releases the cctor locks held by a thread.
7479         * threads.c, threads.h: In thread_cleanup, release cctor locks held
7480         by a thread. Added mono_thread_exit() method to be used to safely stop
7481         a thread.
7482
7483 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7484
7485         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
7486         Move null check before dereference.  Avoid indexing beyond the end
7487         of the 'modules' array.
7488
7489 2004-09-28  Raja R Harinath  <rharinath@novell.com>
7490
7491         * metadata-internals.h (MonoImage): Add module_count field.
7492         * image.c (load_modules): Set image->module_count.
7493         (mono_image_load_file_for_image): Use image->module_count.
7494         * reflection.c (mono_image_load_module): Append to image->modules array 
7495         of dynamic assembly.
7496         (mono_module_get_object): Fix loop to actually increment index.
7497         Use image->module_count.
7498         * assembly.c (mono_assembly_load_references): Use image->module_count.
7499         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
7500         Likewise.
7501
7502 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
7503
7504         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
7505         Avoid assert on generic types.
7506
7507 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
7508
7509         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
7510
7511         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
7512
7513         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
7514         function to convert a MarshalSpec structure to its managed counterpart.
7515
7516         * reflection.c: Fix warnings.
7517         
7518         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
7519         field.
7520
7521         * icall.c (mono_create_icall_signature): Fix build.
7522
7523 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
7524
7525         * icall.c: Add MakePointType icall.
7526
7527         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
7528         warnings.
7529
7530 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7531
7532         * threadpool.c: reuse allocated slots in the queue.
7533
7534 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
7535
7536         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
7537
7538         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
7539
7540         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
7541         previous change.
7542
7543         * tabledefs.h: Add constants for pinvoke attributes BestFit and
7544         ThrowOnUnmappableChar.
7545
7546         * icall.c (ves_icall_Type_GetPacking): New icall.
7547
7548 2004-09-24  Martin Baulig  <martin@ximian.com>
7549
7550         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
7551
7552 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7553
7554         * appdomain.c:
7555         (mono_domain_set): allow setting a domain that is being unloaded.
7556         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
7557         being unloaded.
7558
7559 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7560
7561         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
7562         the GetCustomAttributes icall.
7563
7564 2004-09-23  Martin Baulig  <martin@ximian.com>
7565
7566         * object-internals.h (MonoReflectionGenericParam): Replaced
7567         'has_ctor_constraint', `has_reference_type' and `has_value_type'
7568         with `guint32 attrs'.
7569
7570 2004-09-23  Martin Baulig  <martin@ximian.com>
7571
7572         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
7573
7574 2004-09-23  Martin Baulig  <martin@ximian.com>
7575
7576         * object-internals.h (GenericParameterAttributes): New enum.
7577
7578 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
7579
7580         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
7581         
7582         * class.c (init_events): Fill out event->other field.
7583
7584         * class.c: Fix warnings.
7585
7586         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
7587
7588 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
7589
7590         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
7591         walk which doesn't supply the IL offset.
7592
7593 2004-09-22  Martin Baulig  <martin@ximian.com>
7594
7595         * reflection.c (mono_reflection_setup_internal_class): If we're
7596         System.ValueType, System.Object or System.Enum, set
7597         `klass->instance_size' and create the vtable.
7598         (mono_reflection_create_internal_class): If we're an enum type,
7599         get the base class from our current corlib.
7600
7601 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
7602
7603         * reflection.h (MonoResolveTokenError): New type.
7604
7605         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
7606         icall.
7607
7608         * icall.c: Add an 'error' argument to the ResolveToken icalls.
7609
7610 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
7611
7612         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
7613         Support also calling constructors, but only for already allocated objects.
7614
7615 2004-09-17  Geoff Norton <gnorton@customerdna.com>
7616
7617         * reflection.c (type_get_qualified_name): If the klass is null
7618         return the typename to avoid a NullRefEx.
7619         (encode_cattr_value): Get the qualified name of the boxed type,
7620         not the underlying enumtype.  Fixes #62984.
7621
7622 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
7623
7624         * marshal.c: Fix problems with previous checkin.
7625
7626 2004-09-21    <vargaz@freemail.hu>
7627
7628         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
7629         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
7630
7631         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
7632
7633 2004-09-21  Geoff Norton <gnorton@customerdna.com>
7634
7635         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
7636         should only return a type for pointers, arrays, and passbyref types.
7637         Fixes bug #63841.
7638
7639 2004-09-21  Martin Baulig  <martin@ximian.com>
7640
7641         * domain.c (mono_debugger_check_runtime_version): New public
7642         function.
7643
7644         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
7645
7646 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
7647
7648         * reflection.c: Added missing sort to the declarative security 
7649         attributes table. MS implementation stops seeing the attributes if the
7650         token number regress in the table (as shown by ildasm and permview).
7651
7652 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
7653
7654         * object-internals.h (MonoReflectionModule): Add 'token' field.
7655         
7656         * reflection.c (mono_reflection_get_token): Add support for Module
7657         and Assembly.
7658         (mono_module_get_object): Set 'token' field.
7659         (mono_module_file_get_object): Set 'token' field.
7660
7661         * icall.c: Add new Assembly and Module icalls.
7662
7663         * appdomain.c: Bump corlib version.
7664
7665 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
7666
7667         * loader.h loader.c class.h class.c: Add helper functions for obtaining
7668         tokens of metadata objects.
7669
7670         * reflection.h reflection.c (mono_reflection_get_token): New function
7671         to obtain the token of a metadata object.
7672
7673         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
7674
7675 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
7676
7677         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
7678         
7679         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
7680
7681 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
7682
7683         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
7684         * object-internals.h: Added 3 MonoArray* members to MonoReflection
7685         AssemblyBuilder to access the permissions set in the class lib.
7686         * reflection.c: Added security attributes encoding step in 
7687         mono_image_build_metadata.
7688         * tabledefs.h: Added new security actions defined in 2.0:
7689         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
7690
7691 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7692
7693         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
7694         macro parameter.
7695
7696 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
7697  
7698         * locales.c: nullify the ICU_collator member of CompareInfo when it is
7699           finalized. There where random SIGSEVs at program termination, when
7700           an object being finalized was trying to do a string comparison and
7701           the current culture was already finalized.
7702  
7703 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7704
7705         * threads.c: call thread_cleanup before finishing the thread if we get
7706         there.
7707
7708 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
7709
7710         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
7711         assemblies from the parent. Fixes #65665.
7712
7713 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
7714
7715         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
7716         modifiers.
7717
7718 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
7719
7720         * reflection.h: add prototype for mono_get_dbnull_object
7721         * reflection.c: add prototypes for get_default_param_value_blobs 
7722         and mono_get_object_from_blob for fussier compilers
7723
7724 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
7725  
7726         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
7727         false deadlock checks in class initialization.
7728  
7729 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
7730
7731         * image.c (mono_image_addref): Fix comment.
7732
7733         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
7734         possible.
7735
7736 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
7737
7738         * reflection.c (mono_param_get_objects): Modified to return
7739         ParameterInfo.DefaultValue object.
7740
7741         (get_default_param_value_blobs):
7742         (mono_get_object_from_blob):
7743         (mono_get_dbnull_object): New helper routines. 
7744
7745         * object.c (mono_get_constant_value_from_blob): New helper routine
7746         carved out from get_default_field_value ()
7747
7748         * object-internals.h (mono_get_constant_value_from_blob): Added
7749         function declaration.
7750
7751 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
7752
7753         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
7754         referenced assemblies. Fixes #62135.
7755
7756         * exception.h exception.c (mono_get_exception_file_not_found2): New
7757         helper function.
7758
7759 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
7760
7761         * class.h class.c: Add mono_type_get_underlying_type ().
7762
7763 2004-09-09  Geoff Norton <gnorton@customerndna.com>
7764
7765         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
7766         Fix GetTypes() to support dynamically created assemblies.
7767
7768 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
7769
7770         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
7771         
7772         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
7773         previous patch.
7774
7775         * reflection.h reflection.c loader.c: Allow dynamic construction of
7776         pinvoke methods. Fixes #65571.
7777         
7778         * reflection.c (mono_reflection_get_type): Revert previous change since
7779         it causes regressions.
7780
7781 2004-09-08  Martin Baulig  <martin@ximian.com>
7782
7783         * class.c (class_compute_field_layout): Don't call
7784         mono_class_layout_fields() for open generic instances.
7785
7786 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
7787         * threads.c appdomain.c: fix typo in GC macro
7788
7789 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7790
7791         * threads.c: don't call mono_thread_detach() in start_wrapper(),
7792         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
7793
7794 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
7795
7796         * image.c (mono_image_close): Applied patch from 
7797         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
7798         assembly is loaded multiple times from data.
7799         
7800         * image.c (mono_image_open): Fix warning.
7801
7802 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7803
7804         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
7805         once. Fixes #58334.
7806         
7807         * reflection.c (mono_reflection_create_runtime_class): Initialize
7808         klass->nested_classes. Fixes #61224.
7809
7810 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
7811
7812         * threads.c: sched_yield() on exit, to allow threads to quit.
7813
7814 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7815
7816         * object.c (mono_unhandled_exception): Remove leftover debug code.
7817
7818 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
7819
7820         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
7821
7822 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
7823
7824         * marshal.c (emit_marshal_array): Really null terminate string arrays.
7825         
7826         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
7827
7828 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7829
7830         * marshal.c (emit_marshal_array): Null terminate string arrays.
7831         
7832         * marshal.c (raise_auto_layout_exception): Fix warning.
7833
7834         * reflection.c (mono_param_get_objects): Initialize the default value
7835         with DBNull.Value, not null. Fixes #62123.
7836
7837 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
7838
7839         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
7840         throw an exception with a cute explanation.
7841
7842 2004-09-06  Dick Porter  <dick@ximian.com>
7843
7844         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
7845         Close the new process's thread handle, as we don't use it.  The
7846         handle stays around forever otherwise.
7847
7848 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7849
7850         * object.c (arith_overflow): Fix warning.
7851
7852         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
7853         calling conventions in method refs. Fixes #65352.
7854
7855         * reflection.c: Fix warnings.
7856
7857 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7858
7859         * icall.c: Add a new icall for Array.Clear
7860
7861 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
7862
7863         * object.c: When allocating an array, we have to throw
7864         an overflow exception if any of the lengths are < 0.
7865
7866 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
7867
7868         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
7869         properly. Also move implementation of string array marshalling to 
7870         managed code. Fixes #42316.
7871
7872 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7873
7874         * assembly.c: provide more information when loading an assembly fails.
7875
7876 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7877
7878         * filewatcher.c: don't expect the development fam package to be
7879         installed.
7880
7881 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
7882
7883         * marshal.c: Make a copy of the signature cookie since it will be
7884         freed by the caller.
7885         
7886         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
7887
7888         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
7889
7890         * metadata.c (mono_metadata_free_marshal_spec): New function to free
7891         marshal specs.
7892
7893         * marshal.c: More refactoring.
7894         
7895         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
7896         smaller functions.
7897
7898 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
7899
7900         * object.c: In mono_message_invoke, fill the output parameter array after
7901           calling the managed method (it was done before the call). This fixes
7902           bug #59299.
7903
7904 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7905
7906         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
7907         as well.
7908
7909 2004-09-02  Martin Baulig  <martin@ximian.com>
7910
7911         * class.c (mono_class_instance_size): Don't allow generic type
7912         definitions or open generic instances.
7913         (mono_class_array_element_size): If we're a value type, call
7914         mono_class_instance_size() on the original class.
7915
7916         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
7917         handle generic instances.
7918
7919         * mono-debug-debugger.c (write_type): Handle generic instances
7920         like classes.
7921
7922 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
7923
7924         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
7925         the allocation request fails. Fixes #65089.
7926
7927         * object.c (mono_runtime_free_method): Do not call mono_free_method.
7928         
7929         * object.c (mono_runtime_free_method): New function to free a dynamic
7930         method.
7931
7932         * marshal.c (mono_delegate_free_ftnptr): New function to free the
7933         delegate trampoline.
7934
7935         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
7936         with hasthis as dynamic,
7937
7938         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
7939
7940         * domain.c (mono_jit_info_table_remove): New function to remove an
7941         entry from the jit info table.
7942
7943         * class-internals.h (MonoMethod): Add 'dynamic' field.
7944
7945         * loader.c: Fix warnings.
7946
7947 2004-09-01  Martin Baulig  <martin@ximian.com>
7948
7949         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
7950         instead of mono_debugger_lock() because the latter one is a no-op
7951         unless running in the debugger.
7952
7953 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7954
7955         * class.c (class_compute_field_layout): Classes with auto-layout or
7956         reference fields are not blittable.
7957         
7958 2004-09-01  Dick Porter  <dick@ximian.com>
7959
7960         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
7961         mono_image_get_filename() to get the assembly location.
7962
7963         * icall.c:
7964         * metadata.h: Fix compile warnings
7965
7966 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
7967
7968         * class.c (class_compute_field_layout): System.Object is blittable.
7969
7970         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
7971         as in/out. Fixes #59909.
7972
7973 2004-09-01  Martin Baulig  <martin@ximian.com>
7974
7975         * metadata.h (MONO_TYPE_ISREFERENCE): Call
7976         mono_metadata_generic_inst_is_valuetype() if we're a generic
7977         instance to check whether our underlying type is a reference type.
7978
7979 2004-09-01  Martin Baulig  <martin@ximian.com>
7980
7981         * metadata.c (mono_type_size): If we're a generic instance, call
7982         mono_class_value_size() for value types.
7983
7984 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
7985
7986         * marshal.c: Implement more custom marshalling functionality. Fixes
7987         #64915.
7988
7989 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
7990
7991         * mono-debug.c, debug-mono-symfile.c: add some locking love.
7992
7993 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
7994
7995         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
7996
7997         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
7998
7999         * icall.c: Fix some warnings.
8000
8001         * threads.c (abort_appdomain_thread): Fix unref errors.
8002         (mono_thread_current): Fix THREAD_DEBUG define.
8003
8004 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
8005
8006         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
8007
8008         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
8009
8010 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
8011
8012         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
8013         string arrays.
8014
8015 2004-08-28  Martin Baulig  <martin@ximian.com>
8016
8017         * metadata.c
8018         (mono_metadata_generic_inst_is_valuetype): New public function.
8019
8020         * metadata.h (MONO_TYPE_ISSTRUCT): Call
8021         mono_metadata_generic_inst_is_valuetype() if we're a generic
8022         instance to check whether our underlying type is a valuetype.
8023
8024 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
8025
8026         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
8027         #63768.
8028
8029 2004-08-25  Martin Baulig  <martin@ximian.com>
8030
8031         * loader.c (mono_get_method_from_token): Abstract methods can also
8032         be generic and thus have type parameters.
8033
8034         * metadata-internals.h
8035         (MonoDynamicImage): Added `GPtrArray *gen_params'.
8036
8037         * reflection.c (mono_image_get_generic_param_info): Don't create a
8038         metadata row, just add an entry to the `gen_params' array.
8039         (build_compressed_metadata): Sort the `gen_params' array and then
8040         actually create the metadata.
8041
8042 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8043
8044         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
8045
8046 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
8047
8048         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
8049
8050 2004-08-24  Martin Baulig  <martin@ximian.com>
8051
8052         * class.cs (mono_class_is_subclass_of): Like an interface, a
8053         generic instance also derives from System.Object.
8054
8055 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
8056
8057         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
8058         custom modifiers to be in any order. Fixes #61990.
8059
8060 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
8061
8062         * object.c: Register mono_object_new_fast icall.
8063         
8064         * object.c (mono_class_get_allocation_ftn): Return to calling
8065         mono_object_new_fast, since it seems faster to compute the object 
8066         size in unmanaged code than passing it as a parameter.
8067
8068         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
8069
8070         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
8071         this function with Boehm as the oom handler, so we don't have to check
8072         the result of GC_malloc.
8073
8074         * object.c: Remove checks for oom.
8075
8076         * object.h object.c (mono_class_get_allocation_ftn): New function to
8077         return the icall which can be used to allocate an instance of a given
8078         class. 
8079
8080         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
8081
8082         * class-internals.h: Add 'enabled' field.
8083
8084 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
8085
8086         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
8087
8088 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
8089         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
8090         value 0x0010.
8091
8092 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
8093
8094         * appdomain.c: use the Tls function for appdomain too,
8095         at Zoltan's request. Actually return in mono_context_get
8096
8097         * appdomain.c, profiler.c, threads.c: use __thread
8098
8099 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
8100
8101         * appdomain.c threads.c: Call GC_CreateThread on windows.
8102
8103         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
8104         multiple libraries since this don't work on windows.
8105
8106 2004-08-18  Martin Baulig  <martin@ximian.com>
8107
8108         * class-internals.h
8109         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
8110         MonoMethodHeader.
8111
8112         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
8113         MonoMethodNormal since we also need it for abstract and interface
8114         methods.
8115
8116         * reflection.c
8117         (build_compressed_metadata): Sort the GenericParam table.
8118         (mono_image_create_token): Added `gboolean create_methodspec'
8119         argument; this is false when generating a MethodImpl token.
8120         (reflection_methodbuilder_to_mono_method): Abstract and interface
8121         methods may also have generic parameters.
8122
8123 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
8124
8125         * appdomain.c: thread local alloc
8126
8127 2004-08-17  Martin Baulig  <martin@ximian.com>
8128
8129         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
8130
8131         * icall.c
8132         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
8133         argument.
8134
8135         * class.c (mono_type_get_full_name): New public function.
8136         (mono_type_get_name): Don't include the type arguments.
8137
8138 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
8139
8140         * Makefile.am: Build static versions of libmetadata and libmonoruntime
8141         for inclusion into the mono executable.
8142
8143 2004-08-16  Martin Baulig  <martin@ximian.com>
8144
8145         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
8146         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
8147
8148 2004-08-14  Martin Baulig  <martin@ximian.com>
8149
8150         * class.c (dup_type): Also copy the `byref' field.
8151
8152 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
8153
8154         * reflection.c (create_dynamic_mono_image): Revert the last change 
8155         since it breaks bootstrap.
8156
8157 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
8158
8159         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
8160
8161         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
8162         not free them with g_free.
8163
8164 2004-08-11  Martin Baulig  <martin@ximian.com>
8165
8166         * reflection.c (mono_reflection_setup_internal_class): Also call
8167         mono_class_setup_mono_type() if we already have a `tb->type.type'.
8168
8169 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
8170
8171         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
8172         called during default (first) AppDomain creation. Keep track of
8173         Evidence when loading assemblies.
8174
8175 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8176
8177         * opcodes.c, opcodes.h: reduce runtime relocations.
8178
8179 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
8180
8181         * culture-info.h, locales.c: fixes and chages to sue the new
8182         optimized format of the locale data.
8183         * culture-info-tables.h: regenerated.
8184
8185 2004-08-06  Geoff Norton <gnorton@customerdna.com>
8186         
8187         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
8188
8189 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
8190
8191         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
8192         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
8193         * domain-internals.h: icall declaration.
8194         * icall.c: icall registration.
8195         * object-internals.h: New fields in MonoAssembly for CAS.
8196
8197 2004-08-05  Duncan Mak  <duncan@ximian.com>
8198
8199         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
8200         CEE_LDELEM_ANY.
8201
8202 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8203
8204         * reflection.c: fix to deal with object[] arrays in custom ctors
8205         (bug #62550).
8206
8207 2004-08-05  Martin Baulig  <martin@ximian.com>
8208
8209         * class.c (mono_class_array_element_size): Added support for
8210         generic instances and correctly handle "recursive" types.
8211
8212 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
8213
8214         * assembly.c: Fix warnings.
8215
8216 2004-08-04  Martin Baulig  <martin@ximian.com>
8217
8218         * class.c
8219         (mono_type_get_name_recurse): Added `gboolean include_arity'
8220         argument specifying whether or not we should include the generic
8221         arity in the type name.
8222         (_mono_type_get_name): New static function.
8223         (mono_class_setup_vtable): If we're a generic instance, don't
8224         include the generic arity in the names of explicit method
8225         implementations.        
8226
8227 2004-08-03  Martin Baulig  <martin@ximian.com>
8228
8229         * class.c (mono_type_get_name_recurse): Enclose the generic type
8230         arguments in `<', '>'.
8231
8232 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8233
8234         * gc.c: make GC warning messages use the trace API, they are just
8235         noise to most of the users.
8236
8237 2004-08-03  Martin Baulig  <martin@ximian.com>
8238
8239         * debug-mono-symfile.c (read_string): Correctly read the string.
8240
8241 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
8242
8243         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
8244         
8245         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
8246         icalls.
8247         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
8248
8249 2004-07-30  Martin Baulig  <martin@ximian.com>
8250
8251         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
8252         Reflect latest symbol writer changes.   
8253
8254 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8255
8256         * object.c: always create an object if null is passed
8257         to Invoke() where a valuetype is expected.
8258
8259 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
8260
8261         * marshal.c (mono_marshal_init): make managed
8262         signatures match native ones better for 64bits.
8263
8264 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8265
8266         * appdomain.c: hack to build correctly the private bin path on windows.
8267         Fixes bug #61991.
8268
8269 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
8270
8271         * assembly.c: Load mscorlib from the correct framework directory
8272           (mono/<version>/mscorlib.dll).
8273         * appdomain.h: Added prototypes for new functions.
8274         * internals.h: Added some prototypes.
8275         * domain.c: When initializing the runtime, get from the executable and
8276           the configuration files the runtime version that the app supports.
8277           Added support methods for reading app.exe.config. Added list of versions
8278           supported by the JIT. Added two new methods: mono_init_from_assembly,
8279           which initializes the runtime and determines the required version from
8280           the provided exe file, and mono_init_version, which initializes
8281           the runtime using the provided version.
8282         * icall.c: Get machine.config from version-specific directory.
8283         * reflection.c: When generating an image, embed the version number
8284           of the current runtime.
8285
8286 2004-07-28  Dick Porter  <dick@ximian.com>
8287
8288         * socket-io.c
8289         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
8290         returned sockaddr size before creating the remote address object.
8291         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
8292         61608.
8293
8294 2004-07-28  Dick Porter  <dick@ximian.com>
8295
8296         * locales.c (string_invariant_compare_char): Fix invariant char
8297         compares between upper and lower cases.  Fixes bug 61458.
8298
8299 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
8300         
8301         * marshal.c: actually cache stelem.ref wrappers.
8302         
8303 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
8304
8305         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
8306         sections and remove the mono_cli_rva_map () function.
8307
8308 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8309
8310         * debug-mono-symfile.c: fix one more endianess issue, from a patch
8311         by Geoff Norton (<gnorton@customerdna.com>).
8312
8313 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
8314
8315         * class.c: fix class loads for pointer types (typeof(int) !=
8316         typeof(int*)).
8317
8318 2004-07-27  Martin Baulig  <martin@ximian.com>
8319
8320         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
8321         reading the debugging information from an external ".mdb" file.
8322
8323 2004-07-24  Martin Baulig  <martin@ximian.com>
8324
8325         * reflection.c (mono_image_get_type_info): Only write a class
8326         layout entry if we actually have a size or a packing size.
8327
8328 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8329
8330         * reflection.c (type_get_fully_qualified_name): 
8331         insert cast to get type checking of ?: with non-gcc compilers
8332
8333 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
8334
8335         * rand.c: use g_getenv for both lookups of
8336         MONO_EGD_SOCKET
8337
8338 2004-07-17  Martin Baulig  <martin@ximian.com>
8339
8340         * reflection.c (mono_reflection_bind_generic_method_parameters):
8341         Set `gmethod->reflection_info'.
8342
8343 2004-07-17  Martin Baulig  <martin@ximian.com>
8344
8345         * class.c (mono_class_create_from_typedef): Insert the newly
8346         created class into the hash table before computing the interfaces
8347         since we could be called recursively.
8348
8349 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
8350
8351         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
8352         function to implement stelem.ref in managed code
8353         * class-internals.h, debug-helpers.c: a new wrapper type
8354         for the above.
8355
8356 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
8357
8358         * gc.c: allow GC handles to work even when no GC is compiled in.
8359         Fix part of bug #61134 (GetAddrOfPinnedObject).
8360
8361 2004-07-13  Peter Williams  <peter@newton.cx>
8362  
8363         * process.c (complete_path): Make sure we don't attempt to execute
8364         directories.
8365  
8366 2004-07-12  Geoff Norton <gnorton@customerdna.com>
8367
8368         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
8369           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
8370           and will add/subtract the hour if needed
8371
8372 2004-07-12  Martin Baulig  <martin@ximian.com>
8373
8374         * reflection.c (mono_field_get_object): If we have
8375         `field->generic_info', take the attributes from
8376         `field->generic_info->generic_type'.    
8377
8378 2004-07-12  Martin Baulig  <martin@ximian.com>
8379
8380         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
8381         This function must be called before initializing the runtime.
8382         (mono_debug_init_1): New function; call this after initializing
8383         the runtime, but before loading the assembly.  It tells the
8384         debugger to load corlib and the builtin types.
8385
8386         * mono-debug-debugger.c: Did some larger changes in the debugging
8387         code; support recursive class declarations, make sure we actually
8388         add all classes.
8389
8390 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8391
8392         * debug-helpers.c: undo my previous patch and fixed the real issue in
8393         ../mini/exceptions-x86.c
8394
8395 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8396
8397         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
8398         when no HOME env. variable was set and a NullRef was thrown in a .cctor
8399         called from other .cctors.
8400
8401 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
8402
8403         * loader.c: Removed the mono_loader_wine_init hack now that we are
8404         doing a managed version of Windows.Forms.
8405
8406 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
8407
8408         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
8409         threadpool.c, threads.c: remove static data from rootset.
8410
8411 2004-07-09  Dick Porter  <dick@ximian.com>
8412
8413         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
8414         Don't do any more processing if the matched length was 0.  It was
8415         increasing the size of the string before.  Fixes bug 61167.
8416
8417 2004-07-09  Dick Porter  <dick@ximian.com>
8418
8419         * socket-io.h:
8420         * socket-io.c
8421         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8422         Add support for SO_PEERCRED if its available.
8423
8424 2004-07-09  Peter Bartok <pbartok@novell.com>
8425         * loader.c: winelib.exe.so error message is now only displayed if
8426         MONO_DEBUG is set. To help us avoid questions when people are trying
8427         out the new Managed.Windows.Forms.
8428
8429 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
8430
8431         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
8432         for isinst and castclass wrappers.
8433
8434         * class-internals.h icall.c: Move registration and lookup of JIT icalls
8435         to libmetadata from the JIT, so they could be used by the marshalling
8436         code and the interpreter.
8437
8438         * marshal.c: Register marshalling related JIT icalls here instead of
8439         in mini.c. Use CEE_MONO_ICALL instead of the family of 
8440         CEE_MONO_PROC<x> opcodes to call marshalling functions.
8441
8442         * metadata.h: Remove unneeded marshalling conversions.
8443
8444         * opcodes.c: Update for new opcodes.
8445         
8446 2004-07-08  Martin Baulig  <martin@ximian.com>
8447
8448         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
8449         (mono_debug_get_domain_data): Make this function static.
8450
8451 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8452
8453         * gc.c, object.h: add nice GC handle API for embedders.
8454
8455 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
8456
8457         * reflection.c: more changes for the new api
8458
8459         * object.c: When we reflect on a field w/ a constant value, it
8460         will not have a memory location, so we must access metadata. Also,
8461         allow easier reading of strings so that we can read them from
8462         the constant data.
8463
8464         * class.c (mono_class_layout_fields): no need for literal fields here.
8465
8466         * class-internals.h: api changes for const fields
8467
8468         * icall.c (ves_icall_get_enum_info): use new apis for const fields
8469
8470 2004-07-06  Martin Baulig  <martin@ximian.com>
8471
8472         * mono-debug.h: Increment version number to 44.
8473
8474         * mono-debug.c (mono_debug_add_wrapper): The second argument is
8475         now a gpointer, rewrote this whole method.
8476
8477         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
8478         function.  Add information about the wrapper in a new "misc table".
8479
8480         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
8481         for the new misc table.
8482
8483 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
8484
8485         * metadata-internals.h image.c: Add a cache for helper signatures.
8486
8487         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
8488
8489 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
8490
8491         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
8492         delegates from a delegate. Fixes #61033.
8493         
8494         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
8495         marshalling of stringbuilder arrays. Fixes #59900.
8496
8497 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
8498
8499         * icall.c: Add EnumBuilder:setup_enum_type icall.
8500
8501 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
8502
8503         * icall.c: Added a new icall for the property version of
8504         OffsetOfStringData.
8505
8506 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
8507
8508         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
8509         it has a constant size across platforms.
8510
8511         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
8512         stack trace.
8513
8514 2004-06-29  Martin Baulig  <martin@ximian.com>
8515
8516         * mono-debug.c (mono_debug_add_method): Protect the whole function
8517         in mono_debugger_lock(), not just parts of it.
8518
8519 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
8520
8521         * reflection.c: make sure padding bytes in heaps are zeroed.
8522
8523 2004-06-24  David Waite  <mass@akuma.org>
8524
8525         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
8526         image.c, loader.c, locales.c, marshal.c, metadata.c,
8527         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
8528         string-icalls.c, threads.c: change to C90-style comments from C99 /
8529         C++ -style
8530
8531 2004-06-24  Dick Porter  <dick@ximian.com>
8532
8533         * threads.c
8534         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
8535         return createdNew.  Fixes bug 60412.
8536
8537         * threads-types.h: 
8538         * icall.c: Add createdNew parameter to CreateMutex icall
8539
8540 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8541
8542         * reflection.c, object-internals.h: save default value in params.
8543
8544 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8545
8546         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
8547         no need to build a new path combining that with the application base.
8548         Fixes bug #60442.
8549
8550 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
8551
8552         * reflection.c: fixed minor standard compliance issues.
8553
8554 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
8555
8556         * reflection.c: fixed issue with encoding some custom attributes
8557         (arrays in properties and fields, bug #60411).
8558
8559 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8560
8561         * reflection.c: fix start address when copying the public key token.
8562
8563 2004-06-23  Martin Baulig  <martin@ximian.com>
8564
8565         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
8566         the `exc' object in a static object to put it into the GC's root set.
8567
8568 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
8569
8570         * reflection.c: make mono_reflection_setup_internal_class ()
8571         callable a second time to setup a new parent class.
8572
8573 2004-06-23  Dick Porter  <dick@ximian.com>
8574
8575         * threads.c: Check for WAIT_IO_COMPLETION return values.
8576
8577 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
8578
8579         * appdomain.c: Removed the g_free on the public key token. Now copy 
8580         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
8581         * assembly.c: Added public key token string value when loading 
8582         assemblies. Fix bug #60439.
8583         * icall.c: Added missing informations (like public key) in 
8584         GetReferencedAssemblies. Fix #60519.
8585         * image.h: Changed definition for public key token from const char*
8586         public_tok_value to guchar public_key_token [17];
8587         * reflection.c: Updated for changes to public key token.
8588
8589 2004-06-22  Lluis Sanchez Gual
8590
8591         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
8592         for the field in base classes.
8593
8594 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8595
8596         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
8597         mark headers as not supported, they are installed only for use by the
8598         debugger.
8599
8600 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
8601
8602         * *.c, *.h: avoid namespace pollution in public headers.
8603
8604 2004-06-21  Martin Baulig  <martin@ximian.com>
8605
8606         * exception.c (mono_get_exception_security): It's in
8607         "System.Security", not in "System".
8608
8609         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
8610         the exception classes.
8611
8612 2004-06-21  Martin Baulig  <martin@ximian.com>
8613
8614         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
8615         Protect the exception object from being finalized.
8616
8617 2004-06-21  Martin Baulig  <martin@ximian.com>
8618
8619         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
8620         public function.
8621
8622 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
8623
8624         * reflection.c: Load the assembly in mono_reflection_type_from_name,
8625         if it was not loaded before. Fix parts of #60439.
8626
8627 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
8628
8629         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
8630         code that was broken since Ben's change: wrappers are now
8631         dependent on the method signature only again.
8632
8633 2004-06-21  Martin Baulig  <martin@ximian.com>
8634
8635         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
8636         added interface support.
8637
8638 2004-06-21  Martin Baulig  <martin@ximian.com>
8639
8640         * class.c (mono_vtable_get_static_field_data): New public method.
8641
8642 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
8643
8644         * filewatcher.c : Windows build fix to be compliant with API changes.
8645
8646 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8647
8648         * class.h, class.c: more accessors.
8649         * metadata.h, metadata.c: prepare for hiding MonoType and
8650         MonoMethodSignature: people should use the accessors from now on
8651         outside of the tree.
8652
8653 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
8654
8655         * *.c, *.h: more API cleanups.
8656
8657 2004-06-18  Jackson Harper  <jackson@ximian.com>
8658
8659         * assembly.c: Trace loading assemblies.
8660         * loader.c: Trace loading native libraries.
8661         * mono-config.c: Trace loading config files.
8662         
8663 2004-06-18  Dick Porter  <dick@ximian.com>
8664
8665         * locales.c: Tell ICU the lengths of strings, it can cope with
8666         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
8667
8668 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
8669
8670         * image.c: swapped name/filename;
8671
8672 2004-06-18  Martin Baulig  <martin@ximian.com>
8673
8674         * mono-debug-debugger.c (write_class): Write the parent class at
8675         the end of the header.
8676
8677 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
8678
8679         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
8680
8681 2004-06-17  Raja R Harinath  <rharinath@novell.com>
8682
8683         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
8684         (bundle_obj): New conditional define.
8685         (BUILT_SOURCES): Remove.
8686         ($(bundle_srcs)): Make parallel-make safe.
8687         (libmonoruntime_la_LIBADD): Make unconditional.
8688         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
8689         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
8690
8691 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
8692
8693         * culture-info-tables.h: It was inconsistent with the latest
8694           supp info files.
8695
8696 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
8697
8698         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
8699         be loaded.
8700
8701         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
8702         with gcc 2.95.
8703
8704 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
8705
8706         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
8707         cleaned up public header threads.h.
8708
8709 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
8710
8711         * Makefile.am, *.c, *.h: more API cleanups.
8712
8713 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
8714
8715         * Makefile.am: removed monosn from compilation.
8716         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
8717         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
8718         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
8719         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
8720         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
8721         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
8722
8723 2004-06-15  Jackson Harper  <jackson@ximian.com>
8724
8725         * assembly.c: Make locales lower case when searching the GAC for
8726         assemblies. gacutil will always make locales lowercase when
8727         installing so this effectively makes them case insensitive.
8728         
8729 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
8730
8731         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
8732         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
8733           parameter which allows to choose whether the wait can be interrupted or 
8734           not. Also added the method mono_monitor_enter(), which locks the monitor
8735           using an infinite wait and without allowing interruption.
8736           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
8737           interrupted.
8738         * object.h: Added new fields in MonoThread. suspend_event holds the event
8739           used to susped/resume the thread. synch_lock is the lock object to use for
8740           modifying the thread state.
8741         * threads.c: Use the new synch_lock object for locking, instead of "this",
8742           which can generate deadlocks.
8743           Moved thread state change in Thread.Sleep and Thread.Join from managed
8744           to unmanaged code. This avoids a deadlock when the thread was suspended
8745           just after acquiring the thread lock.
8746           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
8747           Implemented Thread.Suspend using an event instead of ThreadSuspend,
8748           which is not fully implemented in the io-layer.
8749         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
8750
8751 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
8752
8753         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
8754         threads-types.h: more API cleanups.
8755
8756 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
8757
8758         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
8759         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
8760         threadpool.c, threads.c: first pass at the exported API cleanup.
8761
8762 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
8763
8764         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
8765
8766 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8767
8768         * icall.c: added internalGetHome.
8769
8770 2004-06-14  Dick Porter  <dick@ximian.com>
8771
8772         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
8773         possible to return successfully when '.' or '..' were the only
8774         entries in a directory, but were skipped.  The MonoIOStat was not
8775         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
8776         Fixes bug 59574.
8777
8778 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
8779
8780         * reflection.c: make binaries run on .Net 1.1 by default.
8781
8782 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
8783
8784         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
8785
8786 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
8787
8788         * marshal.c: keep track of struct size with explicit layout
8789         (bug #59979).
8790
8791 2004-06-12  Martin Baulig  <martin@ximian.com>
8792
8793         * mono-debug-debugger.c: Comment out a debugging g_message().
8794
8795 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
8796
8797         * reflection.c, reflection.h: do not free custom attrs that are cached.
8798         * icall.c: use braces to make code clearer.
8799
8800 2004-06-11  Martin Baulig  <martin@ximian.com>
8801
8802         * class.h (MonoInflatedField): New type.
8803         (MonoClassField): Replaced `MonoType *generic_type' with
8804         `MonoInflatedField *generic_info'.
8805
8806         * icall.c
8807         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
8808
8809 2004-06-11  Martin Baulig  <martin@ximian.com>
8810
8811         * reflection.c (mono_image_create_method_token): Correctly encode
8812         varargs methods.
8813
8814 2004-06-11  Martin Baulig  <martin@ximian.com>
8815
8816         * metadata.c (mono_metadata_parse_method_signature): When parsing
8817         a MethodDef which has VarArgs, also set sentinelpos if we don't
8818         have any parameters.
8819
8820 2004-06-11  Martin Baulig  <martin@ximian.com>
8821
8822         * verify.c (mono_method_verify): In CEE_CALL, use
8823         mono_method_get_signature() to get the method's signature, unless
8824         we're a PInvoke method.
8825
8826 2004-06-10  Jackson Harper  <jackson@ximian.com>
8827
8828         * assembly.c: Use <path>/lib/mono/gac for the extra paths
8829         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
8830         logical name as the supplied path is just a prefix to the gac not
8831         the direct path to it.
8832         
8833 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
8834
8835         * reflection.c: make the token for a created method match
8836         the token of the MethodBuilder it was created from
8837         (IKVM requires this behaviour now).
8838
8839 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
8840
8841         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
8842         reflection.c, socket-io.c: leak fixes.
8843
8844 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
8845
8846         * icall.c: handle sentinel pos in vararg methods in position different
8847         from 0.
8848
8849 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8850
8851         * culture-info-tables.h: freshly generated.
8852
8853 2004-06-09  Martin Baulig  <martin@ximian.com>
8854
8855         * loader.c (mono_get_method_constrained): Call `mono_class_init
8856         (constrained_class)'.   
8857
8858 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
8859
8860         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
8861         any methods. Fixes #59629.
8862
8863 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8864
8865         * culture-info-tables.h: reflecting locale-builder updates.
8866
8867 2004-06-08  Dick Porter  <dick@ximian.com>
8868
8869         * object.h:
8870         * locales.c: Fixed compile warnings, including a real bug in
8871         CompareInfo_internal_compare.
8872         
8873 2004-06-08  Dick Porter  <dick@ximian.com>
8874
8875         * locales.c
8876         (ves_icall_System_Globalization_CompareInfo_internal_index):
8877         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8878         Double-check the resuls of usearches, because ICU currently
8879         ignores most of the collator settings here.  Fixes bug 59720.
8880         
8881 2004-06-08  Dick Porter  <dick@ximian.com>
8882
8883         * locales.c
8884         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
8885         Fix memory leak and segfault-causing typo.  No idea how this one
8886         lasted so long without being noticed.
8887
8888 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
8889
8890         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
8891         any methods. Fixes #59629.
8892
8893 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8894
8895         * assembly.c:
8896         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
8897         own the critical section before). Removed dead code (that's done
8898         in the preload hook).
8899
8900         (mono_assembly_load_with_partial_name): call the preload hook.
8901
8902 2004-06-08  Martin Baulig  <martin@ximian.com>
8903
8904         * metadata.c (mono_metadata_signature_alloc): Default
8905         `sentinelpos' to -1.
8906
8907         * reflection.c (mono_image_get_array_token): Likewise.
8908
8909 2004-06-08  Martin Baulig  <martin@ximian.com>
8910
8911         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
8912
8913         * metadata.c (mono_metadata_parse_method_signature): When parsing
8914         a MethodDef which has VarArgs, set sentinelpos.
8915
8916         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
8917         `gint16' since we're using -1 for non-varargs methods.
8918
8919         * reflection.c
8920         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
8921         (method_encode_signature): Added varargs support.
8922         (method_builder_encode_signature): Likewise.
8923         (mono_image_get_varargs_method_token): New static method.
8924         (mono_image_create_method_token): New public method; this is
8925         called via an icall instead of mono_image_create_token() when
8926         calling a varargs method.       
8927
8928 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
8929
8930         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
8931
8932 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8933
8934         * culture-info-tables.h : Reflecting the latest locale-builder that
8935           fixed empty array representation ({} to {0}).
8936
8937 2004-06-07  Jackson Harper  <jackson@ximian.com>
8938
8939         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
8940         looking up extra gac paths. This allows MONO_GAC_PATH to act
8941         exactly like a prefix.
8942         
8943 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8944
8945         * reflection.c (mono_reflection_type_from_name): Make a copy of the
8946         type name before modifying it. Fixes #59405.
8947
8948 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
8949
8950         * culture-info.h: added fields for "all datetime patterns".
8951         * locales.c: (  ves_icall_System_Globalization_CultureInfo
8952           _construct_datetime_format ()): fill xxx_patterns fields.
8953         * object.h: added fields for "all datetime patterns" to
8954           MonoDateTimeFormatInfo.
8955         * culture-info-tables.h: reflecting locale-builder updates.
8956
8957 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
8958
8959         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
8960         the event has no add and remove methods. Fixes #59629.
8961
8962 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
8963
8964         * object.c: Fixed possible integer overflow when allocating large
8965         strings.
8966
8967 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8968
8969         * culture-info-tables.h: reflecting locale-builder updates.
8970
8971 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
8972
8973         * culture-info-tables.h: reflecting locale-builder updates.
8974
8975 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
8976
8977         * culture-info-tables.h: reflecting locale-builder updates.
8978
8979 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
8980
8981         * threads.c: Made Thread.Sleep abortable.
8982
8983 2004-06-02  Martin Baulig  <martin@ximian.com>
8984
8985         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
8986
8987         * debug-mono-symfile.h: Bumped symbol file version number to 37.
8988
8989 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
8990
8991         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
8992
8993 2004-05-30  Jackson Harper  <jackson@ximian.com>
8994
8995         * reflection.c: Do not hardcode assembly versions or public key
8996         tokens anymore. All of this except the corlib section was dead
8997         code anyways.
8998         
8999 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
9000
9001         * object.c (mono_runtime_invoke_array): Automatically create boxed
9002         objects for byref valuetypes if needed. Fixes #59300.
9003         
9004         * object.c (mono_method_return_message_restore): Handle 
9005         MONO_TYPE_OBJECT as well.
9006
9007 2004-05-28  Jackson Harper  <jackson@ximian.com>
9008
9009         * reflection.c: The modified type encoding was causing build
9010         problems. Reverted for now.
9011         
9012 2004-05-28  Jackson Harper  <jackson@ximian.com>
9013
9014         * reflection.c/h: Take an assembly ref so that we dont create
9015         fully qualified names when encoding types in the same assembly as
9016         the custom attribute being emitted.
9017         * appdomain.c: Increment version number.
9018         
9019 2004-05-26  Duncan Mak  <duncan@ximian.com>
9020
9021         * icall.c
9022         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
9023         Set the full version number (major, minor, build, revision).
9024
9025 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
9026
9027         * marshal.c (emit_struct_conv): increment src/dst after blit
9028         (mono_marshal_get_managed_wrapper,
9029         mono_marshal_get_native_wrapper): make sure we have marshalling
9030         info before marshalling params (info computation affects
9031         blittable)
9032
9033         * class.c (class_compute_field_layout): correctly deal with
9034         blittable
9035         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
9036         value types (as per what windows dows by default)
9037         (mono_class_setup_mono_type): System.ValueType is blittable
9038         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
9039         blittable
9040
9041         * marshal.c (mono_marshal_load_type_info): flag types  as
9042         non-blittable if the native layout doesn't match the managed
9043         layout
9044
9045 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9046
9047         * appdomain.c: don't add stuff in the private search path that is
9048         above the application base. If application base is not set, there's
9049         no private search path.
9050
9051 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
9052
9053         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
9054         byref struct arguments in native->managed marshalling.
9055
9056 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
9057
9058         * marshal.c (mono_marshal_get_runtime_invoke): correctly
9059         cache methods using signature (special case for methods
9060         that are value type or string class)
9061         
9062         * image.c (mono_image_close): clean up allocated GSList's
9063         in runtime_invoke_cache.
9064
9065 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9066
9067         * mono-config.c: set the correct path for mono_cfg_dir on windows when
9068         there's no MONO_CFG_DIR environment variable defined.
9069
9070 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9071
9072         * threads.c: windows version must be >= 0x0500 to include OpenThread.
9073
9074 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
9075
9076         * threadpool.c: Really wait for 500ms after the async call, even if the wait
9077           is interrumped.
9078         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
9079           before waiting for it, and call CloseHandle after the wait to unref it.
9080           This will make sure that handles are not disposed too early.
9081
9082 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9083
9084         * appdomain.c:
9085         * appdomain.h:
9086         * icall.c: removed
9087         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
9088         needed now.
9089
9090         * object.c: se the application_base only for the domain that runs
9091         Main. Fixes bug #59216,
9092
9093 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9094
9095         * appdomain.c:
9096         * object.c: only the domain in which Main is run have
9097         SetupInformation.ConfigurationFile set, so moved a few lines from
9098         appdomain.c to object.c.
9099
9100 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9101
9102         * appdomain.c: we tried to load [name].(dll|exe), but according
9103         to bug #57710, we must also try [culture]/[name].(dll|exe) and
9104         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
9105         There's a test case attached to bug #58922.
9106
9107 2004-05-27  Dick Porter  <dick@ximian.com>
9108
9109         * icall.c:
9110         * file-io.c: Implemented icalls for locking and unlocking regions
9111         in a file.
9112         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
9113         FALSE on error (fixes both compiler warning and real bug.)
9114
9115 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
9116
9117         * culture-info-tables.h: reflecting locale-builder updates.
9118
9119           (Added missing ChangeLog entry for 05/26)
9120
9121 2004-05-27  Jackson Harper  <jackson@ximian.com>
9122
9123         * locales.c: Fix some cut and paste errors.
9124         
9125 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9126
9127         * mono-config.c: set the correct path for config. directory on windows.
9128
9129 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9130
9131         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
9132           on win32.
9133
9134 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9135
9136         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
9137         from pinvoke functions.
9138         
9139         * marshal.c (mono_ftnptr_to_delegate): Implement this.
9140
9141 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
9142
9143         * culture-info-tables.h: reflecting locale-builder updates.
9144
9145 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
9146
9147         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
9148         #59086.
9149
9150 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
9151
9152         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
9153         * icall.c: Modified icalls for RNG.
9154         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
9155         Windows (CryptoAPI).
9156
9157 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9158
9159         * locales.c: Fix build.
9160
9161 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9162
9163         * culture-info-tables.h: reflecting locale-builder updates.
9164
9165 2004-05-25  Jackson Harper  <jackson@ximian.com>
9166
9167         * locales.c: When creating the current culture use the $LANGs
9168         specific culture. So DateTimeFormat and NumberFormat entries are created.
9169         
9170 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
9171
9172         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
9173         a char array as parameter.
9174
9175 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
9176
9177         * image.c: In mono_image_open(), always use an absolute path name to
9178           look for already loaded images.
9179
9180 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
9181
9182         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
9183         missing in the windows build (like older cygwin include files).
9184
9185 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
9186
9187         * icall.c: Fixed check for possible integer overflow in Buffer_
9188         BlockCopy icall. Replaced comments style // by /* */.
9189
9190 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
9191
9192         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
9193         
9194         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
9195         check after MONO_VTADDR. Fixes pinvoke2.exe.
9196
9197         * marshal.h marshal.c metadata.h: Add beginnings of support for
9198         ftnptr -> delegate marshalling.
9199
9200 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
9201
9202         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
9203         * threads.c: Fix warnings.
9204
9205 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
9206
9207         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
9208         * icall.c: Registered icalls for Suspend and Resume.
9209         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
9210           Thread.Abort.
9211         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
9212         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
9213         * process.c: Use WaitForSingleObjectEx.
9214         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
9215           checkpoints.
9216         * threads.c, threads.h: Make use of new Ex wait methods. Improved
9217           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
9218           for Suspend and Resume. Added new mono_thread_stop, used for stoping
9219           background threads. Added basic support for Abort in Windows.
9220           Start new threads using a managed delegate invoke wrapper. This wrapper
9221           has an interruption checkpoint that is needed since an interruption
9222           can be requested before the thread leaves the unmanaged code that starts 
9223           the thread.
9224         * marshal.c: Added interruption checkpoint after every native call, and
9225           also before managed calls for wrappers called from unmanaged code to
9226           go into managed code.
9227         * object.h: Added new field in MonoThread to keep track of interruption
9228           requests.
9229
9230 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
9231
9232         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
9233         calls.
9234
9235 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9236
9237         * appdomain.c:
9238         * assembly.c:
9239         * gc.c:
9240         * locales.c:
9241         * mono-config.c:
9242         * rand.c: getenv -> g_getenv (windows!)
9243
9244         * process.c: complete_path is also used on non-windows platforms.
9245
9246 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9247
9248         * icall.c: new signature for Process_Start.
9249
9250         * process.[ch]: new signature for Process_Start. If we're on windows
9251         and UseShellExecute is false, we have to search for the program by
9252         ourselves if we don't get a full path.
9253
9254 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
9255
9256         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
9257         marshalling and call CleanUpNativeData if needed. Fixes #58646.
9258
9259 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9260
9261         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
9262         Fixes bug #58373.
9263
9264 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9265
9266         * process.c: use double quotes to quote program name and arguments on
9267         windows. Fixes bug #58575.
9268
9269 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9270
9271         * file-io.c: don't return "." and ".." when using windows Find*File.
9272
9273 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
9274
9275         * marshal.c: Don't pass wrappers to message init because method 
9276         addressed used to lookup metadata. part of remoting[2|3] fix.
9277
9278 2004-05-15  Jackson Harper  <jackson@ximian.com>
9279
9280         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
9281         path is essentially the same as MONO_PATH except that it points to
9282         GACs instead of lib directories.
9283         * loader.h: The user gac is gone so we dont need function to
9284         enable/disable it.
9285         * mono-config.c: user gac option is now gone.
9286         
9287 2004-05-15  Jackson Harper  <jackson@ximian.com>
9288
9289         * culture-info.h: Make defines more consistent, add calendar data
9290         to the culture info table.
9291         * culture-info-tables.h: Add basic calendar data. Basically
9292         everyone gets default gregorian until all the data is
9293         updated.
9294         * locales.c: Use the new consistent defines. Set calendar data for
9295         culture info objects.
9296         * object.h: add a field for calendar data to CultureInfo
9297         
9298 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
9299
9300         * image.c: image->runtime_invoke_cache is keyed on signatures now.
9301         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
9302         a signature.
9303         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
9304         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
9305         an extra param that is the pointer of the method to invoke. The IL for
9306         the invoke method is no longer specific to the method, but to the
9307         signature of the method. Thus, we can share the same code for multiple
9308         methods. This reduces the number of methods that have to be compiled.
9309
9310 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
9311
9312         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
9313
9314         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9315
9316         * icall.c: Optimize Buffer.BlockCopy.
9317
9318 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9319
9320         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
9321         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
9322         quote). Changed them to "MMMM yyyy".
9323
9324 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
9325
9326         * rand.c
9327         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
9328
9329 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
9330
9331         * reflection.h: Updated after changes to managed structures.
9332
9333         * appdomain.c: Bump corlib version.
9334
9335 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9336
9337         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
9338         windows.
9339
9340 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9341
9342         * Makefile.am: link to ../os/libmonoos.la on windows.
9343
9344         * assembly.c:
9345                 -If MONO_DEBUG, warn about non-existing directories in
9346                 MONO_PATH.
9347                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
9348                 compile time variable.
9349                 -Removed init_default_path and call mono_set_rootdir from
9350                 libmonoos.a instead (windows only).
9351
9352         * assembly.h: declare mono_assembly_getrootdir().
9353
9354         * domain.c:
9355         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
9356
9357         * loader.c: s/getenv/g_getenv/
9358
9359 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
9360
9361         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
9362
9363         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
9364
9365         * metadata.h: Add new marshalling conversions.
9366
9367         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
9368         function.
9369
9370         * reflection.c (mono_reflection_get_type): Lookup the type in all
9371         modules of a multi-module assembly. Fixes #58291.
9372
9373 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
9374
9375         * threads.c: Before aborting a background, set the StopRequested
9376         state.  This avoids throwing the Abort exception.
9377         In mono_thread_manage, don't continue with the shutdown until all
9378         aborted threads have actually stopped.
9379
9380 2004-05-10  Jackson Harper  <jackson@ximian.com>
9381
9382         * locales.c: Remove the modifier from culture names.
9383         
9384 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9385
9386         * Makefile.am: monosn is not installed any more. It has been deprecated
9387         in favor of sn.
9388
9389 2004-05-07  Jackson Harper  <jackson@ximian.com>
9390
9391         * locales.c
9392         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
9393         Fix array construction, add bailout if the length is 0.
9394
9395 2004-05-07  Dick Porter  <dick@ximian.com>
9396
9397         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
9398         machine doesn't have a DNS entry.  Patch by Urs Muff
9399         (umuff@quark.com), fixes bug 57928.
9400
9401 2004-05-06  Jackson Harper  <jackson@ximian.com>
9402
9403         * reflection.c: Handle null PublicTokens properly. alloc mem for
9404         assembly names culture so we dont crash when freeing it.
9405         
9406 2004-05-06  Jackson Harper  <jackson@ximian.com>
9407
9408         * assembly.c: Check the usergac when loading with partial names.
9409         
9410 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9411
9412         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
9413         does nothing for now (not required for Linux/Windows) but the class
9414         library can call it (and a newer or modified runtime could need it).
9415         * icall.c: Registred icall.
9416
9417 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9418
9419         * loader.c: prints a message on module loading error we set MONO_DEBUG
9420         environment variable.
9421
9422 2004-05-05  Jackson Harper  <jackson@ximian.com>
9423
9424         * appdomain.c: Handle PublicKeyToken=null properly.
9425         
9426 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
9427
9428         * environment.c|h: Added icall ves_icall_System_Environment_
9429         GetOSVersionString to get the current OS version as a string.
9430         * icall.c: Registred icall.
9431
9432 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
9433
9434         * object.c: in mono_object_get_virtual_method(), take into account that
9435         non-virtual methods don't have a slot in the vtable. Check needed when
9436         the object is a proxy.
9437
9438 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
9439
9440         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
9441         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
9442
9443         * object.c (mono_class_compute_gc_descriptor): Fix warning.
9444
9445         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
9446         passed when a valuetype is expected.
9447
9448         * object.c (mono_unhandled_exception): Only set the exit code if the
9449         exception happens in the main thread. Fixes thread5.exe.
9450
9451         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
9452         invalid names. Fixes #58047.
9453
9454 2004-05-03  Jackson Harper  <jackson@ximian.com>
9455
9456         * assembly.c: This line was committed accidently and is unneeded.
9457         
9458 2004-05-03  Jackson Harper  <jackson@ximian.com>
9459
9460         * icall.c: Add new icall for Assembly::LoadWithPartialName
9461         * assembly.c/.h: new function that probes the GAC to load partial
9462         assembly names by Paolo Molaro.
9463         
9464 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9465
9466         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
9467         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
9468         (type_get_fully_qualified_name): Added PublicKeyToken when building a
9469         full type name.
9470
9471 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9472
9473         * appdomain.c: fixed check for 'neutral' culture and removed warning.
9474         * reflection.c: fix bug when parsing a full type name and Version is not
9475         the last thing in the string.
9476
9477 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
9478
9479         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
9480         crashes when it is freed.
9481
9482 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9483
9484         * assembly.c: print the compat warning to stderr.
9485
9486 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
9487
9488         * assembly.c (mono_assembly_load_references): Add a compatibility
9489         hack to run old applications that might be still referencing the
9490         3300-based assemblies, only do this for System.xxx.
9491
9492 2004-05-01  Jackson Harper  <jackson@ximian.com>
9493
9494         * appdomain.c: If the culture is neutral we set it to "".
9495         
9496 2004-04-29  Jackson Harper  <jackson@ximian.com>
9497
9498         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
9499
9500 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
9501  
9502         * string-icalls.c: added low overhead function for copying chars
9503         * icall.c: added needed icall for the above function
9504  
9505 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9506
9507         * icall.c: fix return value of get_global_assembly_cache.  Implemented
9508         Environment.GetLogicalDrives.
9509
9510 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
9511
9512         * rand.c: try and talk to egd or prngd
9513         for random bytes if opening devices fail.
9514
9515 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
9516
9517         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
9518         alignment for the type using the native alignment of its members 
9519         instead of using klass->min_align.
9520
9521         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
9522
9523 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9524
9525         * file-io.c:
9526         * socket-io.c: added check for sys/aio.h.
9527
9528 2004-04-28  Dick Porter  <dick@ximian.com>
9529
9530         * threads.c: Don't abort a thread thats already aborting, when
9531         terminating everything.
9532
9533 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9534
9535         * icall.c: added 2 new async calls for Socket.
9536
9537         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
9538         IO on *nix systems.
9539
9540         * threadpool.c: removed unused variable.
9541
9542 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
9543
9544         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
9545
9546 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
9547
9548         * locales.c: put back string_invariant_tolower () and
9549         string_invariant_toupper ().
9550
9551 2004-04-26 David Waite <mass@akuma.org>
9552
9553         * file-io.h:
9554         * socket-io.h:
9555         * threads.h:
9556         * unicode.h: remove comma from end of enumeration declarations
9557
9558 2004-04-26 David Waite <mass@akuma.org>
9559
9560         * debug-mono-symfile.h:
9561         * decimal.c:
9562         * mono_debug.h:
9563         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
9564
9565
9566 2004-04-26  Jackson Harper  <jackson@ximian.com>
9567
9568         * appdomain.c: Increment version number.
9569         
9570 2004-04-26  Jackson Harper  <jackson@ximian.com>
9571
9572         * appdomain.c: Set assembly references public token value when
9573         PublicKeyToken is specified, not the hash_value. Free public token
9574         values when free assembly name data. Previously the public key
9575         token was hex decoded, however we are using hex encoded public key
9576         tokens, so this is not neccasary.
9577         * assembly.c: Lookup assemblies in the gac if their public token
9578         value is set. Add function to allow enabling user gac
9579         lookups. Specify whether or not the assembly was loaded from the
9580         GAC. Compare full assembly names when checking the cache for
9581         assemblies (Temporarily disabled see comment in code). Remove
9582         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
9583         specifies trace-loader they get extra info to stdout on the
9584         loading of assemblies.
9585         * image.h: Add a field for an assembly references public token
9586         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
9587         whether an assembly has been loaded from the GAC.
9588         * image.c: Remove a corlib -> mscorlib name mapping.
9589         * loader.h: Add function to enable/disable the user gac.
9590         * mono-config.c: Check if the usergac is enabled in the config
9591         file.
9592         * icall.c: New icall to determine whether or not an assembly has
9593         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
9594         * tabldefs.h: Add constant for assemblyref flag that specifies a
9595         full public key is used instead of a public token.
9596         * reflection.c: Remove mscorlib -> corlib mappings. Set
9597         PublicTokenValue instead of hash value. This value is a hex
9598         string so it does not need to be expanded.
9599
9600 2004-04-26  Martin Baulig  <martin@ximian.com>
9601
9602         * mono-debug-debugger.c (mono_debugger_initialize): Set
9603         `mono_debugger_initialized' before calling mono_debug_lock().
9604
9605 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
9606
9607         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
9608           InternalToUpper/InternalToLower.
9609         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
9610           removed invariant culture shortcut.  This is now done in managed code.
9611         * locales.c: (string_invariant_toupper/tolower) removed.
9612
9613 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9614
9615         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
9616         Added Poll internal call.
9617
9618         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
9619         call for Poll. Select was too heavy for polling a single socket.
9620
9621         * threadpool.[ch]: added mono_threadpool_cleanup.
9622         * threads.c: use it. Don't use Thread_Abort on windows.
9623
9624 2004-04-23  Martin Baulig  <martin@ximian.com>
9625
9626         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
9627
9628 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
9629
9630         * icall.c: Registred new icalls for key pair protection and added an
9631         icall for Environment.GetFolderPath on Windows.
9632         * security.c|h: Added new icalls for key pair protection.
9633
9634 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9635
9636         * socket-io.c: don't display the non-supported family warning for known
9637         families. Now this is not displayed on windows when checking support
9638         for IPv4/IPv6.
9639
9640 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9641
9642         * class.c: don't display the layout warning for static fields.
9643
9644 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
9645
9646         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
9647         * locales.c, locales.h: Added new icalls for culture-specific
9648         Char.ToLower and Char.ToUpper.
9649
9650 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9651
9652         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
9653         by David Waite.
9654
9655 2004-04-20  Martin Baulig  <martin@ximian.com>
9656
9657         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
9658         of the type name before passing it to mono_reflection_type_from_name().
9659
9660 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
9661
9662         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
9663         encodings here. Fixes #56965.
9664
9665 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
9666
9667         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9668         fix test on strstr result not that I can see anything that
9669         relies on the result.
9670
9671 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
9672
9673         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
9674         Fixes #57081.
9675
9676         * marshal.c (mono_marshal_get_string_encoding): New helper function.
9677
9678         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
9679         function to determine which marshalling to use for strings. Fixes
9680         #56965.
9681
9682         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
9683
9684         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
9685
9686 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
9687
9688         * icall.c: #include mono-config.h
9689
9690 2004-04-15  Jackson Harper  <jackson@ximian.com>
9691
9692         * culture-info-tables.h: Fix date formats for en-US culture.
9693         
9694 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
9695
9696         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
9697         ThreadPool.SetMinThreads.
9698         * threadpool.c: Implemented ThreadPool.GetMinThreads and
9699         ThreadPool.SetMinThreads.
9700
9701 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
9702
9703         * mono-config.c: also load the .config file in the directory
9704         where the assembly was found.
9705
9706 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
9707
9708         * assembly.c: load per-assembly config files.
9709         * icall.c: decrapified code to get the config dir and moved to
9710         mono-config.c.
9711         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
9712         per-assembly config files. When doing a dll map lookup give precedence
9713         to the per-assembly data.
9714
9715 2004-04-14  Martin Baulig  <martin@ximian.com>
9716
9717         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
9718         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
9719         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
9720
9721         * mono-debugger-debugger.c: While the debugger is locked, remember
9722         whether the symbol tables have changes and send one single
9723         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
9724
9725 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
9726
9727         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
9728
9729         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
9730         function.
9731
9732         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
9733         account when marshalling string arrays. Fixes #56965.
9734
9735 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
9736
9737         * icall.c: Add new icalls mapping for security.
9738         * security.c|h: Add internal calls for WindowsIdentity,
9739         WindowsImpersonationContext and WindowsPrincipal.
9740
9741 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
9742
9743         * class.c: Added comment to ensure the System.MonoDummy class
9744         is removed when no longer necessary
9745
9746 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
9747
9748         * appdomain.c: Pass arguments to the bootstraping exceptions to
9749         minimize JITed methods at boot
9750
9751         * metadata.c (mono_exception_from_name_two_strings): Allow for the
9752         second string to be null.
9753
9754         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
9755         Change the protocol to minimize the JIT methods at startup.  Now
9756         it Returns the internal codepage, if the value of "int_code_page"
9757         is 1 at entry, and we can not compute a suitable code page
9758         number, returns the code page as a string.
9759
9760 2004-04-13  Jackson Harper  <jackson@ximian.com>
9761
9762         * culture-info-tables.h: Fix number of decimal digits for all
9763         english locales.
9764
9765 2004-04-13  Jackson Harper  <jackson@ximian.com>
9766
9767         * icall.c: Clairfy out of sync error message. It is not always
9768         your corlib that is out of sync.
9769
9770 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
9771
9772         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
9773         properties when only the set accessor is overriden. Fixes #55874.
9774
9775 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
9776
9777         * assembly.c (mono_assembly_load_references): Make this thread safe.
9778         Fixes #56327.
9779
9780 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
9781
9782         * monosn.c: Add missing initialization calls.
9783
9784 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
9785
9786         * locales.c:
9787         ves_icall_System_Globalization_CultureInfo_construct_number_format
9788         Fix g_assert so it compiles on fussier compilers re int/ptr
9789         mismatch
9790
9791 2004-04-08  Dick Porter  <dick@ximian.com>
9792
9793         * socket-io.h:
9794         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
9795         53992.  Also rearrange the code so that the internal calls return
9796         an error value and exceptions are thrown from managed code.
9797
9798         * icall.c: Add type info to the socket icalls.
9799
9800 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9801
9802         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
9803         owes me a beer.
9804
9805 2004-04-07  Martin Baulig  <martin@ximian.com>
9806
9807         * class.c (mono_class_from_generic_parameter): Don't default
9808         `klass->parent' to `mono_defaults.object_type'.
9809
9810 2004-04-07  Martin Baulig  <martin@ximian.com>
9811
9812         * reflection.c (mono_reflection_initialize_generic_parameter): Set
9813         `param->pklass->reflection_info'.       
9814
9815 2004-04-07  Jackson Harper  <jackson@ximian.com>
9816
9817         * culture-info-tables.h: Fix date separator symbol.
9818         
9819 2004-04-07  Martin Baulig  <martin@ximian.com>
9820
9821         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
9822         from System.Type to System.MonoType.
9823
9824 2004-04-07  Martin Baulig  <martin@ximian.com>
9825
9826         * reflection.h
9827         (MonoReflectionGenericParam): Added `has_reference_type' and
9828         `has_value_type' fields.
9829
9830         * reflection.c (mono_image_get_generic_param_info): Encode the
9831         correct flags if we have the `class' or `struct' constraint.
9832
9833 2004-04-07  Martin Baulig  <martin@ximian.com>
9834
9835         * reflection.h
9836         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
9837
9838 2004-04-07  Jackson Harper  <jackson@ximian.com>
9839
9840         * appdomain.c: Revert extra patches, just wanted to bump the
9841         version number.
9842         
9843 2004-04-07  Jackson Harper  <jackson@ximian.com>
9844
9845         * Makefile.am: Add culture-info private headers.
9846         * icall.c: Add new icalls for contructing locales.
9847         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
9848         * locales.h: Declare new culture info construction methods.
9849         * object.h: Add new fields used to avoid the CultureMap to
9850         MonoCultureInfo.
9851         * culture-info.h: Definition of structs used in the culture info
9852         tables.
9853         * culture-info-tables.h: Autogenerated tables that contain culture
9854         info data. This file was generated with the locale-builder tool.
9855         * appdomain.c: Incement corlib version number.
9856         
9857 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
9858
9859         * appdomain.c: (mono_runtime_init) move mono_thread_init
9860         to before mono_object_new calls so critical sections
9861         are initialized before use.
9862
9863 2004-04-07  Martin Baulig  <martin@ximian.com>
9864
9865         * icall.c
9866         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
9867         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
9868         (ves_icall_MonoGenericParam_initialize): Removed.
9869         (monogenericparam_icalls): Removed.
9870         (generictypeparambuilder_icalls): Added new table for
9871         System.Reflection.Emit.GenericTypeParameterBuilder.
9872
9873         * reflection.c
9874         (mono_reflection_define_generic_parameter): Removed.
9875         (mono_reflection_initialize_generic_parameter): This is now called
9876         from GenericTypeParameterBuilder's .ctor.
9877
9878 2004-04-06  Martin Baulig  <martin@ximian.com>
9879
9880         * class.c (mono_class_init): Don't inflate nested classes in a
9881         generic instance.
9882         (mono_type_get_name_recurse): Include the generic arguments for
9883         generic instances and generic type declarations.
9884         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
9885         (_mono_class_get_instantiation_name): Removed.
9886         (mono_class_create_generic): Always use `gklass->name' as our name.
9887
9888         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
9889
9890         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
9891         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
9892         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
9893         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
9894         closed generic methods here.
9895
9896         * reflection.c
9897         (mono_reflection_generic_inst_get_nested_types): Removed.
9898         (inflate_mono_method): Copy the generic parameters from the
9899         MonoMethodHeader into out MonoGenericMethod.
9900
9901 2004-04-06  Martin Baulig  <martin@ximian.com>
9902
9903         * row-indexes.h
9904         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
9905
9906         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
9907
9908         * reflection.c (build_compressed_metadata): If we have any entries
9909         in the GenericParam, MethodSpec or GenericParamConstraint tables,
9910         set the header version to 1.1.
9911
9912 2004-04-06  Martin Baulig  <martin@ximian.com>
9913
9914         * class.c (mono_class_init): If we're a generic instance,
9915         initialize our nested classes, too.
9916         (_mono_class_get_instantiation_name): Deal with the new `!%d'
9917         suffix. 
9918
9919 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9920
9921         * process.c: quote the argument passed to the shell on windows.
9922
9923 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
9924
9925         * threads.c (mono_alloc_special_static_data): Allow this to be
9926         called during startup.
9927
9928 2004-04-02  Martin Baulig  <martin@ximian.com>
9929
9930         * icall.c
9931         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
9932
9933 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
9934
9935         * icall.c: Fix build.
9936
9937 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
9938
9939         * Makefile.am: Added security.c|h.
9940         * icall.c: Added icall for get_UserName;
9941         * security.c: New file for security related icalls. Added function
9942         get_UserName for System.Environment (fix #56144).
9943         * security.h: New. Header file for security.c
9944
9945 2004-04-02  Dick Porter  <dick@ximian.com>
9946
9947         * icall.c: Deleted the icalls that were obsoleted some time ago
9948         by the ICU string code, and which were mixed into the icall
9949         rearranging.  Fixes bug 55969.
9950
9951         * string-icalls.h: 
9952         * string-icalls.c: Deleted the code that those icalls reference.
9953
9954 2004-04-01  Martin Baulig  <martin@ximian.com>
9955
9956         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
9957
9958         * class.c (mono_class_from_generic_parameter): Don't set 
9959         TYPE_ATTRIBUTE_INTERFACE.
9960         (my_mono_class_from_generic_parameter): Likewise.
9961
9962 2004-04-01  Martin Baulig  <martin@ximian.com>
9963
9964         * loader.c (find_method): Added an optional `MonoClass *ic'
9965         argument to search in a specific interface.
9966         (mono_get_method_constrained): New public function.
9967
9968 2004-04-01  Martin Baulig  <martin@ximian.com>
9969
9970         * reflection.c (mono_image_get_generic_field_token): Use the
9971         `handleref' cache here.
9972
9973 2004-04-01  Martin Baulig  <martin@ximian.com>
9974
9975         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
9976
9977         * reflection.c (create_generic_typespec): Use the `typespec' hash
9978         here, not the `typeref' one.    
9979
9980 2004-04-01  Martin Baulig  <martin@ximian.com>
9981
9982         * class.c (mono_class_inflate_generic_type): Moved the
9983         functionality into a new static inflate_generic_type() which
9984         returns NULL if it didn't do anything.  Only increment the
9985         `mono_stats.inflated_type_count' if we actually inflated
9986         something.
9987         (mono_class_get_full): Check the classes type to see whether we
9988         need to inflate it; also inflate MONO_TYPE_(M)VAR.
9989
9990 2004-04-01  Jackson Harper  <jackson@ximian.com>
9991
9992         * reflection.c: Set culture for assembly references.
9993         
9994 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
9995
9996         * reflection.[ch], icall.[ch], Fix support for pinning variables.
9997
9998 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9999
10000         * assembly.c:
10001         (do_mono_assembly_open): the critical section also covers
10002         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
10003
10004 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10005
10006         * threads.c:
10007         (mono_manage_threads): abort the background threads when finishing.
10008         Fixes bug #47232.
10009
10010 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10011
10012         * gc.c: only close the done_event handle if there was no timeout.
10013         C-ified comments.
10014
10015 2004-03-30  Martin Baulig  <martin@ximian.com>
10016
10017         * icall.c (icall_entries): It's called "System.Activator", not
10018         "System.Activation".    
10019
10020 2004-03-30  Martin Baulig  <martin@ximian.com>
10021
10022         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
10023         (mono_class_create_from_typespec): Likewise.
10024
10025 2004-03-30  Martin Baulig  <martin@ximian.com>
10026
10027         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
10028         `has_ctor_constraint' and `initialized'.
10029
10030 2004-03-30  Martin Baulig  <martin@ximian.com>
10031
10032         * reflection.c (encode_new_constraint): New static function to add
10033         the constructor constraint attribute to a type parameter.
10034         (encode_constraints): Call encode_new_constraint() if necessary.
10035
10036         * reflection.h
10037         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
10038
10039         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
10040         
10041 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
10042
10043         * reflection.c, icall.c: add support for pinning variables. 
10044
10045 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
10046
10047         * marshal.c (mono_marshal_get_managed_wrapper):
10048         init bool local with zero rather than null.
10049
10050 2004-03-29  Martin Baulig  <martin@ximian.com>
10051
10052         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
10053         the "official" behavior here.
10054         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
10055
10056 2004-03-29  Martin Baulig  <martin@ximian.com>
10057
10058         * icall.c: Reflect latest API changes.
10059
10060 2004-03-29  Martin Baulig  <martin@ximian.com>
10061
10062         * loader.c (mono_get_method_from_token): Also call
10063         mono_metadata_load_generic_params () for abstract and interface
10064         methods; replace the type arguments in the method signature with
10065         the ones which are loaded from the metadata.
10066
10067 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
10068
10069         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
10070         of the lock is not the current thread. MS.NET don't do it, in spite of
10071         what the documentation says. See bug #56157.
10072
10073 2004-03-28  Martin Baulig  <martin@ximian.com>
10074
10075         * class.c (mono_class_init): Don't call init_properties() and
10076         init_events() for generic instances; set `prop->parent' when
10077         inflating properties.
10078
10079         * reflection.c (mono_generic_inst_get_object): Call
10080         `mono_class_init (ginst->klass)'.
10081         (mono_type_get_object): Only create a MonoGenericInst if your
10082         generic type is a TypeBuilder.
10083         (do_mono_reflection_bind_generic_parameters): Only set
10084         `ginst->is_dynamic' if our generic type is a TypeBuilder.
10085
10086 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
10087
10088         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
10089         Fixes #56091.
10090
10091 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10092
10093         * icall.c: added Kill_internal icall.
10094         * process.[ch]: added Kill_internal icall.
10095
10096 2004-03-25  Martin Baulig  <martin@ximian.com>
10097
10098         * class.h (MonoStats): Added `generic_instance_count',
10099         `inflated_method_count', `inflated_type_count' and
10100         `generics_metadata_size'.       
10101
10102 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10103
10104         * reflection.c: no warnings now.
10105
10106 2004-03-25  Martin Baulig  <martin@ximian.com>
10107
10108         * class.c (mono_class_get_full): New public function; does a
10109         mono_class_get(), but also takes a `MonoGenericContext *'.
10110
10111         * loader.c (mono_field_from_memberref): Renamed to
10112         `field_from_memberref', made static and added `MonoGenericContext *'
10113         argument.
10114         (mono_field_from_token): Added `MonoGenericInst *' argument.
10115         (method_from_memberef): Likewise.
10116         (mono_get_method_from_token): Likewise.
10117         (mono_get_method_full): New public function; does a
10118         mono_get_method(), but also takes a `MonoGenericContext *'.
10119
10120         * verify.c (mono_method_verify): Get the method's generic context
10121         and pass it to mono_field_from_token(), mono_get_method_full() and
10122         mono_class_get_full().
10123
10124 2004-03-25  Martin Baulig  <martin@ximian.com>
10125
10126         * class.c (mono_class_inflate_generic_type): Take a
10127         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
10128         `MonoGenericMethod *'.
10129
10130 2004-03-25  Martin Baulig  <martin@ximian.com>
10131
10132         * loader.h (MonoMethodInflated): Store the MonoGenericContext
10133         instead of the MonoGenericMethod here.
10134
10135 2004-03-25  Martin Baulig  <martin@ximian.com>
10136
10137         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
10138         each time we create a new MonoGenericInst, we also create a new
10139         context which points back to us.
10140
10141         * class.c (inflate_method): Use `ginst->context' instead of
10142         creating a new context.
10143
10144         * loader.c (method_from_memberref): Use
10145         `klass->generic_inst->context' instead of creating a new context.
10146
10147 2004-03-25  Martin Baulig  <martin@ximian.com>
10148
10149         * class.h (MonoGenericContext): New struct.
10150         (MonoGenericMethod): Removed `generic_inst'.
10151
10152         * class.c (mono_class_inflate_generic_method): Take a
10153         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
10154
10155 2004-03-25  Martin Baulig  <martin@ximian.com>
10156
10157         * loader.h (MonoMethodInflated): New typedef.
10158
10159         * metadata.h (MonoMethodSignature): Removed `gen_method', make
10160         `generic_param_count' consume just 30 bits, added `is_inflated'
10161         and `has_type_parameters' flags (one bit each).
10162
10163         * class.c (mono_class_inflate_generic_method): Create a
10164         MonoMethodInflated instead of a MonoMethodNormal and set
10165         `is_inflated' in the method signature.
10166
10167         * class.h (MonoGenericMethod): Removed `generic_method'.
10168
10169 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
10170
10171         * image.c: Make sure the name of a MonoImage is always an absolute path.
10172           This fixes bug #54415.
10173
10174 2004-03-24  Martin Baulig  <martin@ximian.com>
10175
10176         * class.c (mono_class_setup_vtable): If we're a generic instance,
10177         use our generic type's vtable size.
10178
10179 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
10180
10181         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
10182         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
10183         problems.
10184
10185 2004-03-23  Martin Baulig  <martin@ximian.com>
10186
10187         * class.h (MonoDynamicGenericInst): Added `int count_events' and
10188         `MonoEvent *events'.
10189
10190         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
10191         (typebuilder_icalls): Added "get_event_info"; calls
10192         mono_reflection_event_builder_get_event_info(). 
10193
10194         * reflection.c (mono_reflection_generic_inst_initialize): Added
10195         `MonoArray *events'.
10196         (mono_reflection_event_builder_get_event_info): New function.
10197
10198 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
10199
10200         * object.h: add mono_type_initialization_init
10201
10202         * object.c (mono_runtime_class_init): 
10203         implement class constructor synchronization rules
10204         to cope with threading issues.  
10205         add mono_type_initialization_init
10206
10207         * appdomain.c (mono_runtime_init): call 
10208         mono_type_initialization_init
10209
10210         * class.h: removing initializing field from MonoVTable
10211
10212 2004-03-23  Martin Baulig  <martin@ximian.com>
10213
10214         * class.c (my_mono_class_from_generic_parameter): Use
10215         `param->name' if it's not NULL. 
10216
10217 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
10218
10219         * class.c: do not insert non-virtual methods in the vtable.
10220         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
10221         that means the method is non-virtual. This never would have
10222         happened before.
10223
10224 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
10225
10226         * profiler.c: Added lock for accessing coverage_hash.
10227
10228 2004-03-22  Martin Baulig  <martin@ximian.com>
10229
10230         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
10231         `method->method->signature->generic_param_count != 0' to make it
10232         work for interface methods.
10233
10234 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10235
10236         * process.c: quote the string passed to the shell using g_shell_quote.
10237
10238 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10239
10240         * threads.c:
10241         (mono_threads_manage): don't remove the finalizer thread and self
10242         from the threads hash table so that mono_thread_manage can be called
10243         more than once.
10244
10245 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10246
10247         * process.c: quote the arguments when UseShellExecute is true. Fixes
10248         bug #55790.
10249
10250 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10251
10252         * threads.c: set mono_thread_detach as a cleanup routine for every
10253         thread. This way it's always executed upon thread termination, either
10254         aborted or finished normally. No more xsp hangs!
10255
10256 2004-03-17  Martin Baulig  <martin@ximian.com>
10257
10258         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
10259         `int count_nested' and a `MonoType **nested'.
10260
10261         * reflection.c (mono_reflection_bind_generic_parameters): Moved
10262         most of the functionality into a new static
10263         do_mono_reflection_bind_generic_parameters() and don't take a
10264         `MonoType *nested_in' argument any more.  Don't compute nested
10265         types here.
10266         (mono_reflection_generic_inst_get_nested_types): New public method
10267         to get nested types.
10268
10269         * class.c (mono_class_create_generic): Set `klass->nested_in' if
10270         we're a nested class.
10271
10272         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
10273         mono_reflection_generic_inst_get_nested_types() to compute the
10274         nested types.
10275
10276 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10277
10278         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
10279         descriptive error message under windows.
10280         
10281 2004-03-17  Martin Baulig  <martin@ximian.com>
10282
10283         * class.c (dup_type): Added `const MonoType *original' argument;
10284         copy the attrs from the original type.
10285
10286 2004-03-17  Martin Baulig  <martin@ximian.com>
10287
10288         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
10289         `m->generic_inst_cache' here.
10290
10291 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
10292
10293         * exception.h exception.c: Add stack_overflow_exception.
10294
10295 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10296
10297         * threadpool.c:
10298         (overlapped_callback): call SetEvent *after* invoking the callback.
10299         No need to call CloseHandle.
10300
10301 2004-03-16  Martin Baulig  <martin@ximian.com>
10302
10303         * reflection.c (mono_image_get_fieldref_token): Take a
10304         `MonoReflectionField *' instead of a `MonoClassField *' and a
10305         `MonoClass *'; store the `MonoReflectionField *' in the hash.
10306
10307 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10308
10309         * appdomain.c: don't add the culture to the filename we're looking for
10310         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
10311
10312 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10313
10314         * locales.c: don't ignore symbols when doing case insensitive compares.
10315         Thanks Dick! Fixes bug #54046.
10316
10317         * threads.c: surround 'threads' usage with enter/leave in
10318         mono_thread_manage.
10319
10320 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
10321
10322         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
10323         implicitly marshalled as [Out]. Fixes #55450.
10324
10325         (mono_marshal_get_runtime_invoke): Zero out the result if there is
10326         an exception.
10327
10328 2004-03-16  Martin Baulig  <martin@ximian.com>
10329
10330         * class.c (mono_class_from_generic_parameter): Use the actual
10331         parameter name. 
10332
10333 2004-03-16  Martin Baulig  <martin@ximian.com>
10334
10335         * reflection.c (type_get_signature_size): New static function.
10336         Compues the size of the type in a method signature.
10337         (method_get_signature_size): New static function; calls
10338         type_get_signature_size() to compute the actual size of the
10339         method's signature.
10340         (method_encode_signature): Use method_get_signature_size() to get
10341         the signature's size rather than using `nparams * 10'.
10342
10343 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10344
10345         * file-io.h: define here WapiOverlapped on windows. I don't want the
10346         regular OVERLAPPED one.
10347
10348         * file-io.c:
10349         * threadpool.c: somehow, BindIoCompletionCallback is not found.
10350         Disabling AIO on windows.
10351
10352 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10353
10354         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
10355         bug #55385.
10356
10357 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10358
10359         * appdomain.c: upgraded corlib version.
10360
10361         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
10362         and BeginWrite. Allow opening files for asynchrnous operations.
10363
10364         * file-io.h: new struct that maps FileStreamAsyncResult.
10365         * icall.c: added new icalls.
10366         * process.[ch]: support setting child process environment variables
10367         and use the SHELL or COMSPEC when UseShellExecute is true.
10368
10369         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
10370         callback for async. IO is here and also BindHandle.
10371
10372         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
10373         from here.
10374
10375 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
10376
10377         * reflection.c (create_custom_attr): Allow len == 0.
10378
10379         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
10380         computation on big-endian machines.
10381
10382 2004-03-13  Martin Baulig  <martin@ximian.com>
10383
10384         * class.h (MonoGenericInst): Added `int count_ifaces'.
10385
10386         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
10387         `ginst->count_ifaces' instead `klass->interface_count' since we
10388         may get called before the vtable is created.
10389
10390         * loader.c (mono_method_get_param_names): If we're a generic
10391         instance, return and don't initialize the class.
10392
10393         * reflection.c (mono_reflection_setup_generic_class): Don't call
10394         ensure_runtime_vtable().
10395         (mono_reflection_bind_generic_parameters): Set
10396         `ginst->count_ifaces'.
10397
10398 2004-03-11  Jackson Harper <jackson@ximian.com>
10399
10400         * icall.c:
10401         * unicode.c:
10402         * unicode.h: Remove unused System.Char icalls.
10403         
10404 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
10405
10406         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
10407         code when we P/Invoke the first library in Windows.Forms, instead
10408         of when we first open the assembly.
10409
10410         * assembly.c: Drop the lookup from here.
10411
10412 2004-03-10  Martin Baulig  <martin@ximian.com>
10413
10414         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
10415         class for properties, fields and events.  Finally fixes #54945.
10416
10417 2004-03-10  Martin Baulig  <martin@ximian.com>
10418
10419         * metadata.c (mono_metadata_class_equal): New static function;
10420         checks whether two generic instances or two generic parameters are
10421         equal.
10422         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
10423         compare classes.        
10424
10425 2004-03-10  Martin Baulig  <martin@ximian.com>
10426
10427         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
10428
10429         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
10430         argument and write it into the `reflection_info' field.
10431
10432         * icall.c
10433         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
10434         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
10435
10436 2004-03-09  Jackson Harper  <jackson@ximian.com>
10437
10438         * char-conversions.h: use 8 bits for numeric data its all we need
10439         * icall.c: numeric data is only 8 bits now.
10440
10441 2004-03-09  Martin Baulig  <martin@ximian.com>
10442
10443         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
10444
10445         * class.c (init_properties, init_events): Initialize the new
10446         `parent' field.
10447
10448         * reflection.c (typebuilder_setup_properties): Likewise.
10449         (typebuilder_setup_events): Likewise.
10450
10451         * reflection.h (MonoEventInfo): Replaced `parent with
10452         `declaring_type' and `reflected_type'.
10453
10454         * icall.c (ves_icall_get_property_info): Distinguish between
10455         declaring and reflected type.
10456         (ves_icall_get_event_info): Likewise.
10457
10458 2004-03-09  Martin Baulig  <martin@ximian.com>
10459
10460         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
10461         (ves_icall_Type_GetField): Correctly set field->klass.
10462
10463 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
10464
10465         * loader.h: Fix warning.
10466
10467 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
10468
10469         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
10470         library routine if present.  Notice that it will still continue
10471         executing even if its missing, for those working on the Gtk#
10472         edition of Windows.Forms.
10473
10474         * assembly.c (do_mono_assembly_open): If loading the
10475         System.Windows.Forms call mono_loader_wini_init.
10476
10477 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
10478
10479         * class.h: Added MonoRemoteClass struct.
10480         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
10481         function for MonoStrings.
10482         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
10483         Added internal call for getting the proxy type.
10484         * marshal.c: Get the type of transparent proxies from its remote_class.
10485         Added methods that generate the IL for type checks and casts:
10486         mono_marshal_get_isinst, mono_marshal_get_castclass, 
10487         mono_marshal_get_proxy_cancast.
10488         * marshal.h: Declaration of the previous new methods.
10489         * object.c: Added new moethods for creating and updating MonoRemoteClass
10490         instances: mono_remote_class, mono_upgrade_remote_class, 
10491         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
10492         * verify.c: FIx transparent_proxy_fields layout.
10493         * appdomain.c: Bump corlib version.
10494
10495 2004-03-04  Jackson Harper  <jackson@ximian.com>
10496
10497         * icall.c: Add icall to access char conversion tables.
10498         * char-conversions.h: Character conversion tables.
10499         * Makefile.am: Add char-conversions.h private header file.
10500         
10501 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
10502
10503         * appdomain.c (unload_thread_main): Increase unloading timeout to
10504         10 sec as a temporary workaround for Nant problems.
10505
10506 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
10507
10508         * gc.c: Add checks for GC_enable and GC_disable.
10509
10510         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
10511         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
10512         (bug #54988).
10513         
10514 2004-02-27  Martin Baulig  <martin@ximian.com>
10515
10516         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10517         `MonoReflectionType *' instead of a `MonoType *'.
10518
10519 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
10520
10521         * gc.c (run_finalize): Avoid finalizing the object representing the
10522         finalizer thread.
10523         (finalizer_thread): Fix warning.
10524
10525 2004-02-25  Martin Baulig  <martin@ximian.com>
10526
10527         * class.c (_mono_class_get_instantiation_name): Added `int offset'
10528         argument for nested types.
10529         (mono_class_create_generic): Added support for nested generictypes.
10530
10531         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
10532         `GList *nested'.
10533
10534         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
10535
10536         * reflection.c (method_encode_signature): Increase the minimum
10537         value of `size' from 10 to 11.
10538         (mono_reflection_bind_generic_parameters): Take `int type_argc'
10539         and `MonoType **types' arguments instead of the `MonoArray
10540         *types'; added `MonoType *nested_in'.  Recursively instantiate
10541         nested classes. 
10542
10543 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
10544
10545         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
10546         stack_overflow_ex members which are used by exception handling.
10547
10548         * appdomain.c (mono_runtime_init): Initialize the new members.
10549
10550         * gc.c (mono_gc_enable): New helper function.
10551         * gc.c (mono_gc_disable): New helper function.
10552
10553 2004-02-23  Martin Baulig  <martin@ximian.com>
10554
10555         * icall.c: I must have been really stupid - make it actually work
10556         this time ;-)
10557
10558 2004-02-23  Martin Baulig  <martin@ximian.com>
10559
10560         * loader.c (method_from_memberref): Only inflate the method if
10561         it's in another klass.
10562
10563 2004-02-23  Martin Baulig  <martin@ximian.com>
10564
10565         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
10566         (mono_class_init): If we're a generic instance and an interface,
10567         compute `class->interface_id'; also create `class->interfaces'
10568         here and inflate them.
10569
10570         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
10571         `ginst->is_open'.
10572         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
10573
10574         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
10575
10576 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
10577
10578         * reflection.c (method_encode_code): Improved the error message
10579         generated by the exception.
10580
10581 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10582
10583         * icall.c: Martin did not do what he said in the ChangeLog for
10584         2004-02-18, but put back the changes for properties and events.
10585         Commenting those changes out again and adding comment to bug #54518.
10586         
10587         * process.c: removed warning.
10588
10589 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
10590
10591         * marshal.c (emit_struct_conv): Print an error message instead of
10592         asserting when a type does not have the StructLayout attribute.
10593
10594 2004-02-20  Martin Baulig  <martin@ximian.com>
10595
10596         * reflection.c (mono_type_get_object): Also use the cache for
10597         generic instances.
10598         (mono_reflection_bind_generic_parameters): Always compute
10599         `ginst->ifaces'.        
10600
10601 2004-02-20  Martin Baulig  <martin@ximian.com>
10602
10603         * class.h (MonoGenericMethod): Removed `klass'.
10604
10605         * class.c (mono_class_inflate_generic_method): Added `MonoClass
10606         *klass' argument.
10607
10608 2004-02-20  Martin Baulig  <martin@ximian.com>
10609
10610         * reflection.c (method_encode_methodspec): Actually use the
10611         uninflated signature for the memberref.
10612
10613 2004-02-20  Martin Baulig  <martin@ximian.com>
10614
10615         * class.h (MonoGenericMethod): Removed `declaring'.
10616
10617         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
10618         is NULL, compute it here.
10619
10620 2004-02-20  Martin Baulig  <martin@ximian.com>
10621
10622         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
10623
10624         * metadata.c (mono_metadata_generic_inst_hash): New method.
10625         (mono_metadata_generic_inst_equal): New method.
10626
10627         * reflection.c (mono_reflection_bind_generic_parameters): Use the
10628         `klass->image->generic_inst_cache' cache to avoid creating
10629         duplicate MonoGenericInst's.
10630
10631         * class.c (mono_class_inflate_generic_type): Use the cache.
10632
10633 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
10634
10635         * object.c: fixed gc descriptor calculation for embedded valuetypes.
10636
10637 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10638
10639         * icall.c: added Socket.WSAIoctl icall.
10640
10641         * socket-io.[ch]: implemented
10642         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
10643
10644 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
10645
10646         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
10647
10648 2004-02-18  Urs C Muff  <umuff@quark.com>
10649
10650         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
10651         this work on PPC and other big-endian architectures.
10652
10653         * debug-mono-symfile.h: Prepended the names of all the `guint32'
10654         fields with an underscore to make sure they're only accessed by
10655         the read32() macro.
10656
10657 2004-02-18  Martin Baulig  <martin@ximian.com>
10658
10659         * icall.c: Put the klass->refclass changes back for methods and
10660         fields, but not for properties and events.  We're currently not
10661         distinguishing between DeclaringType and ReflectedType for
10662         properties and events, that's what caused the regressions.
10663
10664 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10665
10666         * object.c:
10667         (mono_async_result_new): the handle can be NULL.
10668
10669         * threadpool.c: Use an event instead of a semaphore, don't initialize
10670         it until needed. This saves quite a few semaphores from being created
10671         when using the threadpool.
10672
10673 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
10674
10675         * object.c (mono_string_is_interned_lookup): Fix interning of long
10676         strings. Fixes #54473.
10677
10678         * domain.c (ldstr_equal): Optimize if the two strings are equal.
10679
10680         * icall.c: Revert the klass->refclass changes since they introduce
10681         regressions (bug #54518).
10682
10683 2004-02-18  Martin Baulig  <martin@ximian.com>
10684
10685         * class.c (mono_class_init): If we're a generic instance and don't
10686         come from a TypeBuilder, inflate our members here.
10687         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
10688         (mono_class_create_generic): New public method.
10689         (mono_class_initialize_generic): Removed.
10690         (get_instantiation_name): Renamed to
10691         _mono_class_get_instantiation_name() and made it public.
10692
10693 2004-02-18  Martin Baulig  <martin@ximian.com>
10694
10695         * class.c (mono_class_inflate_generic_type): Clear the new
10696         instance's `nginst->klass' when inflating a generic instance.
10697         (mono_class_is_subclass_of): Added (basic) support for generic
10698         instances.
10699
10700 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
10701
10702         * appdomain.h, domain.c: use a MonoCodeManager instead of a
10703         MonoMempool to hold compiled native code.
10704
10705 2004-02-17  Martin Baulig  <martin@ximian.com>
10706
10707         * class.h (MonoDynamicGenericInst): Added `count_properties' and
10708         `properties'.
10709
10710         * reflection.c (mono_reflection_generic_inst_initialize): Added
10711         `MonoArray *properties' argument.
10712
10713         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
10714
10715 2004-02-17  Martin Baulig  <martin@ximian.com>
10716
10717         * icall.c (ves_icall_Type_GetFields): Renamed to
10718         ves_icall_Type_GetFields_internal() and added a
10719         `MonoReflectionType *rtype' argument; pass it to
10720         mono_field_get_object() to set the field's "reflected" type.
10721         (ves_icall_Type_GetConstructors): Likewise.
10722         (ves_icall_Type_GetEvents): Likewise.
10723         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
10724         argument; pass it to mono_method_get_object() to set the method's
10725         "reflected" type.       
10726
10727 2004-02-17  Martin Baulig  <martin@ximian.com>
10728
10729         * class.h (MonoDynamicGenericInst): New type.
10730         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
10731
10732         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
10733         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
10734         (ves_icall_MonoGenericInst_GetFields): New interncall.
10735
10736         * class.c (mono_class_from_generic): Don't call
10737         mono_class_initialize_generic() if this is a dynamic instance;
10738         ie. it's being created from a TypeBuilder.
10739         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
10740         `class->byval_arg.type'.
10741
10742         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
10743         to `inflate_method' and made static.
10744         (mono_reflection_inflate_field): Removed.
10745         (mono_reflection_generic_inst_initialize): New public method.
10746
10747         * reflection.h (MonoReflectionGenericInst): Removed `methods',
10748         `ctors' and `fields'; added `initialized'.
10749
10750 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
10751
10752         * debug-helpers.c (mono_method_full_name): Fix output for empty
10753         namespaces.
10754
10755 2004-02-12  Martin Baulig  <martin@ximian.com>
10756
10757         * class.h (MonoClassField): Added `MonoType *generic_type'.
10758
10759         * reflection.c (mono_image_get_fieldref_token): Added support for
10760         instantiated generic types.
10761         (field_encode_inflated_field): Removed.
10762         (mono_image_get_inflated_field_token): Removed.
10763         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
10764
10765         * reflection.h (MonoReflectionInflatedField): Removed.
10766
10767 2004-02-12  Martin Baulig  <martin@ximian.com>
10768
10769         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
10770         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
10771
10772         * reflection.c (mono_image_get_methodspec_token): Take a
10773         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
10774         (mono_image_create_token): Check whether we have a
10775         `method->signature->gen_method' and call
10776         mono_image_get_methodspec_token() if appropriate.
10777         (inflated_method_get_object): Removed.
10778         (mono_reflection_bind_generic_method_parameters): Return a
10779         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
10780         (mono_reflection_inflate_method_or_ctor): Likewise.
10781
10782         * reflection.h (MonoReflectionInflatedMethod): Removed.
10783
10784 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
10785
10786         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
10787         for custom valuetype marshalling.
10788
10789         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
10790
10791 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10792
10793         * icall.c: fixed WSAGetLastError_internal name.
10794
10795 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
10796
10797         * threads.c (mono_thread_attach): Allow this to be called multiple
10798         times for a thread.
10799         
10800         * threads.c (build_wait_tids): Do not wait for ourselves.
10801
10802         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
10803         appdomain list is empty.
10804
10805         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
10806         memory returned by mono_string_builder_to_utf16, since it points into
10807         managed memory. Thanks to Bernie Solomon for noticing this.
10808
10809         * icall.c: Add AppDomainSetup icalls.
10810
10811         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
10812
10813         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
10814         types.
10815
10816         * reflection.c (reflection_methodbuilder_to_mono_method): Save
10817         custom attributes to the method_aux struct. Also fix array indexes etc.
10818
10819         * loader.c (mono_method_get_param_names): Make dynamic case work again.
10820         
10821 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
10822
10823         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
10824         (both static and runtime) and reduce startup time.
10825
10826 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
10827
10828         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
10829         AsAny marshalling conversion instead of crashing.
10830
10831         * marshal.c: Fix warnings.
10832
10833 2004-02-09  Martin Baulig  <martin@ximian.com>
10834
10835         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
10836
10837         * reflection.h (MonoReflectionInflatedMethod): Removed the
10838         `declaring' field, it's now in the unmanaged MonoGenericMethod.
10839
10840         * reflection.c (method_encode_methodspec): Removed the `method'
10841         argument; we get it from `gmethod->declaring'.
10842         (inflated_method_get_object): Removed the `declaring' argument.
10843
10844 2004-02-09  Martin Baulig  <martin@ximian.com>
10845
10846         * class.h (MonoGenericMethod): New type.
10847         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
10848         `generic_method'.
10849
10850         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
10851         a `MonoGenericMethod *gen_method' one.
10852
10853         * class.c (mono_class_inflate_generic_type): Take an additional
10854         `MonoGenericMethod * argument.  This is only non-NULL if we're
10855         inflating types for a generic method.   
10856         (mono_class_inflate_generic_signature): Renamed to
10857         inflate_generic_signature() and made static; take a
10858         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10859         (inflate_generic_header): Take a `MonoGenericMethod *' argument
10860         instead of a `MonoGenericInst *' one.
10861         (mono_class_inflate_generic_method): Likewise.
10862
10863         * reflection.c (encode_generic_method_sig): Take a
10864         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
10865         (method_encode_methodspec): Likewise.
10866         (inflated_method_get_object): Likewise. 
10867
10868         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
10869         field with a `MonoGenericMethod *gmethod' one.  
10870
10871 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
10872
10873         * class.h (mono_class_has_parent): add parens to expansion
10874         so you can ! this.
10875
10876 2004-02-08  Martin Baulig  <martin@ximian.com>
10877
10878         * image.h (MonoImage): Removed `generics_cache'.
10879
10880         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
10881         instead of a `MonoType *' argument; removed the `inflate_methods'
10882         argument.  Don't inflate methods here.
10883
10884         * loader.c (find_method): If it's a generic instance, call
10885         mono_class_init() on the `sclass->generic_inst->generic_type'.
10886
10887         * metadata.c (mono_type_size): Make this work on uninitialized
10888         generic instances; call it on the `ginst->generic_type's class.
10889
10890         * reflection.c (mono_reflection_bind_generic_parameters): Call
10891         mono_class_from_generic() to create the `ginst->klass'.
10892
10893 2004-02-08  Martin Baulig  <martin@ximian.com>
10894
10895         * class.h (MonoClass): Changed type of `generic_inst' from
10896         `MonoType *' to `MonoGenericInst *'.
10897
10898 2004-02-08  Martin Baulig  <martin@ximian.com>
10899
10900         * icall.c (ves_icall_Type_BindGenericParameters): Just call
10901         mono_type_get_object(), this is now creating a `MonoGenericInst'
10902         for MONO_TYPE_GENERICINST.
10903         (ves_icall_MonoGenericInst_GetParentType): Likewise.
10904         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
10905
10906         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
10907         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
10908         (inflated_method_get_object): Added `MonoClass *refclass' argument.
10909         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
10910         and reflected type.
10911
10912         * reflection.h (MonoReflectionInflatedMethod): Removed
10913         `declaring_type' and `reflected_type'.
10914
10915 2004-02-08  Martin Baulig  <martin@ximian.com>
10916
10917         * class.h (MonoGenericInst): Added `MonoType *parent' and
10918         `MonoType **ifaces'.
10919
10920         * reflection.h (MonoReflectionGenericInst): Removed `klass',
10921         `parent' and `interfaces'.
10922
10923         * reflection.c (mono_reflection_bind_generic_parameters): Take a
10924         `MonoType *' argument and return a `MonoType *'.
10925
10926         * icall.c
10927         (ves_icall_MonoGenericInst_GetParentType): New interncall.
10928         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
10929
10930 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10931
10932         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
10933         valuetype marshalling.
10934
10935 2004-02-06  Martin Baulig  <martin@ximian.com>
10936
10937         * class.c
10938         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
10939         (my_mono_class_from_generic_parameter): Likewise.
10940
10941 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
10942
10943         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
10944         contents of the symbol files lazily.
10945
10946         * object.h (MonoThread): Add 'name' and 'name_len' fields.
10947
10948         * threads.h threads.c icall.c: New icalls for getting and setting the
10949         threads name.
10950
10951 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
10952
10953         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
10954         Raise an exception when the domain is not found.
10955
10956 2004-02-03  Martin Baulig  <martin@ximian.com>
10957
10958         * reflection.c (mono_image_get_methodspec_token): Use the
10959         uninflated signature; fixes gen-33.
10960
10961 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
10962
10963         * gc.c threads.c: Make the finalizer thread a normal managed thread so
10964         the finalizer code can use thread functionality.
10965
10966         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
10967         the finalizer thread.
10968
10969         * threads.c: Make some functions more robust.
10970
10971         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
10972
10973         * metadata.h: Add new marshalling conventions.
10974
10975         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
10976         stringbuilder marshalling. Fixes #53700.
10977
10978         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
10979
10980         * reflection.c (mono_image_get_type_info): Save declarative security
10981         info.
10982
10983         * reflection.c (mono_image_get_field_info): Handle uninitialized 
10984         unmanaged fields as well.
10985
10986         * appdomain.c: Bump corlib version.
10987
10988 2004-02-01  Martin Baulig  <martin@ximian.com>
10989
10990         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
10991         method type arguments.  
10992
10993 2004-01-30  Duncan Mak  <duncan@ximian.com>
10994
10995         * marshal.h: Add prototype for
10996         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
10997         and
10998         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
10999         fix the build.
11000
11001 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
11002
11003         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
11004         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
11005
11006 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11007
11008         * marshal.c (mono_marshal_get_native_wrapper): Add support for
11009         custom marshalling of valuetypes.
11010
11011         * marshal.c: Fix some warnings.
11012
11013 2004-01-29  Martin Baulig  <martin@ximian.com>
11014
11015         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
11016         for generic method parameters.
11017
11018         * reflection.c (method_encode_methodspec): Write the uninflated
11019         signature into the methodspec table.
11020         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
11021         is always the uninflated method.
11022         (reflection_methodbuilder_to_mono_method): Copy the generic
11023         parameters from the MethodBuilder into `header->gen_params'.
11024
11025 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
11026
11027         * class.c (mono_class_from_generic_parameter): Fix warning.
11028
11029 2004-01-27  Martin Baulig  <martin@ximian.com>
11030
11031         * class.c (mono_class_from_generic_parameter): Don't create
11032         `klass->methods' here.  
11033
11034 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
11035
11036         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
11037         extension since it does not work with libraries named lib<FOO>.dll.so.
11038
11039 2004-01-25  Martin Baulig  <martin@ximian.com>
11040
11041         * class.c (mono_class_inflate_generic_type): Added support for
11042         MONO_TYPE_GENERICINST.
11043
11044         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
11045         inflate methods on open constructed types.      
11046
11047 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11048
11049         * object.c: fire ProcessExit event in the root AppDomain after running
11050         Main. Fixes bug #53299.
11051
11052 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
11053
11054         * socket-io.c: include the new socket-wrappers.h header.
11055         Use the wrappers instead of the unix socket functions to make the code
11056         more clear.
11057
11058 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
11059
11060         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
11061
11062         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11063         Fixes #22532.
11064
11065 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
11066
11067         * reflection.c (mono_image_create_pefile): Handle the case when the
11068         entry point is not a MethodBuilder.
11069
11070         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11071         field to ReflectionMethod since it is not allways a builder.
11072
11073         * reflection.c (type_get_fully_qualified_name): New helper function to
11074         return the fully qualified name of a type.
11075
11076         * reflection.c (encode_marshal_blob): Always emit the fully qualified
11077         type name for custom marshallers.
11078
11079         * reflection.c (mono_marshal_spec_from_builder): Ditto.
11080
11081         * class.c (mono_class_setup_vtable): If a parent class already 
11082         implements an interface, use the implementing methods from that class.
11083         Fixes #53148.
11084
11085 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11086
11087         * threadpool.c: just return instead of ExitThread to allow for thread
11088         clean up earlier.
11089
11090 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
11091
11092         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
11093         when closing resource modules.
11094
11095         * reflection.c (mono_image_create_pefile): Handle the case when the
11096         entry point is not a MethodBuilder.
11097
11098         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
11099         field to ReflectionMethod since it is not allways a builder.
11100
11101 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
11102
11103         * marshal.c (mono_marshal_get_managed_wrapper): 
11104         mono_marshal_alloc takes native int so CONV_I
11105         the arg for 64bits.
11106
11107 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
11108
11109         * reflection.c (fixup_cattrs): New function to fixup the methoddef
11110         tokens in the cattr table. Fixes #53108.
11111
11112 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11113
11114         * loader.c: don't trim ".dll" before looking up in the config file.
11115         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
11116
11117 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
11118
11119         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
11120         Return the module which contains the resource as well.
11121         (ves_icall_System_Reflection_Module_Close): New icall.
11122
11123         * appdomain.c: Bump corlib version number.
11124
11125         * image.c (mono_image_addref): New public function.
11126
11127         * assembly.c: Call mono_image_addref.
11128
11129         * reflection.c (mono_module_get_object): Increase reference count of 
11130         the image.
11131
11132         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
11133         Fixes #22532.
11134
11135         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
11136         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
11137         proper exceptions on DllImport problems.
11138
11139 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
11140
11141         * class.c, metadata.c: eliminate CSIZE macro.
11142
11143 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
11144
11145         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
11146         * object.h: Added async_callback field in MonoAsyncResult.
11147         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
11148         * verify.c: Added async_callback in MonoAsyncResult layout.
11149
11150 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
11151
11152         * reflection.c (mono_reflection_get_custom_attrs): Add support
11153         for Modules.
11154
11155 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11156
11157         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
11158         marshalling.
11159         (mono_marshal_method_from_wrapper): Add null pointer check.
11160
11161 2004-01-16  Martin Baulig  <martin@ximian.com>
11162
11163         * debug-mono-symfile.h: Set version number to 36 and reflect
11164         latest symbol writer changes.
11165
11166 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
11167
11168         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
11169         multi-dimensional arrays.
11170         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
11171         (mono_class_from_mono_type): Use bounded_array_class_get.
11172         
11173         * class.c (mono_bounded_array_class_get): New function which takes
11174         a 'bounded' bool argument to distinguish vectors from one dimensional
11175         arrays.
11176
11177         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
11178         bounded_array_class_get if the array has bounds.
11179
11180         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11181         Search modules loaded using AssemblyBuilder:AddModule as well.
11182
11183 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11184
11185         * appdomain.c: increased corlib version.
11186         * filewatcher.c: removed g_print.
11187         * icall.c:
11188         (get_property_info): only allocate what is actually requested.
11189         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
11190
11191 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11192
11193         * Makefile.am: added filewatcher.[ch]
11194         * filewatcher.[ch]: FileSystemWatcher runtime support.
11195         * icall.c: added new FSW icalls.
11196
11197 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
11198
11199         * string-icalls.c: fix stringbuilder regression as suggested by
11200         Iain McCoy <iain@mccoy.id.au>.
11201
11202 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
11203
11204         * process.c (process_read_stringtable_block): Recognize '007f' as
11205         a language neutral stringtable block.
11206
11207 2004-01-12  Patrik Torstensson
11208
11209         * object.h (MonoStringBuilder) : Changed layout to support our
11210         new stringbuilder class.
11211         * marshal.c: Change marshalling to support the new layout of 
11212         string builder.
11213         * appdomain.c: increased version number because new layout of
11214         string builder.
11215
11216 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
11217
11218         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
11219         assembly name as an string instead of an AssemblyName, since it is
11220         easier to extract info from it.
11221
11222         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
11223         the culture subdirectories too. Fixes #52231.
11224
11225 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11226
11227         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
11228         It takes 2 new parameters with an optional name for the method to look
11229         for and case ignoring info.
11230
11231         * threadpool.c: removed unused variable.
11232
11233 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11234
11235         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
11236         It takes 2 new parameters with an optional name for the property to look
11237         for and case ignoring info.
11238         Fixes bug #52753.
11239
11240 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
11241
11242         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
11243         Fix #52451.
11244
11245 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11246
11247         * appdomain.c:
11248         * assembly.c: escape the uri before passing it to g_filename_from_uri.
11249         Fixes bug #52630.
11250
11251 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
11252
11253         * reflection.c: Add support for more than one unmanaged resource.
11254
11255         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
11256         in field->def_value, as done in all other cases.
11257
11258         * reflection.c (mono_reflection_get_custom_attrs): Add support for
11259         TypeBuilders.
11260
11261         * reflection.c (mono_reflection_create_runtime_class): Remove 
11262         errorneous assignment to klass->element_class, since it is already
11263         done in mono_reflection_setup_internal_class.
11264
11265 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11266
11267         * gc.c: added missing LeaveCriticalSection.
11268         * icall.c: indented a couple of lines.
11269         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
11270         if we call EndInvoke inside a callback. Fixes bug #52601.
11271
11272 2004-01-07  Martin Baulig  <martin@ximian.com>
11273
11274         * mono-debug-debugger.h
11275         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
11276
11277 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
11278
11279         * appdomain.c: Use messages in NotImplementedException.
11280
11281         * exception.c (mono_get_exception_not_implemented): Now this takes
11282         a message argument.
11283
11284         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
11285         exception instead of g_asserting an aborting when something is not
11286         implemented.
11287
11288         Add some inline docs.
11289
11290 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
11291
11292         * reflection.h: Update after changes to object layout.
11293
11294         * reflection.c: Implement saving of unmanaged aka win32 resources.
11295
11296         * appdomain.c: Bump version number.
11297
11298         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
11299         Handle missing domains gracefully.
11300
11301 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
11302
11303         * file-io.c : On Windows, there are much more invalid_path_chars.
11304
11305 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
11306
11307         * class.h, object.c: prepare for GetType () speedup.
11308
11309 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
11310
11311         * profiler.c: workaround for --profile null reference exception on
11312           cygwin. Patch by Patrik Torstensson.
11313
11314 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
11315
11316         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
11317         make work for unaligned access.
11318
11319 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
11320
11321         * class.c: small cleanup (class->fields [i] -> field).
11322         * image.c: check address of metadata is valid.
11323
11324 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
11325
11326         * assembly.h assembly.c (mono_assembly_loaded): New public function to
11327         search the list of loaded assemblies.
11328
11329         * reflection.c (mono_reflection_type_from_name): Use 
11330         mono_assembly_loaded instead of mono_image_loaded.
11331
11332         * reflection.c: Fix warnings.
11333
11334 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
11335
11336         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
11337         is dynamic. This is needed since an assembly can contain both dynamic and
11338         non-dynamic images.
11339
11340         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
11341         assembly->dynamic.
11342
11343         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
11344
11345         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
11346         to store modules loaded using AddModule.
11347
11348         * reflection.c (mono_image_fill_file_table): Generalize this so it works
11349         on Modules.
11350
11351         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
11352
11353         * reflection.c (mono_image_fill_export_table_from_module): New function to
11354         fill out the EXPORTEDTYPES table from a module.
11355
11356         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
11357         into a separate function. Also handle loaded non-dynamic modules.
11358
11359         * reflection.c (mono_image_basic_init): Fix memory allocation.
11360
11361         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11362
11363         * assembly.c (mono_assembly_load_references): Make this public.
11364
11365 2003-12-19  Martin Baulig  <martin@ximian.com>
11366
11367         * class.c (mono_class_initialize_generic): Made this static, take
11368         a `MonoGenericInst *' instead of a `MonoClass *'.
11369         (mono_class_from_generic): Call mono_class_initialize_generic()
11370         unless we're already initialized or being called from
11371         do_mono_metadata_parse_generic_inst().
11372
11373         * class.h (MonoGenericInst): Added `initialized' and
11374         `init_pending' flags.
11375
11376         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
11377         `mono_class_init (gklass)' or mono_class_initialize_generic()
11378         here; set `generic_inst->init_pending' while parsing the
11379         `type_argv'.
11380
11381 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
11382
11383         * locales.c: include string.h for memxxx prototypes
11384
11385 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
11386
11387         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
11388         constructor when accessing literal fields.
11389
11390 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
11391
11392         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11393
11394         * reflection.c (assembly_add_resource_manifest): New function to fill
11395         the MANIFESTRESOURCE table.
11396
11397         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
11398
11399         * reflection.h: Update to changes in class layout.
11400
11401         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
11402         Reenable call to mono_runtime_is_shutting_down ().
11403
11404         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
11405         determine if the runtime is shutting down.
11406
11407 2003-12-16  Jackson Harper <jackson@ximian.com>
11408
11409         * icall.c: comment out call to mono_runtime_is_shutting_down to
11410         fix build.
11411         
11412 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
11413
11414         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
11415         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
11416
11417 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
11418
11419         * reflection.c: move definition of swap_with_size
11420         to before its first call
11421
11422 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
11423
11424         * appdomain.c (mono_runtime_is_shutting_down): New public function.
11425
11426         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
11427         icall.
11428
11429         * object.c: Fix warnings.
11430
11431         * icall.c (ves_icall_Type_Get...): Only consider inherited static
11432         members if FlattenHierarchy is set.
11433
11434         * reflection.c (mono_image_add_decl_security): New function to emit
11435         declarative security.
11436
11437         * reflection.h reflection.c: Add support for declarative security.
11438
11439         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11440         
11441 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
11442
11443         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
11444         
11445         * appdomain.c verify.c: Moved corlib version checking into its own
11446         function in appdomain.c since it needs to create vtables etc.
11447
11448 2003-12-13  Patrik Torstensson <p@rxc.se>
11449
11450         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
11451         instead of unwrapped server.
11452
11453 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
11454
11455         * verify.c (check_corlib): Fix field index.
11456
11457 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
11458
11459         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
11460         GetGacPath icall.
11461
11462 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
11463
11464         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
11465         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
11466         cope with sizeof(size_t) != sizeof(guint32).
11467
11468 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11469
11470         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
11471         in case of failure.
11472
11473 2003-12-10  Mark Crichton <crichton@gimp.org>
11474
11475         * icall.c: removed the GetNonZeroBytes.  We now handle this case
11476         in managed code.
11477
11478         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
11479
11480 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
11481
11482         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
11483         marked as deleted.
11484
11485 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
11486
11487         * verify.c (check_corlib): Handle the case when the version field is 
11488         initialized by a static constructor.
11489
11490 2003-12-08  Patrik Torstensson  <p@rxc.se>
11491
11492     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
11493
11494 2003-12-08  Martin Baulig  <martin@ximian.com>
11495
11496         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
11497         a MonoReflectionGenericParameter, also take the parameter index
11498         and name as arguments.
11499         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
11500         (ves_icall_MonoGenericParam_initialize): New interncall.
11501         (ves_icall_Type_make_byref_type): New interncall.
11502
11503         * reflection.h (MonoReflectionGenericParam): Derive from
11504         MonoReflectionType, not just from MonoObject.  Added `refobj' and
11505         `index' fields.
11506
11507         * reflection.c (mono_reflection_define_generic_parameter): Create
11508         and return a new MonoReflectionGenericParam; don't initialize the
11509         constraints here.
11510         (mono_reflection_initialize_generic_parameter): New public method;
11511         initializes the constraints and creates the `param->pklass'.
11512
11513 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
11514
11515         * reflection.h reflection.c: Use the new fields 'num_types', 
11516         'num_fields' and 'num_methods' to track the number of types etc.
11517
11518         * verify.c (check_corlib): Check corlib version number.
11519
11520 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
11521
11522         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
11523         function works on all methods.
11524
11525 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
11526
11527         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
11528         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
11529         the custom_type_info flag of the transparent proxy.
11530         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
11531         objects that supports IRemotingTypeInfo.
11532         * object.h: Added custom_type_info field in transparent proxy.
11533
11534 2003-12-06  Martin Baulig  <martin@ximian.com>
11535
11536         * class.c (mono_class_create_from_generic): Removed.
11537         (mono_class_from_generic): Check `ginst->klass' before doing
11538         anything else.  This is important to fully support "recursive"
11539         generic types.
11540
11541         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
11542         empty `generic_inst->klass' before doing anything else.
11543
11544 2003-12-06  Dick Porter  <dick@ximian.com>
11545
11546         * verify.c: 
11547         * object.h:
11548         * icall.c:
11549         * locales.c: Use C structs to access class fields.  Don't do a
11550         conversion between MonoString and UChar because both are
11551         platform-endian UTF-16.  Compare now takes startindex and count
11552         parameters.  Add a char overload for IndexOf.  Speed up the
11553         invariant string IndexOf.
11554
11555 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
11556
11557         * Makefile.am (monosn_LDADD): Fix parallel build.
11558
11559 2003-12-04  Martin Baulig  <martin@ximian.com>
11560
11561         * icall.c
11562         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
11563         (ves_icall_Type_make_array_type): New interncall.       
11564
11565 2003-12-04  Martin Baulig  <martin@ximian.com>
11566
11567         * locales.c: also change it in the !HAVE_ICU case.
11568
11569 2003-12-04  Dick Porter  <dick@ximian.com>
11570
11571         * icall.c:
11572         * locales.c: construct_compareinfo is now in CompareInfo, not
11573         CultureInfo.
11574
11575 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
11576
11577         * image.c (mono_image_load_file_for_image): Cache loaded images in the
11578         image->files array.
11579
11580         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
11581         table as well.
11582
11583         * assembly.c (mono_assembly_load_references): Only load references
11584         once.
11585
11586         * class.c (mono_class_from_name): Avoid linear search of the 
11587         EXPORTEDTYPE table.
11588
11589         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
11590
11591 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
11592
11593         * image.h (MonoImage): Add 'field_cache' field.
11594
11595         * loader.c (mono_field_from_token): Cache field lookups.
11596         
11597         * reflection.c (mono_module_get_object): Fix name property.
11598
11599         * icall.c (ves_icall_get_enum_info): Update after changes to 
11600         mono_metadata_get_constant_index ().
11601
11602         * icall.c: Get rid of get_type_info icall, use a separate icall for
11603         each type property to avoid needless memory allocations. Fixes #51514.
11604
11605         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
11606         to avoid needless binary searches.
11607
11608         * class.c (class_compute_field_layout): Move the initialization of
11609         field->def_value to mono_class_vtable ().
11610
11611         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
11612         non-corlib types.
11613
11614         * object.c (mono_object_allocate): Make it inline.
11615
11616         * object.c (mono_object_allocate_spec): Make it inline.
11617         
11618 2003-12-02  Dick Porter  <dick@ximian.com>
11619
11620         * locales.c (create_NumberFormat): NumberFormatInfo construction.
11621         Patch by Mohammad DAMT (mdamt@cdl2000.com).
11622
11623 2003-12-01  Dick Porter  <dick@ximian.com>
11624
11625         * threads.c: Fix signature and call in CreateMutex and
11626         CreateEvent.
11627
11628 2003-12-01  Dick Porter  <dick@ximian.com>
11629
11630         * icall.c: 
11631         * locales.c: Implement string compares and searching
11632
11633         * object.h: Add extra Thread field
11634
11635 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
11636
11637         * reflection.c (fixup_method): Add support for MonoCMethod.
11638
11639 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
11640
11641         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
11642
11643         * reflection.c (assembly_name_to_aname): Allow extra characters in
11644         assembly names. Fixes #51468.
11645
11646 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
11647
11648         * exception.c (mono_exception_from_name_domain): New helper function.
11649
11650         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
11651         exception object in the correct domain.
11652
11653         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
11654         formatting + make a copy a the input data.
11655
11656         * loader.c (mono_get_method_from_token): Methods which contain
11657         native code do not have entries in the ImplMap.
11658
11659         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
11660         Thanks to Gonzalo for spotting this.
11661         
11662         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
11663         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
11664
11665         * assembly.h (mono_assembly_load_from): Split the second part of 
11666         assembly loading into a new public function.
11667
11668         * exception.h (mono_get_exception_bad_image_format): New function.
11669
11670 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
11671
11672         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11673         Enumerate all modules inside a dynamic assembly. Fixes #51293.
11674         
11675         * icall.c: Add new icall for creating dynamic methods.
11676
11677         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
11678
11679         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
11680
11681         * reflection.c (mono_reflection_create_dynamic_method): New icall to
11682         create a dynamic method.
11683
11684         * reflection.c (resolve_object): New helper function.
11685
11686         * reflection.c: Generalize ReflectionMethodBuilder and the functions
11687         which manipulate it so they can also work on dynamic methods.
11688
11689         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
11690         creating the MonoReflectionMethodAux structure if it is not needed.
11691         
11692         * reflection.h verify.c: Update after changes to object layout.
11693
11694         * reflection.c (method_builder_encode_signature): Fix compilation on
11695         gcc 2.95.x.
11696
11697 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
11698
11699         * appdomain.h: Added support for context static fields. Added static_data
11700           field to MonoAppContext and renamed thread_static_fields to a more
11701           generic special_static_fields in MonoAppDomain, since it can now contain
11702           context static fields.
11703         * domain.c: Updated hashtable name.
11704         * object.c: Replaced field_is_thread_static() for a more generic
11705           field_is_special_static() which also checks for context static attribute.
11706           In mono_class_vtable(), added support for static context fields.
11707         * threads.c: Changed methods that manage thread static fields to more
11708           generic methods so they can be reused both for thread and context static
11709           data.
11710         * threads.h: Declared some new methods.
11711
11712 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
11713
11714         * reflection.h: Update after changes to the managed types.
11715
11716         * reflection.c (encode_custom_modifiers): New helper function.
11717
11718         * reflection.c (method_encode_signature): Emit custom modifiers.
11719
11720         * reflection.c (field_encode_signature): Emit custom modifiers.
11721
11722 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
11723
11724         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
11725
11726         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
11727         implementation.
11728
11729         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
11730         icall.
11731
11732         * object.c (mono_field_get_value_object): New function.
11733
11734         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
11735         specific.
11736
11737 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
11738
11739         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
11740         return a preallocated out-of-memory exception instance.
11741
11742         * object.c (out_of_memory): Use the new function.
11743
11744         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
11745         flag is before the custom modifiers. Fixes #49802.
11746
11747 2003-11-16  Martin Baulig  <martin@ximian.com>
11748
11749         * class.c (mono_class_is_open_constructed_type): Implemented the
11750         MONO_TYPE_GENERICINST case.
11751
11752 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
11753
11754         * assembly.c (mono_assembly_fill_assembly_name): New function to
11755         fill out the MonoAssemblyName structure.
11756         (mono_assembly_open): Use the new function.
11757
11758         * icall.c (fill_reflection_assembly_name): New helper function.
11759
11760         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
11761         new function.
11762
11763         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
11764
11765 2003-11-15  Martin Baulig  <martin@ximian.com>
11766
11767         * class.c (mono_class_is_open_constructed_type): New public
11768         function; checks whether a type is an open constructed type,
11769         ie. whether it still contains type parameters.
11770         (mono_class_inflate_generic_type): If we're a type parameter and
11771         the inflated type is also a MONO_TYPE_(M)VAR, return the original
11772         type.
11773
11774         * class.h (MonoGenericInst): Added `guint32 is_open'.
11775
11776         * loader.c (method_from_methodspec): Check whether we're an open
11777         or closed constructed type and set `ginst->is_open'.
11778
11779         * reflection.c (mono_reflection_bind_generic_parameters): Check
11780         whether we're an open or closed constructed type and set
11781         `ginst->is_open'.
11782         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
11783         from open constructed types.
11784
11785 2003-11-15  Martin Baulig  <martin@ximian.com>
11786
11787         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11788         a generic instance (instead of a generic type declaration) with
11789         unbound generic parameters, bind them to our actual types.
11790
11791 2003-11-14  Martin Baulig  <martin@ximian.com>
11792
11793         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
11794
11795         * reflection.c (mono_reflection_bind_generic_parameters): If we're
11796         an interface type, populate `res->interfaces' with instantiated
11797         versions of all the interfaces we inherit.
11798
11799 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
11800
11801         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
11802         when MONO_PATH is set but doesn't contain the install dir.
11803
11804 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11805
11806         * icall.c:
11807         (ves_icall_Type_GetInterfaces): don't return an interface twice when
11808         it's also implemented in base classes. Fixes bug #50927.
11809
11810 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
11811
11812         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
11813         if this method is called from a finalizer. Fixes #50913.
11814
11815 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
11816
11817         * threads.c: Implement VolatileRead/VolatileWrite
11818
11819         * icall.c: Add new icalls for VolatileRead/VolatileWrite
11820
11821 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11822
11823         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
11824         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
11825         2.95.3.
11826
11827         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
11828         from Peter Ross (pro@missioncriticalit.com).
11829         
11830 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
11831
11832         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
11833
11834 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11835
11836         * assembly.c (mono_assembly_load_references): Disable check because it
11837         triggers on older corlibs which lots of people have.
11838
11839 2003-11-12  Jackson Harper  <jackson@ximian.com>
11840
11841         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
11842         load corlib.dll if mscorlib.dll is not found.
11843         * assembly.h: Remove corlib name define.
11844         * class.c:
11845         * domain.c:
11846         * image.c: Change corlib name to mscorlib.
11847         
11848 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
11849
11850         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
11851
11852 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
11853
11854         * appdomain.h: Added loader_optimization here to sync with the C#
11855         code, and add disallow_binding_redirects field.
11856
11857 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11858
11859         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
11860
11861         * reflection.c (mono_image_build_metadata): Fix crash on modules
11862         with no types.
11863
11864         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
11865
11866         * icall.c (ves_icall_get_method_info): Return callingConvention as
11867         well.
11868
11869         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
11870         namespaces from the EXPORTEDTYPE table as well.
11871
11872         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
11873         from all modules inside the assembly.
11874         
11875 2003-11-11  Martin Baulig  <martin@ximian.com>
11876
11877         * reflection.c (mono_reflection_bind_generic_parameters): Make
11878         this work for interfaces.
11879
11880 2003-11-11  Martin Baulig  <martin@ximian.com>
11881
11882         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
11883
11884 2003-11-11  Martin Baulig  <martin@ximian.com>
11885
11886         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
11887         "MonoInflatedMethod" and "MonoInflatedCtor".
11888
11889 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
11890
11891         * reflection.c (resolution_scope_from_image): Use the assembly table
11892         from the manifest module, since other modules don't have it.
11893
11894         * debug-helpers.c (mono_type_full_name): New helper function.
11895
11896         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
11897
11898         * image.c (mono_image_load_file_for_image): New public function which
11899         is a replacement for the load_file_for_image in class.c.
11900
11901         * assembly.c (mono_assembly_load_module): A wrapper for the function
11902         above which does assembly association and reference loading too.
11903
11904         * class.c (mono_class_from_name): Call mono_assembly_load_module.
11905
11906 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11907
11908         * appdomain.c: not all of the attributes for the full assembly name
11909         are required and the order doesn't matter. Fixes bug #50787.
11910
11911 2003-11-10  Dick Porter  <dick@ximian.com>
11912
11913         * locales.c: Use platform-endian UTF16
11914
11915 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11916
11917         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11918         
11919 2003-11-10  Martin Baulig  <martin@ximian.com>
11920
11921         * metadata.c
11922         (mono_metadata_load_generic_params): Make this actually work.
11923
11924         * reflection.c (mono_reflection_bind_generic_parameters): If our
11925         parent is a generic instance, pass all the `types' to it, no
11926         matter whether it has the same number of type parameters or not.
11927
11928 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
11929
11930         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
11931
11932         * assembly.c (mono_assembly_load_references): Move the image<->assembly
11933         assignment code to this function so it gets called recursively for all
11934         modules.
11935
11936         * image.c (load_modules): Remove the assembly assignment since it is
11937         now done by mono_assembly_load_references.
11938         
11939         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
11940         Add 'module' argument.
11941         (mono_module_get_types): New helper function.
11942         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
11943
11944 2003-11-08  Martin Baulig  <martin@ximian.com>
11945
11946         * class.c (mono_class_inflate_generic_method): Interface method
11947         don't have a header.
11948
11949         * reflection.c (mono_image_get_methodspec_token): Take an
11950         additional `MonoGenericInst *' argument instead of reading it from
11951         the header; this is necessary to support interfaces.
11952         (mono_image_create_token): Pass the `MonoGenericInst *' from the
11953         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
11954         (inflated_method_get_object): Take an additional `MonoGenericInst *'
11955         argument.
11956
11957         * reflection.h (MonoReflectionInflatedMethod): Added
11958         `MonoGenericInst *ginst'.
11959
11960 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
11961
11962         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
11963
11964 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
11965
11966         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
11967
11968 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
11969
11970         * reflection.c 
11971         (reflection_methodbuilder_from_method_builder):
11972         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
11973         initialize a ReflectionMethodBuilder structure.
11974         (mono_image_get_methodbuilder_token):
11975         (mono_image_get_ctorbuilder_token): New functions to emit memberref
11976         tokens which point to types in another module inside the same assembly.
11977
11978         * reflection.c: Use the new helper functions.
11979         
11980         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
11981
11982         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
11983         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
11984
11985         * reflection.c (resolution_scope_from_image): Emit a moduleref if
11986         neccesary.
11987
11988         * reflection.c (mono_image_build_metadata): Emit metadata only for the
11989         current module. Emit the manifest only for the main module.
11990
11991         * reflection.c (mono_image_create_token): Add assertion when a 
11992         memberref needs to be created.
11993
11994         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
11995
11996         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
11997         larger buffer for the custom attribute blob. Fixes #50637.
11998         
11999 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12000
12001         * threadpool.c: notify listener on async processing handles after
12002         invoking the async callback. Thanks to Zoltan.
12003
12004 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12005
12006         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
12007         avoid code duplication.
12008
12009         * reflection.h (MonoDynamicImage): New type which is currently unused,
12010         but will be used through the ref.emit code in place of 
12011         MonoDynamicAssembly.
12012
12013         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12014         object layout.
12015
12016         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
12017         a MonoDynamicImage instead of just a MonoImage.
12018         
12019         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
12020         icalls to ModuleBuilder but keep their semantics, so they will work
12021         with moduleb->assemblyb. This will change later.
12022         
12023 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12024
12025         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
12026         object layout.
12027
12028         * reflection.c (mono_image_build_metadata): Avoid creation of a default
12029         main module, since it is now done by the managed code.
12030
12031 2003-11-03  Martin Baulig  <martin@ximian.com>
12032
12033         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
12034         `ginst->klass' here.
12035         (method_encode_methodspec): Don't use the `ginst->generic_method's
12036         klass if it's a generic instance, use `ginst->klass' in this case.
12037
12038 2003-11-03  Martin Baulig  <martin@ximian.com>
12039
12040         * reflection.c (mono_image_get_generic_method_param_info):
12041         Removed, use mono_image_get_generic_param_info() instead.
12042         (mono_image_get_type_info): Write the GenericParam table before
12043         the Method table.  This is neccessary because in the GenericParam
12044         table, type parameters of the class (ie. '!0' etc.) must come
12045         before the ones from its generic methods (ie. '!!0' etc).
12046
12047 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
12048
12049         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
12050
12051 2003-11-02  Martin Baulig  <martin@ximian.com>
12052
12053         * reflection.c (create_generic_typespec): Take a
12054         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
12055         the generic parameters from it.
12056
12057 2003-11-02  Martin Baulig  <martin@ximian.com>
12058
12059         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
12060         instead of a `MonoClassField *' since we just need the type.
12061         (create_generic_typespec): New static function.  Creates a
12062         TypeSpec token for a generic type declaration.
12063         (mono_image_get_generic_field_token): New static function.
12064         (mono_image_create_token): If we're a FieldBuilder in a generic
12065         type declaration, call mono_image_get_generic_field_token() to get
12066         the token.
12067
12068 2003-11-02  Martin Baulig  <martin@ximian.com>
12069
12070         * reflection.h
12071         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
12072         `MonoReflectionGenericInst *declaring_type' and
12073         `MonoReflectionGenericInst *reflected_type' fields.
12074
12075         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
12076         `MonoReflectionGenericInst *declaring_type' and a
12077         `MonoReflectionGenericInst *reflected_type' argument instead of a
12078         single `MonoReflectionGenericInst *type' one.  Set
12079         `res->declaring_type' and `res->reflected_type' from them.
12080         (mono_reflection_inflate_field): Likewise.      
12081
12082 2003-11-02  Martin Baulig  <martin@ximian.com>
12083
12084         * class.c (mono_class_setup_vtable): Don't store generic methods
12085         in the vtable.  
12086
12087 2003-11-02  Martin Baulig  <martin@ximian.com>
12088
12089         * reflection.h (MonoReflectionGenericInst): Added
12090         `MonoReflectionType *declaring_type'.
12091
12092         * reflection.c (mono_reflection_bind_generic_parameters): Use
12093         `if (tb->parent)' instead of `klass->parent'.
12094
12095 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
12096
12097         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
12098         with an empty ASSEMBLY table.
12099
12100         * reflection.c (mono_image_build_metadata): Avoid using the same loop
12101         variable in the inner and outer loops.
12102
12103 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
12104
12105         * metadata.h (mono_metadata_make_token): Put parentheses around macro
12106         argument.
12107
12108         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
12109         
12110         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
12111         icalls. Instead, do everything in managed code. This is needed since
12112         it is hard to restore the original domain etc. in unmanaged code in the
12113         presence of undeniable exceptions.
12114
12115         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
12116         New icalls to push and pop appdomain refs.
12117
12118 2003-10-31  Martin Baulig  <martin@ximian.com>
12119
12120         * class.c (inflate_generic_type): Renamed to
12121         mono_class_inflate_generic_type() and made it public.
12122
12123         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
12124         New interncall.
12125
12126         * loader.c (mono_field_from_memberref): Also set the retklass for
12127         typespecs.
12128
12129         * fielder.c (mono_image_get_inflated_field_token): New static
12130         method; creates a metadata token for an inflated field.
12131         (mono_image_create_token, fixup_method): Added support for
12132         "MonoInflatedField".
12133         (fieldbuilder_to_mono_class_field): New static function.
12134         (mono_reflection_inflate_field): New public function.
12135
12136         * reflection.h
12137         (MonoReflectionGenericInst): Added `MonoArray *fields'.
12138         (MonoReflectionInflatedField): New typedef.     
12139
12140 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
12141
12142         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
12143         for Solaris and other platforms without s6_addr16
12144
12145 2003-10-30  Martin Baulig  <martin@ximian.com>
12146
12147         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
12148         argument instead of two.
12149         (mono_class_inflate_generic_signature): Likewise.
12150         (inflate_generic_header): Likewise.
12151         (mono_class_inflate_generic_method): Likewise.  In addition, if
12152         `ginst->klass' is set, it becomes the new `method->klass'.
12153
12154         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
12155         field.
12156
12157         * reflection.c (encode_generic_method_sig): Write a 0xa as the
12158         first byte. [FIXME]
12159         (method_encode_methodspec): If we have generic parameters, create
12160         a MethodSpec instead of a MethodRef.
12161         (fixup_method): Added support for "MonoInflatedMethod" and
12162         "MonoInflatedCtor".
12163         (mono_image_create_token): Added support for "MonoInflatedMethod"
12164         and "MonoInflatedCtor".
12165         (inflated_method_get_object): New static function; returns a
12166         managed "System.Reflection.MonoInflatedMethod" object.
12167         (mono_reflection_bind_generic_method_parameters): Return a
12168         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
12169         (mono_reflection_inflate_method_or_ctor): Likewise.
12170         (mono_image_get_generic_method_param_info): Initialize unused
12171         fields to zero.
12172         (mono_image_get_generic_param_info): Likewise.
12173
12174         * reflection.h (MonoReflectionInflatedMethod): New public
12175         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
12176         "S.R.MonoInflatedCtor" classes.
12177
12178         * loader.c (method_from_memberref): If we're a TypeSpec and it
12179         resolves to a generic instance, inflate the method.
12180
12181 2003-10-28  Dick Porter  <dick@ximian.com>
12182
12183         * object.c (mono_runtime_run_main): Convert command-line arguments
12184         into utf8, falling back to the user's locale encoding to do so.
12185
12186 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
12187
12188         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
12189         at this time.
12190
12191         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
12192
12193         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
12194         up icalls at method definition time. Partially fixes #33569.
12195
12196 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
12197
12198         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
12199         marshalling of arrays. Fixes #50116.
12200
12201         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
12202
12203         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
12204         points to a vtable in the dying appdomain.
12205
12206         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
12207         listeners into unmanaged code inside the lock.
12208
12209         * object.c (mono_class_vtable): Turn off typed allocation in non-root
12210         domains and add some comments.
12211
12212 2003-10-25  Martin Baulig  <martin@ximian.com>
12213
12214         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
12215
12216         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
12217
12218         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
12219         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
12220         currently parsing.  Create the generic class and store it in
12221         `generic_inst->klass' before parsing the type arguments.  This is
12222         required to support "recursive" definitions; see mcs/tests/gen-23.cs
12223         for an example.
12224         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
12225         to support recursive typespec entries.
12226
12227         * class.c (mono_class_setup_parent): If our parent is a generic
12228         instance, we may get called before it has its name set.
12229         (mono_class_from_generic): Splitted into
12230         mono_class_create_from_generic() and mono_class_initialize_generic().
12231
12232 2003-10-25  Martin Baulig  <martin@ximian.com>
12233
12234         * icall.c (ves_icall_Type_BindGenericParameters): Return a
12235         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
12236         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
12237         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
12238
12239         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
12240         (create_typespec): Likewise.
12241         (mono_reflection_bind_generic_parameters): Return a
12242         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
12243         (mono_reflection_inflate_method_or_ctor): New public function.
12244
12245         * reflection.h (MonoReflectionGenericInst): New typedef.        
12246
12247 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
12248
12249         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
12250         inside the domain lock. Fixes #49993.
12251         
12252         * object.c (mono_class_vtable): When typed allocation is used, 
12253         allocate vtables in the GC heap instead of in the mempool, since the
12254         vtables contain GC descriptors which are used by the collector even
12255         after the domain owning the mempool is unloaded.
12256
12257         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
12258
12259         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
12260         reflect what it does. Also invalidate mempools instead of freeing
12261         them if a define is set.
12262
12263         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
12264         of the appdomain.
12265         
12266         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
12267         hold the finalizable objects in this domain.
12268
12269         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
12270         appdomain.
12271
12272         * appdomain.c (mono_domain_set): New function to set the current
12273         appdomain, but only if it is not being unloaded.
12274
12275         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
12276         appdomain which is being unloaded.
12277         
12278         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
12279         unloading of the root appdomain.
12280
12281         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
12282         icall to execute a method in another appdomain. Intended as a 
12283         replacement for InternalSetDomain, which can confuse the code 
12284         generation in the JIT.
12285
12286         * appdomain.c (mono_domain_is_unloading): New function to determine
12287         whenever an appdomain is unloading.
12288
12289         * appdomain.c (mono_domain_unload): New function to correctly unload
12290         an appdomain.
12291
12292         * assembly.c (mono_assembly_load_references): Check that an assembly
12293         does not references itself.
12294
12295         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
12296         domain manually, it asks the finalizer thread to do it, then waits for
12297         the result. Also added a timeout.
12298
12299         * icall.c: Register the new icalls.
12300
12301         * threads.h threads.c: Export the mono_gc_stop_world and 
12302         mono_gc_start_world functions.
12303         
12304         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
12305         function to fill out the mempool with 0x2a.
12306
12307 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
12308
12309         * reflection.h (MonoReflectionMethodAux): New structure to store
12310         information which is rarely used, thus is not in the MonoMethod
12311         structure.
12312
12313         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
12314         store the aux info.
12315
12316         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
12317         and marshalling info into the aux structure.
12318
12319         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
12320         from the aux structure.
12321
12322         * loader.c (mono_method_get_param_names): Retrieve the param names from
12323         the aux structure.
12324         
12325 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
12326
12327         * exception.h exception.c: Add AppDomainUnloadedException && fix 
12328         warning.
12329
12330 2003-10-21  Dick Porter  <dick@ximian.com>
12331
12332         * socket-io.c
12333         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
12334         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
12335
12336 2003-10-21  Martin Baulig  <martin@ximian.com>
12337
12338         * reflection.c (mono_reflection_bind_generic_parameters):
12339         `klass->parent' is NULL for interfaces.
12340
12341 2003-10-21  Martin Baulig  <martin@ximian.com>
12342
12343         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12344
12345 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
12346
12347         * exception.c (mono_exception_from_name_msg): New helper function for
12348         creating exceptions and initializing their message field.
12349
12350         * exception.c: Simplify functions using the new helper.
12351
12352         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
12353         New function.
12354
12355         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
12356         mono_raise_exception, since otherwise gcc doesn't generate the function
12357         epilog for raise_exception, confusing the stack unwinding in the JIT.
12358         Fixes #45043.
12359
12360         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
12361         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
12362         Fixes #49499.
12363
12364 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12365
12366         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
12367         utf8.
12368
12369 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
12370
12371         * icall.c: Removed GetUninitializedObject method because
12372           AllocateUninitializedClassInstance does the same.
12373
12374 2003-10-18  Martin Baulig  <martin@ximian.com>
12375
12376         * class.c (inflate_generic_signature): Renamed to
12377         mono_class_inflate_generic_signature() and made it public.
12378         (my_mono_class_from_generic_parameter): New static function; if we
12379         don't already have the generic parameter's MonoClass, create a
12380         very simple one which is just used internally in the runtime and
12381         not passed back to managed code.
12382
12383         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
12384
12385         * metadata.h (MonoMethodSignature): Moved the
12386         `MonoGenericParam *gen_params' to the MonoMethodHeader.
12387         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
12388
12389         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
12390         ves_icall_MonoMethod_GetGenericArguments(); this is now an
12391         interncall on the MonoMethod class, not on MethodInfo.
12392         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
12393         calling mono_reflection_bind_generic_method_parameters() directly.
12394
12395         * loader.c (mono_method_get_signature): If this is a MethodSpec;
12396         return the already computed `method->signature'.
12397         (method_from_methodspec): New static function to load a method
12398         from a MethodSpec entry.
12399         (mono_get_method_from_token): Call the new method_from_methodspec()
12400         for MethodSpec tokens.  
12401         (mono_get_method_from_token): If we're a generic method, load the
12402         type parameters.
12403
12404         * reflection.c (mono_image_get_memberref_token): Allow
12405         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
12406         table.
12407         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
12408         (mono_image_create_token): First check whether it's a generic
12409         method (so we'd need to create a MethodSpec), then do the other
12410         two alternatives.
12411         (mono_reflection_bind_generic_method_parameters): Return a
12412         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
12413         called directly from the interncall.
12414
12415 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
12416
12417         * reflection.c (load_public_key): Move loading of the public key
12418         into managed code.
12419
12420         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
12421
12422         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
12423         fields.
12424
12425         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
12426         culture, hash_alg and public_key. Fixes #49555.
12427
12428 2003-10-17  Martin Baulig  <martin@ximian.com>
12429
12430         * class.h (MonoGenericInst): Moved this declaration here and added
12431         `MonoMethod *generic_method'.
12432
12433         * icall.c
12434         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
12435         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
12436
12437         * metadata.c (mono_metadata_type_equal): Two types of
12438         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
12439         index; ie. don't compare the address of the `MonoGenericParam'
12440         structure.
12441         (mono_metadata_load_generic_params): Removed the `MonoMethod
12442         *method' argument.
12443
12444         * metadata.h (MonoGenericInst): Moved declaration to class.h.
12445         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
12446
12447         * reflection.c (method_encode_signature): Encode the number of
12448         generic parameters.
12449         (encode_generic_method_sig): New static function.
12450         (method_encode_methodspec): New static function; creates an entry
12451         in the MethodSpec table for a generic method.
12452         (mono_image_get_methodspec_token): New static function.
12453         (mono_image_create_token): Call mono_image_get_methodspec_token()
12454         for generic methods.
12455         (mono_reflection_bind_generic_method_parameters): New public
12456         function.  Instantiates a generic method.
12457
12458 2003-10-16  Martin Baulig  <martin@ximian.com>
12459
12460         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
12461         *gen_params' here from MonoMethodHeader.
12462
12463         * metadata.c (mono_metadata_parse_method_signature): If we have
12464         generic parameters, initialize `method->gen_params' and then set
12465         the correct `type->data.generic_param' in all the parameters.
12466
12467 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
12468
12469         * threads.c (mono_threads_get_default_stacksize): New function to 
12470         return the default stacksize.
12471
12472         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
12473         termination of the finalizer thread, since the previous method had
12474         race conditions. Fixes #49628.
12475
12476         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
12477         as for the other managed threads.
12478
12479 2003-10-16  Martin Baulig  <martin@ximian.com>
12480
12481         * class.c (inflate_generic_signature): Copy `generic_param_count'
12482         and `gen_params'.
12483
12484         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
12485         New interncall.
12486
12487         * metadata.c (mono_metadata_parse_method_signature): Actually set
12488         the `method->generic_param_count' here.
12489         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
12490
12491 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
12492
12493         * object.h: Add a new field to TypedRef to simplify the implementation
12494         of the REFANY opcodes in the JIT.
12495
12496         * icall.c: Make use of the new field.
12497
12498         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
12499         dynamically.
12500
12501 2003-10-15  Martin Baulig  <martin@ximian.com>
12502
12503         * class.c (mono_class_from_gen_param): Renamed to
12504         mono_class_from_generic_parameter() and moved most of the
12505         functionality from mono_reflection_define_generic_parameter()
12506         here; ie. we create a "real" class here.
12507         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
12508         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
12509         previously been called.
12510
12511         * class.h (MonoGenericParam): Moved the declaration of this struct
12512         here from metadata.h and added `MonoMethod *method'.
12513
12514         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
12515         interncall.
12516
12517         * loader.c (mono_get_method_from_token): If we have any generic
12518         parameters, call mono_metadata_load_generic_params() to read them
12519         from the MONO_TABLE_GENERICPAR.
12520
12521         * metadata.c (mono_metadata_load_generic_params): Added
12522         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
12523
12524         * metadata.h (MonoMethodSignature): Replaced
12525         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
12526         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
12527
12528         * reflection.c (mono_reflection_define_generic_parameter): Moved
12529         most of the functionality into the new
12530         mono_class_from_generic_parameter(); set the `method' field if
12531         we're a method parameter.       
12532
12533 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
12534
12535         * marshal.c (emit_struct_conv): if native size is 0
12536         emit no code.
12537
12538 2003-10-14  Martin Baulig  <martin@ximian.com>
12539
12540         * icall.c: The generics API has changed in the spec since it was
12541         added to System.Type; these modifications make it match the spec
12542         again.
12543         (ves_icall_Type_GetGenericParameters): Renamed to
12544         `ves_icall_Type_GetGenericArguments'.
12545         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
12546         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
12547         `ves_icall_MonoType_get_HasGenericArguments'.
12548         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
12549         `ves_icall_MonoType_get_IsGenericParameter'.
12550         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
12551         this is no interncall anymore.
12552         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
12553         `ves_icall_TypeBuilder_get_IsGenericParameter'.
12554
12555 2003-10-14  Martin Baulig  <martin@ximian.com>
12556
12557         * reflection.c (mono_reflection_bind_generic_parameters): Also
12558         inflate generic methods if we're reading the class from IL.
12559
12560 2003-10-13  Martin Baulig  <martin@ximian.com>
12561
12562         * reflection.c (mono_reflection_define_generic_parameter): This
12563         method isn't called directly from the icall anymore; take a
12564         `MonoReflectionAssemblyBuilder *' so we can use this for type and
12565         method generic parameters.
12566         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
12567         (method_builder_encode_signature): Encode generic parameters.
12568         (mono_image_get_method_info): Write generic params to the
12569         MONO_TABLE_GENERICPARAM table.
12570
12571         * reflection.h (MonoReflectionMethodBuilder): Added
12572         `MonoArray *generic_params'.
12573
12574         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
12575
12576         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
12577         wrapper for mono_reflection_define_generic_parameter().
12578         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
12579
12580 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
12581
12582         * marshal.h: Add missing function to fix build.
12583
12584         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
12585         the SetLastError pinvoke attribute.
12586
12587         * marshal.c (mono_marshal_set_last_error): New helper function called
12588         by the generated code.
12589         
12590         * marshal.c (mono_mb_emit_branch): New helper function.
12591
12592         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
12593
12594         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
12595         classes as parameters and return values of delegates. Fixes #29256. 
12596
12597 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
12598
12599         * locales.c: use gint32 in non HAVE_ICU case
12600
12601 2003-10-11  Martin Baulig  <martin@ximian.com>
12602
12603         * mono-debug.c (mono_debug_add_method): Added a workaround for
12604         bug #48591.
12605
12606 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
12607
12608         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
12609         delegates passed to native code must use the STDCALL calling 
12610         convention. Fixes #35987.
12611
12612 2003-10-10  Martin Baulig  <martin@ximian.com>
12613
12614         * class.c (inflate_generic_type): If we're inflating for a generic
12615         type instance (and not for a generic method), return
12616         MONO_TYPE_MVAR unchanged.
12617
12618 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12619
12620         * string-icalls.c: Join ignores null strings in the source array.
12621         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
12622         * threads.c: GetAvailableTheads is slightly more accurate.
12623
12624 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
12625
12626         * threads.h threads.c : add mono_threads_set_default_stacksize
12627         and pass default to CreateThread calls.
12628
12629 2003-10-09  Dick Porter  <dick@ximian.com>
12630
12631         * icall.c:
12632         * locales.h:
12633         * locales.c: Internal calls for constructing CultureInfo and
12634         related objects from libicu (if its available.)
12635
12636 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
12637
12638         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
12639
12640 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12641
12642         * threadpool.c: added an argument to async_invoke_thread that is the
12643         item to process, pass the MonoAsyncResult to the thread start function
12644         when creating a new thread. This way we don't need to acquire any lock
12645         when we're creating a new thread. Readded a semaphore for faster
12646         response times (instead of that Sleep i added).
12647
12648 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
12649
12650         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
12651         get daylight change dates better on Windows, fix handling
12652         of platforms without tm_gmtoff.
12653
12654 2003-10-06  Martin Baulig  <martin@ximian.com>
12655
12656         * class.c (inflate_generic_method): Renamed to
12657         mono_class_inflate_generic_method() and made public.
12658         (mono_class_init): Don't inflate the generic methods here.
12659         (mono_class_from_generic): Added `gboolean inflate_methods'
12660         argument.  Inflate the methods here.
12661
12662         * loader.c (mono_method_get_param_names): Ignore instances of
12663         generic types for the moment.
12664
12665         * reflection.c (fixup_method): Added support for inflated methods.
12666         (mono_image_create_token): Use mono_image_get_methodref_token()
12667         for inflated methods.
12668         (mono_custom_attrs_from_param): Ignore instances of generic types
12669         for the moment.
12670         (mono_reflection_bind_generic_parameters): New public function.
12671         Moved all the functionality from
12672         ves_icall_Type_BindGenericParameters() here and added support for
12673         dynamic types.
12674         (mono_reflection_define_generic_parameter): Initialize
12675         `klass->methods' here.
12676
12677         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
12678         functionality into mono_reflection_define_generic_parameter().
12679         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
12680         TypeBuilder, return that TypeBuilder.
12681
12682 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12683
12684         * appdomain.c: removed mono_delegate_semaphore.
12685
12686         * threadpool.c:
12687         (mono_thread_pool_add): moved hash table creation inside and the thread 
12688         creation outside of the critical region.
12689         (mono_thread_pool_finish): removed obsolete code.
12690         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
12691         continue or exit the thread depending on the queue.
12692
12693 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
12694
12695         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
12696         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
12697         handle more bool marshalling options
12698
12699 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
12700
12701         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
12702         arrays of structs. Also add a more descriptive error message when
12703         a structure member is marshalled as LPArray.
12704
12705 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
12706
12707         * marshal.c (mono_marshal_get_native_wrapper): Add support for
12708         marshalling arrays of complex types. Fixes #29098. Also remove an
12709         usused and incomplete function.
12710
12711 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
12712
12713         * gc.c: report heap_size - free_bytes as total memory allocated
12714         (bug#49362).
12715
12716 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
12717
12718         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
12719         fix timezone handling problems on Windows.
12720         
12721         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
12722         asserts when the year is outside the range handled by ms the functions.
12723
12724         * class.c (setup_interface_offsets): If the class is an interface,
12725         fill out its interface_offsets slot.
12726
12727 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12728
12729         * threadpool.c: mark threadpool threads as background.
12730
12731 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
12732
12733         * decimal.c - define DECINLINE to nothing if not using GCC
12734
12735 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
12736
12737         * assembly.c: More refcount fixes.
12738
12739 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12740
12741         * string-icalls.c: if we're not trimming, return the same string.
12742         When not splitting, don't create a new string.
12743
12744 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12745
12746         * image.c:
12747         (mono_image_open): increment the ref_count inside the critical section.
12748
12749 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
12750
12751         * image.c (mono_image_open): Fix reference counting bug.
12752
12753 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
12754
12755         * marshal.c (mono_marshal_type_size) struct alignment changed for 
12756         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
12757         64bits. Avoid leak in mono_marshal_get_native_wrapper when
12758         mono_lookup_pinvoke_call throws.        
12759
12760 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
12761
12762         * reflection.c (mono_reflection_parse_type): Fix #49114.
12763
12764         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
12765         temporary workaround for cygwin header problem.
12766
12767         * object.c (mono_object_isinst): Synchronize this with the code
12768         generated by the JIT for casts.
12769
12770 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
12771
12772         * reflection.c (encode_type): Fix #38332.
12773
12774 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
12775
12776         * marshal.c (mono_marshal_method_from_wrapper): New function to return
12777         the original method from the wrapper method.
12778
12779 2003-09-25  Martin Baulig  <martin@ximian.com>
12780
12781         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
12782         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
12783         (ves_icall_Type_get_IsGenericInstance): New interncall.
12784
12785 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
12786
12787         * object.c: fix cast warning in big endian code.
12788
12789 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
12790
12791         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
12792         
12793 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12794
12795         * assembly.c: don't call check_env from mono_assembly_load. It's
12796         already done once in mono_assemblies_init and may cause headaches when
12797         multiple threads are loading assemblies.
12798
12799 2003-09-19  Martin Baulig  <martin@ximian.com>
12800
12801         * reflection.c (mono_reflection_define_generic_parameter): Don't
12802         allocate `klass->methods', set `klass->flags' to
12803         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
12804
12805 2003-09-18  Martin Baulig  <martin@ximian.com>
12806
12807         * class.c (mono_class_init): Don't create `class->methods' if it's
12808         already initialized.
12809
12810         * metadata.c (mono_metadata_load_generic_params): Make this
12811         actually work.
12812
12813         * reflection.c (mono_reflection_define_generic_parameter): Set
12814         parent class and interfaces from the constraints.
12815
12816         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
12817         to keep this struct in sync with the declaration in TypeBuilder.cs.
12818
12819 2003-09-17  Martin Baulig  <martin@ximian.com>
12820
12821         * metadata.h (MonoType): Replaced the data's `int type_param'
12822         field with `MonoGenericParam *generic_param'.
12823         (MonoGenericParam): Added `MonoClass *klass'.
12824
12825         * class.c (mono_class_from_gen_param): Removed the
12826         `MonoImage *image' and `int type_num' arguments.
12827
12828         * metadata.c (mono_metadata_parse_generic_param): New static
12829         method; creates a MonoGenericParam which just contains the index.
12830         (do_mono_metadata_parse_type): Call
12831         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
12832         MONO_TYPE_MVAR.
12833
12834         * reflection.c (mono_image_typedef_or_ref): Generic type
12835         parameters may be in the same assembly, but never use a typedef
12836         for them.
12837         (mono_reflection_define_generic_parameter): We're now creating a
12838         "real" class for the type parameter; it's now safe to call
12839         mono_class_from_mono_type() on the class'es type, it'll do the
12840         right thing.
12841
12842 2003-09-16  Martin Baulig  <martin@ximian.com>
12843
12844         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
12845         `symfile->range_entry_size' and `symfile->class_entry_size' here;
12846         the `symfile' data structure must be fully initialized before it
12847         gets added to the table.
12848
12849 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
12850
12851         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
12852
12853         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
12854         class init trampolines.
12855
12856 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
12857
12858         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
12859         to the built-in profiler to turn off time and allocation profiling
12860         respectively.
12861
12862 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
12863
12864         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
12865         g_direct_equal.
12866
12867         * debug-helpers.c (mono_method_full_name): Print the wrapper type
12868         in human readable form.
12869
12870 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
12871
12872         * reflection.c icall.c: Fixed warnings.
12873
12874         * image.c (load_class_names): Use a temporary hash table to hold the
12875         namespaces in order to avoid doing many string comparisons.
12876
12877         * image.h: Fix typo.
12878
12879         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
12880         Pass NULL instead of g_direct_equal to the GHashTable constructor 
12881         since the NULL case is short-circuited inside g_hash_table_lookup, 
12882         leading to better performance.  
12883
12884         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
12885         obtain the first custom attribute for a given index. Depends on the
12886         CustomAttribute table being sorted by the parent field.
12887
12888         * reflection.c (mono_custom_attrs_from_index): Use the new function 
12889         for better performance.
12890
12891 2003-09-07  Martin Baulig  <martin@ximian.com>
12892
12893         * class.c (mono_class_init): If we're a generic instance, inflate
12894         all our methods instead of loading them from the image.
12895         (mono_class_from_generic): Set `class->methods = gklass->methods'.
12896
12897 2003-09-07  Martin Baulig  <martin@ximian.com>
12898
12899         * mono-debug-debugger.c: Added support for constructors.
12900
12901 2003-09-06  Martin Baulig  <martin@ximian.com>
12902
12903         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
12904         New interncall.
12905
12906         * reflection.c (mono_reflection_setup_generic_class): Call
12907         ensure_runtime_vtable() to create the vtable.
12908
12909 2003-09-05  Martin Baulig  <martin@ximian.com>
12910
12911         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
12912         MONO_TYPE_MVAR.
12913
12914 2003-09-04  Martin Baulig  <martin@ximian.com>
12915
12916         * reflection.c (mono_reflection_define_generic_parameter): Generic
12917         parameters start with zero.
12918
12919 2003-09-04  Martin Baulig  <martin@ximian.com>
12920
12921         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
12922
12923         * reflection.h (MonoReflectionGenericParam): New typedef.
12924         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
12925         the generic parameters from the managed TypeBuilder.
12926
12927         * reflection.c (mono_reflection_define_generic_parameter): New function.
12928         (mono_reflection_create_runtime_class): Encode generic parameters.
12929         (mono_reflection_setup_generic_class): New function; this is
12930         called after adding adding all generic params to the TypeBuilder.
12931         (encode_type): Added MONO_TYPE_VAR.
12932
12933 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
12934
12935         * class.h class.c (mono_class_needs_cctor_run): Moved this method
12936         here from the JIT.
12937
12938         * assembly.h assembly.c: Moved the AOT loading code into an assembly
12939         load hook.
12940
12941 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
12942
12943         * reflection.h reflection.c class.h class.c: Delete duplicate 
12944         definition of mono_type_get_name () from reflection.c and export the
12945         one in class.c.
12946
12947         * class.c: Class loading fixes from Bernie Solomon 
12948         (bernard@ugsolutions.com).
12949
12950         * reflection.c: Endianness fixes from Bernie Solomon 
12951         (bernard@ugsolutions.com).
12952         
12953 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
12954
12955         * assembly.h assembly.c: Define a file format version for AOT
12956         libraries.
12957         
12958         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
12959
12960         * appdomain.h (MonoJitInfo): New field to determine whenever the
12961         code is domain neutral.
12962         
12963 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
12964
12965         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
12966
12967 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
12968
12969         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
12970         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
12971         Avoid caching the result since strings must be domain specific. Fixes
12972         #48050.
12973
12974 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
12975
12976         * marshal.c (mono_marshal_init): Make this callable multiple times
12977         since it is hard to find a correct place to call it.
12978
12979         * object.c (mono_runtime_class_init): Execute static constructors in
12980         the correct appdomain.
12981
12982         * image.c (build_guid_table): Handle the case when multiple images have
12983         the same GUID.
12984
12985 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12986
12987         * icall.c: added a couple of icalls for System.Web.
12988
12989 2003-08-28  Martin Baulig  <martin@ximian.com>
12990
12991         * icall.c (ves_icall_Type_BindGenericParameters): Use
12992         `klass->generic_inst' instead of `&klass->byval_arg' in the
12993         mono_type_get_object() call.  The returned type must be
12994         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
12995
12996 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
12997
12998         * NOTES: New file.
12999
13000         * object.c (mono_class_proxy_vtable): Make it thread safe.
13001
13002         * pedump.c: Fix warning.
13003
13004         * object.c appdomain.h: Get rid of metadata_section. 
13005         It is no longer needed and it was causing deadlocks with domain->lock.
13006
13007         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
13008
13009 2003-08-26  Martin Baulig  <martin@ximian.com>
13010
13011         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
13012
13013 2003-08-26  Martin Baulig  <martin@ximian.com>
13014
13015         * pedump.c (main): Call mono_metadata_init(),
13016         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
13017         and mono_loader_init().
13018
13019 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
13020
13021         * loader.h: Add missing include to fix build.
13022
13023         * image.h: mono_image_load_references is no more.
13024
13025         * assembly.c: Reworked assembly loading to make it really thread safe.
13026         After these changes, the assembly returned by mono_assembly_open is
13027         fully initialized, i.e. all its references assemblies are loaded.
13028
13029         * assembly.c (mono_image_load_references): Renamed to 
13030         mono_assembly_load_references, and made private, since clients no
13031         longer need to call it.
13032
13033         * class.c: Removed calls to mono_assembly_load_references, since it was
13034         a source of deadlocks.
13035
13036         * loader.h loader.c class.h class.c: Protect data structures using a 
13037         new lock, the loader lock.
13038
13039         * class.c (mono_class_setup_vtable): Create temporary hash tables and
13040         GPtrArrays only when needed.
13041
13042         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
13043         into empty structures by mcs. Fixes pinvoke7.cs.
13044         
13045         * domain.c (mono_init): Call a new initialization function.
13046
13047         * appdomain.c (mono_runtime_init): Call the new initializer function
13048         of the marshal module.
13049
13050         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
13051         inserted into empty structures by mcs. Fixes pinvoke7.cs.
13052
13053         * marshal.h marshal.c: Added locks around the wrapper caches to make
13054         this module thread safe.
13055
13056         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
13057         this argument. Fixes pinvoke1.exe.
13058
13059 2003-08-25  Lluis Sanchez <lluis@ximian.com>
13060
13061         * object.h: Added call_type field to MonoMethodMessage and the corresponding
13062         enumeration of values. Removed fields to store remote call output values in
13063         MonoAsyncResult. Not needed any more.
13064         * object.c: Initialize call_type and async_result fields in mono_message_init.
13065         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
13066         dispatching the message.
13067         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
13068         async call to finish. To do it use a message with EndInvoke call type.
13069
13070 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
13071
13072         * loader.h loader.c (mono_method_hash_marhal_info): New function which
13073         determines whenever a method has marshalling info.
13074
13075 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13076
13077         * assembly.c: fix the build on windows.
13078
13079 2003-08-22 Lluis Sanchez <lluis@ximian.com>
13080
13081         * object.cs: Fixed bug #47785.
13082
13083 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
13084
13085         * string-icalls.c (StringReplace): If their are no occurances of
13086         the old string found return a reference to the supplied
13087         string. This saves some memory and matches MS behavoir.
13088         
13089 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13090
13091         * socket-io.c: fixed compilation for systems that define AF_INET6
13092         and don't define SOL_IP/SOL_IPV6.
13093
13094 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
13095
13096         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
13097         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
13098
13099         * rawbuffer.c rawbuffer.h: Make this module thread safe.
13100
13101         * domain.c: Make this module thread safe.
13102
13103         * domain.c (mono_init): Call new initialization function.
13104
13105         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
13106         reference types too. Fixes #38812.
13107
13108         * image.c (mono_image_init): Fixed warnings.
13109
13110         * class.c (mono_class_from_typeref): Handle assembly load failure
13111         correctly.
13112
13113         * appdomain.c (add_assemblies_to_domain): Handle the case when
13114         the references of an assembly are not yet loaded.
13115
13116         * metadata.c image.c assembly.c: Moved initialization of global
13117         variables to a separate function called at startup since lazy 
13118         initialization of these variables is not thread safe.
13119         
13120         * image.c assembly.c: Made this module thread safe by adding locks in 
13121         the appropriate places.
13122
13123         * domain.c (mono_init): Call the new initialization functions of the
13124         three modules.
13125
13126 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
13127
13128         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
13129           make a direct call. It is proxy's work to make the call asynchronous.
13130           mono_delegate_end_invoke(): If the targe is a proxy, just collect
13131           the return values.
13132         * object.cs: mono_method_call_message_new(): read AsyncResult and
13133           state object from parameters list, if this info is requested.
13134         * object.h: Added fields to store remote call output values in
13135           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
13136
13137 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13138
13139         * object.h: add needed fields to MonoThread.
13140         * threads.c, threads.h: allow registering a function to cleanup data
13141         allocated per thread by the JIT.
13142
13143 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13144
13145         * loader.h: portability fix by Bernie Solomon
13146         * <bernard@ugsolutions.com>.
13147
13148 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
13149
13150         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
13151         return a MonoArray. This simplifies the code and also ensures that
13152         the cache allways contains an object reference as a value.
13153
13154         * icall.c (ves_icall_get_parameter_info): Simplified using the new
13155         function.
13156
13157 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13158
13159         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
13160         fixes a problem with byte ordering when getting the address family for
13161         a socket.
13162
13163 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
13164
13165         * .cvsignore: Added monosn.
13166
13167         * reflection.h reflection.c loader.c: Added support for parameter
13168         marshalling to dynamically created types. Fixes #47295.
13169
13170 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
13171
13172         * rand.c: remove useless warnings.
13173
13174 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13175
13176         * class.c: implemented ldtoken for methods and fieldrefs.
13177
13178 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13179
13180         * threadpool.c: when mono_async_invoke was called, no one took care of
13181         monitoring the queue. So if the method invoked took some time and we
13182         got new async invoke requests after 500 ms (the thread created waited
13183         that long in WaitForSingleObject), the new async invoke was not called
13184         until the previous one finished.
13185
13186         This is fixed now. Thanks to Totte for helping with it.
13187
13188 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13189
13190         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
13191
13192 2003-08-11  Martin Baulig  <martin@ximian.com>
13193
13194         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
13195
13196 2003-08-06  Martin Baulig  <martin@ximian.com>
13197
13198         * mono-debug-debugger.c: Added support for static fields,
13199         properties and methods.
13200
13201 2003-08-06  Martin Baulig  <martin@ximian.com>
13202
13203         * mono-debug-debugger.c: Don't store the MonoString's vtable to
13204         make this work for applications with multiple application domains.
13205
13206 2003-08-04  Martin Baulig  <martin@ximian.com>
13207
13208         * mono-debug-debugger.c: Completely reworked the type support; the
13209         most important thing is that we're now just using one single
13210         `MonoType' instance per type.
13211
13212 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
13213
13214         * mono-endian.h, mono-endian.c, icall.c: Added icall
13215         ves_icall_System_Double_AssertEndianity to assert double word endianity
13216         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
13217
13218 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13219
13220         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
13221         support, icalls and fixes.
13222
13223 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
13224
13225         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
13226         classes that are a punctuation character in .NET is not the same a
13227         g_unichar_ispunct.
13228
13229 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13230
13231         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
13232
13233 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
13234
13235         * icall.c: Add new MemCopy internalcall.
13236         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
13237         Simplified code; It is not necessary to handle all the cases here,
13238         as the C# code takes care of it.  Only handle the case of the name
13239         resource embedded into the assembly.
13240
13241         Changed signature to return the data pointer and the size of the
13242         data. 
13243
13244 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
13245
13246         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
13247         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
13248
13249 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13250
13251         * socket-io.c: ignore EINTR error in select.
13252
13253 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13254
13255         * class.h, class.c: removed unused subclasses field in MonoClass.
13256
13257 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
13258
13259         * icall.c: improve fix of get_base_definition(). If the parent class
13260           doesn't have the mehod, look at the parent of the parent.
13261         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
13262           to check if a parameter is an in or out parameter
13263           (PARAM_ATTRIBUTE_IN is not set by default).
13264           mono_method_return_message_restore(): Use mono_class_value_size to
13265           get the size of a value type. mono_type_stack_size (parameterType)
13266           does not return the correct value if parameterType is byRef.
13267           mono_load_remote_field(), mono_load_remote_field_new(),
13268           mono_store_remote_field(), mono_store_remote_field_new():
13269           raise exception if the remote call returns an exception.
13270
13271 2003-07-28  Martin Baulig  <martin@ximian.com>
13272
13273         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
13274         method.  This is a wrapper around mono_runtime_invoke() which
13275         boxes the instance object if neccessary.
13276
13277 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13278
13279         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
13280         metadata.h, row-indexes.h, verify.c: first cut of generics support.
13281
13282 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13283
13284         * icall.c: disable mcs bug workaround.
13285
13286 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
13287
13288         * object.c (mono_runtime_class_init): Take the metadata_section
13289         mutex before obtaining the domain mutex.
13290
13291         * appdomain.h: Added definition of metadata_section mutex here. 
13292
13293         * object.c: define metadata_mutex here.
13294
13295 2003-07-24  Ravi Pratap  <ravi@ximian.com>
13296
13297         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
13298         fixed.
13299
13300 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
13301
13302         * reflection.c: Fix bug #46669
13303
13304 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13305
13306         * exception.c:
13307         * exception.h:
13308         * icall.c:
13309         * object.h: fill in the type name for TypeLoadException.
13310
13311 2003-07-23  Ravi Pratap  <ravi@ximian.com>
13312
13313         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
13314         relationship between TypeBuilders while compiling corlib) and bug
13315         45993 (Array types returned from the runtime while compiling
13316         corlib were from the loaded corlib).
13317
13318 2003-07-22  Martin Baulig  <martin@ximian.com>
13319
13320         * mono-debug-debugger.c: Reworked the type support a bit more;
13321         distinguish between types and classes.
13322
13323 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
13324
13325         * icall.c: add IsArrayImpl icall.
13326
13327 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
13328
13329         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
13330         initializing real_size only once. Also fix bug #46602.
13331
13332 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
13333
13334         * object.c: Renamed mono_metadata_section to metadata_section.
13335
13336 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
13337
13338         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
13339           empty array if the type is an array. Fixed.
13340           ves_icall_MonoMethod_get_base_definition: if the base method
13341           is abstract, get the MethodInfo from the list of methods of
13342           the class.
13343         * reflection.c: ParameterInfo.PositionImpl should be zero-based
13344           and it was 1-based. Fixed in mono_param_get_objects.
13345
13346 2003-07-20  Martin Baulig  <martin@ximian.com>
13347
13348         * mono-debug.h: Set version number to 31.
13349         (mono_debug_init): Added `MonoDomain *' argument.
13350
13351         * mono-debug-debugger.c: Reworked the type support; explicitly
13352         tell the debugger about builtin types; pass the `klass' address to
13353         the debugger.
13354
13355 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
13356
13357         * image.c: Allow new metadata tables to be loaded without a
13358         warning. Also update the warning message to give the new constant value.
13359                 
13360 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
13361
13362         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
13363         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
13364         array type representation changes.
13365
13366 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13367
13368         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
13369         on Environment.Exit () call.
13370
13371 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
13372
13373         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
13374         requires a matching corlib.
13375
13376 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13377
13378         * Changelog: My editor decided to add a CR to each line. Sorry about that.
13379           Committed again without the CRs.
13380         
13381 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
13382
13383         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
13384           getting it from the "this" socket instance. Did not work
13385           if the socket is a subclass of Socket.
13386           Also fixed bug #35371.
13387
13388 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13389
13390         * metadata.c: fixed size for TypedByRef.
13391         * loader.c: when searching for a method, consider the vararg amrker.
13392         * unicode.c, decimal.c: constify some arrays.
13393
13394 2003-07-15  Dick Porter  <dick@ximian.com>
13395
13396         * socket-io.c: Fixed compilation for gcc < 3.2.
13397
13398         Fixed compilation for machines that don't have AF_INET6 (thanks to
13399         Bernie Solomon <bernard@ugsolutions.com> for that part.)
13400
13401         Fixed compile warnings.
13402         
13403         Fixed formatting and line endings.
13404
13405 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
13406
13407         * socket-io.h:
13408         * socket-io.c: Added IPv6 support.
13409
13410 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
13411
13412         * class.c (mono_class_is_assignable_from): New function to implement
13413         the is_assignable_from logic. Used by mono_object_isinst, 
13414         Type::IsAssignableFrom () and the interpreter.
13415
13416         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
13417         Object, even interfaces.
13418         
13419         * object.c (mono_object_isinst): Implement in terms of 
13420         is_assignable_from.
13421
13422         * icall.c (ves_icall_type_is_assignable_from): New icall.
13423
13424 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
13425
13426         * domain.c (foreach_domain): fix compiler warning.
13427
13428 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
13429
13430         * image.c (load_metadata_ptrs): use g_strndup because strndup is
13431         not available on all plattforms
13432
13433 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
13434
13435         * image.h image.c: Store the metadata version string in MonoImage.
13436         * icall.c: New icall to retrieve the image version.
13437         * reflection.c (create_dynamic_image): Fill in the image version field
13438         * reflection.c (build_compressed_metadata): Use the image version
13439         from the image structure.
13440
13441 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13442
13443         * appdomain.c: modified comment.
13444         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
13445         That will be its last iteration when mono_gc_cleanup is called from
13446         mono_runtime_cleanup and before the domain is unloaded.
13447
13448         Fixes bug #45962.
13449
13450 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
13451
13452         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
13453         attributes.
13454
13455 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13456
13457         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
13458         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
13459         Bernie Solomon <bernard@ugsolutions.com>.
13460
13461 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13462
13463         * object.c, object.h: provide mono_object_new_fast() for faster
13464         allocation in some special cases.
13465
13466 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
13467
13468         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
13469         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
13470
13471 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
13472
13473         * threadpool.c: fix leaks.
13474
13475 2003-07-01  Dick Porter  <dick@ximian.com>
13476
13477         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
13478         using MonoGHashTables.  Fixes threadpool bug posted to list.
13479
13480 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
13481
13482         * image.h, image.c: added support to load an assembly from a byte array.
13483         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
13484         assembly bundle support.
13485
13486 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
13487
13488         * threadpool.c (mono_thread_pool_add): keep a reference to the
13489         AsyncResult to prevent GC
13490
13491 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
13492
13493         * class.c: leak fix.
13494
13495 2003-06-25  Dick Porter  <dick@ximian.com>
13496
13497         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
13498         for the async object, the WaitHandle object will close the handle.
13499         Fixes bug 45321.
13500
13501 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13502
13503         * class.c: in mono_array_class_get (), lookup from the hash with the
13504         same type we insert: this works around a bug in
13505         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
13506         lluis. The real fix will have to wait for after the release.
13507
13508 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
13509
13510         * icall.c: fix memory leak when getting type members.
13511
13512 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13513
13514         * reflection.c: added more pubtoken special cases.
13515
13516 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
13517
13518         * class.c: handle field offset correctly when class size
13519         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
13520
13521 2003-06-20  Martin Baulig  <martin@ximian.com>
13522
13523         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
13524         *image' field.
13525
13526 2003-06-20  Martin Baulig  <martin@ximian.com>
13527
13528         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
13529
13530 2003-06-20  Martin Baulig  <martin@ximian.com>
13531
13532         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
13533         just distinguish between variables in registers and variables at
13534         an offset relative to a register.
13535
13536 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13537
13538         * icall.c: #ifdef out latest changes until mcs is fixed.
13539
13540 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13541
13542         * icall.c: return members in metadata order.
13543
13544 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
13545
13546         * icall.c: avoid infinite loop in GetTimeZoneData.
13547
13548 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
13549
13550         * icall.c: added Marshal.Prelink/All icalls.
13551
13552 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
13553
13554         * object.c, object.h: fix warnings and do some overflow checking
13555         when creating arrays.
13556
13557 2003-06-17  Dick Porter  <dick@ximian.com>
13558
13559         * file-io.h:
13560         * file-io.c: File attributes need to be tweaked slightly when
13561         passed from the managed to the w32 world.
13562
13563 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13564         * profiler.h profiler-private.h profiler.c: Rework last patch
13565         based on suggestion by Paolo.
13566         
13567 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
13568
13569         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
13570         instruction level coverage data collection.
13571         * profiler.h profiler.c (: Added new callback function which can be
13572         used by the profiler to limit which functions should have coverage
13573         instrumentation.
13574         * profiler.c (mono_profiler_load): Call g_module_build_path to
13575         generate the file name of the profiler library.
13576
13577 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
13578
13579         * profiler.c, profiler.h, profiler-private.h: added basic block 
13580         coverage profiling API.
13581
13582 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
13583
13584         * reflection.c (mono_reflection_create_runtime_class): Add support
13585         for events in dynamically generated code.
13586
13587         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
13588         not allocated.
13589
13590 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
13591
13592         * icall.c: when getting timezone info, return reasonable values if we
13593         can't get the actual data.
13594
13595 2003-06-14  Dick Porter  <dick@ximian.com>
13596
13597         * threads.c (start_wrapper): Remove the reference to the thread
13598         object in the TLS data, so the thread object can be finalized.
13599         This won't be reached if the thread threw an uncaught exception,
13600         so those thread handles will stay referenced :-( (This is due to
13601         missing support for scanning thread-specific data in the Boehm GC
13602         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
13603
13604 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
13605
13606         * reflection.c: ensure streams and tables are first allocated with
13607         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
13608
13609 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
13610
13611         * icall.c: fixed GetElementType for byrefs (bug# 44792).
13612
13613 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
13614
13615         * reflection.c (mono_reflection_create_runtime_class): Add support for
13616         properties to dynamically created classes.
13617         * reflection.c: Fix a few places where non-MonoObjects were inserted
13618         into the tokens hashtable.
13619
13620 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13621
13622         * object.c: some support to handle out of memory exceptions.
13623
13624 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
13625
13626         * marshal.c (mono_marshal_get_native_wrapper): support reference
13627         return types
13628
13629 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13630
13631         * object.h, object.c: more portability stuff from Bernie Solomon.
13632         Unexport mono_object_allocate(). Added mono_object_unbox ().
13633         Set exitcode when an unhandled exception is thrown.
13634
13635 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
13636
13637         * marshal.c (mono_marshal_get_native_wrapper): use custom
13638         marshaler for return types.
13639
13640 2003-06-10  Dick Porter  <dick@ximian.com>
13641
13642         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
13643         ip_mreq is available
13644
13645 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
13646
13647         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
13648         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
13649         by Bernie Solomon <bernard@ugsolutions.com>.
13650
13651 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
13652
13653         * gc.c (mono_gc_init): Avoid error message on shutdown when
13654         GC_DONT_GC=1 is used.
13655
13656         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
13657         New icall to return the GUID of a module.
13658
13659 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
13660
13661         * class.c: ensure instance size always includes the parent's size
13662         even whem class size is set explicitly (fixes bug#44294).
13663
13664 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13665
13666         * profiler.h, profiler.c: made the simple profiler thread-safe,
13667         get more accurate timing info. Allow the loading of an
13668         externally-developed profiler module.
13669
13670 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
13671
13672         * marshal.c (mono_marshal_get_native_wrapper): improved
13673         class/byref arguments.
13674         (mono_marshal_get_native_wrapper): better string marshaling support.
13675
13676 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
13677
13678         * class.c: ensure .pack and .size are handled correctly and
13679         simplified layout of static fields.
13680
13681 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
13682
13683         * appdomain.c
13684         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
13685
13686         * loader.c (mono_lookup_pinvoke_call): look for modules in the
13687         current directory (fix bug 44008)
13688
13689 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
13690
13691         * marshal.c (mono_marshal_get_native_wrapper): started support for
13692         custom marshalers.
13693         (mono_delegate_to_ftnptr): consider marshalling specifications
13694
13695 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
13696
13697         * reflection.c, reflection.h: emit custom marshal info.
13698
13699 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13700
13701         * object.c: free the GError.
13702         * icall.c: added CloseEvent_internal.
13703         * threads.[ch]:
13704         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
13705         call.
13706
13707 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
13708
13709         * loader.c (mono_method_get_signature): Add support for dynamic
13710         assemblies.
13711
13712 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
13713
13714         * reflection.c: fixed bug #43905.
13715
13716 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
13717
13718         * class.c, domain.c, icall.c, metadata.h, object.h: support for
13719         handling TypedReference and ArgIterator.
13720         * loader.c, loader.h: added function to get signature at call site.
13721
13722 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
13723
13724         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
13725         data readonly. Buglets and warning fixes. Some MethodSpec support.
13726
13727 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
13728
13729         * class.h, class.c, object.c: remove relative numbering support.
13730
13731 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
13732
13733         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
13734         free the string, until we get a chance to fix Gtk#
13735
13736 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13737
13738         * marshal.c: revert last patch.
13739
13740 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
13741
13742         * icall.c: updates for new mono_class_vtable() not calling
13743         the type constructor anymore.
13744
13745 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
13746
13747         * object.h, object.c: separate vtable creation from type
13748         initialization. Make running the .cctor thread safe.
13749
13750 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
13751
13752         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
13753
13754 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
13755
13756         * loader.c (mono_get_method): consider calling convention
13757
13758 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
13759
13760         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
13761         to return the invisible global type for a module.
13762
13763         * reflection.c (mono_image_build_metadata): Emit global fields too.
13764
13765 2003-05-20  Peter Williams  <peterw@ximian.com>
13766
13767         * loader.c (mono_lookup_internal_call): Add a few newlines.
13768
13769 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
13770
13771         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
13772         literal strings.
13773
13774         * appdomain.c (set_domain_search_path): Recalculate search path when
13775         AppDomainSetup.PrivateBinPath changes.
13776
13777         * object.c (mono_class_compute_gc_descriptor): It turns out some
13778         parts of the class libs (like System.Thread) holds pointers to
13779         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
13780         to treat native int a pointer type here.
13781         
13782 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
13783
13784         * appdomain.h, domain.c: add hashtable for jump target resolution.
13785
13786 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
13787
13788         * reflection.h reflection.c icall.c: Added new icalls 
13789         GetManifestResourceInfoInternal, GetModulesInternal and support
13790         infrastructure.
13791
13792 2003-05-16  Dick Porter  <dick@ximian.com>
13793
13794         * icall.c:
13795         * file-io.h:
13796         * file-io.c: Implement System.IO.MonoIO::GetTempPath
13797
13798 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
13799
13800         * object.c: mono_store_remote_field: little fix to previous patch.
13801
13802 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
13803
13804         * class.c: add constructors to array classes.
13805         * icall.c: special case array construction for InternalInvoke (),
13806
13807 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
13808
13809         * class.h class.c reflection.c object.c: Added support for field
13810         defaults in dynamically generated classes.
13811
13812 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
13813
13814         * reflection.c: properly encode charset for ddlimport.
13815
13816 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
13817
13818         * threads.c: allow compiling without GC.
13819
13820 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
13821
13822         * appdomain.h, object.c, object.h, threads.c, threads.h: added
13823         handling of thread static data.
13824
13825 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
13826
13827         * reflection.h, reflection.c: added mono_custom_attrs_free ().
13828
13829 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
13830
13831         * class.c (mono_array_class_get): always set the serializable flags
13832         (mono_array_class_get): always set the SEALED attribute for array types
13833
13834 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
13835
13836         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
13837         attributes (fix for bug 42021).
13838
13839 2003-05-12  Dick Porter  <dick@ximian.com>
13840
13841         * gc.c: Don't run finalizers when the finalizer thread is
13842         finishing up, because the default domain has already been
13843         destroyed.
13844
13845 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
13846
13847         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
13848         value is null, we should throw an exception.   This is slightly
13849         different than the other conventions used for the constructor.
13850
13851 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13852
13853         * socket-io.c: fixed windows build.
13854
13855 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13856
13857         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
13858
13859 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
13860
13861         * object.c (mono_string_new_wrapper): Compatibility fix for MS
13862         compilers.
13863
13864 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
13865
13866         * class.c (mono_class_layout_fields): Add experimental GC aware
13867         auto layout facility. Requires class library changes to work correctly.
13868
13869         (mono_class_setup_vtable): Avoid overriding explicit interface
13870         method implementations. Fixes iface3.exe test.
13871
13872         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
13873         object reference.
13874         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
13875         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
13876
13877         * metadata.h: Add new type classification macro which determines
13878         whenever the type holds an object reference.
13879
13880 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
13881
13882         * marshal.c (mono_marshal_get_native_wrapper): cleanups
13883
13884 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
13885
13886         * gc.c (finalizer_thread): Work around a GC bug.
13887
13888 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
13889
13890         * marshal.c (emit_struct_conv): allow unions
13891
13892         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
13893
13894 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
13895
13896         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
13897
13898 2003-05-06  Martin Baulig  <martin@ximian.com>
13899
13900         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
13901
13902 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13903
13904         * socket-io.c:
13905         (Select_internal): allow NULLs, don't create arrays if not needed.
13906         Coupled with Socket.cs changes.
13907
13908         * threadpool.c:
13909         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
13910         register a finalizer for it that will close the semaphore handle. This
13911         fixes the leak and make Lupus' test run with > 4080 loops.
13912
13913 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
13914
13915         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
13916         Jerome Laban (bug #42287)
13917
13918 2003-05-02  Martin Baulig  <martin@ximian.com>
13919
13920         * debug-mono-symfile.h
13921         (MonoSymbolFile): Moved declaration into mono-debug.h.
13922         (MonoDebugMethodJitInfo): Likewise.
13923         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
13924         argument.
13925         (_mono_debug_address_from_il_offset): Take a
13926         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
13927
13928         * mono-debug.h
13929         (MonoDebugDomainData): New struct.
13930         (mono_debug_get_domain_data): New function.
13931         (mono_debug_add_method): Take an additional `MonoDomain *'
13932         argument.
13933         (mono_debug_source_location_from_address): Likewise.
13934         (mono_debug_il_offset_from_address): Likewise.
13935         (mono_debug_address_from_il_offset): Likewise.
13936
13937 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
13938
13939         * reflection.c: one more check for null type in custom attrs.
13940
13941 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13942
13943         * reflection.c: avoid warning (comparison is always false due to limited
13944         range of data type).
13945
13946 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13947
13948         * icall.c: throw an exception in Type.GetField if the argument 'name'
13949         is NULL.
13950
13951 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
13952
13953         * reflection.c: fixed handling of enums in named arguments to custom
13954         attributes (bug #42123).
13955
13956 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
13957
13958         * reflection.c: use the right array element type and handle
13959         a null for a Type argument, too.
13960
13961 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
13962
13963         * reflection.c: handle arrays as arguments to custom attributes.
13964
13965 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
13966
13967         * reflection.c: handle a string value in a custom attr
13968         ctor that takes an object.
13969
13970 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
13971
13972         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
13973         (fix bug #42063)
13974
13975 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
13976
13977         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
13978
13979 2003-04-27  Martin Baulig  <martin@ximian.com>
13980
13981         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
13982         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
13983         MONO_DEBUGGER_EVENT_BREAKPOINT.
13984         (mono_breakpoint_trampoline_code): Removed.
13985         (mono_debugger_event_handler): The last argument is now a
13986         `guint32'.
13987         (mono_debugger_insert_breakpoint_full): Removed the
13988         `use_trampoline' argument.
13989         (mono_debugger_method_has_breakpoint): Likewise.
13990         (mono_debugger_trampoline_breakpoint_callback): Renamed to
13991         mono_debugger_breakpoint_callback(); take the method and
13992         breakpoint number as arguments.
13993
13994 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
13995
13996         * metadata.c: fix off by one when loading parameters attributes.
13997
13998 2003-04-24  Martin Baulig  <martin@ximian.com>
13999
14000         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
14001
14002 2003-04-24  Martin Baulig  <martin@ximian.com>
14003
14004         * mono-debug-debugger.c: Moved all code which interacts with the
14005         Mono Debugger here.
14006
14007         * debug-mono-symfile.c: This code now just deals with the symbol
14008         file itself, the debugger code is now in mono-debug-debugger.c.
14009
14010 2003-04-23  Martin Baulig  <martin@ximian.com>
14011
14012         * mono-debug.c (mono_debug_source_location_from_il_offset):
14013         New method; like mono_debug_source_location_from_address(), but
14014         takes an IL offset instead of a machine address.
14015
14016 2003-04-23  Martin Baulig  <martin@ximian.com>
14017
14018         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
14019         `line' field; this is now computed by the debugger.
14020
14021 2003-04-23  Martin Baulig  <martin@ximian.com>
14022
14023         * mono-debug.[ch]: New files.  This is the new debugging interface.
14024
14025         * mono-debug-debugger.[ch]: New files.  Moved all code which
14026         interacts with the Mono Debugger here.
14027
14028 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
14029
14030         * domain.c (mono_init): initialize mono_defaults.monitor_class
14031
14032 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
14033
14034         * reflection.c (method_encode_code): Add a spicy exception to help
14035         future compiler authors.
14036
14037 2003-04-21  Martin Baulig  <martin@ximian.com>
14038
14039         * icall.c
14040         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14041         Make this work with relative pathnames; g_filename_to_uri() needs
14042         an absolute filename.
14043
14044 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
14045
14046         * icall.c: Track name changes in Object and ValueType.
14047
14048 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
14049
14050         * metadata.c (mono_type_stack_size): size should be a multiple of
14051         sizeof (gpointer)
14052
14053 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14054
14055         * gc.c:
14056         (internal_domain_finalize): moved into mono_domain_finalize. No need
14057         to create another thread because the finalizers will be run in the
14058         finalizer thread.
14059         
14060         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
14061         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
14062         to be run (MS does this too).
14063
14064 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
14065
14066         * object.c (mono_class_compute_gc_descriptor): Update comment.
14067
14068         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
14069
14070         * image.h: Add synchronized wrapper cache.
14071
14072         * image.c (do_mono_image_open): Initialize cache.
14073
14074         * reflection.c (create_dynamic_mono_image): Initialize cache.
14075
14076 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14077
14078         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
14079         ves_icall_System_Buffer_ByteLengthInternal.
14080
14081 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
14082
14083         * reflection.c: setup klass->nested_in earlier. Allow
14084         a dash in the assembly name.
14085
14086 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
14087
14088         * metadata.c (mono_type_to_unmanaged): dont access
14089         type->data.klass for MONO_TYPE_OBJECT
14090         (mono_type_to_unmanaged): consider System.Delegate class
14091
14092 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
14093
14094         * class.c: just setup supertypes in the proper place instead of
14095         initializing the full element class for arrays.
14096
14097 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
14098
14099         * class.c: ensure the element class of arrays is initialized.
14100         Setup the supertype info for array classes, too.
14101
14102 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
14103
14104         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
14105
14106 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14107
14108         * Makefile.am: re-added -m option when running cygpath. This way,
14109         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
14110         separator.
14111         * mono-config.c: same codepath for locating mono config file for WIN32
14112         and the rest.
14113         * assembly.c: if mono_assembly_setrootdir is called, don't override
14114         the value set.
14115
14116 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14117
14118         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
14119         MONO_ASSEMBLIES variable.
14120
14121 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
14122
14123         * icall.c: added Assembly::GetNamespaces() icall.
14124
14125 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14126
14127         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
14128
14129 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
14130
14131         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
14132         * object.c: fixed bug in the construction of vtable for proxies
14133
14134 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
14135
14136         * object.c (mono_array_new): Mark mono_array_new as an icall.
14137
14138 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14139
14140         * class.c: fixed test for public method when overriding interfaces.
14141         Closes bug #40970.
14142
14143 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
14144
14145         * appdomain.h, domain.c: added mono_domain_foreach() to
14146         be able to access the currently loaded appdomains.
14147         * object.c: make string interning work across sppdomains.
14148         Mark some functions for use as icalls.
14149
14150 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
14151
14152         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
14153
14154         * reflection.h reflection.c: Allocate long living data using 
14155         GC_MALLOC_ATOMIC so the collector does not need to scan it.
14156
14157         * reflection.c: Double the allocation size in streams instead of
14158         increasing it, to prevent unneccesary copying on large assemblies.
14159         
14160         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
14161         creation if the assembly does not have the Run flag set.
14162
14163 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
14164
14165         * class.h: avoid the C++ keywords in header files (Jerome Laban
14166         spotted and fixed this).
14167
14168 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14169
14170         * object.c:
14171         (mono_unhandled_exception): fill in the arguments for the
14172         UnhandledException event. Only trigger that event for the default
14173         domain (as MS does).
14174
14175 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
14176
14177         * object.c: Improve typed allocation stuff based on suggestions from
14178         Paolo. Also turn it on if the GC library supports it.
14179
14180 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14181
14182         * object.c object.h class.h: Added experimental typed allocation
14183         facility using the interfaces in gc_gcj.h.
14184
14185         * os/gc_wrapper.h: Added new include files.
14186         
14187 2003-04-03  Martin Baulig  <martin@ximian.com>
14188
14189         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
14190         which is not yet enabled by default.
14191
14192         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
14193         functions.
14194         (mono_gc_lock, mono_gc_unlock): New static functions.
14195
14196         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
14197         functions; stop/start the world for the garbage collector.  This
14198         is using the windows API; we need to complete the SuspendThread()/
14199         ResumeThread() implementation in the io-layer to make this work on Unix.
14200         (mono_gc_push_all_stacks): New public function; tells the garbage
14201         collector about the stack pointers from all managed threads.
14202
14203 2003-04-03  Martin Baulig  <martin@ximian.com>
14204
14205         * object.h (MonoThread): Added `gpointer stack_ptr'.
14206
14207         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
14208
14209 2003-04-03  Martin Baulig  <martin@ximian.com>
14210
14211         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
14212
14213 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
14214
14215         * reflection.c (typebuilder_setup_fields): Initialize field.first and
14216         field.last.
14217
14218 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
14219
14220         * loader.c (mono_lookup_internal_call): Report the corlib that is
14221         out of sync.
14222
14223 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
14224
14225         * icall.c (ves_icall_type_GetTypeCode): fixed check for
14226         System.DBNull (it's class not valuetype).
14227
14228 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
14229
14230         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
14231         if the array method was already assigned a token (fixes bug#40646).
14232
14233 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
14234
14235         * reflection.c (mono_reflection_get_type): Attempt type resolve even
14236         if no assembly is given.
14237
14238 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
14239
14240         * metadata.h: Added the new tables.
14241
14242         * row-indexes.h: Added definitions for new tables.
14243
14244         * metadata.c: Add schemas for new tables, and add support for
14245         computing the sizes of them.
14246
14247         * class.c: Update for handling the new type cases.
14248
14249 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
14250
14251         * metadata.h (MONO_TYPE_IS_VOID): new macro
14252
14253 2003-03-31  Martin Baulig  <martin@ximian.com>
14254
14255         * threads.h (MonoThreadCallbacks): Added `thread_created'.
14256
14257         * threads.c (mono_thread_new_init): Call `thread_created' in the
14258         mono_thread_callbacks.
14259
14260 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
14261
14262         * loader.h: added marshalbyrefobject_class to mono_defaults
14263         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
14264         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
14265           generation of output parameters.
14266           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
14267         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
14268           contextbound and the target object belongs to the context of the caller.
14269         * object.h: added context and unwrapped_server variables in MonoRealProxy.
14270         * object.c: Implemented support for interfaces and abstract classes
14271           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
14272           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
14273
14274 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
14275
14276         * class.h class.c (mono_class_is_subclass_of): New function.
14277         
14278         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
14279         routines for most common case (calls from ArrayList::ToArray).
14280
14281         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
14282         routine so programs which call Environment::Exit() can be profiled.
14283
14284         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
14285         Added MONO_ARCH_SAVE_REGS.
14286
14287         * icall.c (ves_icall_type_is_subtype_of): Use new function.
14288
14289 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
14290
14291         * blob.h: Add a couple of new MonoType types definitions.
14292
14293         * tabledefs.h: Add a couple of new call convs.
14294
14295 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
14296
14297         * reflection.h (MonoReflectionDynamicAssembly): track changes in
14298         the layout of the class.
14299
14300         * reflection.c (alloc_table): double the size on overflow to avoid
14301         unnecessary copying.
14302
14303         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
14304         avoid filling out metadata tables and blobs. Also set mb->ilgen to
14305         null so it can be garbage collected.
14306         
14307 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
14308
14309         * reflection.c (mono_reflection_get_type): Return the resolved type
14310         only if it is in the assembly we searched.
14311
14312         * reflection.c (ensure_runtime_vtable): Initialize method slots.
14313
14314         * class.c (mono_class_setup_vtable): Set the slot of the overriding
14315         method.
14316
14317 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14318
14319         * appdomain.c:
14320         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
14321         the right one is 'file:///blah', but MS allows it.
14322         * assembly.c:
14323         (mono_assembly_open): allow 'file://blah'
14324
14325         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
14326
14327 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
14328
14329         * socket-io.c: fixes bug #40310.
14330
14331 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
14332
14333         * reflection.c (mono_reflection_parse_type): handle deeply nested
14334         types correctly.
14335
14336         * reflection.c (mono_image_create_token): Use unique token values
14337         since they will be put into a hash table.
14338
14339         * class.c (mono_class_setup_vtable): If a method occurs in more than
14340         one place in the vtable, and it gets overriden, then change the
14341         other occurances too.
14342
14343         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
14344         object as return type.
14345
14346 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14347
14348         * icall.c: Deleted "ToString" implementation for double and float
14349         because they are full implemented in managed code.
14350
14351 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14352
14353         * reflection.c, reflection.h: implemented and exported functions
14354         to retrieve info about custom attributes.
14355
14356 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14357
14358         * appdomain.c: moved Uri handling to assembly.c
14359         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
14360         work when using a file Uri in *nix and windows.
14361
14362         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
14363         GetReferencedAssemblies.
14364
14365 2003-03-18  Dick Porter  <dick@ximian.com>
14366
14367         * icall.c: Rename a couple of internal calls
14368
14369         * threads.c: Set the thread state to Stopped when a thread exits.
14370         Fixes bug 39377.
14371
14372 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
14373
14374         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
14375         New icall.
14376
14377         * object.c (mono_class_vtable): fix warning.
14378
14379 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
14380
14381         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
14382
14383         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
14384         memory.
14385         (method_encode_clauses): Create exception info structures in the right
14386         order.
14387         (mono_reflection_setup_internal_class): Initialize supertypes field.
14388
14389         * class.c object.c: Handle interfaces which implement other interfaces 
14390         correctly.
14391
14392         * class.h class.c: Move the supertypes array initialization code into 
14393         a separate function so it can be used for dynamic types too. Also call
14394         it earlier, in mono_class_init(), since it can be used before the
14395         type is initialized.
14396
14397 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14398
14399         * Makefile.am:
14400         * assembly.c:
14401         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
14402
14403         * appdomain.c:
14404         * appdomain.h:
14405         * marshal.c:
14406         * object.c: remove warnings.
14407
14408 2003-03-13  Martin Baulig  <martin@ximian.com>
14409
14410         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
14411         (MonoDebugLexicalBlockEntry): New types.
14412
14413         * debug-mono-symfile.c
14414         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
14415
14416 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14417
14418         * process.c: ret can be any non-zero value accroding to MS doc.
14419
14420 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
14421
14422         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
14423         fixing a warning for a miss-used prototype, would have cause
14424         random memory corruption.
14425
14426 2003-03-07  Martin Baulig  <martin@ximian.com>
14427
14428         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
14429         getting really annoying ....
14430
14431 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
14432
14433         * reflection.c (fixup_method): added support for array methods.
14434
14435 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
14436
14437         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
14438         (pointed out by Michael Adams).
14439
14440 2003-03-04  Dick Porter  <dick@ximian.com>
14441
14442         * icall.c: Temporarily reverted the Double and Single ToString()
14443         change, because it broke nunit.
14444
14445 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
14446
14447         * object.h, threads.h: make include files compatible with C++
14448         (patch by Jerome Laban <jlaban@wanadoo.fr>).
14449
14450 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14451
14452         * icall.c: Erased ToString helper functions for Double and Single.
14453         Now, that implementations ar all in managed code (Double and Single
14454         Formatters).
14455
14456 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
14457
14458         * appdomain.c: Added method for initializing the default context of
14459         a domain. Added internal call for getting the default context.
14460         * appdomain.h: Added context variable in MonoDomain struct.
14461         * domain.c: mono_domain_set also sets the default context of the domain
14462         * icall.c: Mapped internal method InternalGetDefaultContext.
14463         * object.c: mono_object_get_virtual_method returns always a remoting
14464         wrapper if the object is a transparent proxy.
14465         mono_runtime_invoke_array: when creating an object by calling the
14466         constructor, if the created object is a proxy, then the constructor should
14467         be called using the a remoting wrapper.
14468
14469 2003-03-03  Dick Porter  <dick@ximian.com>
14470
14471         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
14472         variable so it compiles on solaris.  Problem spotted by
14473         Christopher Taylor <ct@cs.clemson.edu>
14474
14475 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14476
14477         * appdomain.c:
14478         (get_info_from_assembly_name): don't leak value.
14479
14480         * icall.c:
14481         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
14482         result.
14483
14484 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
14485
14486         * assembly.c: export mono_image_load_references ().
14487         * class.c: handle function pointers. mono_class_from_name() now
14488         supports nested type names directly.
14489
14490 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
14491
14492         * reflection.h reflection.c: Encode already created dynamic methods 
14493         and fields correctly as a DEF instead of a REF.
14494
14495         * reflection.c: Get rid of the force_ref argument to 
14496         mono_image_typedef_or_ref since it was wrong in the first place.
14497
14498         * string-icalls.c: add error checking to string constructors according
14499         to the MSDN docs.
14500
14501         * reflection.c: Emit types in the order their TypeBuilders were 
14502         created. Previously, a new table index was assigned to each type before
14503         the tables were emitted. This was wrong because the signature blob
14504         might already refer to a type by its original table index.
14505
14506 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
14507
14508         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
14509         change.
14510         
14511 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14512
14513         * Makefile.am: make assemblies dir have \ instead of / on windows.
14514
14515 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
14516
14517         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
14518         iterate over the NESTEDCLASS table using a linear search since the
14519         table is not guaranteed to be sorted by the secondary key.
14520
14521         * class.c (mono_class_create_from_typedef): fixed up call to
14522         mono_metadata_nesting_typedef.
14523         
14524 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
14525
14526         * marshal.c (mono_string_to_byvalstr): clear the memory as
14527         suggested by Jerome Laban <jlaban@wanadoo.fr>
14528
14529 2003-02-26  Dick Porter  <dick@ximian.com>
14530
14531         * process.c: Cope with padding in .rsrc blocks
14532
14533 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14534
14535         * metadata.h: reverted the filter_len change, it breaks reflection
14536         
14537 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
14538
14539         * metadata.h: added a new field to store the filter_len
14540         
14541
14542 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
14543
14544         * reflection.c: handle custom attributes for types and members
14545         created with Reflection.Emit (bug#38422).
14546
14547 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
14548
14549         * reflection.c: define RTSpecialName automatically for constructors for
14550         compatibility with MS.NET.
14551
14552         * reflection.c (mono_reflection_create_runtime_class): initialize
14553         nested_in field of dynamically created classes.
14554
14555 2003-02-22  Martin Baulig  <martin@ximian.com>
14556
14557         * debug-mono-symfile.h: Incremented version number.
14558
14559 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14560
14561         * object.h icall.c process.c: fix warnings.
14562
14563 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
14564
14565         * appdomain.h appdomain.c:
14566         (mono_domain_try_type_resolve): split the 
14567         name_or_tb argument into a name and a tb argument.
14568         (mono_domain_has_type_resolve): new function to check whenever the
14569         application has registered a TypeResolve event handler.
14570         
14571         * icall.c reflection.h reflection.c: move the type resolve logic into
14572         mono_reflection_get_type () so it will be invoked when 
14573         Assembly::GetType () is called.
14574
14575         * reflection.c:
14576         (mono_reflection_get_type): renamed to get_type_internal.
14577         (mono_reflection_get_type): fixed type name generation so it works 
14578         for nested types too.
14579         (mono_reflection_get_type): call has_type_resolve () to avoid the 
14580         costly type name generation if there is no resolve event handler.
14581
14582 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14583
14584         * class.c, image.c: load exported types from file references.
14585
14586 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
14587
14588         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
14589           used to cache the managed methods used to create proxies and make 
14590           remote invocation of methods.
14591         * class.h: Added in MonoVTable a flag to indicate that a class needs 
14592           to be remotely created.
14593         * object.c: Modified the method mono_class_vtable(). It now initializes 
14594           the remote flag of the vtable. Modified mono_object_new_specific(), 
14595           so now it checks the remote flag.
14596         * icall.c: Added a couple of internal methods, one for enabling instance 
14597           creation interception for a type, and one for creating objects bypassing
14598           the remote check.
14599
14600 2003-02-18  Martin Baulig  <martin@ximian.com>
14601
14602         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
14603         New interncall to get a method's metadata token.
14604
14605         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
14606         New interncall for the debugger.
14607
14608 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
14609
14610         * class.c (mono_class_setup_vtable): allocate supertype array
14611
14612 2003-02-18  Martin Baulig  <martin@ximian.com>
14613
14614         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
14615
14616 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14617
14618         * reflection.c:
14619         (assembly_name_to_aname): jump over unknown properties (i've found
14620         something like: 'type, assembly, version=xxx, custom=null, public...',
14621         so now will ignore custom=null and still get the rest of the values).
14622
14623 2003-02-17  Dick Porter  <dick@ximian.com>
14624
14625         * threads.c: Have Thread.Start() wait for a semaphore to signal
14626         that the thread has set up all its local data.  This fixes bug
14627         34323, where Abort() raced the new thread's TLS data.
14628
14629         Also removes the handle_store() call from start_wrapper, because
14630         threads are now always created suspended and there is no longer a
14631         race between the parent and child threads to store the info.
14632
14633 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
14634
14635         * image.c: explain the #- heap issue in a message, hopefully
14636         avoiding FAQs on mono-list.
14637
14638 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14639
14640         * icall.c:
14641         (GetEntryAssembly): if the domain has not invoked
14642         AppDomain.ExecuteAssembly yet, return the assembly of the default
14643         AppDomain.
14644
14645 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
14646
14647         * class.c (mono_ldtoken): make it work in dynamic assemblies.
14648
14649 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
14650
14651         * metadata.c, reflection.c: simple speedup to type hash
14652         and equals code.
14653
14654 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
14655
14656         * image.c, image.h, class.c, assembly.c: move module loading
14657         to MonoImage. When loading metadata, consider alignemnet from
14658         the start of metadata, not from the metadata address in memory.
14659
14660 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
14661
14662         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
14663         AssemblyBuilder objects. Factored out custom attribute creation into
14664         a separate function.
14665         (create_custom_attr): new function to create custom attributes.
14666
14667 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
14668
14669         * Makefile.am: Got tired of typing the full pathname to pedump.
14670         Until there is another option, am installing this.
14671
14672 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
14673
14674         * class.c (class_compute_field_layout): always set field->parent 
14675         (mono_ldtoken): use mono_defaults.fieldhandle_class;
14676
14677 2003-02-11  Dick Porter  <dick@ximian.com>
14678
14679         * threads-types.h:
14680         * monitor.c: Rewrote Monitor, making lock much faster and
14681         Pulse/Wait work as specified.  Also uses much fewer handles, and only
14682         creates them as needed.
14683
14684         * exception.c: Added SynchronizationLockException
14685
14686         * threads.c: Deleted old Monitor implementation.  The new one is
14687         in a new file.
14688
14689 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
14690
14691         * class.c: handled TypedReference type code. Set the correct size for
14692         class data. Setup interface_offsets for interface classes, too.
14693
14694 2003-02-09  Martin Baulig  <martin@ximian.com>
14695
14696         * debug-mono-symfile.h: Reflect latest symbol writer changes.
14697
14698 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
14699
14700         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
14701         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
14702         * object.c: fixed mono_object_get_virtual_method () for interfaces.
14703         * verify.c: check for code that runs after the end of the method.
14704
14705 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
14706
14707         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
14708         "System.Math::Round2".
14709         * sysmath.h: Added Floor, Round and Round2 definitions.
14710         * sysmath.c: Modified certain functions that were not 100% compliant
14711         with MS.NET (math precision) and added the implementation of Floor,
14712         Round and Round2.
14713
14714 2003-02-07  Martin Baulig  <martin@ximian.com>
14715
14716         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
14717
14718 2003-02-07  Martin Baulig  <martin@ximian.com>
14719
14720         * debug-mono-symfile.c: Reflected latest symwriter changes.
14721         (mono_debug_create_mono_symbol_file): Removed.
14722         (mono_debug_open_mono_symbol_file): Take an argument which
14723         specifies whether to create a dynamic symbol file.
14724
14725 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
14726
14727         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
14728
14729 2003-02-05  Martin Baulig  <martin@ximian.com>
14730
14731         * reflection.c (mono_image_build_metadata): Make this public,
14732         protect it against being called multiple times, don't create
14733         resources and don't build the compressed metadata here.
14734         (mono_image_create_pefile): Do this here.
14735
14736         * icall.c
14737         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
14738
14739 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14740
14741         * socket-io.c: fixed bug #36322.
14742
14743 2003-02-06  Piers Haken <piersh@friskit.com>
14744
14745         * appdomain.[ch]:
14746         * class.h:
14747         * debug-mono-symfile.c:
14748         * icall.c:
14749         * loader.c:
14750         * mono-config.c:
14751         * monosn.c:
14752         * reflection.c:
14753         * socket-io.c: warning cleanups
14754
14755 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
14756
14757         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
14758         function. works like remoting invoke, but does a check for the Proxy first.
14759
14760 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
14761
14762         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
14763
14764 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
14765
14766         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
14767         array of pointers.
14768         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
14769         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
14770
14771         * object.c (mono_store_remote_field_new): used by the new jit
14772         instead of mono_store_remote_field
14773         (mono_load_remote_field_new): used by the new jit
14774         instead of mono_load_remote_field
14775
14776 2003-02-05  Patrik Torstensson
14777
14778         * appdomain.c: changed unload to take the domain id instead
14779         of domain
14780         
14781         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
14782
14783
14784 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14785
14786         * appdomain.c: don't look for assemblies in ApplicationBase if
14787         PrivateBinPathProbe is set.
14788
14789 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14790
14791         * object.c: make the first argument in main_args contain the absolute
14792         path to the assembly. Fixes bug #37511.
14793
14794 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14795
14796         * icall.c: get correct UTC offset for countries not using daylight
14797         time saving. Fixes bug #30030.
14798
14799 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14800
14801         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
14802         and 1 are the family).
14803
14804 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
14805
14806         * icall.c (ves_icall_InternalExecute): removed wrong assertion
14807
14808         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
14809
14810 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
14811
14812         * reflection.c: added support for SignatureHelper tokens, which is
14813         needed by the Calli opcode.
14814
14815         * reflection.h: track changes to SignatureHelper class.
14816
14817         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
14818
14819 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14820
14821         * appdomain.c: fixed loading assemblies from PrivateBinPath.
14822
14823 2003-02-03  Patrik Torstensson
14824         * appdomain.[c|h], domain.c : 
14825          - Added support for getting a domain via domain id
14826          - Support for setting and getting domain from System.AppDomain 
14827            (used in cross appdomain channel)
14828          - Added support for get/set for a MonoAppContext on a thread 
14829            (Context class in System.Runtime.Remoting.Contexts),
14830          - Removed hack in Get/SetData and ExecuteAssembly.
14831         
14832         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
14833         the managed world to get control when a proxy is created.
14834
14835         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
14836         
14837 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
14838
14839         * icall.c
14840         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
14841         Populate the codebase field as well.
14842
14843 2003-02-02  Martin Baulig  <martin@ximian.com>
14844
14845         * debug-mono-symfile.c
14846         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
14847         (mono_debug_symfile_add_method): Allow interncalls.
14848
14849 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14850
14851         * icall.c: throw parse exception if strtod fails or the string is empty.
14852
14853 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
14854
14855         * marshal.c: handle object type separately from defined
14856         class types.
14857
14858 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
14859
14860         * marshal.c: handle NATIVE_LPSTR for strings when it's
14861         explicitly specified.
14862
14863 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
14864
14865         * reflection.c, reflection.h, icall.c: setup the reflection
14866         handle cache for ModuleBuilders and AssemblyBuilders.
14867
14868 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
14869
14870         * reflection.c (reflection_methodbuilder_to_mono_method): set
14871         pinvoke flag
14872
14873 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
14874
14875         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
14876
14877 2003-01-29  Dick Porter  <dick@ximian.com>
14878
14879         * threads.c: No need for the fake_thread kludge now that Thread
14880         doesn't run a class constructor
14881         
14882 2003-01-29  Dick Porter  <dick@ximian.com>
14883
14884         * threads.c: Use g_direct_hash instead of the rather bogus
14885         g_int_hash
14886
14887 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
14888
14889         * marshal.c (mono_marshal_get_native_wrapper): add check for null
14890         (fix pinvoke12.exe)
14891         (mono_marshal_get_struct_to_ptr): generate valid IL code
14892         (mono_marshal_get_ptr_to_struct): generate valid IL code
14893         (*): correctly set sig->pinvoke, we need to memdup the signature
14894         to do that
14895
14896 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
14897
14898         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
14899         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
14900
14901 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14902
14903         * profiler.c: provide more callers information.
14904
14905 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
14906
14907         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
14908
14909         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
14910
14911         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
14912
14913 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14914
14915         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
14916         exception instead of going into an infinite loop on dates which it 
14917         can't yet handle.
14918
14919         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
14920         out-of-range exception if needed.
14921
14922         * class.c (mono_class_setup_vtable): allow a virtual method to provide
14923         an implementation for an interface method and to override an inherited
14924         method at the same time. 
14925         Imagine a scenario when a virtual method is used to override a
14926         virtual abstract method in a parent class, and this same method 
14927         provides an implementation for an method inherited from an interface. 
14928         In this case, the interface resolution code will set im->slot, which 
14929         means that the virtual method override pass will skip this method 
14930         which means a pointer to the abstract method inherited from the parent
14931         will remain in the vtable of this non-abstract class.
14932
14933         * class.c: (mono_class_setup_vtable): continue search for a real 
14934         method if only an abstract method is found.     
14935
14936 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
14937
14938         * reflection.c: add size to encoding for ByValStr and ByValArray
14939         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
14940
14941 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14942
14943         * class.c (mono_class_setup_vtable): pass the override info as an
14944         argument.
14945
14946         * class.c (mono_class_setup_vtable): set the slot of overriding methods
14947         correctly.
14948         
14949         * reflection.c (ensure_runtime_vtable); add support for method 
14950         overrides.
14951         
14952 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14953
14954         * reflection.c (resolution_scope_from_image): Hack to work to work with
14955         dynamic assemblies.
14956
14957         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
14958         added a 'force_ref' argument to force this function to allways return 
14959         a TypeRef. This is needed by mono_image_get_memberref_token ().
14960         
14961 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14962
14963         * reflection.c (mono_image_get_type_info): interfaces really don't have
14964         a parent.
14965
14966         * reflection.c (mono_image_basic_init): fill out missing fields of
14967         image structure.
14968
14969         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
14970         dynamic assemblies. This is required so dynamic assemblies show up in
14971         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
14972         Type::GetType() etc. This is consistent with MS behaviour.
14973
14974         * image.c image.h reflection.c: add newly created classes to the name 
14975         cache so mono_class_get () will find them.      
14976
14977 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
14978
14979         First part of changes to get IKVM.NET running under mono.
14980         
14981         * appdomain.h, appdomain.c: added new function 
14982         mono_domain_try_type_resolve() which will emit TypeResolve events. 
14983         This function will call AppDomain::DoTypeResolve to do the actual work.
14984
14985         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
14986         moved existing code dealing with dynamic tokens to a new function 
14987         called mono_reflection_lookup_dynamic_token (). This function will 
14988         raise TypeResolve events when appropriate. Since reflection.c is not 
14989         part of libmetadata, a new hook function called 
14990         mono_lookup_dynamic_token() is added to class.c which will call this.
14991
14992         * assembly.h assembly.c: make the invoke_load_hook function public,
14993         so it can be called for dynamic assemblies.
14994
14995         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
14996
14997         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
14998         type isn't found.
14999
15000         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
15001         MonoGHashTable, since it contains pointers to objects which the GC 
15002         needs to track.
15003
15004         * assembly.c (search_loaded): remove unused variable.
15005         
15006 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
15007
15008         * object.c: fixed issue exposed by gcc-generated IL programs
15009         that use RVA data for pointers.
15010
15011 2003-01-25  Martin Baulig  <martin@ximian.com>
15012
15013         * threads.c (start_wrapper): Moved the initialization of
15014         `start_func' above the mono_new_thread_init() call to which we
15015         pass it as argument.
15016
15017 2003-01-24  Martin Baulig  <martin@ximian.com>
15018
15019         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
15020         the MonoThread pointer.
15021
15022 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
15023
15024         * icall.c: Rename `PowImpl' to Pow.
15025
15026 2003-01-23  Dick Porter  <dick@ximian.com>
15027
15028         * threads.c (start_wrapper): Create a Thread object if needed, so
15029         the Main() thread can do the class initialisation in a subthread
15030         that has been set up to allow managed code execution.
15031
15032         Pass the thread ID instead of the MonoThread pointer to the thread
15033         start and attach callbacks.  This change is required, because the
15034         jit thread start callback must be called _before_ the Thread
15035         object can be created.
15036         
15037         (mono_thread_init): Removed much object creation code that is no
15038         longer needed.  No managed code is called from here now.
15039
15040         * object.c (mono_runtime_exec_managed_code): Create a subthread
15041         for Main, and call back to the runtime to use it.
15042         Set the exit code when Main exits.
15043
15044         * gc.c: Make sure domain finalisation happens in a subthread.
15045         Re-enable threaded GC, fixing bug 31333 (again).
15046
15047         * environment.c: System.Environment internall calls (so far just
15048         ExitCode is here, the others are still in icall.c)
15049
15050         * appdomain.c (mono_runtime_cleanup): All threads running managed
15051         code should have finished before mono_runtime_cleanup() is
15052         reached, so no need to clean up threads.
15053
15054 2003-01-22  Martin Baulig  <martin@ximian.com>
15055
15056         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
15057         `gpointer func' arguments.      
15058         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
15059         but added `MonoThread *thread' argument.
15060         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
15061
15062         * threads.c (mono_new_thread_init): Added `gpointer func' argument
15063         and pass it to the mono_thread_start_cb callback.
15064         (mono_install_thread_callbacks): New public function to install a
15065         set of callbacks which are set by the debugger.
15066         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
15067
15068 2003-01-22  Martin Baulig  <martin@ximian.com>
15069
15070         * Makefile.am: Install debug-mono-symfile.h.
15071
15072 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
15073
15074         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
15075
15076 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
15077
15078         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
15079         * class.c (mono_ptr_class_get): correctly set access levels of pointers
15080         (mono_array_class_get): correctly set access levels of arrays
15081
15082 2003-01-20      Patrik Torstensson
15083         * image.h (MonoAssemblyName): changed major, minor, build, revision
15084         from signed to unsigned.
15085
15086 2003-01-20  sean kasun <skasun@azstarnet.com>
15087
15088         * reflection.c (load_cattr_value): Now this handles
15089         MONO_TYPE_SZARRAY.  Fixes bug #35629
15090
15091 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
15092
15093         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
15094         integer value
15095
15096 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15097
15098         * decimal.c: fixed bug #26056.
15099
15100 2003-01-17  Martin Baulig  <martin@ximian.com>
15101
15102         * gc.c: Raise an ExecutionEngineException instead of using g_error().
15103
15104 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15105
15106         * exception.[ch]:
15107         (mono_get_exception_type_initialization): new function.
15108
15109         * object.c: throw a TypeInitializationException when an exception is
15110         thrown invoking the class constructor.
15111
15112 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15113
15114         * reflection.c: fixed attribute reading.
15115
15116 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15117
15118         * icall.c:
15119         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
15120         provided, look for the type in the calling assembly and then in
15121         mscorlib; if the assembly name is provided, only try that one.
15122
15123 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
15124
15125         * object.c: register the vtable before there is a chance it's
15126         queried again recursively.
15127
15128 2003-01-13  Duncan Mak  <duncan@ximian.com>
15129
15130         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
15131         gc-internal.h. 
15132         
15133 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
15134
15135         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
15136
15137 2003-01-11  Martin Baulig  <martin@ximian.com>
15138
15139         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
15140         this to 20 for the release.
15141
15142 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
15143
15144         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
15145
15146         * loader.c (mono_method_get_marshal_info): bug fix
15147
15148         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
15149         structures with explicit layout
15150
15151 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15152
15153         * profiler.c: made the output more readable (and sorted). 
15154         Added caller information for the allocation profiler.
15155
15156 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
15157
15158         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
15159
15160 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15161
15162         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
15163         to get value types.
15164         
15165 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
15166
15167         * object.c, profiler.h, profiler.c, profiler-private.h:
15168         Added object allocation profiler.
15169
15170 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
15171
15172         * reflection.h, reflection.c: handle global methods.
15173         Compress blob entries.
15174
15175 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
15176
15177         * marshal.c: fix compilation.
15178
15179 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
15180
15181         * loader.c (mono_method_get_marshal_info): impl.
15182
15183         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
15184
15185 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15186
15187         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
15188         for reference types.
15189
15190 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
15191
15192         * loader.c: fixed off by one error in loaded parameter names.
15193
15194 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
15195
15196         * marshal.c (mono_marshal_get_icall_wrapper): like
15197         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
15198         instead of a MonoMethod.
15199
15200 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15201
15202         * decimal.c: fixed bug #36537.
15203
15204 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
15205
15206         * marshal.c: throw a missing method exception if a
15207         P/Invoke method is not found.
15208
15209 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
15210
15211         * icall.c: allow a null this for constructors.
15212
15213 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
15214
15215         * icall.c: raise the proper exceptions if the arguments to the
15216         internal Invoke are incorrect.
15217
15218 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
15219
15220         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
15221
15222 2003-01-03  Martin Baulig  <martin@ximian.com>
15223
15224         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15225
15226 2002-12-31  Martin Baulig  <martin@ximian.com>
15227
15228         * debug-mono-symfile.c: Completely rewrote the type section.
15229         Instead of using individual malloc()ed fields, we use one big
15230         continuous memory area and offsets into this area.
15231         See the comments in the source code for details.
15232
15233 2002-12-30  Martin Baulig  <martin@ximian.com>
15234
15235         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
15236
15237 2002-12-30  Martin Baulig  <martin@ximian.com>
15238
15239         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
15240         line number table in this data blob instead of using an external
15241         pointer.
15242
15243 2002-12-28  Martin Baulig  <martin@ximian.com>
15244
15245         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
15246
15247 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
15248
15249         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
15250         as a boxed return type.
15251
15252 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
15253
15254         * appdomain.c
15255         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
15256         g_build_filename to properly get separators on the filename created.
15257
15258         * object.h: Small change, introduce MonoMarshalByRefObject to
15259         track the layout of that structure in the C# universe as we make
15260         changes there.
15261
15262 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
15263
15264         * object.c: removed assert to allow static fields on interfaces.
15265         * loader.c: a TypeSpec may be used for any type, not just arrays.
15266
15267 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
15268
15269         * class.c, class.h: added mono_class_array_element_size ().
15270         Ignore static methods in interfaces.
15271
15272 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15273
15274         * threads.c: fixed the build under cygwin.
15275
15276 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
15277
15278         * reflection.c: handle nullref constants. Allocate keys for
15279         reflection handles with the GC.
15280
15281 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15282
15283         * threads.c, threads.h: added mono_thread_get_abort_signal()
15284         to get a suitable signal for thread abort.
15285
15286 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
15287
15288         * metadata.c: fix handling of ExportedType table.
15289
15290 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15291
15292         * icall.c: added WriteWindowsDebugString internal call.
15293
15294 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15295
15296         * reflection.h: added fields to match C# implementation.
15297
15298 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15299
15300         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
15301
15302 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
15303
15304         * gc.h, gc-internal.h: Rename header for GC internal calls to
15305         gc-internal.h from gc.h as to not clash with Boehm GC having its
15306         header installed as <gc.h> in outside include paths.
15307         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
15308         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
15309
15310 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15311
15312         * icall.c: assign minor, build and revision in FillName.
15313
15314 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
15315
15316         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
15317         Added support for running code generated by Reflection.Emit.
15318
15319 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15320
15321         * appdomain.c: check for NULL argument in LoadFrom.
15322
15323 2002-12-10  Dick Porter  <dick@ximian.com>
15324
15325         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
15326
15327 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15328
15329         * appdomain.c: fix buglet when building exe file name.  Handle full
15330         assembly name (needed after latest changes to AssemblyName).
15331         * image.c:
15332         (mono_image_close): free some hashtables.
15333
15334 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
15335
15336         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
15337         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
15338         on some systems (redhat 7.3) 
15339
15340 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
15341
15342         * threads.c: delete the critical section of a sync block,
15343         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
15344
15345 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
15346
15347         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
15348
15349 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15350
15351         * appdomain.[ch]: handle the assembly preload event to try loading the
15352         assemblies using the paths we have in the current domain.
15353
15354         * assembly.[ch]: created an assembly preload hook that is called to try
15355         loading the assembly by other means that the ones provided here.
15356
15357         * domain.c: initialize the domain search path.
15358
15359         From now on, assemblies (TODO: except corlib and System) are loaded
15360         according to these rules when using mono_assembly_load ():
15361
15362                 1. It tries to load the assembly from the ApplicationBase
15363                 of the current domain appending .dll and .exe (TODO: have to
15364                 try loading from name/name.dll and name/name.exe).
15365
15366                 2. It tries the search path specified in PrivateBinPath for the
15367                 current domain (if any).
15368
15369                 3. Previous behavior.
15370
15371 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
15372
15373         * icall.c: implemented GetInterfaceMap() related icall.
15374         * domain.c, loader.h: load MethodInfo in mono_defaults.
15375
15376 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
15377
15378         * gc.c: disable the finalizer thread for now, untill all the issues
15379         with it are resolved.
15380
15381 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
15382
15383         * string-icalls.c: handle embedded nulls in string ctor when the
15384         length is specified.
15385
15386 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
15387
15388         * class.c: look for explicit interface implementation in parent
15389         classes, too.
15390
15391 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
15392
15393         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
15394
15395 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
15396
15397         * gc.c: protect handles with a critical section.
15398
15399 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15400
15401         * icall.c:
15402         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
15403         parameters. If no assembly specified, try getting the type from all
15404         the assemblies in the current domain, else, load the assembly and get
15405         the type from it.
15406
15407 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15408
15409         * marshal.c: applied patch from Aleksey Demakov that fixes
15410         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
15411
15412 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15413
15414         * icall.c: fixed get_location.
15415
15416 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
15417
15418         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
15419         declarations to make it work with older gcc. 
15420
15421         * loader.c (mono_get_method): set signature->pinvoke for native calls
15422
15423 2002-11-20  Dick Porter  <dick@ximian.com>
15424
15425         * threads.c (mono_thread_init): Set the main thread's handle
15426
15427 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
15428
15429         * gc.c: allow compilation without GC support. Changed to match the
15430         mono coding style.
15431
15432 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
15433
15434         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
15435
15436 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
15437
15438         * reflection.c: set a public key token on the core assemblies.
15439
15440 2002-11-18  Dick Porter  <dick@ximian.com>
15441
15442         * threads.c: Split out some thread initialisation so that other
15443         files can set the start callback function.
15444
15445         * gc.c: Run finalisers in a separate thread, to avoid stack
15446         overflow.  Fixes bug 31333.
15447
15448         * appdomain.c: Set up GC finalisation thread.
15449
15450         * reflection.c: 
15451         * object.c: 
15452         * domain.c: Use gc.h macros for GC_malloc
15453         
15454 2002-11-15  Dick Porter  <dick@ximian.com>
15455
15456         * threadpool.c: 
15457         * threads.c:
15458         * appdomain.c: Removed mono_runtime_init_with_attach(),
15459         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
15460         merging the extra parameter with the existing function.  Removed
15461         unneeded code in mono_thread_attach().
15462
15463 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
15464
15465         * image.c (mono_image_loaded_by_guid): a method to get loaded
15466         images by guid. 
15467         (load_metadata_ptrs): we store the guid as string.
15468
15469 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
15470
15471         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
15472
15473         * metadata.c (mono_guid_to_string): imported method form Zoltan
15474         Varga (slightly modified)
15475
15476         * assembly.c (mono_assembly_open): load precompiled code
15477
15478         * loader.h (MonoMethod): we store the method token for use in the
15479         aot compiler. 
15480
15481 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15482
15483         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
15484         the hook function called when an assembly is loaded.
15485         
15486         * domain.c: Modified file.
15487         (mono_domain_assembly_load): removed hash table insertion of assemblies.
15488
15489         Fixes bug #33196.
15490
15491 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
15492
15493         * reflection.c: Map PEFileKind to the value expected by the WinNT
15494         image loader. 
15495
15496 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15497
15498         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
15499         Read until the buffer is filled completely.
15500
15501 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15502
15503         * icall.c: implemented MonoType.InternalGetEvent ().
15504
15505 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15506
15507         * appdomain.c: implemented InitAppDomainSetup. Delayed
15508         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
15509         the entry_assembly.
15510
15511         * assembly.c: base_dir is now an absolute path ending with
15512         G_DIR_SEPARATOR.
15513
15514         * icall.c: modified get_location according to the above changes.
15515
15516         * object.c: init AppDomain.SetupInformation for the default domain after
15517         we have the entry assembly.
15518
15519         * domain.c: when unloading a domain, setup = NULL.
15520
15521 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
15522
15523         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
15524
15525 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
15526
15527         * object.h, object.c: introduced mono_object_get_virtual_method ()
15528         to lookup the method invoked on an object when a callvirt is done on
15529         a method.
15530         * icall.c: make MethodInfo::Invoke() always do a virtual call.
15531
15532 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15533
15534         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
15535         current domain when loaded an assembly and failed to load it.
15536
15537         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
15538
15539 2002-10-31  Dick Porter  <dick@ximian.com>
15540
15541         * icall.c: 
15542         * file-io.h: 
15543         * file-io.c: Return the error status in a parameter, as the
15544         GetLastError() value has long since been blown away if we try and
15545         look it up in a subsequent internal call invocation.  Delete the
15546         GetLastError() internal call, because it's useless.
15547
15548 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
15549
15550         * class.[ch]: added cast_class to fix bug 29517
15551
15552 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
15553
15554         * marshal.c: create valid IL code in the filter clause:
15555         the new JIT is less forgiving:-)
15556
15557 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15558
15559         * icall.c: removed get_property internal call.
15560
15561 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
15562
15563         * appdomain.h domain.c: Added an ID to appdomains.
15564         
15565         * threads.c threads.h icall.c: Implement icall
15566         Thread:GetDomainID(), and remove unused icall 
15567         CurrentThreadDomain_internal.
15568
15569 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15570
15571         * icall.c: Don't recurse through the base types in GetConstructor.
15572         Fixes bug #32063. 
15573
15574 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
15575
15576         * mempool.h, mempool.c: added mono_mempool_empty() and
15577         mono_mempool_stats().
15578
15579 2002-10-23  Dick Porter  <dick@ximian.com>
15580
15581         * file-io.c: 
15582         * file-io.h: 
15583         * icall.c: Added MonoIO.GetFileType internal call
15584
15585 2002-10-17  Dick Porter  <dick@ximian.com>
15586
15587         * appdomain.c (mono_runtime_cleanup): Don't signal the async
15588         delegate semaphore before waiting for all threads to finish,
15589         because new threads can also call async delegates.  Fixes bug
15590         32004.
15591
15592         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
15593         of 3 seconds, in case another async job is queued.  (This part is
15594         needed because the bug fix reintroduced the 3s exit lag.)  This
15595         makes the mono_runtime_shutdown flag superfluous.
15596
15597 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
15598
15599         * reflection.c: include ehader size in method section headers.
15600         Really check for suplicated modules entries.
15601
15602 2002-10-17  Martin Baulig  <martin@gnome.org>
15603
15604         * debug-mono-symfile.c: Added back support for locals.
15605
15606 2002-10-14  Martin Baulig  <martin@gnome.org>
15607
15608         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
15609         MONO_TYPE_VOID.
15610
15611 2002-10-14  Martin Baulig  <martin@gnome.org>
15612
15613         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
15614         mono_class_get() instead of looking in the class cache. 
15615
15616 2002-10-13  Martin Baulig  <martin@gnome.org>
15617
15618         * debug-mono-symfile.c: Set version number to 28, include the
15619         signature in method names.
15620
15621 2002-10-13  Martin Baulig  <martin@gnome.org>
15622
15623         * debug-mono-symfile.h: Set version number to 27.
15624
15625 2002-10-11  Martin Baulig  <martin@gnome.org>
15626
15627         * gc.c: Don't register/unregister NULL pointers as disappearing links.
15628
15629 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
15630
15631         * metadata.c, metadata.h: added helper function to allocate signatures.
15632
15633 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15634
15635         * icall.c: added internal call to get the location of machine.config.
15636
15637 2002-10-08  Martin Baulig  <martin@gnome.org>
15638
15639         * debug-mono-symfile.c: Ignore classes with a pending init for the
15640         moment.
15641
15642 2002-10-03  Dick Porter  <dick@ximian.com>
15643
15644         * threads.c: Freebsd pthread_t is a pointer
15645
15646 2002-10-03  Dick Porter  <dick@ximian.com>
15647
15648         * socket-io.c: Implemented GetHostName_internal
15649
15650 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15651
15652         * mono-config.c:
15653         (mono_config_parse_file): don't leak the text.
15654
15655 2002-10-02  Martin Baulig  <martin@gnome.org>
15656
15657         * debug-mono-symfile.c: Added support for methods.
15658
15659 2002-10-01  Martin Baulig  <martin@gnome.org>
15660
15661         * debug-mono-symfile.c: Don't emit methods and line numbers for
15662         the dynamic symbol file, just write the type table.  We can easily
15663         have an external helper program which creates a symbol file for an
15664         IL file.        
15665
15666 2002-10-01  Dick Porter  <dick@ximian.com>
15667
15668         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
15669         Only add the handle to the cleanup array when we're about to
15670         launch the thread.  Bug 31425 deadlocked when the test was run on
15671         mono under w32.
15672
15673 2002-10-01  Martin Baulig  <martin@gnome.org>
15674
15675         * debug-mono-symfile.c: Added support for properties.
15676
15677 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
15678
15679         * reflection.c: unaligned store fix from Mark Crichton
15680         <crichton@gimp.org>.
15681
15682 2002-09-27  Martin Baulig  <martin@gnome.org>
15683
15684         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
15685         New interncall.
15686
15687 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
15688
15689         * assembly.h, assembly.c: use a sane API to hook into the assembly
15690         loading process instead of a useless special-purpouse hack
15691         (ngen needs a hook, too, for example).
15692
15693 2002-09-27  Dick Porter  <dick@ximian.com>
15694
15695         * threads.c (mono_thread_init): Call GetCurrentProcess() so
15696         io-layer can set up some process handle info.  Not needed on w32,
15697         but doesn't hurt either.
15698
15699         * process.c: Pass the program name in the second parameter to
15700         CreateProcess, so the path is searched.  Include the working
15701         directory. Implemented process name, process enumeration, and some
15702         process detail internal calls.
15703         
15704         * icall.c: Added internal calls for process lookup, and some
15705         process details
15706
15707 2002-09-26  Martin Baulig  <martin@gnome.org>
15708
15709         * assembly.c (mono_install_open_assembly_hook): New global
15710         function to install a function to be invoked each time a new
15711         assembly is loaded.
15712         (mono_assembly_open): Run this callback function if set.
15713
15714         * debug-mono-symfile.c: Put back line numbers for the dynamic
15715         symbol file and also record the .il file as source file.  This
15716         allows us to install the temporary symbol file as `file.dbg' just
15717         like a compiler-generated one.
15718
15719 2002-09-26  Nick Zigarovich <nick@chemlab.org>
15720
15721         * Corrected typo in gc.c (BOHEM vs BOEHM).
15722
15723 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15724
15725         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
15726         GetProperties. Also avoid calling g_slist_length in GetProperties and
15727         GetMethods.
15728
15729 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
15730
15731         * reflection.c: avoid unaligned stores (bug spotted by
15732         Mark Crichton  <crichton@gimp.org>).
15733
15734 2002-09-25  Martin Baulig  <martin@gnome.org>
15735
15736         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
15737         instead of guint64 for addresses and added prologue/epilogue info.
15738
15739 2002-09-25  Martin Baulig  <martin@gnome.org>
15740
15741         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
15742         store line number info.  For the dynamic symbol file, we only need
15743         to provide the JIT generated dynamic line number info for the dynamic
15744         symbol file.
15745
15746 2002-09-25  Martin Baulig  <martin@gnome.org>
15747
15748         * debug-mono-symfile.h: Incremented version number.
15749
15750 2002-09-24  Martin Baulig  <martin@gnome.org>
15751
15752         * class.c (mono_debugger_class_init_func): New global function
15753         pointer variable.
15754         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
15755         call it.
15756
15757         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
15758         function.  This is called via the mono_debugger_class_init_func
15759         hook to add all types to the dynamic type table.
15760         (ves_icall_MonoDebugger_GetType): New interncall to get a class
15761         from its metadata token.
15762
15763         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
15764         New interncall for the debugger.
15765
15766 2002-09-24  Nick Drochak <ndrochak@gol.com>
15767
15768         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
15769         before using it in case it is null.
15770         
15771 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
15772
15773         * metadata.c: allow custom modifiers in local var signatures
15774         (bug spotted by Zoltan Varga).
15775
15776 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
15777
15778         * class.c: deal with the <Module> class that may have a NULL vtable.
15779         Eliminate warnings.
15780
15781 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15782
15783         * image.c, image.h: more strong name helpers.
15784         * monosn.c: more work: convert pem keys to cryptoapi format.
15785
15786 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
15787
15788         * string-icalls.c: speedup IndexOf.
15789
15790 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15791
15792         * icall.c: updates from Zoltan.2.Varga@nokia.com.
15793
15794 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
15795
15796         * icall.c: cleanup: use mono_object_domain ().
15797
15798 2002-09-23  Martin Baulig  <martin@gnome.org>
15799
15800         * debug-mono-symfile.c: Improved type support.
15801
15802 2002-09-22  Martin Baulig  <martin@gnome.org>
15803
15804         * debug-mono-symfile.c: Added support for reference types and strings.
15805
15806 2002-09-22  Martin Baulig  <martin@gnome.org>
15807
15808         * debug-mono-symfile.c: Started to work on the type table.
15809
15810 2002-09-21  Martin Baulig  <martin@gnome.org>
15811
15812         * debug-mono-symfile.c: Largely reworked the symbol table format.
15813         The symbol table is now incrementally updated each time a new
15814         method is added.  We're now also using our own magic and version
15815         so that you don't need to recompile all your classes if the
15816         dynamic table changes.
15817         (mono_debug_update_mono_symbol_file): Removed.
15818         (mono_debug_symfile_add_method): New function to add a method.
15819
15820 2002-09-21  Martin Baulig  <martin@gnome.org>
15821
15822         * icall.c
15823         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
15824         New interncall.
15825
15826         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
15827         New interncall to get a method from its metadata token.
15828
15829 2002-09-21  Martin Baulig  <martin@gnome.org>
15830
15831         * debug-mono-symfile.c: Create type table.
15832
15833 2002-09-20  Martin Baulig  <martin@gnome.org>
15834
15835         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
15836
15837 2002-09-20  Martin Baulig  <martin@gnome.org>
15838
15839         * debug-mono-symfile.c: Provide information about params and locals.
15840
15841 2002-09-20  Martin Baulig  <martin@gnome.org>
15842
15843         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
15844         New interncall.
15845
15846         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
15847         interncall to get a method from its metadata token.
15848
15849 2002-09-20  Martin Baulig  <martin@gnome.org>
15850
15851         * debug-mono-symfile.c: Added a few checks for method->header
15852         being non-NULL.  This should never happen, but for the moment
15853         let's use a g_warning() rather than a g_assert().
15854
15855 2002-09-19  Mark Crichton  <crichton@gimp.org>
15856
15857         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
15858         even if support for it isn't present.  Added an #ifdef to fix this.
15859
15860         * socket-io.c: Added checks back for Solaris support.
15861
15862 2002-09-19  Martin Baulig  <martin@gnome.org>
15863
15864         * debug-mono-symfile.c (read_string, write_string): Reflect latest
15865         changes in the symbol file format.
15866
15867 2002-09-18  Martin Baulig  <martin@gnome.org>
15868
15869         * debug-mono-symfile.c: Set version number to 21.
15870
15871 2002-09-18  Dick Porter  <dick@ximian.com>
15872
15873         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
15874         on netbsd.  Fixes bug 30051.
15875
15876 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
15877
15878         * reflection.c:
15879         (set_version_from_string): little fix.
15880
15881 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15882
15883         * monosn.c, Makefile.am: added strong name utility.
15884         * reflection.h, reflection.c: implemented delayed signing,
15885         locale, version and hash id assembly attributes.
15886
15887 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
15888
15889         * loader.c, metadata.c: load param attributes in signatures.
15890
15891 2002-09-16  Martin Baulig  <martin@gnome.org>
15892
15893         * debug-mono-symfile.c: Added string table with all method names.
15894
15895 2002-09-14  Martin Baulig  <martin@gnome.org>
15896
15897         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
15898         fast method lookup.
15899
15900 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15901
15902         * reflection.c: record the public key token of referenced assemblies.
15903
15904 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
15905
15906         * image.c, image.h: added functions to get the strong name and the
15907         public key of an assembly.
15908         * pedump.c: use them.
15909
15910 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
15911
15912         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
15913
15914 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
15915
15916         * marshal.c (mono_marshal_get_managed_wrapper): Added
15917         MONO_TYPE_BOOLEAN 
15918
15919 2002-09-11  Martin Baulig  <martin@gnome.org>
15920
15921         * gc.c: Call GC_unregister_disappearing_link() on all links when
15922         finalizing them, this is necessary to aviod a crash in boehm's
15923         finalize handler.
15924
15925 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
15926
15927         * gc.c: handle GetTarget for finalized objects spotted and fixed by
15928         nick@chemlab.org.
15929
15930 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
15931
15932         * icall.c: implemented MonoType::Module.
15933         * reflection.c, reflection.h: mono_module_get_object () from
15934         Tomi Pakarinen <tomi.pakarinen@welho.com>.
15935
15936 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
15937
15938         * icall.c: ignore overridden methods in GetMethods ().
15939         Fix for FieldInfo::SetValue().
15940         * object.c: handle float/double in runtime invoke.
15941
15942 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
15943
15944         * object.c: allow a constructor to be called again on an object.
15945
15946 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15947
15948         * class.h, class.c: move field layout code to it's own function and
15949         export it. Get an interface id earlier. Move fields in MonoClass
15950         so they are more cache friendly and align the bitfields.
15951         * loader.c: temporary handle get_param_names() for a runtime method.
15952         * reflection.c, reflection.h: more code to handle runtime creation of
15953         types.
15954
15955 2002-09-09  Martin Baulig  <martin@gnome.org>
15956
15957         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
15958         signature with the pinvoke field being set for the actual call.
15959
15960 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
15961
15962         * icall.c: removed some unused icalls. Start of map of glib charsets
15963         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
15964
15965 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
15966
15967         * debug-helpers.c: break infinite loop (found and fixed by
15968         Holger Arnold <harnold@gmx.de>).
15969
15970 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
15971
15972         * icall.c: target may be null in create_delegate.
15973
15974 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
15975
15976         * marshal.c: handle a boolean return type.
15977
15978 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
15979
15980         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
15981
15982 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
15983
15984         * gc.c: fix weakreferences.
15985
15986 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
15987
15988         * icall.c: added icall to get default codepage.
15989
15990 2002-09-03  Dick Porter  <dick@ximian.com>
15991
15992         * threads.h: 
15993         * threads.c: Use MonoThread instead of MonoObject where
15994         apropriate.
15995
15996         Store running thread objects in a hash table, so that we have all
15997         the info to hand when waiting for them to finish
15998         (means we don't need OpenThread() any more, so mingw builds should
15999         be fully functional again.)
16000
16001         * verify.c:
16002         * object.h: Added thread ID to MonoThread
16003
16004 2002-09-03  Martin Baulig  <martin@gnome.org>
16005
16006         * icall.c (System.Reflection.Assembly::get_location): New interncall.
16007
16008 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16009
16010         * icall.c: fixed leak in get_temp_path. Thanks lupus.
16011
16012 2002-09-03  Martin Baulig  <martin@gnome.org>
16013
16014         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
16015         argument to store the end address of the disassembled instruction.
16016
16017         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
16018         here from debug-symfile.h.
16019         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
16020         JIT into this struct.
16021         (MonoSymbolFile): Added `char *image_file' field.
16022         (MonoDebugGetMethodFunc): Removed.
16023         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
16024         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
16025         (mono_debug_find_method): New method.
16026
16027         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
16028         create a full symbol file.
16029         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
16030         and static symbol files.
16031         (mono_debug_find_method): The symbol file keeps an internal method hash,
16032         call this to get a MonoDebugMethodInfo from a MonoMethod.
16033
16034         * debug-symfile.[ch]: Removed.
16035
16036 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
16037
16038         * image.c (do_mono_image_open): Remove linker version check.
16039
16040 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
16041
16042         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
16043         wrappers for instance methods.
16044         
16045 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16046
16047         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
16048
16049 2002-08-28  Dick Porter  <dick@ximian.com>
16050
16051         * Makefile.am: Export HOST_CC for w32 builds
16052
16053 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16054
16055         * file-io.c process.c: MonoString are null terminated, no
16056         need for mono_string_to_utf16() anymore.
16057
16058 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16059
16060         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
16061
16062 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
16063
16064         * icall.c, reflection.h: speedup System.MonoType.
16065
16066 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
16067
16068         * reflection.c: allow null as the value of a string argument in
16069         custom attributes constructors.
16070
16071 2002-08-27  Martin Baulig  <martin@gnome.org>
16072
16073         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
16074         `trampoline_address' field.
16075
16076 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
16077
16078         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
16079         check (fixes bug #29486) 
16080
16081 2002-08-27  Martin Baulig  <martin@gnome.org>
16082
16083         * debug-mono-symfile.c: Changed the file format in a way that allows us
16084         open it read-only and to use a specially malloced area for all the
16085         dynamic data.  We can now also generate a symbol file on-the-fly if we're
16086         debugging IL code and there is no MCS generated symbol file for it.
16087
16088 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16089
16090         * object.c: added a define for a good string and array
16091         creation speedup (not enabled by default because we need to deal with
16092         the synch stuff).
16093
16094 2002-08-26  Martin Baulig  <martin@gnome.org>
16095
16096         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
16097         function to create a dynamic symbol file.  This is used by the
16098         debugger to create a symbol file for IL code on-the-fly.
16099
16100 2002-08-26  Martin Baulig  <martin@gnome.org>
16101
16102         * loader.c (mono_lookup_pinvoke_call): Include the error message
16103         from g_module_error() in the error message.
16104
16105 2002-08-24  Martin Baulig  <martin@gnome.org>
16106
16107         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
16108         function to update the symbol file.  The symbol file is mmap()ed
16109         writable, but private.  This allows us to install the symbol file
16110         together with the assembly.
16111
16112 2002-08-24  Martin Baulig  <martin@gnome.org>
16113
16114         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
16115         but they can read the new symbol file format which mcs is now creating.
16116
16117         * debug-symfile.c (mono_debug_find_source_location): Moved to
16118         debug-mono-symfile.c; this is now operating on the new symbol file.
16119
16120 2002-08-23  Martin Baulig  <martin@gnome.org>
16121
16122         * debug-helpers.c (mono_method_desc_from_method): New function to get
16123         a MonoMethodDesc from a MonoMethod.
16124
16125 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
16126
16127         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
16128         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
16129
16130 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16131
16132         * string-icalls.[ch]: make helper methods static.
16133
16134 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16135
16136         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
16137         types to it and to SetValueInternal.
16138
16139         * object.c: Moved handle_enum label to its proper place. This was the
16140         f... bug! ;-)
16141
16142         This time i compiled mcs and gtk-sharp and they both work.
16143
16144 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16145
16146         * icall.c: reverted partially my previous patch until 
16147         object.c:set_value handles enums correcly.
16148
16149 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16150
16151         * icall.c:
16152         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
16153         (ves_icall_System_Environment_get_MachineName): removed warning when
16154         compiling under cygwin.
16155
16156 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16157
16158         * object.c: fixed field_get_value() for reference types.
16159
16160 2002-08-22  Dick Porter  <dick@ximian.com>
16161
16162         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
16163         Don't free a buffer while it's still needed.  Patch from Jonathan
16164         Liger <Jonathan.liger@wanadoo.fr>
16165
16166 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
16167
16168         * icall.c (ves_icall_System_Environment_get_Platform): Add new
16169         internal call.
16170
16171 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
16172
16173         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
16174         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
16175
16176         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
16177         we call unmanaged code which throws exceptions.
16178
16179 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16180
16181         * appdomain.h: added per-domain entry_assembly.
16182         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
16183         arguments.
16184         * icall.c: Assembly::GetEntryAssembly icall.
16185         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
16186         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
16187
16188 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16189
16190         * appdomain.h, gc.c: added mono_domain_finalize ().
16191
16192 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16193
16194         * object.c:
16195         (mono_print_unhandled_exception): changed g_warning by g_printerr
16196         because g_log has a 1024 characters limit (yeah, i got a big stack
16197         trace). Don't print exception name, that should be in ToString 
16198         returned string.
16199
16200 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16201
16202         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
16203         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
16204
16205 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16206
16207         * object.c:
16208         (mono_print_unhandled_exception): after previous commit, i realized
16209         that MS calls ToString on the exception. I changed this function to
16210         do that. This way we get stack_trace for free.
16211
16212 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16213
16214         * object.c:
16215         (mono_print_unhandled_exception): invoke Message property instead of
16216         getting 'message' field from Exception. Don't allocate memory for
16217         'trace' and 'message' if not needed.
16218
16219 2002-08-18  Dick Porter  <dick@ximian.com>
16220
16221         * unicode.c: Fix asserts to match Encoder.cs checks
16222
16223 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16224
16225         * marshal.c: fix unaligned store issue and a few wrong
16226         opcode argument types.
16227
16228 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16229
16230         * icall.c: added GetUninitializedObjectInternal internal call.
16231
16232 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
16233
16234         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
16235         to the right domain.
16236
16237 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
16238
16239         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
16240
16241         * class.c (class_compute_field_layout): set blittable to false for Strings
16242
16243         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
16244
16245 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16246
16247         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
16248         first chunk of code to create types at runtime. Code to
16249         handle ReflectedType/DeclaringType. Make reflection handles
16250         domain specific.
16251
16252 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
16253
16254         * class.c: set correct name in arrays.
16255
16256 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
16257
16258         * appdomain.c (mono_domain_transfer_object): make it work with
16259         valuetypes. bug fixes.
16260
16261 2002-08-12  Dick Porter  <dick@ximian.com>
16262
16263         * object.h: Rename some parameters to avoid c++ keywords (Patch
16264         from Joseph Wenninger <kde@jowenn.at>)
16265
16266 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
16267
16268         * icall.c: added icall to implement Assembly.GetFile*.
16269
16270 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16271
16272         * reflection.h, reflection.c: code to embed managed resources.
16273
16274 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
16275
16276         * class.c: move all the type size stuff into
16277         class_compute_field_layout().
16278
16279 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
16280
16281         * class.c: ensure enums have always the correct instance size.
16282         * unicode.c: remove wrong assert.
16283
16284 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16285
16286         * assembly.c: fix mem corruption issue.
16287         * image.h, image.c: added mono_image_get_resource () to access
16288         managed resources.
16289         * icall.c: implemented Assembly.EntryPoint property and some
16290         Managed Resources related internalcalls.
16291
16292
16293 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16294
16295         * image.c, image.h: impemented mono_image_get_entry_point ().
16296         * appdomain.c: use mono_image_get_entry_point.
16297
16298 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16299
16300         * reflection.c: support the object type argument when loading
16301         custom attributes.
16302
16303 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
16304
16305         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
16306         String as return type.
16307
16308 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
16309
16310         * reflection.c: fix encoding of named args for custom attrs to match
16311         the ms implementation. Read them back when instantiating custom
16312         attributes.
16313
16314 2002-08-02  Radek Doulik  <rodo@ximian.com>
16315
16316         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
16317         by Dietmar as quick fix
16318         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
16319         16 as stack size, used on more places as quick fix before Dietmar
16320         will fix it properly
16321
16322 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
16323
16324         * object.h, object.c: added accessors for fields and properties.
16325
16326 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
16327
16328         * class.c, class.h: made mono_class_get_field_from_name ()
16329         loop on parent types.
16330         Added mono_class_get_property_from_name ().
16331
16332 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16333
16334         * class.c, class.h: move the code to setup the type vtable in its own
16335         function so that it can be reused also for types created at runtime.
16336         Eliminate the "class" identifier from the header file.
16337         * reflection.c: setup the vtable for enums so that we can create
16338         objects for use in SetConstant ().
16339
16340 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
16341
16342         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
16343         instead of the delegate itself as this pointer (bug #28383)
16344
16345 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
16346
16347         * marshal.c (mono_marshal_get_managed_wrapper): added return type
16348         conversions.
16349
16350 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16351
16352         * loader.c: don't set the pinvoke bit on icalls.
16353
16354 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
16355
16356         * debug-helpers.c (mono_method_full_name): only print a number to
16357         indicate wrapper type (so that the output is more readable in traces).
16358
16359 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
16360
16361         * class.c (mono_class_init): include method override patch from Paolo
16362
16363 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
16364
16365         * icall.c: fixed GetTypeCode().
16366
16367 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
16368
16369         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
16370         use real delegate invoke function to make it work with multicast
16371         delegates (fix bug# 28291).
16372
16373 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16374
16375         * object.c: load constant strings.
16376
16377 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16378
16379         * reflection.c: no magic numbers.
16380         * tabledefs.h: security action enum.
16381
16382 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16383
16384         * assembly.c: fix possible memory corruption.
16385
16386 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16387
16388         * reflection.h, reflection.c: added support for linking resources.
16389         * verify.c: check we have an updated corlib.
16390
16391 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
16392
16393         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
16394         string arrays.
16395         (mono_marshal_string_array): null terminate unmanaged string arrays.
16396         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
16397
16398 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16399
16400         * icall.c: Type.GetType () can now return also types from the
16401         calling assembly.
16402
16403 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16404
16405         * loader.h, loader.c: stack walking support.
16406         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
16407         GetCallingAssembly.
16408
16409 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
16410
16411         * marshal.c: added optimisations for blittable types 
16412
16413         * class.c (mono_array_class_get): do not set blittable attribute on arrays
16414         (mono_class_setup_mono_type): set blittable attribute for single
16415         and double.
16416
16417         * marshal.c (mono_string_utf8_to_builder): impl.
16418         (mono_string_builder_to_utf8): impl.
16419         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
16420
16421 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
16422
16423         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
16424         (mono_marshal_get_managed_wrapper): impl. byref types
16425
16426 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16427
16428         * icall.c:
16429         (search_method): don't display debug message. 
16430
16431 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16432
16433         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
16434
16435 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
16436
16437         * appdomain.c: set the missing filename when throwing exception.
16438
16439 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
16440
16441         * metadata.c (mono_type_size): code cleanup
16442         (mono_type_stack_size): removed some test code
16443
16444 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
16445
16446         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
16447         mono_get_exception_file_not_found now.
16448
16449         * exception.c (mono_exception_from_name_two_strings): New version
16450         that will call a constructor with two string arguments. 
16451         (mono_get_exception_file_not_found): New helper routine, used to
16452         report file-not-found errors.
16453
16454 2002-07-20  Dick Porter  <dick@ximian.com>
16455
16456         * process.h:
16457         * process.c: Pass file handles to CreateProcess
16458         
16459         * icall.c:
16460         * file-io.h:
16461         * file-io.c: Implemented CreatePipe
16462
16463 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16464
16465         * metadata.c (mono_get_param_info): set alignment for value types
16466
16467 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
16468
16469         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
16470         Constify mono_domain_assembly_open().
16471         * loader.c: handle null namespace in icalls.
16472
16473 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
16474
16475         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
16476         (emit_str_to_ptr_conv): marshal object as structs
16477
16478         * metadata.c (mono_type_to_unmanaged): marshal object as structs
16479
16480         * marshal.c (mono_marshal_get_runtime_invoke): support value types
16481
16482 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
16483
16484         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
16485         (mono_marshal_get_native_wrapper): we an now return value types
16486
16487 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16488
16489         * verify.c: more checks implemented.
16490
16491 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
16492
16493         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
16494         (fix bug #27695)
16495         (mono_marshal_get_native_wrapper): allow byref arguments
16496         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
16497         impl. PtrToStringXXX methods
16498         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
16499         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
16500         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
16501         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
16502         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
16503
16504 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16505
16506         * reflection.c: fix buglet in parsing an assembly name.
16507
16508 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16509
16510         * marshal.c (emit_ptr_to_str_conv): first impl.
16511
16512 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16513
16514         * object.c, class.h: cache the vtable in the class as suggested by
16515         vargaz@freemail.hu (Zoltan Varga).
16516
16517 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16518
16519         * class.h, loader.c: added mono_field_from_token().
16520         * verify.c: first cut of type checking code.
16521
16522 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
16523
16524         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
16525
16526 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
16527
16528         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
16529         (fix bug #27782)
16530         (mono_marshal_get_remoting_invoke): impl.
16531         (mono_delegate_begin_invoke): impl.
16532         (mono_mb_emit_save_args): impl.
16533         (mono_delegate_end_invoke): impl.
16534         (mono_marshal_get_delegate_begin_invoke):
16535         (mono_marshal_get_delegate_end_invoke):
16536         (mono_marshal_get_delegate_invoke): generate a special name for
16537         those methods (including the signature) and associate them whith
16538         the delegate class. 
16539
16540 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
16541
16542         * reflection.[ch]: 
16543         (mono_reflection_type_from_name): now it has a MonoImage parameter
16544         which is used as the default image to search the type in. If the image
16545         is NULL or getting the type from it fails, it defaults to corlib.
16546
16547         * icall.c: changed 1 call to mono_reflection_type_from_name to match
16548         new parameter.
16549
16550 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16551
16552         * reflection.c: update the parameter table index.
16553
16554 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16555
16556         * domain.c: don't include the mark byte in the string hash.
16557
16558 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16559
16560         * icall.cs: icall for Type.GetTypeCode ().
16561         * verify: a couple of fixes and disabled local initialization checks.
16562
16563 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
16564
16565         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
16566
16567         * debug-helpers.c (mono_method_full_name): print the type of the
16568         runtime wrapper
16569
16570         * metadata.c (mono_signature_hash): a hash function for signatures
16571         (mono_signature_hash): better hash algorithm
16572
16573         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
16574
16575         * debug-helpers.c (mono_method_full_name): this can now generate
16576         method names with signatures
16577
16578         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
16579         method dont have this pointers.
16580
16581 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
16582
16583         * reflection.c: fixup typebuilder tokens.
16584         * image.c: fix buglet.
16585         * marshal.h: remove whitespace.
16586         * metadata.h, metadata.c: reinstate code that was removed.
16587         * verify.c: handle catch directives and fix another couple of bugs.
16588
16589 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
16590
16591         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
16592         (mono_marshal_get_native_wrapper): make it comp. with the old code
16593         (mono_marshal_get_native_wrapper): support boolean
16594         (mono_marshal_get_managed_wrapper): support more types
16595
16596 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
16597
16598         * class.c (class_compute_field_layout): compute class->blittable attribute.
16599
16600 2002-07-09  Dick Porter  <dick@ximian.com>
16601
16602         * threads.c: Make the thread cleaning up cope with threads that
16603         call ExitThread()
16604
16605 2002-07-08  Radek Doulik  <rodo@ximian.com>
16606
16607         * reflection.c (method_encode_code): use non-translated values to
16608         compute finally_start, this fixes exception handling on ppc, yay!
16609
16610         * decimal.h (struct signscale): fix endianess
16611
16612 2002-07-07  Radek Doulik  <rodo@ximian.com>
16613
16614         * reflection.c: swap box_val and not val
16615
16616 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
16617
16618         * reflection.c, reflection.h: handle full assembly info in type name.
16619         Handle Type arguments when loading custom attributes.
16620         * icall.c: updated to use new mono_reflection_type_from_name () method.
16621
16622 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16623
16624         * loader.c:
16625         (method_from_memberref): also print assembly name when method not found.
16626
16627 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16628
16629         * icall.c:
16630         (ves_icall_TypeGetProperties): fixed bug #27473. 
16631
16632 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16633
16634         * reflection.c: display image name and token when cannot find the
16635         .ctor for an attribute.
16636
16637 2002-07-05  Martin Baulig  <martin@gnome.org>
16638
16639         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16640
16641 2002-07-04  Dick Porter  <dick@ximian.com>
16642
16643         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
16644         compile on mingw.  This will cause mingw builds to not wait for
16645         subthreads to terminate after the main thread does.  I've lodged a
16646         bug with the mingw developers for them to wrap OpenThread().
16647
16648 2002-07-03  Dick Porter  <dick@ximian.com>
16649
16650         * threads.c: Store thread IDs instead of handles, because
16651         GetCurrentThread() returns a pseudohandle and therefore stores
16652         useless values.  mono_thread_cleanup() continues checking the
16653         array of threads until it is empty, to cope with subthreads
16654         spawning new threads after the main thread has finished.
16655
16656         * profiler.h:
16657         * profiler.c:
16658         * profiler-private.h: Pass the thread ID to thread profiler
16659         functions, instead of a handle
16660
16661 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
16662
16663         * verify.c: fixes to make it more usable.
16664         * pedump.c: added --verify code to verify IL code in an assembly.
16665
16666 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16667
16668         * reflection.c: turn errors into warnings to allow compiling corlib.
16669
16670 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
16671
16672         * reflection.c: add special cases to compile corlib.
16673
16674 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16675
16676         * reflection.c: handle properties with only a set method.
16677
16678 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
16679
16680         * opcodes.h: add enum with opcodes in opval order.
16681
16682 2002-07-01  Dick Porter  <dick@ximian.com>
16683         
16684         * object.h:
16685         * object.c (mono_runtime_run_main): Removed unneeded argument
16686
16687 2002-06-28  Martin Baulig  <martin@gnome.org>
16688
16689         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
16690
16691 2002-06-27  Dick Porter  <dick@ximian.com>
16692
16693         * threads.c: Store the handle in both the parent thread and in the
16694         subthread, to minimise the time between starting a new thread and
16695         storing its ID.
16696
16697 2002-06-26  Dick Porter  <dick@ximian.com>
16698
16699         * appdomain.c (mono_runtime_cleanup): Close the socket library
16700         after all the threads have finished, not before
16701
16702 2002-06-26  Martin Baulig  <martin@gnome.org>
16703
16704         * debug-symfile.c (mono_debug_find_source_location): Added
16705         `guint32 *line_number' argument.  If it's not NULL, store the line number
16706         there and return the file name without the line number.
16707
16708 2002-06-25  Dick Porter  <dick@ximian.com>
16709
16710         * icall.c:
16711         * process.h:
16712         * process.c: Process forking and other support functions
16713
16714 2002-06-25  Dick Porter  <dick@ximian.com>
16715
16716         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
16717         things dont happen when the image is closed.
16718         (mono_image_lookup_resource): Walk the resource section looking
16719         for a particular entry
16720
16721         * cil-coff.h: PE resource section decoding
16722
16723 2002-06-25  Dick Porter  <dick@ximian.com>
16724         
16725         * assembly.h:
16726         * assembly.c: 
16727         (mono_assembly_foreach): Accessor functions to walk the list of
16728         loaded assemblies
16729         (mono_assembly_set_main):
16730         (mono_assembly_get_main): Process methods need to know which
16731         assembly is the "main" one
16732
16733         * object.c (mono_runtime_run_main): Record the main assembly
16734
16735         * debug-helpers.c: Fix typo
16736
16737 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
16738
16739         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
16740         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
16741
16742 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16743
16744         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
16745
16746 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
16747
16748         * image.c (do_mono_image_open): Initialize reference count,
16749         otherwise we leak the MonoImage.
16750
16751 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16752
16753         * reflection.c: small tweak to handle self-hosting.
16754
16755 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
16756
16757         * reflection.c: fix type name parse code.
16758
16759 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16760
16761         * reflection.c: break out of the loop.
16762         * image.c: special case corlib.
16763
16764 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16765
16766         * reflection.c: add all the custom attrs at the end to ensure the
16767         ctors have been properly initialized when the attributes are defined
16768         in the current assembly.
16769
16770 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16771
16772         * reflection.c: handle correctly multiple-nested types.
16773
16774 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
16775
16776         * row-indexes.h: fix typos.
16777         * reflection.c: adjust for typos and fix method_def_or_ref
16778         encoding in MethodImpl table.
16779
16780 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16781
16782         * reflection.c: fix entry point patching (thanks Serge!).
16783
16784 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
16785
16786         * verify.c: add check for System.Exception
16787
16788 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
16789
16790         * image.c, class.c: minifix for code just c&p'ed.
16791         * reflection.c: warning fix.
16792         * object.h, loader.h, domain.c: load also StringBuilder.
16793
16794 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
16795
16796         * marshal.h, marshal.c: some support code to handle complex marshaling.
16797
16798 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16799
16800         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
16801         Better signatures with vtable error dump.
16802
16803 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
16804
16805         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
16806
16807 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
16808
16809         * icall.c (ves_icall_Type_GetField): impl.
16810
16811 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16812
16813         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
16814         to retrieve a marshal description blob for a field or param.
16815
16816 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
16817
16818         * reflection.h, reflection.c: change order of nested type emission
16819         to avoid table corruption. The NestedTypes table is sorted.
16820         * icall.c: change order of GetConstructor results to workaround mcs bug.
16821
16822 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
16823
16824         * reflection.h, reflection.c: handle field and param marshal
16825         information.
16826
16827 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
16828
16829         * icall.c, marshal.c marshal.h: more Marshal class implementation.
16830
16831 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16832
16833         * reflection.c: fix call convention.
16834
16835 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16836
16837         * reflection.h, reflection.c: mono_image_get_memberref_token()
16838         takes a type instead of a class, now. Added
16839         mono_image_get_array_token() to create tokens for the special
16840         multi-dim array methods.
16841
16842 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
16843
16844         * assembly.c: handle modules (no assembly table). Split
16845         loading references in its own function.
16846         * class.c: handle moduleref resolution scope.
16847         * image.c, image.h: cache module name in image.
16848
16849 2002-06-07  Martin Baulig  <martin@gnome.org>
16850
16851         * reflection.c (mono_image_get_type_info): Only add a class layout entry
16852         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
16853
16854 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16855
16856         * icall.c: more signature fixes that used uint instead of int.
16857
16858 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16859
16860         * reflection.c: fixed signature of field refs.
16861
16862 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
16863
16864         * class.c, reflection.c: handle typerefs of nested types
16865         (both on read and when writing files).
16866
16867 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
16868
16869         * icall.c: fix method signatures that tried to workaround the previous
16870         typo, d'oh!
16871
16872 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
16873
16874         * debug-helpers.c: fix typo.
16875
16876 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
16877
16878         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
16879         rewrote the PE/COFF writing code (our programs are understood by the
16880         ms runtime, now).
16881
16882 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
16883
16884         * gc.c, gc.h, icall.c: weakreference support.
16885
16886 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
16887
16888         * Makefile.am, mono-config.c: use $(sysconfdir).
16889
16890 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
16891
16892         * icall.c: changed default precision of Double.ToString() to 15.
16893         Fixed memory leak. Unified with Single.ToString.
16894
16895 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
16896
16897         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
16898
16899 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
16900
16901         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
16902         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
16903         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
16904         and myself.
16905
16906 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
16907
16908         * debug-symfile.c, sysmath.c: yet more compilation fixes.
16909
16910 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
16911
16912         * reflection.c, socket-io.c: more compilation fixes.
16913
16914 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
16915
16916         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
16917         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
16918         unicode.c: warning and compiler compatibility fixes.
16919
16920 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
16921
16922         * class.h, metadata.c: fixed warnings/compilation errors.
16923
16924 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
16925
16926         * Makefile.am, mono-config.c, mono-config.h: configuration file
16927         support routines.
16928         * loader.c, loader.h: make Dll mapping configurable at runtime in the
16929         config file. Export methods to insert and lookup mappings.
16930
16931 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
16932
16933         * reflection.c: handle types and boxed objects in custom attr
16934         constructors.
16935
16936 2002-05-30  Martin Baulig  <martin@gnome.org>
16937
16938         * debug-symfile.c
16939         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
16940
16941 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
16942
16943         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
16944         to lookup the implmap row for a P/Invoke method.
16945         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
16946         P/Invoke method from the runtime on an as needed basis.
16947
16948 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
16949
16950         * metadata.c (mono_metadata_parse_signature): impl.
16951
16952 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
16953
16954         * class.c: handle .pack directive.
16955
16956 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
16957
16958         * object.c: initialize static fields with RVA data.
16959
16960 2002-05-25  Martin Baulig  <martin@gnome.org>
16961
16962         * debug-symfile.c
16963         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
16964
16965 2002-05-24  Martin Baulig  <martin@gnome.org>
16966
16967         * debug-symfile.c
16968         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
16969         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
16970         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
16971
16972 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
16973
16974         * object.c: special case string ctros in invoke.
16975         * gc.c: silly whitespace changes.
16976
16977 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
16978
16979         * threadpool.[ch]: impl. a threadpool that can
16980         be used by mint and mono.
16981
16982 2002-05-22  Martin Baulig  <martin@gnome.org>
16983
16984         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
16985         The first argument is now a `MonoReflectionModuleBuilder *', the return
16986         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
16987         `methods' field to get the method builder.  The `token' argument is the
16988         unfixed token.
16989
16990         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
16991         invalid characters instead of g_assert_not_reached()ing.  This seems
16992         to be the behaviour of mscorlib.
16993
16994 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
16995
16996         * object.c (mono_runtime_invoke_array): applied patch from Rachel
16997         Hestilow to fix bug #25104
16998
16999 2002-05-21  Martin Baulig  <martin@gnome.org>
17000
17001         * debug-symfile.c (mono_debug_find_source_location): New function.
17002         Looks up an IL offset in the line number table and returns the source
17003         location as a string.
17004
17005 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17006
17007         * icall.c:
17008         (mono_double_ToStringImpl): changed %f by %g until we have something
17009         better.
17010
17011 2002-05-21  Nick Drochak  <ndrochak@gol.com>
17012
17013         * icall.c : Use different name for Math.Pow's icall.  Needed to check
17014         parameters first in C#.
17015
17016 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17017
17018         * icall.c, reflection.h: added icall to get info about an event.
17019
17020 2002-05-20  Radek Doulik  <rodo@ximian.com>
17021
17022         * object.c (mono_value_box): don't use memcpy for boxing on BIG
17023         endian
17024         (mono_value_box): don't use memcpy for small sizes on
17025         architectures with unaligned access
17026
17027 2002-05-20  Martin Baulig  <martin@gnome.org>
17028
17029         * reflection.c (mono_reflection_setup_internal_class): Don't crash
17030         if `tb->parent == NULL'.
17031         (mono_reflection_create_internal_class): New function.  This is
17032         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
17033         for enum types.
17034
17035         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
17036         New interncall.
17037
17038 2002-05-19  Martin Baulig  <martin@gnome.org>
17039
17040         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
17041         argument to get the length, don't default to the array length.
17042
17043 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
17044
17045         * assembly.c (mono_assembly_setrootdir): New function used to
17046         override the MONO_ASSEMBLIES directory.
17047
17048 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17049
17050         * icall.c: ValueType_GetHashCode() initialize local var.
17051
17052 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17053
17054         * reflection.c: sort custom attributes table.
17055
17056 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17057
17058         * reflection.c: support named args in custom attributes (write support).
17059
17060 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
17061
17062         * reflection.c: fix finally position calculation.
17063
17064 2002-05-15  Radek Doulik  <rodo@ximian.com>
17065
17066         * reflection.c: fixed endianess at many places
17067
17068         * icall.c (ves_icall_InitializeArray): comment out debug msg
17069
17070 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
17071
17072         * object.c (mono_unhandled_exception): new function to handle
17073         unhandled exceptions.
17074         (mono_unhandled_exception): call the UnhandledException event.
17075         (mono_runtime_delegate_invoke): impl.
17076
17077 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
17078
17079         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
17080         returns the RVA, not the direct pointer to the data. Handle the case
17081         when the class size is fixed.
17082
17083 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
17084
17085         * reflection.c: fix some endianess issues.
17086
17087 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
17088
17089         * object.c (mono_runtime_invoke): is now able to catch exceptions.
17090
17091         * threads.c (mono_thread_init): added a callback which is invoked
17092         at thread start.
17093
17094 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17095         
17096         * icall.c: make GetHashCode return non-negative values.
17097
17098 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
17099
17100         * object.c, icall.c, gc.c: revert to address-based hashcode.
17101
17102 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
17103
17104         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
17105
17106 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17107
17108         * icall.c, class.c: special case <Module>.
17109
17110 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
17111
17112         * icall.c: fix bug in GetNow().
17113
17114 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
17115
17116         * object.c (mono_runtime_class_init): make sure that we call all
17117         static class constructors.
17118
17119 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
17120
17121         * reflection.c: sort methodsemantics table.
17122
17123 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
17124
17125         * reflection.h, reflection.c: honour init locals setting.
17126
17127 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
17128
17129         * icall.c: copied Double ToStringImpl for Single ToStringImpl
17130
17131 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17132
17133         * reflection.c: support ContructorBuilders in attribute blob creation.
17134
17135 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17136
17137         * reflection.c: some changes to build a binary that can be run
17138         directly in windows.
17139
17140 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17141
17142         * loader.c: print a big message when an icall can't be found.
17143
17144 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17145
17146         * string-icalls.c: fix bug 24248.
17147
17148 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
17149
17150         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
17151         icall.c, reflection.h: separate assembly loading by pathname and by
17152         assembly name. Use the MONO_PATH env var to search for assemblies.
17153
17154 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17155
17156         * assembly.c, image.h: add some support for assemblies
17157         with multiple modules.
17158         * class.c, class.h: export mono_class_from_typeref().
17159         * loader.c: remove duplicated code and use mono_class_from_typeref(),
17160         instead.
17161
17162 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17163
17164         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
17165         documentation says (the ECMA one is correct).
17166
17167 2002-05-02  Dick Porter  <dick@ximian.com>
17168
17169         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
17170         Don't name the synchronisation mutex.
17171
17172 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
17173
17174         * rand.c
17175         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
17176         Make the prototypes match.
17177         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
17178         Same.
17179
17180         * icall.c
17181         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
17182         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
17183         all systems have tm.tm_zone, so use strftime() with %Z to print
17184         the timezone abreviation into a temp string.
17185
17186         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
17187         rather than mono_array_addr() on a MonoString on Big Endian
17188         machines.
17189
17190 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
17191
17192         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
17193         fix bug 24041
17194
17195 2002-04-30  Dick Porter  <dick@ximian.com>
17196
17197         * socket-io.c: Cope with SOCKET being an integer rather than a
17198         pointer now.
17199
17200         * threads.c: Added Thread_free_internal, to deal with thread
17201         handle cleanup.  Moved calls to handle_store() and handle_remove()
17202         to start_wrapper(), so each can only be called once.  Allocate
17203         synchronisation blocks with GC_malloc(), and use GC finalisation
17204         to close the handles.
17205
17206         * icall.c: added System.Threading.Thread::Thread_free_internal
17207
17208 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17209
17210         * icall.c: support Environment.Exit, CommandLineArgs().
17211
17212 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
17213
17214         * object.c, object.h: added mono_runtime_run_main () and
17215         mono_runtime_get_main_args () for use in System.Environment.
17216
17217 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
17218
17219         * gc.c: fix thinko, enable actual finalization since the jit is now
17220         fixed.
17221
17222 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17223
17224         * gc.c, object.c: take into account that an object may be offset wrt the address
17225         returned by GC_malloc().
17226
17227 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
17228
17229         * image.c: handle files without entries in the assembly table (modules).
17230
17231 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
17232
17233         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
17234         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
17235         allowed to be null when it's System.Object class setup.
17236
17237 2002-04-27  Martin Baulig  <martin@gnome.org>
17238
17239         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
17240         if `tb->parent == NULL' rather than crashing.
17241
17242 2002-04-28  Nick Drochak  <ndrochak@gol.com>
17243
17244         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
17245         calling acos() where asin() should have been called.
17246
17247 2002-04-26  Martin Baulig  <martin@gnome.org>
17248
17249         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
17250         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
17251         there's a subdirectory called `System', but we don't want to read that
17252         subdirectory as an assembly.
17253
17254 2002-04-25  Martin Baulig  <martin@gnome.org>
17255
17256         * debug-symfile.c: Reflect latest MonoString changes.
17257
17258 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
17259
17260         * rand.c, rand.h: instance method icalls need to have an explicit
17261         this pointer as first argument in the C implementation.
17262
17263 2002-04-25  Nick Drochak <ndrochak@gol.com>
17264
17265         * icall.c: Fix typo in map for GetNonZeroBytes
17266
17267 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17268
17269         * string-icalls.c : String does now passes unit tests without any 
17270         errors, the following changes has been made:
17271         
17272         Implemented replace methods.
17273         Renaming of methods to (try) follow the standard.
17274         Fixed compare ordinal
17275         Made all memory allocated directly to function instead of via icall function.
17276         Small performance fix in is_in_array function
17277                         
17278  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
17279
17280         c (mono_string_Internal_ctor_charp_int_int):
17281         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
17282         sindex < 0, throw ArgumentOutOfRangeException instead of
17283         ArgumentNullException.
17284
17285         Added new check for length == 0, however
17286         I need to make it return String.Empty from the C code.
17287         
17288         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
17289         that calculate the length for us here.
17290         
17291         (mono_string_Internal_ctor_sbytep_int_int): Replaced
17292         mono_string_new_utf16 with mono_string_new, since value is utf8.
17293
17294 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17295
17296         * object.c: register the object for finalization if needed.
17297         Allocate one more char in the string for the terminating 0 char.
17298
17299 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
17300
17301         * class.c, class.h, image.c: check if a type implemenst a destructor.
17302         Use the proper key for array class lookups.
17303         * icall.c: register the icalls in the System.GC class.
17304         * gc.c, gc.h: GC-related functions and icalls.
17305
17306 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17307
17308         * icall.c:
17309         * socket-io.c:
17310         * unicode.c: free some strings gotten from mono_string_to_utf8 and
17311         changed a couple of free () by g_free ().
17312
17313         * decimal.c: one-liner in the comments for decimal2string ().
17314
17315 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17316
17317         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
17318
17319 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
17320
17321         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
17322         * object.c (mono_runtime_invoke_array) : handle null in params
17323
17324 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17325
17326         * string-icalls.c: fixed bug in split (one off bug)
17327
17328 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17329
17330         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
17331         * icalls.c: added String::Equals as internal method
17332
17333 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
17334
17335         * threads.c: fixed bug in the double interlocked functions
17336
17337 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
17338
17339         * threads.c: implemented all of the new interlocked icalls.
17340         * string-icalls.c: fix a bug in insert.
17341         * icalls.c: added the icalls for interlocked, removed old string functions.
17342         
17343 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17344
17345         * loader.c: fix off-by-one error when reading argument names.
17346
17347 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17348
17349         * profiler.c: win32 counter implementation (untested).
17350         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
17351         (the latter needs testing and more complete impl. from win32 folks).
17352
17353 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
17354
17355         * object.c: mono_array_new_full workaround mono_array_class_get
17356         problem.
17357
17358 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17359
17360         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
17361         * object.h (mono_string_chars): Changed casting type.
17362
17363 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17364
17365         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
17366                            method signatures to use gunichar2 instead of gint16.
17367
17368 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
17369
17370         * object.h, object.c: domain-specific versions of mono_object_new and
17371         mono_array_new.
17372
17373 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
17374
17375         * object.c: changed String layout
17376
17377         * string-icalls.c (mono_string_Internal_ctor_chara): added
17378         internal string constructors.
17379
17380 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
17381
17382         * threads.c: pass 'this' to the thread start routine.
17383
17384 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17385
17386         * string-icalls.c: fix IndexOf and LastIndexOf. Now
17387         InternalCompareStr don't call twice mono_string_cmp_char for the last
17388         character. Improved performance in mono_string_cmp_char.
17389
17390 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
17391
17392         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
17393         code into its own library: libmonoruntime.
17394
17395 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
17396
17397         * object.h, object.c: changed array format so that szarrays do not
17398         require a bounds structure.
17399         * icall.c, appdomain.c: support for new szarray format.
17400
17401 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
17402
17403         * metadata.c: compare also the retuns type when comparing signatures:
17404         we didn't do this as an optimization since really overloaded methods
17405         must differ also in the arguments, but this doesn't work with
17406         low-level IL code (or when using explicit conversion operators: see
17407         bug#23498 for an example).
17408
17409 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
17410
17411         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
17412
17413 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
17414
17415         * icall.c: make MonoType::GetElementType its own icall.
17416
17417 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
17418
17419         * icall.c: remove MonoMethod_get_Name().
17420         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
17421         object.
17422
17423 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17424
17425         * string-icalls.c: optimized a few methods.
17426
17427 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
17428
17429         * icall.c: added all new string internal calls
17430         * string-icalls.c: added, new string internal call implementation.
17431         * object.c: added mono_string_new_size for allocating a string a size
17432
17433 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
17434
17435         * object.c (mono_object_isinst): use the same code as in the
17436         optimized x86 version.
17437
17438 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
17439
17440         * profiler.c: TSC-based timer code (faster and more accurate).
17441         Not hooked up in configure, yet (set USE_X86TSC to 1).
17442
17443 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
17444
17445         * profiler.c, profiler.h: track time spent compiling methods.
17446         * threads.c: track thread creation/destruction.
17447
17448 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
17449
17450         * profiler.c, profiler.h, profiler-private.h: profiling interface
17451         and sample implementation. Moved here so that it can be used also by
17452         the jit.
17453
17454 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
17455
17456         * reflection.c, reflection.h: keep types and other handles separate in
17457         the hash tables for referred tokens. Add guid for modules.
17458
17459 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
17460
17461         * assembly.c: fix bugs found with valgrind.
17462         * metadata.h, metadata.c: added mono_metadata_guid_heap().
17463
17464 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
17465
17466         * threads: added icall support for getting current domain for
17467                    the thread.
17468  
17469 2002-04-13  Martin Baulig  <martin@gnome.org>
17470
17471         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
17472         (MonoDebugVarInfo): Added `index' field for register based addresses.
17473         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
17474         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
17475         `MonoDebugVarInfo *params' and `guint32 this_offset' with
17476         `MonoDebugVarInfo *this_var'.
17477
17478         * debug-symfile.c (relocate_variable): New static function to write
17479         a location description for a local variable or method parameter.
17480
17481 2002-04-12  Martin Baulig  <martin@gnome.org>
17482
17483         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
17484         stack offset and begin/end scope address of a local variable.
17485         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
17486         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
17487         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
17488
17489         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
17490         Added new relocation types for start/end scope of a local variable.
17491
17492 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
17493
17494         * object.h: add mono_object_domain() macro.
17495         * reflection.c: handle typespecs.
17496         * icall.c: MonoMethod::get_Name() implementation.
17497
17498 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17499
17500         * icall.c: String::GetHashCode() icall implementation.
17501
17502 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17503
17504         * icall.c: String::IndexOfAny icall.
17505         * object.c, object.h: make array->max_length more useful.
17506         Intrduced mono_object_class() and mono_string_length() macros.
17507
17508 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17509
17510         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
17511         instead of g_unichar_isdigit.
17512
17513 2002-04-11  Nick Drochak  <ndrochak@gol.com>
17514
17515         * icall.c: Implement a simple Double.ToString().
17516
17517 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
17518
17519         * appdomain.h: only io-layer.h is supposed to be included.
17520         * icall.c: explicitly import environ. Fix warning.
17521
17522 2002-04-10  Nick Drochak  <ndrochak@gol.com>
17523
17524         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
17525                 return true even if it's not Daylight Savings time.
17526                 Only return false for the case where the function isn't
17527                 implemented for a plaform (read Windows).
17528
17529 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
17530
17531         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
17532         data with a mutex.
17533
17534 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
17535
17536         * mempool.c (mono_mempool_alloc): only use g_malloc when
17537         absolutely necessary.
17538
17539 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17540
17541         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
17542
17543         * class.c (mono_class_vtable): use domain mempool to allocate vtable
17544         (mono_class_proxy_vtable): use domain mempool
17545
17546 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
17547
17548         * appdomain.h, appdomain.c: split initialization that requires the
17549         execution engine support into mono_runtime_init().
17550
17551 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
17552
17553         * class.c (mono_class_init): don't include vtable inside MonoClass
17554         to save some memory, gather some statistics.
17555         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
17556
17557 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17558
17559         * icall.c: internalcall implementation for ValueType.Equals().
17560
17561 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
17562
17563         * object.c (mono_message_init): moved 
17564         (mono_runtime_exec_main): new arch. independent impl.
17565         (mono_runtime_invoke_array): new method - like
17566         mono_runtime_invoke, but you can pass an array of objects.
17567         (mono_remoting_invoke): new arch. independent impl.
17568         (mono_message_invoke): new arch. independent impl.
17569         (mono_runtime_class_init): new arch. independent impl.
17570         (mono_runtime_object_init): new arch. independent impl.
17571
17572 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
17573
17574         * metadata.c, object.c, reflection.c: documented the exported
17575         functions.
17576
17577 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
17578
17579         * icall.c: simpler code to pass the assembly builder data to corlib.
17580         Implement GetNestedTypes() internalcall.
17581
17582 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
17583
17584         * class.c: warn if a type can't be loaded.
17585
17586 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
17587
17588         * image.h: typedef MonoImageOpenStatus
17589         * types.h: removed unused file
17590         
17591 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
17592
17593         * icall.c: Enum_ToObject accepts enum value arguments.
17594
17595 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
17596
17597         * class.c: move initialization of properties, events and nested
17598         classes, so that they happen for interfaces, too.
17599
17600 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
17601
17602         * icall.c: cleanup some ugly casts in Array_SetValue*.
17603
17604 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
17605
17606         * icall.c: the values array fro enums is of the correct type, now.
17607         Implement (correctly) getFullName instead of assQualifiedName for
17608         MonoType.
17609         * reflection.h, reflection.c: added mono_type_get_name ().
17610
17611 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
17612
17613         * assembly.c, image.h: for each MonoImage, record from wich assembly
17614         it was loaded.
17615         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
17616         Make Type.Assembly work.
17617
17618 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
17619
17620         * debug-symfile.h: use char* instead of gpointer to avoid
17621         unnecessary casts.
17622
17623         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
17624
17625         * icall.c (ves_icall_InternalExecute): impl. FielSetter
17626         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
17627
17628 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
17629
17630         * icall.c (mono_message_init): impl. (code cleanup)
17631         (ves_icall_InternalExecute): impl. FieldGetter
17632
17633         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
17634         defined we call all (non-static)methods through the vtable. 
17635
17636 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
17637
17638         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
17639         finalizer even though the memory is still referenced (and the chunk of
17640         memory is not freed).
17641
17642 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
17643
17644         * assembly.c: fix brokeness.
17645
17646 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
17647
17648         * class.c: kill some warnings. Check explicit interface method
17649         implementation also without considering the namespace.
17650         Load also literal strings in static class data.
17651
17652 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
17653
17654         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
17655         (default_assembly_name_resolver): Make the resolver take the
17656         "base" directory where the assembly was originally defined, so we
17657         can load DLLs that are in the same directory as the assembly that
17658         is being referenced.
17659
17660 2002-03-28  Dick Porter  <dick@ximian.com>
17661
17662         * file-io.h: 
17663         * file-io.c:
17664         * socket-io.c: 
17665         * unicode.h: 
17666         * unicode.c: Warning cleanups
17667
17668 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
17669
17670         * object.h, reflection.h: use the correct type instead of MonoObject.
17671
17672 2002-03-28  Martin Baulig  <martin@gnome.org>
17673
17674         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
17675         (mono_debug_update_symbol_file): Initialize classes if necessary.
17676
17677 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17678
17679         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
17680         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
17681
17682 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
17683
17684         * assembly.h: fix function prototype.
17685         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
17686         * mono-endian.h: use const cast.
17687
17688 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17689
17690         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
17691
17692 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
17693
17694         * loader.c: don't assert when a typeref can't be loaded, give
17695         a chance to the runtime to trow an exception instead.
17696         * loader.h: fix warning.
17697
17698 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
17699
17700         * class.c (mono_class_proxy_vtable): added proxy support
17701
17702 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
17703
17704         * icall.c: removed last of PAL calls, added System.Environment
17705         * file-io.h, file-io.c: MonoIO implementation
17706         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
17707
17708 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
17709
17710         * appdomain.c: do not use the byte marker in ldstr table lookup.
17711         * debug-helpers.c: allow two ':' to separate class and method name.
17712         * object.c: allocate arrays bounds with the GC, too.
17713         * verify: add a few more checks.
17714
17715 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
17716
17717         * reflection.c: output also literal strings. Allocate parameter data
17718         with GC_malloc() (thanks, Martin, for catching this!).
17719
17720 2002-03-26  Martin Baulig  <martin@gnome.org>
17721
17722         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
17723         include the `this' offset in the `param_offsets'.
17724
17725 2002-03-25  Martin Baulig  <martin@gnome.org>
17726
17727         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
17728         mono_debug_get_class() function to get the classes. Added new
17729         relocation types for arrays and strings.
17730         (mono_debug_get_class): New static function to search in all
17731         referenced assemblies for a metadata token.
17732
17733         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
17734
17735 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
17736
17737         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
17738         hold gc-allocated objects. Make the string heap a stream like the
17739         others. Removed duplicated code when writing stream info.
17740         Added asserts to catch possible buffer overflows. Set the sorted map
17741         for tables that need sorting. Added some documentation.
17742
17743 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
17744
17745         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
17746         for interned strings and vtables.
17747
17748 2002-03-24  Martin Baulig  <martin@gnome.org>
17749
17750         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
17751         it in the array since it was created with g_slist_prepend().
17752
17753 2002-03-24  Martin Baulig  <martin@gnome.org>
17754
17755         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
17756         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
17757         (mono_debug_method_from_token): Renamed to
17758         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
17759         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
17760
17761         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
17762         relocation types.
17763
17764         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
17765
17766 2002-03-24  Martin Baulig  <martin@gnome.org>
17767
17768         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
17769         (mono_debug_method_from_token): New func.
17770
17771         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
17772         New interncall, calls mono_debug_local_type_from_signature().
17773         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
17774         calls mono_debug_method_from_token().
17775
17776 2002-03-23  Martin Baulig  <martin@gnome.org>
17777
17778         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
17779         specifies the number of bytes to be converted, not the array size.
17780         Return the number of chars, not the number of bytes.
17781         (ves_icall_iconv_get_chars): The `byteCount' argument
17782         specifies the number of bytes to be converted, not the array size.
17783
17784 2002-03-23  Martin Baulig  <martin@gnome.org>
17785
17786         * reflection.h (MonoReflectionSigHelper): New type.
17787
17788         * reflection.c (mono_reflection_sighelper_get_signature_local),
17789         (mono_reflection_sighelper_get_signature_local): New functions.
17790
17791         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
17792         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
17793         interncalls.
17794
17795 2002-03-23  Martin Baulig  <martin@gnome.org>
17796
17797         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
17798         is_writeable is set.
17799         (mono_raw_buffer_update): New function to write the modified map
17800         back to disk.
17801
17802         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
17803
17804         * debug-symfile.c (mono_debug_update_symbol_file): Call
17805         mono_raw_buffer_update() when done writing.
17806
17807 2002-03-23  Martin Baulig  <martin@gnome.org>
17808
17809         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
17810
17811         * debug-symfile.c: Added support for arguments and local variables.
17812
17813 2002-03-23  Dick Porter  <dick@ximian.com>
17814
17815         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
17816         protected by ifdefs, hence breaking the w32 build.
17817
17818 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17819
17820         * object.c: implement is_interned() the right way.
17821
17822 2002-03-21  Martin Baulig  <martin@gnome.org>
17823
17824         * debug-symfile.[ch]: New files to handle debugging information
17825         files. There's also support to dynamically update these symbol
17826         files to include machine dependent information.
17827
17828 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
17829
17830         * threads.c (mono_thread_create): new function to create thread
17831         from C
17832
17833 2002-03-20  Martin Baulig  <martin@gnome.org>
17834
17835         * icall.c (ves_icall_InternalInvoke): Create a new object if the
17836         method is a constructor.
17837         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
17838         points to ves_icall_InternalInvoke().
17839
17840 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
17841
17842         * file-io.c: Flush shouldn't throw exceptions.
17843
17844 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
17845
17846         * file-io.c: FileStream flush support; FileSetLength now
17847         restores file pointer.
17848
17849 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
17850
17851         * class.c: set image for pointer classes.
17852
17853 2002/03/19  Nick Drochak <ndrochak@gol.com>
17854
17855         * sysmath.c: Forgot one.
17856
17857 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
17858
17859         * sysmath.c: Avoid redefining existing names.
17860
17861 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
17862
17863         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
17864         handled by runtime as icall rather than dllimport from libm.so
17865         * file-io.c, file-io.h: fixed handle argument type.
17866
17867 2002-03-18  Dick Porter  <dick@ximian.com>
17868
17869         * reflection.c (mono_image_get_type_info): rename interface to
17870         iface, because of "#define interface struct" on windows.
17871
17872 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
17873
17874         * class.c, class.h: rename and export mono_ptr_class_get().
17875         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
17876         * reflection.c, reflection.h, icall.c: better/saner type name
17877         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
17878         method signatures.
17879
17880 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
17881
17882         * class.c (mono_class_init): removed hardcoded GHC_SLOT
17883
17884         * icall.c (ves_icall_InternalInvoke): impl.
17885
17886 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
17887
17888         * reflection.c: output the interface map table, too.
17889
17890 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17891
17892         * class.c (class_compute_field_layout): separate computation of 
17893         static field layout
17894
17895 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
17896
17897         * icall.c: added System.Buffer support.
17898         * file-io.c: moved file icalls from PAL to FileStream.
17899
17900 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
17901
17902         * icall.c (ves_icall_System_Object_GetHashCode): impl.
17903
17904 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
17905
17906         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
17907
17908 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
17909
17910         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
17911
17912 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
17913
17914         * debug-helpers.{c,h}: moved here from monograph some useful functions
17915         to locate a method by name/signature in a class or image. Included
17916         also a small and flexible IL disassembler.
17917
17918 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
17919
17920         * reflection.c: fixup tokens in methods with small header size, too.
17921
17922 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
17923
17924         * object.c (mono_string_to_utf8): remove assert(!error), instead
17925         print a warning. 
17926
17927 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
17928
17929         * icall.c: update to the new mono_Array_class_get interface.
17930
17931 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17932
17933         * appdomain.c, object.c: Boehm-GC enable.
17934         * icall.c: make get_data_chunk() support split data requests.
17935         Ensure a class is initialized in more cases. Return only the first
17936         property found in GetProperties() or the compiler gets confused. 
17937         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
17938         * reflection.h, reflection.c: add fixup mechanism for field and method
17939         tokens. Initialize assembly->typeref in a single place. Output
17940         properties after events. Support custom attributes for events, too.
17941         Typo fix for paramter custom attrs.
17942
17943 2002-03-07  Martin Baulig  <martin@gnome.org>
17944
17945         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
17946
17947 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
17948
17949         * class.c (mono_array_class_get): fix. for multi. dim. arrays
17950
17951 2002-03-06  Martin Baulig  <martin@gnome.org>
17952
17953         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
17954         non-zero lower bounds. See testcases #F10-#F13.
17955
17956 2002-03-05  Martin Baulig  <martin@gnome.org>
17957
17958         * exception.c (mono_get_exception_argument_out_of_range): New exception.
17959
17960         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
17961         ves_icall_System_Array_GetValue(), only calculate the absolute array position
17962         here.
17963         (ves_icall_System_Array_SetValue): Likewise.
17964         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
17965         as argument and does the actual work. This function is used when copying a
17966         multi-dimensional array.
17967         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
17968         now do all the widening conversions of value types.
17969         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
17970
17971 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
17972
17973         * class.c: remove some magic numbers and use the smbolic names,
17974         instead. Added init_events() to load event info at class init time.
17975         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
17976         and mono_metadata_methods_from_event().
17977         * reflection.h, reflection.c: added support for writing out the evnets
17978         related information.
17979
17980 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
17981
17982         * reflection.h, icall.c: use a different method (GetInterfaces)
17983         to gather interface info and add isbyref, isprimitive and
17984         ispointer to the ves_icall_get_type_info() return value.
17985
17986 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
17987
17988         * class.h: stared adding support for events.
17989         * icall.c: split find_members implementation. Added debug icall to get
17990         the address of an object.
17991         * reflection.c: handle TypeBuilders in mono_type_get_object().
17992
17993 2002-03-01  Martin Baulig  <martin@gnome.org>
17994
17995         * icall.c (ves_icall_System_Array_GetLength): This must throw an
17996         ArgumentOutOfRangeException(), not an ArgumentException().
17997         (ves_icall_System_Array_GetLowerBound): Likewise.
17998         (ves_icall_System_Array_GetValue): Improved argument checking.
17999         (ves_icall_System_Array_SetValue): Improved argument checking.
18000
18001 2002-03-01  Martin Baulig  <martin@gnome.org>
18002
18003         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
18004         called with invalid arguments rather than just dying with g_assert().
18005         (ves_icall_System_Array_SetValue): Likewise.
18006         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
18007         raise a NotImplementedException instead.
18008         (ves_icall_System_Array_GetLength): Added argument checking.
18009         (ves_icall_System_Array_GetLowerBound): Added argument checking.
18010
18011 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
18012
18013         * object.h (mono_assert): new macros mono_assert and
18014         mono_assert_not_reached
18015
18016 2002-02-28  Martin Baulig  <martin@gnome.org>
18017
18018         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
18019         and "System::String::IsInterned" to "System::String::_IsInterned".
18020
18021 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
18022
18023         * icall.c: remove hacks for typebuilder. Added icall to create a
18024         modified type from a tybebuilder.
18025         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
18026         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
18027         to create a backing MonoClass for a TypeBuilder.
18028
18029 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18030
18031         * class.c, class.h: more refactoring of class init.
18032         Export mono_class_setup_mono_type() and mono_class_setup_parent().
18033
18034 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
18035
18036         * marshal.c, marshal.h: start of marshaling interface.
18037
18038 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18039
18040         * icall.c: fix order in assembly qualified name icall.
18041
18042 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18043
18044         * class.c: do not free str, since we store it in the hash table.
18045         * reflection.h: add label field to MonoILExceptionInfo.
18046         * reflection.c: handle references to more than one assembly. Handle
18047         case when there isn't a module created in the assembly.
18048
18049 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
18050
18051         * class.c: Fix typo. Start refactoring of class init code.
18052
18053 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
18054
18055         * appdomain.c: exit with 1 on error.
18056         * class.c: we already have the name in MonoClassField.
18057         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
18058         MonoStreamHeader instead of an offset of image->raw_metadata.
18059
18060 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
18061
18062         * appdomain.c (mono_init): Be even more descriptive about the error.
18063
18064 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
18065
18066         * appdomain.c: give the user an informative message when corlib can't
18067         be loaded.
18068
18069 2002-02-26  Martin Baulig  <martin@gnome.org>
18070
18071         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
18072         New icall to get the time zone data.
18073
18074 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18075
18076         * reflection.c: set virtual and raw size of section correctly.
18077         * threads.c: transfer domain information to newly created threads.
18078
18079 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18080
18081         * class.c: when instancing a class in a domain, load the default
18082         vaules for static fields from the constant table. Fix System.Enum to
18083         not be an enum.
18084         * icall.c: implement Object::GetType() internalcall. Implemented
18085         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
18086         Fixed checking of binding flags in find_members().
18087         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
18088         * reflection.c: handle enumerations when writing to the constant
18089         table. Use a different object cache for types.
18090
18091
18092 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
18093
18094         * object.c (mono_object_isinst): fix for arrays
18095
18096         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
18097
18098 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18099
18100         * object.c: don't use mprotect ()  and fix intern pool hash table
18101         lookup for big endian systems.
18102
18103 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18104
18105         * icall.c: change type_is_subtype_of () signature.
18106
18107 2002-02-21  Mark Crichton  <crichton@gimp.org>
18108
18109         * rand.c, rand.h: Added random number generator for
18110         System.Security.Cryptography classes.
18111
18112         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
18113
18114         * icall.c: Added System.Security.Cryptography calls.
18115
18116 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
18117
18118         * class.c, icall.c, metadata.c: better support for pointer types.
18119         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
18120         * reflection.c: Add support for getting custom attrs for properties
18121         and simplify some code.
18122
18123 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
18124
18125         * icall.c: change getToken () and add custom attribute GetBlob()helper
18126         method.
18127         * reflection.h: add custom attrs array to the reflection builder structures.
18128         * reflection.c: encode and emit custom attributes for all the relevant
18129         reflection objects. Cache fieldref and methodref tokens. Change
18130         mono_image_create_token() interface to take a MonoDynamicAssembly.
18131         More complete custom attributes decoder. Load custom attributes for
18132         Assembly, Field, Method and Constructor objects, too. Make the
18133         returned array an Attribute[] one, not object[]. Added
18134         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
18135         custom attribute constructor.
18136
18137 2002-02-20  Dick Porter  <dick@ximian.com>
18138
18139         * icall.c:
18140         * rawbuffer.c:
18141         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
18142         problem code out for now).
18143
18144 2002-02-19  Radek Doulik  <rodo@ximian.com>
18145
18146         * object.c (mono_ldstr): use hash table to avoid multiple swapping
18147
18148 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
18149
18150         * icall.c: register the GetCustomAttributes method.
18151         * object.c, object.h: add mono_string_new_len ().
18152         * reflection.h, reflection.c: added mono_runtime_invoke(),
18153         mono_install_runtime_invoke(). Added
18154         mono_reflection_get_custom_attrs () to load custom attributes and
18155         create the attribute objects.
18156
18157 2002-02-19  Dick Porter  <dick@ximian.com>
18158         * threads-dummy-types.c:
18159         * threads-dummy-types.h:
18160         * threads-dummy.c:
18161         * threads-dummy.h:
18162         * threads-pthread-types.c:
18163         * threads-pthread-types.h:
18164         * threads-pthread.c:
18165         * threads-pthread.h:  Deleted obsolete files
18166
18167 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
18168
18169         * class.c (mono_class_vtable): runtime init the class when we
18170         allocate static class data.
18171
18172         * icall.c (ves_icall_System_Array_SetValue): check for null values.
18173
18174         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
18175         and String - but we will need generic marshalling support in the
18176         future. 
18177         (mono_init): set the domain name in a ms compatible way
18178
18179         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
18180         String[].
18181
18182 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
18183
18184         * object.c (mono_array_clone): use alloca() instead of g_malloc  
18185         for sizes
18186
18187         * appdomain.c (mono_domain_unload): impl.
18188
18189 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18190
18191         * appdomain.c, object.c: fix intern pool implementation.
18192         * class.c: fix alignment code.
18193
18194 2002-02-16  Radek Doulik  <rodo@ximian.com>
18195
18196         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
18197         and s2 > s1, just copy lower bytes to be compatible with little
18198         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
18199         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
18200
18201         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
18202         force big_endian to be 1 for big endian machines 
18203         (ves_icall_iconv_new_decoder): ditto
18204
18205 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
18206
18207         * socket-io.c (convert_sockopt_level_and_name): If the system
18208         doesn't define SOL_IP or SOL_TCP, get them by hand using
18209         getprotobyname() and caching the values (because this could be a
18210         slow operation).
18211         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
18212         Use the appropriate struct when the system does support it. Ie,
18213         not all systems have struct ip_mreqn so use struct ip_mreq when
18214         appropriate.
18215
18216 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
18217
18218         * reflection.c: handle finally clauses.
18219
18220 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
18221
18222         * socket-io.c: use g_snprintf() instead of snprintf.
18223
18224 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18225
18226         * reflection.c (mono_param_get_objects): Cast second argument to
18227         mono_method_get_param_names to a const char** to silence the
18228         compiler warning.
18229
18230         * appdomain.c (mono_domain_assembly_open): Put parens around the
18231         truth statement in the for-loop.
18232
18233         * unicode.c (iconv_convert): Got rid of a compiler warning about
18234         int i being unused when the system has a new iconv.
18235         (iconv_get_length): Same.
18236
18237         * image.c (load_class_names): Cast the second argument to
18238         g_hash_table_insert() to char* to hush compiler warnings about the
18239         arg being a const.
18240         (mono_image_open): Same here.
18241
18242         * socket-io.c: Don't conditionally include sys/filio.h or
18243         sys/sockio.h here anymore since we now get them from
18244         io-layer/io-layer.h
18245         (inet_pton): If the system doesn't support inet_aton, implement
18246         using inet_addr and also #define INADDR_NONE if it isn't defined
18247         by the system.
18248
18249 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
18250
18251         * metadata.c, metadata.h: added function to get packing and size info
18252         of a typedef.
18253         * reflection.h, reflection.c: handle field RVA data. Save info about
18254         the table layout if needed. Assign typedef indexes to all the types
18255         before dumping the info about them to avoid forward reference problems.
18256
18257 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
18258
18259         * socket-io.c (convert_sockopt_level_and_name): ifdef
18260         SO_ACCEPTCONN because it is not defined on my system (old debian)
18261
18262 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
18263
18264         * opcode.c: use stddef.h to get NULL.
18265
18266 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
18267
18268         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
18269         for FIONBIO, FIONREAD and SIOCATMARK.
18270         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
18271         define INADDR_NONE and besides, inet_addr() is deprecated and
18272         should not be used. Use inet_pton() instead - it also has the
18273         added bonus that it can easily handle IPv6 addresses as well.
18274         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
18275
18276 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
18277
18278         * decimal.c: remove _MSC_VER conditional.
18279
18280 2002-02-13  Dick Porter  <dick@ximian.com>
18281
18282         * socket-io.c: 
18283         * icall.c: Internal calls for Blocking, Select, Shutdown,
18284         GetSocketOption and SetSocketOption
18285
18286 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18287
18288         * assembly.cs: better resolver: use it instead of some kludgy
18289         code.
18290
18291 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
18292
18293         * reflection.c: the best way to speed-up the compiler is to avoid
18294         infinite loops.
18295
18296 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
18297
18298         * class.c (mono_class_vtable): changed the object layout
18299         (obj->vtable->class). 
18300         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
18301
18302 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
18303
18304         * assembly.c: look for assemblies in the assembly dir, too.
18305
18306 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18307
18308         * class.c: fix thinko in mono_class_from_type().
18309
18310 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
18311
18312         * exception.h, exception.c: added TypeLoadException.
18313         * object.h, object.c: added mono_array_clone ().
18314         * icall.c: handle throwOnError in AssemblyGetType().
18315         Added Array.Clone().
18316         * opcode.h, opcode.c: use a single value for the opcode val.
18317         Compile fix for non-gcc compilers.
18318
18319 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
18320
18321         * opcodes.c, opcodes.h: export interesting info about opcodes.
18322
18323 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
18324
18325         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
18326         icalls. 
18327
18328         * class.c (class_compute_field_layout): set element_class for enums
18329         (mono_class_create_from_typedef): set element_class for normal classes
18330
18331         * icall.c (ves_icall_System_Enum_get_value): impl.
18332
18333         * class.c (mono_class_create_from_typedef): do not set valuetype
18334         flag for System.ValueType and System.Enum
18335
18336 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
18337
18338         * unicode.c (iconv_convert): fix big endian problem.
18339
18340 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
18341
18342         * class.c: add asserts if we are ever going to scribble over memory.
18343         * socket-io.c: not all systems have AF_IRDA defined.
18344
18345 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
18346
18347         * class.c (class_compute_field_layout): do not consider static
18348         fields to compute alignment
18349
18350 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
18351
18352         * appdomain.c (mono_appdomain_get): impl.
18353         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
18354
18355 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
18356
18357         * icall.c: ignore "file://" prefix when loading an assembly.
18358
18359 2002-01-23  Dick Porter  <dick@ximian.com>
18360
18361         * socket-io.c:
18362         * icall.c:
18363         * Makefile.am: Added socket support
18364
18365 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18366
18367         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
18368         code back.  This should return the assemblies that are loaded by
18369         the runtime on behalf of an application domain. 
18370
18371         The current implementation is still broken, it just returns every
18372         assembly loaded, but until we get real applications domain this
18373         will do.
18374
18375 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
18376
18377         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
18378         AppDomain object.
18379
18380 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
18381
18382         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
18383         the mono_class_from_name lookup.
18384         (ves_icall_get_parameter_info): ditto.
18385         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
18386         method.
18387         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
18388
18389 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
18390
18391         * class.c: load also nested classes on class init.
18392         System.ValueType instance methods gets passed boxed
18393         values, unless methods in derived classed that get a pointer to the
18394         data.
18395         * icall.c: use better name parsing code in GetType().
18396         * image.c, image.h: add mono_image_loaded ().
18397         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
18398         * reflection.c, reflection.h: added mono_reflection_parse_type().
18399
18400 2002-01-22  Veronica De Santis <veron78@interfree.it>
18401
18402         * icall.c : Added mapping of internal calls for Manual and Auto reset events
18403         * threads.c : Added the implementation of internal calls for events
18404         * threads.h : Added prototypes of internal calls for events
18405         
18406 2002-01-21  Radek Doulik  <rodo@ximian.com>
18407
18408         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
18409
18410 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
18411
18412         * class.c (mono_class_init): set min_align to 1 (instead of 0)
18413         (mono_class_value_size): use min_align
18414
18415 2002-01-20  Dick Porter  <dick@ximian.com>
18416
18417         * threads.h:
18418         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
18419         so it compiles on w32.
18420
18421 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
18422
18423         * metadata.c (mono_type_stack_size): impl.
18424
18425         * class.c (mono_class_get_field): impl. memberref token
18426
18427 2002-01-16 Veronica De Santis <veron78@@interfree.it>
18428
18429         * icall.h : Added the internal calls mapping for CreateMutex_internal
18430                     and ReleaseMutex_internal.
18431         * threads.h : Added the prototype of mutexes internal calls.
18432         * threads.c : Added the implementations of mutexes internal calls.
18433
18434 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
18435
18436         * metaparse.h: removed unused file.
18437         * reflection.c, reflection.h: added stream_data_align () function 
18438         to align data in streams and keep stream aligned. Add support for
18439         exception support in method headers.
18440
18441 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
18442
18443         * unicode.c: make iconv_convert () return the number of bytess written
18444         in the output buffer.
18445
18446 2002-01-15  Dick Porter  <dick@ximian.com>
18447         * threads.c: Make the runtime's idea of infinite timeouts coincide
18448         with the class library's
18449
18450         Fix a particularly egregious bug in mono_thread_cleanup(). That
18451         code was so utterly bogus it must have been written on a Monday.
18452
18453 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
18454
18455         * reflection.h: add subtypes field to TypeBuilder.
18456         * reflection.c: encode constants for literal fields.
18457         Handle subtypes. Fix user string token (and add a zero byte)
18458         at the end.
18459         
18460 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
18461
18462         * class.c (mono_class_init): bug fix: assign slot numbers for
18463         abstract methods.
18464
18465 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
18466
18467         * reflection.c: don't try to output a code RVA for abstract methods.
18468         Small fixes for method header format. Output parameter info to the
18469         ParamDef table. Save method overriding info to MethodImpl table.
18470         Fix property support. Allow typedef.extends to be a type in the
18471         building assembly.
18472         * verify.c: fix off-by-one error.
18473
18474 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
18475
18476         * class.c: fix mono_class_from_mono_type () for szarray types.
18477         Remove unused cache check in mono_class_from_type_spec().
18478         * icall.c: *type_from_name () functions handle simple arrays and byref.
18479         * reflection.c: handle byref and szarray types. Handle methods without
18480         body (gets P/Invoke compilation working). Handle types and fields in
18481         get_token ().
18482         * reflection.h: add rank to MonoTypeInfo.
18483
18484 2002-01-10  Dick Porter  <dick@ximian.com>
18485
18486         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
18487         internal calls
18488
18489 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
18490
18491         * icall.c: initialize class in type_from_handle ().
18492         Loop also in parent classes for get_method ().
18493         * reflection.c: properly encode class and valuetype types.
18494         Start on encoding TypeBuilder types. Handle fieldrefs.
18495         Use correct length when registering a user string.
18496         Handle ConstructorBuilder and MonoMethod in get_token ().
18497         Make mono_type_get_object () aware of cached types.
18498         * object.c: back out change to mono_string_new ().
18499
18500 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
18501         * object.c: mono_string_new should return a NULL when the string 
18502         passed in is NULL -- not try to deference it.
18503         
18504 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
18505
18506         * icall.c: hack to make IsSubType work for TypeBuilders.
18507         * reflection.c: emit constructors before methods.
18508         Retrieve param names in mono_param_get_objects().
18509
18510 2002/01/05  Nick Drochak  <ndrochak@gol.com>
18511
18512         * Makefile.am: fix list of headers and sources so automake 1.5
18513         doesn't complain. Removed \# at end of list.
18514
18515 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
18516
18517         * reflection.c: get token for a method ref. Set return type of
18518         constructor to void.
18519         * loader.c: debug message.
18520         * class.c: typo fix.
18521
18522 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
18523
18524         * icall.c: fix array init with rank > 1. FindMembers
18525         loops in parent class as well.
18526         * image.c: do not insert nested types in name cache.
18527         * reflection.c: warning fix.
18528         * reflection.h: add override method (for interface impl).
18529
18530 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
18531
18532         * metadata.c: fix customattr decoding.
18533
18534 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
18535
18536         * rawbuffer.cs: Added native Win32 implementation, avoids using
18537         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
18538
18539 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
18540
18541         * class.c: make the low-level routines handle the cache.
18542
18543 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
18544
18545         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
18546
18547 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
18548
18549         * class.c: fix mono_array_element_size() for objects.
18550         * class.h, class.c: add properties to MonoClass and load them
18551         at init time.
18552         * icall.c: check with isinst() when assigning a value to an array
18553         instead of requiring the classes to match exactly.
18554         Implemented icall for System.Type::GetType().
18555         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
18556         enums. Handle bindingflags when looking for methods and fields.
18557         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
18558         and mono_metadata_methods_from_property().
18559         * reflection.h, reflection.c: added structures for propreties,
18560         parameters and enums. Implemented mono_property_get_object() and
18561         mono_param_get_objects().
18562
18563 2001-12-18  Dick Porter  <dick@ximian.com>
18564
18565         * file-io.c: Use mono_string_to_utf16() instead of
18566         mono_string_chars()
18567
18568         * object.c: Added mono_string_to_utf16(), which copies the non
18569         NULL-terminated MonoString into a new double-null-terminated
18570         buffer.
18571
18572 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
18573
18574         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
18575
18576 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
18577
18578         * file-io.c: raise exceptions if handle is invalid.
18579
18580 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
18581
18582         * assembly.c: yet another check for mscorlib.
18583         * class.c, class.h: load nesting info for classes.
18584         * icall.c: many new functions to support the Reflection classes.
18585         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
18586         * reflection.h, reflection.c: mono_image_create_token(),
18587         mono_assembly_get_object(), mono_type_get_object(),
18588         mono_method_get_object(), mono_field_get_object(): methods to return
18589         objects that parallel the C representation of assemblies, types,
18590         methods, fields.
18591
18592 2001-12-11  Dick Porter  <dick@ximian.com>
18593
18594         * icall.c:
18595         * file-io.c: Internal calls for file IO.
18596
18597 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
18598
18599         * tabledefs.h: missing FileAttributes.
18600         * verify.h, verify.c: use is_valid_string () to simplify and check for
18601         valid strings more correctly. Fix warnings and speeling.
18602         Check more tables: Filed, File, ModuleRef, StandAloneSig.
18603         Check code: branches, maxstack, method calls.
18604
18605 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
18606
18607         * object.c (mono_object_allocate): removed static, so that the jit
18608         can allocate value types.
18609
18610         * icall.c (ves_icall_System_DateTime_GetNow): impl.
18611
18612 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18613
18614         * class.c: init enum types right away and register the
18615         token->MonoClass map in mono_class_create_from_typedef ().
18616         * verify.h, verify.c: first cut of the verifier.
18617         * pedump.c: add --verify switch to verify metadata tables.
18618         * tabledefs.h: add some missing enums.
18619
18620 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
18621
18622         * class.c (mono_install_runtime_class_init): impl.
18623         (mono_class_init): renamed mono_class_metadata_init to
18624         mono_class_init, also removed the metadata_inited flag
18625
18626         * object.c (mono_object_isinst): use faster algorithm
18627
18628 2001-11-30  Radek Doulik  <rodo@ximian.com>
18629
18630         * mono-endian.h: reverted last change
18631         added function prototypes
18632
18633         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
18634         add mono-endian.c back
18635
18636         * mono-endian.c: returned back, as Paolo pointed out, it's needed
18637         for unaligned access, I've mistaked it with endianess. I am
18638         sorry.
18639         (mono_read16): fix reverted endianess
18640         (mono_read64): ditto
18641         (mono_read32): ditto
18642
18643 2001-11-30  Dick Porter  <dick@ximian.com>
18644
18645         * exception.c: Implement mono_exception_from_name()
18646
18647 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18648
18649         * metadata.h, metadata.c: remove params_size and locals_size and their
18650         calculation from the metadata code: they are only usefult to the
18651         interp.
18652
18653 2001-11-29  Radek Doulik  <rodo@ximian.com>
18654
18655         * object.c (mono_ldstr): swap bytes here, it's probably not the
18656         best place, but works for me now, I'll redo it once I know mono
18657         better, also note that I add PROT_WRITE and don't reset back, also
18658         note that it's only affects big endians, so x86 should be OK
18659
18660         * mono-endian.h (read16): use just glib macros for both endians
18661
18662         * mono-endian.c: removed as glib macros are used in in
18663         mono-endian.h so we don't need to care about endianess for read
18664         macros as glib does that for us already
18665
18666 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
18667
18668         * class.h, class.h: take minimum alignment into consideration so
18669         that the fields of a class remain aligned also when in an array.
18670
18671 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18672
18673         * loader.h, loader.c: add mono_method_get_param_names().
18674         * class.c: 0-init class fields.
18675
18676 2001-11-26  Dick Porter  <dick@ximian.com>
18677
18678         * icall.c:
18679         * threads-types.h:
18680         * threads.c: New file that handles System.Threading on all platforms
18681
18682         * object.c: 
18683         * object.h: Remove the synchronisation struct from MonoObject,
18684         replace it with a pointer that gets initialised on demand
18685
18686         * Makefile.am: Replace all the system-specific threading code with
18687         a single file that uses the new wrapper library
18688
18689 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
18690
18691         * class.c, class.h: add mono_install_trampoline() so that the runtime
18692         can register a function to create a trampoline: removes the ugly
18693         requirement that a runtime needed to export arch_create_jit_trampoline.
18694         * object.h, object.c: added mono_install_handler() so that the runtime
18695         can install an handler for exceptions generated in C code (with
18696         mono_raise_exception()). Added C struct for System.Delegate.
18697         * pedump.c: removed arch_create_jit_trampoline.
18698         * reflection.c: some cleanups to allow registering user strings and
18699         later getting a token for methodrefs and fieldrefs before the assembly
18700         is built.
18701         * row-indexes.h: updates and fixes from the new ECMA specs.
18702
18703 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
18704
18705         * class.h, class.c: add enum_basetype field to MonoClass.
18706         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
18707         to get index in the constant table reated to a field, param or
18708         property.
18709         * reflection.h, reflection.c: handle constructors. Set public-key and
18710         version number of the built assembly to 0.
18711         * row-indexes.h: update from new ECMA spec.
18712
18713 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18714
18715         * class.h, class.c: add a max_interface_id to MonoClass.
18716         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
18717         since it's used to do that. Added mono_type_type_from_obj().
18718         Make GetType() return NULL instead of segfaulting if the type was not
18719         found. Handle simple arrays in assQualifiedName.
18720         * object.h: add a struct to represent an Exception.
18721         * reflection.c: output call convention in method signature.
18722         Add code to support P/Invoke methods and fixed offsets for fields.
18723
18724 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
18725
18726         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
18727         the value.
18728         * icall.c: use mono_array_addr instead of array->vector: fixes the
18729         reflection image writing.
18730         * reflection.c: init call convention byte to 0 in method signature.
18731         Encode the property signature. Don't output property-related methods
18732         twice. Really process the properties for a type (don't cast a field to
18733         a property, my mom always told me that).
18734         Fix 64 bit issues in pointer alignment in a different and more
18735         readable way.
18736
18737 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
18738
18739         * loader.h: Removed type class from MonoDefaults, added monotype
18740
18741         * loader.c: Loaded MonoType, removed loading of Type
18742
18743         * icall.c (my_mono_new_object): Now returns a System.MonoType,
18744         and fills in System.Type._impl with a RuntimeTypeHandle rather
18745         than the actual MonoClass *
18746
18747         (ves_icall_type_from_handle): change from type_class to
18748         monotype_class
18749
18750         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
18751         implemented
18752
18753         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
18754         implemented
18755
18756         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
18757
18758         (ves_icall_System_Reflection_Assembly_GetType): implemented
18759
18760         (ves_icall_System_MonoType_assQualifiedName): implemented
18761
18762         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
18763
18764 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
18765
18766         * assembly.c (mono_assembly_open): Implement a cache for the
18767         assemblies. 
18768
18769         (mono_assembly_close): only destroy the assembly when the last
18770         reference is gone.
18771         
18772 2001-11-09  Dick Porter  <dick@ximian.com>
18773
18774         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
18775
18776 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
18777
18778         * class.c (mono_class_metadata_init): bug fix: compute the right slot
18779
18780 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
18781
18782         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
18783         from Martin Weindel.
18784         * object.h: add mono_string_chars ().
18785
18786 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
18787
18788         * reflection.c (build_compressed_metadata): Eliminates warnings
18789         and uses 64-bit clean code.
18790
18791         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
18792         (mono_type_equal): Change signature to eliminate warnings.
18793
18794 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
18795
18796         * icall.c, loader.c: remove the internalcall array constructors.
18797         Changes to match the new MonoArray structure.
18798         * object.h, object.c: an array object doesn't allocate an extra
18799         vector. Add mono_array_new_full () to create jagged arrays easily.
18800
18801 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
18802
18803         * metadata.h, metadata.c: add mono_metadata_field_info () to
18804         retreive all the info about a field from vairous tables.
18805         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
18806         * class.h, class.c: augment MonoClassField with more info.
18807         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
18808         policy and load a field's RVA if needed.
18809
18810 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
18811
18812         * class.c (mono_class_metadata_init): create a trampoline for all
18813         virtual functions instead of actually compiling them.
18814
18815 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
18816
18817         * class.h, class.c: include name in MonoClassField.
18818         * class.c: fix fundamental type of System.Object and System.String.
18819         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
18820         tokens in ldtoken.
18821         * icall.c: remove internalcalls for the Reflection stuff that is now
18822         done in C# code.
18823         * loader.c: mono_field_from_memberref () implementation.
18824         * mono-endian.c: thinko (s/struct/union/g).
18825         * object.c, object.h: make the mono_string_* prototypes actually use
18826         MonoString instead of MonoObject.
18827         * reflection.c, reflection.h: updates for changes in the reflection
18828         code in corlib: we use C structures that map to the actual C# classes.
18829         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
18830         fat method header if needed and use the info from the ILGenerator for
18831         methods. Handle fields in types. Misc fixes.
18832
18833 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
18834
18835         * class.c (mono_class_metadata_init): bug fix: always allocate
18836         space for static class data
18837
18838 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
18839
18840         * class.c (mono_compute_relative_numbering): use relative
18841         numbering to support fast runtime type checks.
18842
18843 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
18844
18845         * class.c (mono_class_create_from_typeref): added debugging output
18846         to print class name when MonoDummy is returned instead of real class
18847
18848 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
18849
18850         * class.c (mono_class_metadata_init): interface offset table now
18851         contains pointers into the vtable - this is more efficient for the jit
18852
18853 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
18854
18855         * class.c (mono_class_metadata_init): use a temporary vtable (the
18856         old algorithm only worked for the interpreter, but not for the jit)
18857
18858 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
18859
18860         * loader.c (method_from_memberref): use mono_class_get to get the
18861         class of an array instead of using System.Array directly.
18862         (mono_get_method): also add MEMBERREF methods to the method cache
18863         which usefull for arrays.
18864
18865 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
18866
18867         * pedump.c (arch_compile_method): added to compute vtable entry
18868
18869         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
18870         number of interfaces.
18871         
18872         * class.h: merged MonoArrayClass into MonoClass
18873
18874         * class.c (mono_class_create_from_typedef): compute the vtable size and
18875         allocate space to include the vtable inside MonoClass
18876         (mono_class_metadata_init): initialize the vtable
18877
18878 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
18879
18880         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
18881         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
18882         * image.c: endian fixes by Laurent Rioux.
18883         * object.h, object.c: rename MonoStringObject to MonoString and
18884         MonoArrayObject to MonoArray. Change some function names to conform to
18885         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
18886         guint16* as first argument, so don't use char*.
18887         Provide macros to do the interesting things on arrays in a portable way.
18888         * threads-pthread.c: updates for the API changes and #include <sched.h>
18889         (required for sched_yield()).
18890         * icall.c: updates for the API changes above.
18891         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
18892         platforms that need them.
18893
18894 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
18895
18896         * class.c: set the correct type for all the fundamental
18897         type when loading the class.
18898
18899 2001-10-05  Dick Porter  <dick@ximian.com>
18900
18901         * threads-pthread.c (pthread_mutex_timedlock): Simple
18902         compatibility version for C libraries that lack this call.
18903
18904 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18905
18906         * class.c: MonoTypes stored in MonoClass are stored as
18907         fundamental MonoTypes when the class represents a
18908         fundamental type (System.Int32, ...).
18909         The TypeHandle return by ldtoken is a MonoType*.
18910         * icall.c: ves_icall_get_data_chunk () write out all the
18911         PE/COFF stuff. Implement ves_icall_define_method (),
18912         ves_icall_set_method_body (), ves_icall_type_from_handle ().
18913         * image.c: properly skip unknown streams.
18914         * loader.h, loader.c: add type_class to mono_defaults.
18915         * metadata.c, metadata.h: export compute_size () as
18916         mono_metadata_compute_size () with a better interface.
18917         Typo and C&P fixes.
18918         * pedump.c: don't try to print the entry point RVA if there is no entry point.
18919         * reflection.c, reflection.h: many cleanups, fixes, output method
18920         signatures and headers, typedef and typeref info, compress the metadata
18921         tables, output all the heap streams, cli header etc.
18922         * row-indexes.h: typo fixes.
18923
18924 2001-10-04  Dick Porter  <dick@ximian.com>
18925
18926         * object.h: Add a synchronisation mutex struct to MonoObject
18927
18928         * object.c (mono_new_object): Initialise the object
18929         synchronisation mutexes
18930
18931         * icall.c: System.Threading.Monitor internal calls
18932         
18933         * threads-pthread.h:
18934         * threads-pthread.c: System.Threading.Monitor internal calls
18935
18936         * threads-types.h: New file, includes the system-specific thread
18937         structures
18938         
18939         * threads-pthread-types.h:
18940         * threads-pthread-types.c: New files, handle pthread-specific
18941         synchronisation types
18942
18943         * threads-dummy-types.h: 
18944         * threads-dummy-types.c: New files of dummy support for
18945         thread-specific types
18946
18947         * metadata.c:
18948         * image.c:
18949         * pedump.c: include mono-endian.h not endian.h
18950         
18951         * Makefile.am: More threads files.
18952         Name mono-endian.h not endian.h
18953
18954 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
18955
18956         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
18957         stuff and implement a few more bits.
18958         * icall.c: a field needs to be dereferenced twice. Do not use the same
18959         name for two variables in the same scope.
18960         * image.c, image.h: cleanups.
18961
18962 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
18963
18964         * class.c (mono_class_metadata_init): bug fix: compute the right size
18965
18966 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
18967
18968         * icall.c: implemented some of the Reflection internalcalls.
18969         * image.c, image.h: start writing out the PE/COFF image.
18970         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
18971         that does the reverse than decode_blob_size ().
18972         * object.c: use mono_metadata_encode_value (). Move here
18973         temporary implementation of mono_string_to_utf8 ().
18974         * rawbuffer.c: make malloc_map static.
18975
18976 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
18977
18978         * metadata.c: fix type comparison for arrays.
18979         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
18980         Added a couple of new classes to monodefaults.
18981         * icall.c: added a couple of Reflection-related internalcalls.
18982         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
18983         Added a byval_arg MonoType to MonoClass.
18984
18985 2001-09-28  Dick Porter  <dick@ximian.com>
18986
18987         * icall.c:
18988         * threads-pthread.h: 
18989         * threads-pthread.c: Implemented internal calls for
18990         LocalDataStoreSlot operations.  Applied mutexes around all shared
18991         data.  Reworked the thread creation and Start() operations to
18992         avoid a race condition.
18993         
18994         * threads-dummy.h:
18995         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
18996
18997 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
18998
18999         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
19000
19001 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
19002
19003         * class.c, loader.c: warn and return NULL instead of erroring out.
19004         * icall.c: added System.AppDomain::getCurDomain().
19005         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
19006
19007 2001-09-25  Dick Porter  <dick@ximian.com>
19008
19009         * threads-pthread.h:
19010         * threads-pthread.c: Implemented timed thread joining and added
19011         System.Threading.Thread::Join_internal internal call
19012
19013         * icall.c: Added System.Threading.Thread::Join_internal internal call
19014
19015         * threads-dummy.h:
19016         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
19017
19018 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
19019
19020         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
19021         mono_string_intern () to implement the semantics of the ldstr opcode
19022         and the interning of System.Strings.
19023         * icall.c: provide hooks to make String::IsIntern and String::Intern
19024         internalcalls.
19025
19026 2001-09-23  Dick Porter  <dick@ximian.com>
19027
19028         * threads-dummy.c: 
19029         * threads-dummy.h: New files of dummy threading routines
19030
19031         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
19032         support code based on system specifics
19033
19034         Rename PTHREAD_LIBS to THREAD_LIBS
19035         
19036 2001-09-23  Dick Porter  <dick@ximian.com>
19037
19038         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
19039         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
19040         internal calls.
19041         (mono_thread_init): Set up a Thread object instance to return when
19042         the main thread calls Thread.CurrentThread
19043         (mono_thread_cleanup): Wait for all subthreads to exit
19044
19045         * icall.c: New internal calls for System.Threading.Thread::Sleep
19046         (including Schedule) and CurrentThread
19047
19048         * threads.h: New file, to insulate thread-specific stuff from the
19049         rest of the code
19050
19051 2001-09-21  Dick Porter  <dick@ximian.com>
19052
19053         * threads-pthread.h: 
19054         * threads-pthread.c: New file, for handling pthreads-style
19055         threading support.  Start() now starts a new thread and executes
19056         the ThreadStart delegate instance.
19057
19058         * icall.c: Added the internalcall for
19059         System.Threading.Thread::Start_internal
19060
19061         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
19062
19063 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
19064
19065         * loader.c: work around the different signatures for delegates
19066         constructors csc generates in compiled code vs the ones compiled in mscorlib.
19067
19068 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19069
19070         * class.h, class.c: add mono_class_get_field_from_name ().
19071         * *: Fix C comments and other ANSI C issues.
19072
19073 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
19074
19075         * endian.h, assembly.c: fix some endianness issues.
19076
19077 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
19078
19079         * loader.h, load.c: add delegate_class to mono_defaults.
19080         Handle runtime provided methods in mono_get_method ().
19081
19082 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
19083
19084         * loader.c (mono_get_method): use pinvoke for internal call
19085
19086         * icall.c: use pinvoke for internal call
19087
19088         * loader.c (method_from_memberref): set the method name
19089
19090 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
19091
19092         * metadata.c: help the compiler generate better code for
19093         mono_class_from_mono_type ().
19094
19095 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
19096
19097         * class.c (mono_class_metadata_init): delayed computing of the
19098         class size to mono_class_metadata_init ()
19099
19100 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
19101
19102         * class.c, class.h: add an interfaces member to MonoClass.
19103         * image.c, image.h: add assembly_name field to MonoImage
19104         from the assembly table.
19105         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
19106
19107 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19108
19109         * class.c: Handle Array in mono_class_from_mono_type ().
19110         * metadata.c, pedump.c: some endian fixes.
19111
19112 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
19113
19114         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
19115         * metadata.c: fix small problem introduced with the latest commit.
19116
19117 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
19118
19119         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
19120         We don't need a MonoMetadata pointer anymore to compare signatures in
19121         mono_metadata_signature_equal (), update callers.
19122         Reduced memory usage an number of allocations for MonoMethodHeader and
19123         MonoMethodSignature.
19124
19125 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
19126
19127         * metadata.c: added compare for szarray.
19128
19129 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
19130
19131         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
19132         and add a couple more types to it and mono_defaults. Give an hint on
19133         classes that need implementing in our corlib and are referenced
19134         in mscorlib.
19135
19136 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
19137
19138         * class.h, class.c: keep track if a class is also an Enum.
19139         * loader.c: Implement a couple more types for use in libffi
19140         marshalling. Gives better diagnostics when failing to dlopen
19141         a library. Set method->klass for P/Invoke methods, too.
19142
19143 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
19144
19145         * class.c, class.h: add a MonoType this_arg to MonoClass that
19146         represents a pointer to an object of the class' type that
19147         can be used by the interpreter and later the type cache.
19148         Add best guess alignment info for valuetype objects.
19149
19150 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
19151
19152         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
19153         into MonoType: one less level of indirection and allocation and
19154         simplifies quite a bit of code. Added cache for MonoTypes that are
19155         used frequently, so that we don't need to allocate them all the time.
19156
19157 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
19158
19159         * class.c (mono_class_create_from_typedef): System.Enum is also a
19160         value type, although it does not derive from System.ValueType
19161         (maybe a bug in the ms compiler?)
19162
19163         * metadata.c (mono_type_size): return the right size for value types
19164
19165         * loader.c (mono_get_method): only initialize method header if not abstract
19166
19167         * class.c (mono_class_from_mono_type): use mono_default values. 
19168
19169 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
19170
19171         * *: use MonoClass pointers instead of <type_tokens>
19172         
19173         * class.h: new flag: metadata_inited.
19174
19175         * class.c (mono_class_metadata_init): impl.
19176         (mono_class_instance_size): impl.
19177         (mono_class_data_size): impl.
19178
19179 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
19180
19181         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
19182         MonoClass now has the name and name_space fields. 
19183         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
19184         mono_get_method () takes and optional MonoClass as argument.
19185         Removed mono_typedef_from_name() and added mono_class_token_from_name()
19186         instead that takes advantage of a map from class names to typedef
19187         tokens in MonoImage.
19188
19189 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
19190
19191         * metadata.c: zero is not a valid alignment boundary.
19192         Merge MONO_TYPE_VOID in default decoding code.
19193
19194 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
19195
19196         * image.h: merged MonoMetadata into MonoImage
19197
19198         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
19199         identify the type of elements.
19200
19201 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
19202
19203         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
19204         * cil-coff.h: split MonoMSDOSHeader and add size info.
19205         * image.c: add some consistency checks.
19206         * metadata.c: fix row size computation: one programmer
19207         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
19208         add explanation for the locator routine.
19209         Fix decoding of size in method header.
19210         
19211 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
19212
19213         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
19214         (g_concat_dir_and_file): Bring g_concat_dir_and_file
19215         function from gnome-libs.  This uses the right path separator
19216         based on the OS, and also works around a bug in some systems where
19217         a double slash is not allowed. 
19218         (default_assembly_name_resolver): Use g_concat_dir_and_file
19219         (mono_assembly_open): ditto.
19220
19221 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
19222
19223         * metadata.c (mono_metadata_signature_equal): impl.
19224
19225         * *: void is now a realy MonoType (instead of using NULL)
19226         
19227         * metadata.c (do_mono_metadata_parse_type): use
19228         mono_metadata_parse_type to parse void value.
19229
19230 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
19231
19232         * metadata.c, metadata.h: in the signature and method header store
19233         only the space required for holding the loca vars and incoming arguments.
19234
19235 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
19236
19237         * metadata.c (do_mono_metadata_parse_type): treat void like any
19238         other type (instead of assigning NULL);
19239
19240 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
19241
19242         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
19243
19244 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
19245
19246         * image.c (do_mono_image_open): added a cache for arrays.
19247
19248 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19249
19250         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
19251         decode a single column from a row in a metadata table and changes
19252         to take advantage of it in the typedef locator (gives a nice speed up).
19253         Store offset info for function params.
19254
19255 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
19256
19257         * image.h (MONO_IMAGE_IS_CORLIB): removed 
19258
19259 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
19260
19261         * assembly.c: how could mono_assembly_close () had ever worked?
19262         * metadata.c, metadata.h: provide offset info for local vars.
19263         Implement mono_type_size () to take care of alignment as well
19264         as size (it was mono_field_type_size in cli/class.c before).
19265
19266 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
19267
19268         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
19269
19270         * assembly.h (CORLIB_NAME): set to corlib.dll
19271
19272         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
19273
19274 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
19275
19276         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
19277         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
19278         tokentype.h: massive namespace cleanup.
19279
19280 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
19281
19282         * metadata.h, metadata.c: decode exception clauses when parsing method header.
19283
19284 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
19285
19286         * metadata.c (mono_metadata_free_type): added check for type !=
19287         NULL (void) before calling mono_metadata_free_type()
19288
19289 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
19290
19291         * metadata.h, row_indexes.h: added header with enumerations to use
19292         to index in the columns from tables in metadata and to decode coded
19293         tokens: we should start using this instead of embedding magic numbers
19294         all over the code.
19295
19296 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
19297
19298         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
19299         Move metadata_t info from cli_image_info_t to MonoImage, where
19300         it's easily accessible. Changed all the uses accordingly.
19301         Added the method and class caches to MonoImage.
19302         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
19303         and mono_metadata_decode_value () signature to be more consistent
19304         with the other parse functions (and simplify code). Taken advantage
19305         of zero-length array allocation with GCC. Removed reduntant (and
19306         wrong) MonoFieldType struct and use MonoParam instead. Changed
19307         mono_metadata_parse_field_type () to use common code for parsing.
19308         Added mono_metadata_typedef_from_field () and
19309         mono_metadata_typedef_from_method () to lookup a typedef index from a
19310         field or method token.
19311         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
19312
19313 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
19314
19315         * metadata.c (mono_metadata_parse_field_type): Implement. 
19316         (do_mono_metadata_parse_type): Split engine from
19317         mono_metadata_parse_type, so that we can create smaller structures
19318         for things that just have one pointer to the MonoType (look at
19319         the MonoFieldType)
19320
19321 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
19322
19323         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
19324         as Jan Gray found out, it is incorrect. 
19325
19326 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
19327
19328         * assembly.c: Implement asssembly loading.  This loads an image
19329         and loads all the referenced assemblies.  Come to think of it, we
19330         could always do lazy loading of the assemblies. 
19331
19332         * image.c (mono_image_open): Keep loaded images in a hashtable.
19333
19334         * image.h (MonoImage): Add reference count.
19335
19336 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
19337
19338         * assembly.c (mono_assembly_open): Keep track of the file name in
19339         case the assembly has no ASSEMBLY table.
19340
19341         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
19342         from get.c here.
19343
19344 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
19345
19346         * metadata.c, metadata.h: decode local vars in method header
19347         parse function. Change callers accordingly.
19348
19349 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
19350
19351         * metadata.h, cil-coff.h: protect against multiple inclusion.
19352         Added some new structures to hold information decoded from metadata:
19353         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
19354         and relevant decoding/free functions.
19355         * metadata.c: implement decoding functions. Add warning for out of bounds
19356         index in mono_metadata_locate(). Implement mono_get_method () to retreive
19357         all the info about a method signature and invocation. Remove check on
19358         uninitialized local var in parse_mh() and fix memory leak.
19359
19360 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
19361
19362         * metadata.h: More macros.
19363
19364         * tokentype.h: New file.
19365
19366 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
19367
19368         * assembly.c: added a consistency check and initialize
19369         some structures with g_new0().
19370         * metadata.c: fixed a couple more bugs in table size computation
19371         and add other checks for out-of bound access to metadata.
19372
19373 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
19374
19375         * metatada.c: fix bugs computing table sizes. Spew a
19376         warning when index in string heap is out of bounds.
19377
19378 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
19379
19380         * metadata.h: Add a couple of macros to manipulate tokens. 
19381
19382 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
19383
19384         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
19385         cli_section_tables).
19386
19387 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
19388
19389         * metadata.c (mono_metadata_user_string): New function, provides
19390         access to the UserString heap. 
19391
19392 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
19393
19394         * metadata.c: Add inline documentation.
19395
19396 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
19397
19398         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
19399         files. 
19400
19401 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
19402
19403         * typeattr.h: New file, TypeAttribute flags. 
19404
19405 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
19406
19407         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
19408         mono_assembly_ensure_section): Section loading code.
19409         (load_section_tables): Load the sections.
19410
19411         * mono/metadata/metadata.c (mono_metadata_locate_token,
19412         mono_metadata_locate): Functions to locate the information
19413         definition given a token or a table and an index.
19414         (mono_metadata_compute_table_bases): New.
19415         (compute_size): New function to compute the sizes of the various
19416         tables.
19417
19418         * mono/metadata/metadata.h: Finish listing the different index
19419         types. 
19420
19421         * mono/metadata/pedump.c: Improve to dump new information.
19422
19423 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
19424
19425         * mono/metadata/metadata.c: Entered all the tables matching
19426         Beta2. 
19427
19428         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
19429
19430
19431